Principal Moments of Inertia From STructure

        This program takes in either Cartesians or connectivity definitions of molecular structure, calculates moments of inertia etc., and allows viewing, 3-D rotation and structural checks.

        The original purpose has been to check the validity of structural declarations and prediction of rotational constants, but it is now also used as a rapid viewer for inspection of structural results from various programs, including STRFIT and various ab initio packages.   There are many excellent  molecule viewing packages so only a rudimentary screen viewing option is provided, although much higher-quality printable graphics  output is possible.

        Principal features:

  • Molecule input in Cartesians (in Angstroms or bohr) in either the .COR standard of the program or the widespread .xyz standard.
  • Molecule input in internal structural coordinates, which are also used in the structure fitting program STRFIT
  • Cartesian input can be extracted from CFOUR/Firefly/Gamess-US/Gaussian output
  • Dummy atoms can be used to show, among others, the orientation of the dipole moment, orientation of the diagonal quadrupole tensor etc.
  • Rotational constants of isotopic species can be rapidly evaluated since nuclear masses are easily modified on-line by using the mnemonics for common isotopes e.g 37Cl, 13C, etc.
  • Bonds, angles, dihedral angles can be checked, including angles between bonds and principal axes.
  • Generation of STRFIT compatible connectivity entries from Cartesian input.
  • High quality PDF/EPS/JPG etc.printout of molecule in the displayed orientation is possible for those familiar with the gle graphics package.
  • Script generation for the gle package can be carried out in several predefined styles: see these examples.
  • Current limit on the number of atoms is 500.

        The internal coordinate (connectivity) scheme used by PMIFST has colloquially been called the CART scheme, because it was adapted from an E.B.Wilson group program of that name.  Nevertheless, as pointed out to me by Dr Stewart Novick, it should really be termed Thompson coordinates, which were proposed in:
         H.R.Thompson, J.Chem.Phys. 47,3407-3410(1967)

Running PMIFST under Linux

The program has been tested under Ubuntu/Wine in the configuration as described for the AABS package.  The installation of PMIFST is simpler than of AABS, and it is only necessary to:
  • copy the pmifst.cfg file to a user created directory ~/.wine/rot
  • copy the pmifst.exe file to a suitable directory such as ~/Documents/rot (this is also the suggested place for the console PROSPE programs compiled for Linux, such as STRFIT, KRA, ASFIT, VIBCA..., which do not require Wine)

  Current version
PMIFST.HDR The header of the program listing, which contains the basic  PMIFST documentation.
PMIFST.EXE IVF9.1 executable. Key properties of the graphics, i.e. window size and the display font are now read from the file PMIFST.CFG (below). The colour depth of the display should be at least 8 bits (256 colours).

Running conditions and installation are identical to those discussed in connection with SVIEW

PMIFST.CFG Configuration file for PMIFST, which has to reside in the directory C:\ROT.
PMIFST.GIF Snapshot of a typical display screen
CUBE.COR Simple Cartesian data
C70.COR Cartesian data in atomic units from the ab initio world - note that bond location fails if you read this in as Angstrom data
PRMW.PMI CART type input for pyrimidine...water complex - example of the use of mnemonics in a data file and the use of dummy atoms
SABKET.PMI CART type input - data for the molecule which prompted creation of this program. If you want to know whether it was studied by rotational spectroscopy, the answer is yes! See JACS 100, 8166, 1978.
SABKET.PS PostScript file produced from the gle dump of a previewed orientation of the structure in the file above
Automatic gle scripts now incorporate configurability allowing coloured atomic circles (if desired) and conversion to transparent background.

The automatic gle scripts generated by PMIFST now come in a set of preset flavours:
Style 1: The previous black and white style (the default)
Style 2: As above but with atom circles filled with the customary colour for the element
Style 3: As above but placed on a colored background.  This is somewhat garish on pupose and is intended to be made transparent, for example, on importing the diagram into a presentation
Style 4: With partial transparency to more easily spot what is in the foreground and what is in the background (including dummy atoms)
Style 5: With greyscale chosen depending on how far the object is from the viewer (lightest = closest, black = furthest away).  Dummy atoms are in this case drawn in the foreground but are assigned different colours depending on whether they are behind or in front of other atoms.
Modified style 2 output with numbering of all atoms obtained by editing the PLOT CUSTOMISATION block at the top of the .gle script to labelh=2 and labela=2

Each style is just meant to be a preset, which can be further tweaked either with the options in the gle output screen of PMIFST, or directly in the script.

  Legacy versions
PMIFST_5.FOR The final version for MSF5/VGA graphics
PMIFST_5.EXE Executable for the above - it should run on all versions of DOS/WIN which allow full screen MS-DOS mode

