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