The program consists of several Fortran files, each contains one or several Fortran units. The files are:
main.f- the main module.
This is the main program unit taking care of all what follows.
dimpar.his the file defining maximum sizes of working arrays. The code must be recompiled after any change in this file.
prcm.his a header file common for most of program units. It contains static dimensioning of the working fields and definition of all global parameters. Practically all modules depend somehow on it.
input.fThis file contains subroutines which read the main input file and .mmol files.
setup.fThis file setup units, reference arrays and data structures
mdstep.fThis file contains MD integration algorithms, including thermostats and barostats as well as SHAKE algorithm for constraint dynamics
forces.fThis file contains subroutines responsible for calculations of different forces. Forces are divided into two groups: slow and fast forces. This division is essential only if the double time step algorithm is used. Procedure for updating the lists of neighbors is also included into this file
mpi.fcontains collection of MPI calls for creating parallel executable code. This is the standard version of this file, which uses real*4 size of data during communications.
mpi_cray.f is Cray version of MPI calls for parallel
mpi_double.f is a version of MPI calls for parallel
execution with double precision for the data transfer
mpi_safe.f is a version of MPI calls with some additional
controls for communications.
scalar.f is collection of dummy MPI calls which is used in a
single-processor version of the code
This file contains subroutines responsible for writing and reading restart file, dumping trajectories and other operations with input/output files
aver.fcollecting averages, including RDFs
pimd.fPath Integral molecular dynamics
tcf.fcalculation of time correlation functions
service.fis a collection of some procedures specific for molecular dynamics
util.fis a collection of some other auxiliary procedures
cpu_*.fare different variants of counting cpu time;
getcpu.cis a C-function to count CPU-time