Back to the table of programs





STRucture FITting to rotational data

        This program was originally written for determination of effective structures of hydrogen bonded complexes. It is based on the principles outlined by R.H.Schwendeman in "Structural parameters from rotational spectra", a chapter in "Critical evaluation of chemical and physical structural information", D.R.Lide and M.A.Paul, Eds., National Academy of Science, Washington, D.C. (1974). For a similar approach see also: P.Nosberger,A.Bauder, and Hs.H.Gunthard, "A versatile method for molecular structure determinations from ground state rotational constants", Chem. Phys. 1, 418-425 (1973).

        Although the program has been very useful in determination of partial geometries, it can also be used for complete geometry determination. When I wrote this program it was natural for me to call it STRFIT, and I only found out much later that this is the same name that Schwendeman chose for one of his programs (the chapter in Lide+Paul, p.107) - apologies for any confusion. In any case the current program has been written completely independently of its namesake.

        This program can currently fit the following types of geometry:

  • r0 - from a direct fit to the supplied ground state constants
  • rz (r* or rav) - from fit to supplied ground state constants and harmonic vibration-rotation contributions to moments of inertia calculated with a program like VIBCA
  • reSE (semi experimental equilibrium) - from fit to experimental ground state constants corrected by (Be-B0) vibration-rotation contributions and also the electronic Bel contributions from the rotational g-tensor
  • r0av or similar corrected geometry from fit to supplied ground state constants and inertial and structural vibration-rotation corrections from an external model
  • rm(1), rm(2) , rm(1L), rm(2L), etc. - see J.K.G. Watson, A. Roytburg., W. Ulrich, J. Mol. Spectrosc. 196, 102-119 (1999).

        Principal features:

  • internal coordinates (bond lengths and angles) are fitted directly to moments of inertia (not rotational constants) in a nonlinear least-squares procedure
  • rotational constants from many isotopically substituted species can be used simultaneously, it is also possible to fit to linear combinations B+C and A+B of rotational constants, as well as to planar moments of inertia
  • the geometry is declared in the same connectivity scheme that is used by PMIFST and can be checked by using that program
  • the fitted structure is echoed to file MOLNAM.PMI for direct inspection with PMIFST, and to file  MOLNAM.XYZ for use with other structure viewing programs
  • degenerate internal parameters (i.e. those which have many repetitions owing to symmetry) are easily specified
  • isotopic changes in structural parameters can be specified when sensible
  • any parameter that can be fitted can also be fixed at an assumed value if desired and rotational constants can also be declared but excluded from fit

       Following the extension of the program to fit the various rm( ) geometries of Watson the current reference for citing the use of STRFIT is: Z. Kisiel, J. Mol. Spectrosc. 218, 58-67 (2003).

STRFIT.FOR The listing.  A detailed description of the input file is contained in the header preceding the actual code, and it is also available separately as STRFIT_INPUT.PDF

It is recommended that the extension
.STF be reserved for the data.

STRFIT.EXE The executable for Win32 systems. 
strfit Linux (= Ubuntu 18.04) executable compiled with gfortran (v7) using the command:
gfortran -fno-automatic strfit.for -o strfit

NOTE: It has been reported to me that gfortran v9 from 2019 (run with the command line above) produces multiple warnings concerning "Fortran 2018 deleted features" in
STRFIT code, although I also understand that a correctly working code is still produced.

If you plan to compile the program yourself then please note that it depends on the use of static memory allocation.

OCSe.STF and OCSe.RES The data and results files reproducing the rm(2) fit for OCSe from Table 6 of the Watson, Roytburg, Ulrich paper.
HCN.STF and HCN.RES Reproduction of the rm(1L) fit for HCN from Table 7 of the Watson, Roytburg, Ulrich paper.

Note the use of commenting in the data file: any number of comment lines beginning with a ! character are allowed before any line declaring a repeat count (such as NO OF PARAMETERS). These comments are echoed to the output.

Annotations are also allowed past the 52nd column of all data lines past the CART block - those are simply ignored on input and will not be echoed to output.

