Suggestions to Improve the Code
For many subroutines the list of variables passed is quite long. This makes
the code difficult to read. Additionally, trying to edit the code becomes
cumbersome with the long variable lists. A way to improve this would be
to separate the variables into modules and pass the modules to the various
subroutines. For example, the energy arrays could all be grouped into a
There are numerous parameters that must be set before compiling the program.
For example, MaxMol, MaxLJ, MaxIon, etc.. It is inconvenient to have to
compile the program each time a new system is used. It would be better
to read in the parameter values at run time and then dynamically allocate
the arrays when they are needed. In general dynamically allocated arrays
are preferable to fixed arrays.
The input file is long any confusing to novice users. Possible ways to
improve this would be to separate the input file into smaller files. For
example, generate "pre-made" files for a given model which contain the
LJ/exp-6, Coulombic and molecular growth parameters in a single file. Also,
having a separate file for the Hamiltonian scaling information would be
nice. This way a novice user would just have to choose the appropriate
models, state conditions and a few simulation details to run the program.