I have several programs available for downloading. Note that I retain copyright and that they may not be used for commercial purposes without my explicit written permission. Anyone who uses any of these programs is asked to notify me by email at firstname.lastname@example.org, so that they can be added to my mailing list for bug notices and updates.
CamCASP. CamCASP (Cambridge package for Calculation of Anisotropic Site Properties) is a collection of scripts and programs written by Dr Alston Misquitta and myself for the calculation ab initio of distributed multipoles, polarizabilities, dispersion coefficients and repulsion parameters for individual molecules, and interaction energies between pairs of molecules using SAPT(DFT). The program is still being actively developed. In addition to the programs included in the package, CamCASP uses some other programs: Orient, and an ab initio program, normally Dalton or NWChem. See the user's guide, which is available in PDF form, for full details.
Version 6.0, with many enhancements and improvements, is now available for download from gitlab.com.
GDMA 2.3. GDMA is a Fortran program for performing Distributed Multipole Analysis of wavefunctions calculated using the Gaussian program system. That is, it calculates electric multipole moments at the atomic positions, or at other specified sites, that can give a very accurate representation of the electrostatic field of the molecule. It uses the formatted checkpoint file produced by the Gaussian program. Version 2.3 handles checkpoint files from any version of Gaussian. It can also use checkpoint files produced by the Psi4 program system. It is also possible to use GDMA with Dalton or NWChem as part of the CamCASP package. The GDMA package also includes the MULFIT program of Ferenczy et al.
Instructions for downloading and installation.
Orient is a program for carrying out calculations of various kinds for an assembly of interacting molecules. It uses a site-site potential specified by the user, including electrostatic, induction, repulsion, dispersion and charge-transfer interactions if required. The electrostatic interactions may be described by simple point charges or by more elaborate descriptions involving distributed multipoles up to rank 5 if required. Distributed polarizabilities may be used if required, and the site-site repulsion and dispersion and charge-transfer terms may be anisotropic. The energy of the assembly can be calculated at specified configurations, and the geometry can be optimized to find minima and transition states and the paths between them. Molecular dynamics and Monte Carlo calculations can be performed on the assembly. The program can calculate pressure and dielectric second virial coefficients, including quantum corrections to the pressure virial coefficient. The program can also be used to study interactions involving ionic or molecular crystal surfaces. Clusters of molecules or periodic adlayers adsorbed on the surface can be defined, and their geometries optimized. Monte Carlo calculations can also be performed on the adsorbed cluster or adlayer. The top layer of the crystal can be treated as an adlayer, and its structure optimized to study surface reconstruction effects. The interaction between the surface layer and the body of the crystal also provides a tool for studying crystal growth morphology using the attachment energy and related quantities.
The Orient 5.0 program manual is available for download in PDF format.
RRF. This is my Root Rational Fraction program, which does exact arithmetic on quantities that are square roots of rational fractions. It is intended mainly for manipulating the formulae of angular momentum theory, especially the Wigner 3j, 6j and 9j symbols. It can be used as a sort of desk calculator, or it can be used as a subroutine library in Fortran programs. Further details are available. The package can be obtained from gitlab.com.
You can also use the program directly via the Web to calculate individual 3j, 6j or 9j symbols.
Fortran input module. This Fortran 90 module contains a routine that parses input lines into ‘words’, and routines that read a ‘word’ and either use it as a keyword or translate it into a specified form, usually an integer or double-precision number. In conjunction with a simple CASE structure this provides a simple but powerful and flexible method for organising data input in a user-friendly manner. The package includes documentation, and an example program and data file as illustrations of the ways in which the module can be used to organise data. Download (19K)
OpenGL modules for Fortran. In Fortran2003 and later versions it is possible to call C functions directly from Fortran programs in a reasonably straightforward manner. This makes the standard OpenGL graphics libraries available to the Fortran programmer. However it is necessary to define Fortran interfaces to the C procedures, and the constants that are used as arguments to many of them. Aleksandar Donev and Anthony Stone have carried out this task. More details are available, and the whole package, including example files which illustrate the usage and also serve as test files, is available for download (about 200K).