H2O.STF and H2O.RES Reproduction of the 'with cab' rm(2L) fit for H2O from Table 5 of the Watson, Roytburg, Ulrich paper
O3.STF and O3.RES Reproduction of the rm(2) fit for ozone from Table 8 of the Watson, Roytburg, Ulrich paper. The solution is very well defined and there is no need to preset the values of any of the c or d parameters.
HNCO.STF, HNCO.RES Reproduction of the rm(2) fit for HNCO from Table 9 of the Watson, Roytburg, Ulrich paper
H2CCC.STF, H2CCC.RES Reproduction of the rm(2) fit for H2CCC from Table 10 of the Watson, Roytburg, Ulrich paper
H2OHCL.STF, H2OHCL.RES The data and results files for the rm(L) fit for H2O...HCl from column V, Table 6 of Z.Kisiel, J.Mol.Spectrosc. 218, 58-67 (2003).
jpca2015.stf, jpca2015.out NEW: The data set for pyrazole aiming to reproduce the results obtained in Csaszar et al., J.Phys.Chem.A 119,1731(2015).

That paper nicely demonstrates for several planar molecules the effect, first, of the vibration-rotation (Be-B0) correction and, second, of the electronic Bel correction.  This is done by monitoring successive decrease in the magnitudes of the inertial defect values.  The fits therein are made employing somewhat different fitting strategy and an independent computer program.  Direct comparison with STRFIT shows practically identical statistics and differences in fitted parameters within the cited error bounds.

  Older examples
CHLPROP.STF The data set for chloropropane (8 isotopomers), set up on the basis of Tobiason+Schwendeman J.Chem.Phys. 40,1014(1964)
CHLPROP.RES Abbreviated results file for the above, which can be compared with the results in Table 2 of the Schwendeman chapter in the Lide, Paul book
CHEX.STF The data set for cyclohexane as set up in J.Mol.Struct. 350, 247 (1995) - note the use of dummy atoms and repeated coordinates
W2HCL.STF Data set for the hydrogen bonded trimer (H2O)2HCl - to fit the r* geometry as published in J. Chem. Phys. 112, 5767-5776 (2000). The necessary corrections are obtained with: GAMESS -> FCONV -> VIBCA.

 Back to the table of programs





KRAitchman's substitution coordinates

       KRA embodies a standard implementation of Kraitchman's equations for single isotopic substitution. The equations are directly out of Gordy & Cook, and the programmed possibilities are:

  1. on axis substitution in a linear/symmetric top
  2. off-axis substitution in a symmetric top
  3. substitution in an inertial plane of an asymmetric top with several options of using the planarity condition
  4. general substitution in an asymmetric rotor

        Errors in the determined coordinates are calculated from propagation of uncertainties in the measured rotational constants, and then the usually much larger Costain's error is added (ie. dz=0.0015/|z| Angstr., see C.C.Costain, Trans.Am.Crystallogr.Assoc. 2, 157-164(1966)).

        Tables of reasonably current isotopic weights are included in listings of both PMIFST and KRA, and current values can be obtained from NISTSpecific isotopic difference values necessary for use in KRA are also listed below:

         M.parent (u)         M.isot (u)               Delta.M (u)

 1.H  =  1.00782503207        2.H  =  2.0141017778     1.0062767
                              3.H  =  3.0160492777     2.0082242

12.C  = 12.                  13.C  = 13.0033548378     1.0033548

14.N  = 14.0030740048        15.N  = 15.0001088982     0.9970349

16.O  = 15.99491461956       17.O  = 16.99913170       1.0042171
                             18.O  = 17.9991610        2.0042464

20.Ne = 19.9924401754        21.Ne = 20.99384668       1.0014065
                             22.Ne = 21.991385114      1.9989449

28.Si = 27.9769265325        29.Si = 28.976494700      0.9995682
                             30.Si = 29.97377017       1.9968436

32.S  = 31.97207100          33.S  = 32.97145876       0.9993878
                             34.S  = 33.96786690       1.9957959
                             36.S  = 35.96708076       3.9950098

35.Cl = 34.96885268          37.Cl = 36.96590259       1.9970499

40.Ar = 39.9623831225        36.Ar = 35.967545106     -3.9948380
                             38.Ar = 37.9627324       -1.9996507

79.Br = 78.9183371           81.Br = 80.9162906        1.9979535

KRA.FOR The listing, containing a detailed description of the structure of the data file.

The data is best kept in a file with extension
.KRA, and the output is made to MOLNAM_KRA.OUT for an input file MOLNAM.KRA.

A second output file, MOLNAM_KRA.EVA, is generated and is a stub version of input for the  EVAL program.
KRA_README.PDF Documentation (also duplicated in the text block at the top of the listing)
KRA.EXE Win32 executable
PRM.KRA The data set for pyrimidine (4 isotopologues), as in J.Mol.Spectrosc. 195, 332-339(1999)

NOTE that in this version the rotational constants and their uncertainties are to be specified in columnar form, which is more convenient for pasting between programs.
PRM_KRA.OUT Output for the above input.

