This page contains the source code for the Gibbs 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. MS Windows version |
| source_unix.tar | The source code in a tar file. UNIX version |
| 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. |
| 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 Gibbs 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. |
| newmaxima.f90 | Subroutine to adjust the maximum particele displacement and rotation. |
| outfold.f90 | Subroutine to unfold a molecule's coordinates from periodic boundary conditions. |
| 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. |
| 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. |
| statistics.f90 | Subroutine to calculate block averages and uncertainties. |
| store.f90 | Subroutine to write the configuration to disk. |
| student_t.f90 | This subroutine returns the inverse of the Student's t-distribution for the specified number of blocks. |
| surf_move.f90 | Subroutine to calculate the surface term of the Ewald summation. |
| transfer.f90 | Subroutine to transfer molecules between phases. |
| volume_npt.f90 | Subroutine to change the volume for a NpT Gibbs run. |
| volume_nvt.f90 | Subroutine to change the volume for a NVT Gibbs run. |
| writedata.f90 | Subroutine to write initial information to the results file. |
| 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. |