Suggestions to Improve the Code

  1. 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 single module.

  3. 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.

  5. 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.