Legacy version (prior to October2012):
Source and executable.
Input and output for the previous, horizontal, specification of rotational constants and their errors.


 Back to the table of programs





EVALuation of internals from Cartesians

       EVAL was written as a companion program to KRA and was to provide a tool to convert Cartesians and their cited errors into standard structural internals and their errors. It is also possible to paste into the EVAL input file a suitable output block from STRFIT in order to evaluate those internals that are not explicit parameters of fit.

       It is now also possible to use  EVAL to evaluate several other geometrical relationships between the declared Cartesian centres.  The type of evaluation is specified by means of a parameter descriptor followed by the numbers of the relevant Cartesian centres.  The available parameter descriptor values are:
 1 = point to point distance (bond length)
 2 = angle
 3 = dihedral angle
-1 = equation of a plane
-2 = angle between two planes
-3 = angle between a plane and a line
-4 = angle between two lines
-5 = plane to point (perpendicular) distance
-6 = line to point (perpendicular) distance

EVAL.FOR The listing, which contains documentation at the top.
The input data file data is best assigned extension
Output is to screen and to


          The EVAL uncertainties are evaluated by assuming that
          the correlation matrix is a unit matrix.            

          The EVAL uncertainties may thus differ significantly
          (but typically by not more than 30% either way)  
          from uncertainties in explicitly fitted internals   
          corresponding to the input Cartesians.   

EVAL.EXE Windows executable
PRM.EVA The data set for pyrimidine, which has been derived from a prior run of KRA
EVAL.OUT Output for the above





Scaling of trial molecular geometry declared in Cartesian coordinates

        The main purpose of this program is to enhance the accuracy of prediction of rotational spectra for isotopic species of a molecule before its precise geometry has been determined.

        The program allows scaling of ab initio, or any other, trial geometry for the molecule to best reproduce experimental rotational constants. The resulting scaled geometry can then be used directly as input to the PMIFST program.

        Two modes of operation are possible:

  • Scaling with a single global scaling factor for best average reproduction of experimental moments of inertia.
  • Exact scaling using separate scaling factors derived for each axis by comparing planar momentsNew: This option also allows automated prediction of rotational constants for singly and doubly substituted isotopic species of several common elements.

CORSCL.FOR The listing.
CORSCL.EXE TheWindows executable. Input is from two files:

1/ user specified file containing the trial geometry in the .COR standard of PMIFST.

2/ a single line ASCII file named CORSCL.INP, which contains the values of rotational constants A,B,C (in MHz) for the declared isotopic species

CAMPH.COR The sample input file with trial geometry of the camphor molecule from an ab initio calculation.
CORSCL.INP Experimental rotational constants for the isotopic species declared in the file above.
CORSCL.OUT The output file obtained using option -2 of CORSCL and specification that singly substituted 13C species are to be predicted. 
CORSCL1.OUT The output file saved with option -1 of  CORSCL after a session, which established that best overall reproduction of experimental moments of inertia is with scaling factor of 1.0025. Note that this may not be the most useful way of scaling as, for example, for a prolate molecule you might want to aim for best reproduction of B and C, and might not care that much about A.

You can check these results for camphor against the actual experimental isotopic values in PCCP 5,820(2003)


Back to the table of programs





FITting of coordinates of a RareGas atom in a Dimer with a molecule

        This program embodies the simple idea that formation of a dimer between a molecule and a rare-gas atom is equivalent to adding a point mass to the molecule, so that coordinates of the added atom can be calculated from the moments of inertia of the molecule and of the dimer. The geometry of the molecule is not explicitly required in this step. The downside is of course sensitivity of the derived coordinates to unavoidable vibration-rotation contributions to moments of inertia, but if these can be subtracted, the reliability will increase.

        Exposition of the method has been given in Suenram, Fraser, Lovas, J.Chem.Phys. 89,6141(1988) and this particular program has been used to obtain the results reported in Kisiel, Fowler, Legon, J.Chem.Phys.
RGDFIT.FOR The listing, input is from a file specified by the user (it is recommended to use the molecule name as file name, and Rg name for extension). Output is to screen, and a printable copy is also written to file RGDFIT.OUT
RGDFIT.EXE Windows executable
VINF.AR Specimen data for the Vinyl Fluoride-Argon dimer - in this case there is a particularly high sensitivity of results to the input data, Ar complexes to more heavily fluorinated ethylene gave more reliable results. See the discussion in the KFL paper.
RGDFIT.OUT The output for the data above. Note that for a general molecule there are eight solutions to the position of the Rg atom - the printout assumes that the molecule is planar and lists only the four distinguishable solutions for such case - the other four solutions can be obtained by changing the sign of the Z-coordinate.

Back to the table of programs