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.h
is the file defining maximum sizes of working arrays.
The code must be recompiled after any change in this file.
prcm.h
is 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.f
This file contains subroutines which read
the main input file and .mmol files.
setup.f
This file setup units, reference arrays and data
structures
mdstep.f
This file contains MD integration algorithms,
including thermostats and barostats as well as SHAKE algorithm for
constraint dynamics
forces.f
This 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.f
contains 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
execution
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
restart.f
This file contains subroutines responsible for writing and reading restart file, dumping trajectories and other operations with input/output files
aver.f
collecting averages, including RDFs
pimd.f
Path Integral molecular dynamics
tcf.f
calculation of time correlation functions
service.f
is a collection of some procedures specific for
molecular dynamics
util.f
is a collection of some other auxiliary procedures
cpu_*.f
are different variants of counting cpu time;
getcpu.c
is a C-function to count CPU-time