This page contains the source code for the gcmc program. Each source file is listed followed by a brief description of what it contains.
Notes about the code
| source.tar | The source code in a tar file. |
| add.f90 | Subroutine to attempt a particle creation. |
| alpha_ch.f90 | Subroutine to attempt an "inflation" or "deflation" of a molecule. Necessary for expanded ensemble simulations. |
| amoeba.f90 | Numerical recipies routine. It is used to adjust the temperature and activity of Hamiltonians to mimic the behavior of the first Hamiltonian. |
| amotry.f90 | Numerical recipies routine used with amoeba.f90. |
| banner.f90 | Subroutine to write header information to the results file. |
| bigread.f90 | Subroutine to read in most information. |
| bondl.f90 | Subroutine to find a bondlength for beads that are attached via a harmonic stretching potential. |
| com.f90 | Subroutine to determine the center of mass of a molecule. |
| cone.f90 | Subroutine to place a bead a fixed distance and bond angle from existing beads. |
| cranksh.f90 | Subroutines to perform crank shaft and bending moves on reservoir molecules. |
| create.f90 | Subroutine to create a system from scratch or from an existing configuration. |
| displace.f90 | Subroutine to displace or rotate a molecule. |
| e6interact.f90 | Subroutine to calculate the LJ or exp-6 energy of the entire system. |
| e6molecule.f90 | Subroutine to calculate the LJ or exp-6 energy due to a single molecule. |
| erf.f90 | Numerical recipies routine to calculate the error function. |
| erfc.f90 | Numerical recipies routine to calculate the complementary error function. |
| fourier_move.f90 | Subroutine to calculate the Fourier space energy of the Ewald summation for point charges. |
| fourier_setup.f90 | Subroutine to setup the arrays needed to calculate the Fourier space energy of the Ewald summation. |
| gcmc.f90 | The main routine to run the gcmc program. |
| grow.f90 | Subroutine to grow a molecule using configurational-bias. |
| intrabend.f90 | Subroutine to calculate the harmonic bending energy of three consecutive beads. |
| intratorsion.f90 | Subroutine to calculate the torsion energy of four consecutive beads. |
| ionmolecule.f90 | Subroutine to calculate the intramolecular Coulombic energy between nonbonded beads. |
| littleread.f90 | Subroutine to read input data used to allocate arrays before bigread is called. |
| lrcorr.f90 and lrcorr.dat |
Subroutine to calculate the long-range correction to the LJ or exp-6 energy. |
| methods.f90 | Contains different growth methods used by grow to generate molecules. |
| newmaxima.f90 | Subroutine to adjust the maximum particele displacement and rotation. |
| outfold.f90 | Subroutine to unfold a molecule's coordinates from periodic boundary conditions. |
| predict.f90 | Subroutine to adjust the temperature and activity of the Hamiltonians to match the f(N) distribution of the first Hamiltonian. |
| ran2.f90 | Random number generator from numerical recipies. |
| realinteract.f90 | Subroutine to calculate the real space energy of the Ewald summation for the entire system. |
| realmolecule.f90 | Subroutine to calculate the real space energy of the Ewald summation due to a single molecule. |
| regrow.f90 | Subroutine to attempt an internal regrowth move for flexible molecules. |
| remove.f90 | Subroutine to attempt a particle annihilation. |
| resmethods.f90 | Contains growth methods used to insert molecules in conjunction with the reservoir. |
| resread.f90 | Subroutine to read information necessary for the reservoir. |
| ressetup.f90 | Subroutine to setup the reservoirs at the beginning of the program. |
| resupdate.f90 | Subroutine to update the reservoirs during the simulation. |
| selfmolecule.f90 | Subroutine to calculate the self energy of the Ewald summation. |
| sphere.f90 | Subroutine to determine a random location on the surface of a sphere. |
| store.f90 | Subroutine to write the configuration to disk. |
| surf_move.f90 | Subroutine to calculate the surface term of the Ewald summation. |
| weights.f90 | Subroutines to adjust the Hamiltonian and expanded ensemble weights. |
| writedata.f90 | Subroutine to write initial information to the results file. |
| writehist.f90 | Subroutine to write the particle number-energy (f(N,E)) histogram to disk. |
| writeresults.f90 | Subroutine to write the results to the results file at the end of an equilibration or production phase. |
| zbrent.f90 | Root finding routine from numerical recipies. |