Version 6.6 (October 1995)

  1. An option for doing generalized normal mode analysis in curvilinear coordinates; has been added via the COORD keyword with options "curv1", "curv2", or "cart" in the PATH; section. For a linear or bent triatomic i-j-k, the curvilinear internal coordinate definitions are chosen automatically by the program; this triatomic option includes the i-j and j-k stretches and an i-j-k bend. For systems with more than 3 atoms, the INTDEF keyword can be used to define the curvilinear internal coordinates. Test run h2otr2 (Section 13.C.24) was added for the O2 + H --> HO2 reaction. Test runs oh3tr9 (Section 13.C.37) and oh3tr10 (Section 13.C.38) were added for the OH + H2 --> H2O + H reaction.

  3. The zero- and first-order (the global approach) IVTST methods have been added. Several test runs were added to the distributed test suite. The test runs ch5j2itr1 (Section 13.C.11) and ch5j2itr2 (Section 13.C.12) were added for the CH3 + H2 --> CH4 + H reaction, the test run ch4ohtr2 (Section 13.C.42) was added for the OH + CH4 --> H2O + CH3 reaction, and the test runs ch4cltr1 (Section 13.C.43) and ch4cltr2 (Section 13.C.44) were added for the CH4 + Cl --> HCl + CH3 reaction.

  5. The subroutine NEWT has been rewritten in order to support the quasi-Newton BFGS optimization method. This method can be used with both analytical surfaces and direct dynamics, and it is now the default for reactant and product optimization. Some changes related to this implementation have also been made in subroutines linmn, seccen, and seccep. The keyword convergence in the Optimization section is no longer valid, and it has been replaced by gcomp and tsgcomp to emphasize that the convergence criterion for optimizations has changed.

  7. A new sub-keyword, nofreqcorr, has been added to the unit fu50 data file for the keywords rcinfo and pcinfo. This sub-keyword can be convenient when high-level data for unavailable precursor or successor complexes. The subprograms readic, opt50, zocpar, and zocupd have been modified for this enhancement.

  9. The code now runs on the Power Macintosh 7100/66 (Mac OS 7.5.1) computer using the LS FORTRAN compiler (version 1.1b1) available from Language Systems Corporation.

Version 6.6.1 (June-August 1996) (Bug fixes)

  1. In file givtst.f:

  2. Several errors are corrected in the IVTST calculations. In particular: the forward relative reduced mass is now calculated correctly for the evaluation of relative translational partition functions when unit fu29 is used for input; Also, the output of IVTST-0 and IVTST-1 methods have been made more clear. The energy of reaction input has been converted to atomic units first, in order to prevent mistakes in the interpolation part. The imaginary frequency of the transition state is allowed to be input as the last element of the TSFREQ section. The variables VAP and VAR are now used correctly to decide the lower limit of integration over energy in the thermal average in the transmission coefficient calculation. Most of the constants were moved to file for consistency. Finally, the CAG correction has been added in. Information about evaluated curvatures has been added to the output.
  3. In subroutine ENERG:

  4. Version 6.6 had a bug in runs using file fu30 when one of the reactants or products is an atom. In such cases the subroutine SURF was called, but SURF should not be called in fu30 runs. This has been fixed. Now, one can use the dumpot.f subprogram as intended while using the fu30 electronic structure file input for a case when one of the reagents is an atom.
  5. In subroutine RPHRD2:

  6. We have corrected the order of fitting the gradients that are read from unit fu30. In the corrected version, the points along reaction path are always left shifted even after the saddle point information has been inserted in the middle of the path. The bug had caused curvature calculations in the vicinity of the saddle point to be wrong.
  7. In subroutine RFREQ:

  8. This subroutine has been modified to allow the user to input the imaginary frequency for the ZCT calculation. In this case, the user has to input the imaginary frequency as the last frequency of the saddle point.
  9. In file main.f:

  10. Anharmonicity is no longer allowed in TST-only calculations.
  11. In test run ch4cl:

  12. The data for the electronic partition function of the Cl atom has been changed to the correct values. The degeneracy of the ground state has been changed, and the first excited state has been included with correct atomic spectral data.
  13. In test runs ch4oh1 and ch4oh2:

  14. A comment is added for the reduced moment of inertia in fu50 input in the ch4ohtr1 testrun. A more detailed description of keywords rmits and rmirp has been added to the manual with an example of how to include the symmetry number for the hindered-rotor approximation. The symmetry number sigmaf in ch4ohtr2 has been changed to 12. (Notice: the hindered-rotor approximation is not supported with fu29.)
  15. In subroutine TPCDSC:

  16. This subroutine was fixed to prevent the occurrence of a zero-divided-by-zero case.
  17. In subroutine DEFSTA:

  18. MODER (i,j) was changed to MODER (j,i) for the correct dimensionality. This change will initialize the array as intended. At the beginning, the elements of this array are set to be zeros.
  19. In test runs oh3tr6 and oh3tr10:

  20. Unused data sections were removed from the input file.
  21. In files and dattim.hp:

  22. These files have been modified to remove the NULL characters which generated unsightly hardcopy.
  23. In subroutine ZOCPRN:

  24. The title line for printing the frequencies of the lower-level and higher-level method for the VTST-IC method has been clarified. The columns were labeled 'Point 1' and 'Point 2' even though MEPTYPER or MEPTYPEP was set to two or one; however, the code was printing a sorted list of the combined frequencies. Now the title has been changed to "Sorted Reactant" and "Sorted Product" when there are no wells.
  25. In subroutine NOROUT:

  26. The variable SPRNT has been replaced with S in order to make sure the keyword SPRNT works properly.
  27. In subroutines TSRATE and RATE:

  28. The unused LGS(19) inside these routines have been removed since LGS(19) is not used in the current version of Polyrate.
  29. In file

  30. The common list AMASCM has been added for consistency with other lists.

Version 7.0 (September 1996)

  1. The keywords ICR, ICL were added for new interpolated correction methods. The following changes were made: (1) A new variable IVICM has been added in (2) The subroutine MUCDSC in polymq.f, subroutines ZOCAST, ZOCPAR, and ZOCUPD in polysz.f, and subroutines INTAB, RICOPT, SURF, RVAR6, SETLGS, WVAR6 in interface.f were modified for the new methods. Also, LGS2(10) is used internally to store the choice between the ICA, ICL, and ICR options.

  3. A new option for electronic structure input data has been added (potential = unit40). This option reads the data from file fu40 in keyword form rather than from fu30 in formatted form.

  5. In subroutine rphset:

  6. In version 7.0, the saddle point geometry is no longer read from both file fu5 and file fu30; it is only read from file fu5. All the fu30 input files distributed with the present version of the code have no saddle point geometry in fu30. A warning message is printed when the NEXTPT option is used with the option code different thean 0 and a stop message is printed after the next point found.
  7. In file interface.f:

  8. Options quad and page for the keyword curve have been changed to dgrad and dhess respectively. The page keyword for activating the Page-McIver integrator has been changed to pagem. All these changes will require the user to modify the input files prepared since version 6.0. All the examples included in the test run suit whose fu5 input files make use of these options have been accordingly modified.
  9. In testrun/ch5:

  10. New test runs are added (ch5fu30tr1, ch5fu30tr2, ch5fu30tr3, ch5fu30tr4, ch5fu30tr5, ch5fu30tr6, ch5fu29tr1, ch5fu29tr2, ch5fu40tr1, ch5fu40tr2, ch5fu40tr3, ch5fu40tr4, ch5fu40tr5, ch5fu40tr6, ch5icfu30tr1, ch5icfu30tr2, ch5icfu40tr1, ch5icfu40tr2, ch5fu50tr1 and ch5fu50tr2) to demonstrate the different input methods allowed in the current Polyrate for electronic structure data.
  11. In testrun/oh3:

  12. Names of some of the existing test runs have been changed (oh3tr6 and oh3tr10 have become oh3fu30tr3 and oh3fu30tr2, respectively; oh3tr7, oh3tr8 and oh3tr9 have become oh3tr6, oh3tr7 and oh3tr8, respectively). New test runs to illustrate the use of direct dynamics calculations with fu30 and fu40 input files have been added (oh3fu30tr1, oh3fu30tr4, oh3fu30tr5, oh3fu40tr1, oh3fu40tr2, oh3fu40tr3, oh3fu40tr4, oh3fu40tr5).
  13. The manual has been improved with the following especially major changes: (1) A new section describing the reaction-path curvature calculations has been added (Sect.6.G). (2) The description of the reaction rates including tunneling calculations (Section 6.I) has been improved. (3) A better description of the VTST-IC method has been included (Sections 6.N and 10.H). (4) The description of extrapolation methods has been improved in Sections 9.C and 10.A. (5) The description of the fu30 input file has been improved. (6) A new section (Section 11.D) has been added to explain the use of file fu40 input for direct dynamics calculations. (7) A summary was added for the sample test run section (Section 13.D). (8) The subprograms section has been updated (Section 14.A.1). (9) New errata sections have been added for published papers referenced in Section 20 (Sections 21.B, C and D). (10) More consistent font choices have been used to distinguish subprogram names, variables, keywords, and keyword values.

  15. The MDMOVIE keyword has been added in the GENERAL section to generate a file (as unit fu65) for the MDMOVIE program. This change involved changes in the following subroutines: DEFGEN, INTAB, RGENER, RVAR6, WVAR6, DEFPAT, with 1 new variable, IMDMOV, added in

  17. In file set_machine.jc:

  18. This job control file has been modified with more choices of machines. The compiler options for most of the platforms are in O3 optimization level, and a new set of scripts for the IBM RS/6000 Model 590 machine is available.
  19. The output of Polyrate has been cleaned up, so that no line exceeds 80 columns, so that the respective units are included for each magnitude printed, so that more clear headings are printed together with the numerical information, so that timing routine prints times to 0.01 second instead of 0.0001 second and with a more clear format, and the debug information in the VTST-IC section has been removed. To print the debug information, just take the comment out from the call ZOCAST line in the ZOCUPD routine.

  21. In file givtst.f:

  22. Improved output is provided for several parts of the IVTST calculations. A table containing the reaction energetics is printed now. The parameters for the interpolating functions now match the notation used in Ref. 26 of Section 20. The transmission probabilities are now better labeled and the reaction-path curvature results are printed in IVTST-1 calculations. Formulas used in subroutines bcalp musccd have been modified to follow the notation used in the references. The deltah keyword has been removed from the fu29 input.
  23. In subroutine BANGLE:

  24. This subroutine has been renamed to BANGLE1 to avoid using the same name as is used in the MOPAC program.
  25. In subroutines RPHRD2 and RPHDXN:

  26. The option choices LOPT(3) = 99, LOPT(3) = 100, and LOPT(4) = 99 added for fu30 input file.
  27. In subroutine KAPVA:

  28. A new table is printed in the long output file to display the values of the transmission coefficients obtained with all the possible combinations of the number of quadrature points used in the evaluation of the theta and Boltzmann integrals.

Version 7.0.1 (February 1997) (Bug fixes)

  1. In file poten/ch5.f:

  2. The data parameter DIJ has been changed from 6.27396 to 3.1190 to correctly correspond to Ref. 16 of Sect. 21.
  3. In subroutine REACT:

  4. All LGS(24) are changed to LGS2(4).  This was an error.

Version 7.1 (February 1997)

  1. In files interface.f and polyag.f:

  2. A keyword option REORDER has been added to the *PATH section. The default is set to be noreorder which forces all calculated frequences to be in canonical order along the MEP. Previous versions of Polyrate have the default set as reorder where the frequencies are ordered according to overlap calculations. The DEFPAT, INTAB, RPATH, RVAR6, WVAR6, NOROUT, RFREQ, GETFREQ, RPHRD2, IRFGT0, and FDIAG subroutines were modified with a new variable ireord defined in common.f. Note: All calculated frequencies in the FREQ array are stored in canonical order (if NOREORDER is used) except the saddle point, where we store the imaginary frequency to be in the position 1.
  3. In file poly40.f:

  4. The default unit for frequencies being read in from fu40 has been changed from atomic units to wavenumbers. The keyword FREQUNIT controls the units of the frequencies that are with values waven for wavenumbers (default value) and au for atomic units.
  5. The file has been revised to obtain the date and time without the need for

  7. In file interface.f:

  8. In the subroutine rmuvt, the variables FIT1 and FIT2 were changed to IFIT1 and IFIT2.
  9. A change was made to saddle to correct the zero of energy in calculations where an electronic structure program is being used in place of an analytic surface or a file of data.

  11. Other changes were made to the normod, polyat, react, dorph, fcmep, center, dorepr, rate, sadeng, and headr subroutines. In general these changes were to make the linking of polyrate with various electronic structure programs more seamless or to just clean up old code.

  13. In subroutine FINOUT:

  14. Lines containing LGS(13) are removed because this option is no longer used.
  15. In addition, several changes were made that will be supported by later versions of polyrate or in acesrate or both. These changes, should not affect users of polyrate-version 7.1 who do not have the acesrate interface, but they are listed here for completeness.

    1. Specialized acesrate hooks were added to subroutines energ, first, geomop, prep, and secder and to files and param*.inc, and the following subroutines were modified to read and process acesrate keywords:  defeng, races, read5, renerg, rgeom, rgsad, rgzmat, rsecnd, rzvar, defopt, defpat, defsta, intab, intabs, rgszm, ricopt, ropt, rstat, rvar6, setlgs, wvar6, fiopen, and dorest.

    3. The restart option was enhanced.  In earlier versions of polyrate for a two-level (VTST/IC) calculation any change in the high-level potential energy surface required the recomputation of the entire low-level minimum energy path. When this restart option is supported, it will be possible to read the low-level path from an fu1 restart file. main was also restructured to make restart and direct dynamics calculations easier and more flexible.

    5. The calcmuff keyword option was added.  When this is supported the reduced mass will be calculated when the reaction path is computed. In previous versions of polyrate, the effective reduced mass was only computed if tunneling was also selected. This means in a restart calculation if the original run did not include a tunneling calculation, tunneling could not be used in any later calculation without recomputing the entire reaction path.

Version (March 1997)

  1. A fourth switch keyword, GAUSSIAN is added to the OPTIMIZATION and SECOND sections of the fu5 input file. The four switch keywords Polyrate, MOPAC, ACES, and GAUSSIAN are used by GEOMOP and SECDER. The ROPT and RSECND subroutines are modified for this update. This is a temporary measure so the first version of GAUSSRATE can be implemented with minimal changes to the structure of version 7.1.

Version 7.1.1 (March 1997) (Bug Fixes)

  1. In files energetics.f,, and interface.f:

  2. The keyword SADDLE is introduced to indicate whether the reaction has a saddle point or not. The following subroutines are modified: SADDLE, SADENG, DEFPAT, INTAB, OPTION, RPATH, and SETLGS. To perform the calculations with NOSADDLE correctly, a new gradi option of the keyword FIRSTSTEP has to be used to obtain the first point by following the gradient direction. Input files of the test runs ho2tr1, ho2tr2, and ho2tr3 were changed due to this update. In versions 6.0-, the NOOPT keyword was correct only for reactions without a saddle point.  Thus the NOOPT keyword was equivalent to NOOPT, NOSADDLE and FIRSTSTEP = gradi.
  3. In subroutine SECDER:

  4. The subroutine calls for evaluating the second derivatives of the potential with quadratic and fourth are corrected with right number of frequencies. This corrects a mistake that was introduced in version 6.5.

Version 7.1.2 (March 1997) (Bug Fixes)

  1. In subroutines RPHDXN, RPHRD2, CVCOOR, and poly40.f:

  2. The transformation from rectilinear to curvilinear internal coordinates requires the un-normalized gradients. If normalized gradients are given in the fu30 and fu40 input files, there is no way to perform the transformation from rectilinear to curvilinear internal coordinates. Incorrect statements in the subroutine CVCOOR were removed.
  3. In ch5fu30tr*.fu30, ch5fu40tr*.fu40, ch5icfu30*.fu30, ch5icfu40*.fu40 files:

  4. The electronic structure program GAUSSIAN94 gives the Cartesian gradients instead of Cartesian forces in the formatted check point file (even though the output says Cartesian forces). Test runs prepared based on the forces taken from GAUSSIAN94 are corrected. Also, the SIGN of unbounded eigenvector is assigned to product instead of reactant.
  5. In and givtst.f:

  6. The constant CALAU is removed from Polyrate to prevent confusion with the parameter of the same name in MOPAC.
  7. In ch4cl* test runs:

  8. The geometries of the stationary points in the input file have been changed. Previous values were wrong since version 6.6.
  9. In subroutine NEWT:

  10. The printing statements for optimization results are corrected.

Version 7.2 (April 1997)

  1. In subroutines react and setlgs:

  2. A portion of program that calculates the zero of energy has been rewritten. The option reactants does not exist in the current version of program. The zero of energy is determined automatically after the reactants are evaluated unless the read option is chosen for the EZER0 keyword. Changes are made in test runs are: ch5j1tr4.dat, clhbrtr1.dat, cwmctr2.dat, cmctr1.dat, cmctr2.dat, ho2tr4.dat, ho3tr5.dat, nh3tr1.dat, oh3tr1.dat, oh3tr7.dat, oh3tr8.dat, and oh3tr3.dat.
  3. In file intbsv2.f:

  4. The transformation from rectilinear coordinates to curvilinear internal coordinates of doubly degenerate linear bends has been added. Changes were made in the following subroutines: CVCOOR, CONOUT, ICODAL, BMAT, BIMAT, BTENS, and file. To use this option, the "="; symbol is used to denote the linear bends in the INTDEF keyword option. The input files of the ch5j1tr4, ch5fu30tr6, and ch5fu40tr6 test runs are modified to illustrate this new curvilinear option.
  5. In files interface.f and polysz.f:

  6. New interpolated correction options have been implemented. First, a difference of two Eckart function fits is used to interpolate the correction to VMEP(s). The new keyword option is called ECKART. The following subroutines have been modified: DEFPAT, INTAB, RICOPT, ZOCPAR, and ZOCVCL. Second, two improved options are available for interpolating corrections to the frequencies. The original IC method is denoted as ICA, and the two new options are called icl and icr. The combination of the ICL option with the ECKART option is taken to be the new default. To perform calculations with the original IC method, the NOECKART and ICA keywords are required. The ch5icfu30tr1 and ch5icfu40tr1 test runs are used as examples of the new dual-level icl/eckart option. The input files for the ch4ohtr1, cmctr2, ho2tr5, ch5fu50tr2, and nh3tr1 test runs are changed to accommodate the new default setting.
  7. In files polysz.f and comp_src.*:

  8. The BLAS library routines are moved into a separate file from the main Polyrate program. If the machine has a pre-installed library, users can modify the comp_src.jc to include the machine library which yields the best performance.
  9. In subroutine FINDL:

  10. The subroutine FINDL, previously distributed only as a stand-alone utility, is now also added into the polyag.f file as a subroutine. This subroutine will automatically determine the L parameter for VTST-IC calculations (keyword RPL in fu50) in a single- level reaction path calculation with a positive barrier.
  11. In files interface.f, hooks.f, and polyag.f:

  12. The keyword writefu30 is added to the GENERAL section of the fu5 input file to create a *.fu30 file from a calculation using the hooks. (This option is mainly useful to developers for creating test runs.) Testrun oh3tr7 is modified to demonstrate this option. The OPENFI and RPHWRT subroutines have been modified.
  13. In files givtst.f:

  14. The RHESS, RGRAD, and GIVTST subroutines have been changed to allow free formatted geometry, gradients, and hessian input in fu29.
  15. In files interface.f:

  16. A new keyword EZUNIT is added to allow the zero of energy to be input in kcal/mol. A new subroutine REZERU, a variable IEZERU, and the input file for clhbrtr2 are changed for this new update.
  17. The keywords SIGMAF and SIGMAR are no longer saved to file fu1 for restarts. This allows the user to change their values in the rate section of the restart run.

  19. Subroutines ENERG, FIRST, SECDER, and GEOMOP have been renamed to EHOOK, GHOOK, HHOOK, and OHOOK, respectively The options for the potential keyword were changed and the following subroutines were modified: DERIV2, REACT, DIATOM, DOSAGE, F1DIM, LCG3TH, PHSINT, QQPOT, WKBVIB, DERV24, INTPM, NEWT, NORMOD, SECCEN, SECCEP, ANHARM, ANHER, GRAD, TP, INTFNC, CUBST, INTPM, NEWT, NORMOD, POLYAT, REACT, SADDLE, and DOREST. A new keyword HESSCAL was added to provide a choice between calculating second derivatives with the GHOOK or HHOOK subprograms. In the second section, HESSCAL = ghook replaces the polyrate keyword, and HESSCAL = hhook replaces the MOPAC and GAUSSIAN keywords. The keywords Polyrate, MOPAC, GAUSSIAN, bfgs, and tsbfgs in the OPTIMIZATION section were replaced by optmin and optts. Subroutines RHESSC and ROPTOP were added to parse the options.

  21. The option analytic is replaced by hooks for the keyword potential in the energetics section of file fu5.

  23. In subroutine RPHINT:

  24. The interpolation of the curvature components from fu30 or fu40 basic input grid to the save grid (see Sectopm 9.C for a description of these grids) is now based on the absolute value instead of signed values in order to avoid problems related to continuity of eigenvector sign convention.
  25. In subroutine GFDIAG:

  26. When using curvilinear coordinates, a check is added to set the eigenvalue to zero if a value corresponding to a vibration is smaller than 10-18.

Version 7.3 (June 1997)

  1. Three new keywords are added to increase modularity, and as a consequence three new variables are added to The variable ISUP is used to toggle the keyword SUPERMOL (in the GENERAL section), the variable INITG is used to indicate the option chosen by the INITGEO keyword (in the REACT1, REACT2, PROD1, PROD2, and START sections), and the variable INTMU (for the INTMU keyword in the PATH section) is used to specify the number of points used for the interpolation of the reduced mass at saddle point. All three variables replace the LGS(35) value of the previous version. For ISUP, the following subroutines are modified: DEFGEN, INTAB, RGENER, SETLGS, NORMOD, POLYAT, REACT, SADENG, CENTER. For INTMU: DEFPAT, INTAB, RPATH, BCALC0, ELRPH, and PATH are modified. For INITG: REACT, DEFOPT, INTAB, RGEOM, RGSAD, ROPT, DOREST, FCMEP, and FIOPEN are modified. Also, the IPOT values are modified as follows:
    1.           value     old meaning       new meaning
                   0          hooks                  hooks
                   1          mopac           unit30/unit40
                   2          aces                      aces
                   3          gamess                 unit29
  2. A new switch keyword SUPERMOL(and its negation, NOSUPERMOL) has been added to the GENERAL section to indicate that the supermolecule mode is used for reactants and products. The default is on (SUPERMOL). The choice has no effect is there is only one reactant and one product. The following subroutines were modified: CENTER, DEFGEN, INTAB, NORMOD, POLYAT, REACT, REDGEO, RGENER, and SETLGS.

  4. A new variable keyword INTMU has been added to the PATH section to indicate the number of points on each side of the saddle point used for the interpolation of effective reduced mass at the saddle point. The available options are 1 and 3. Thus, values of 1 and 3 indicate that interpolation is based on 2 and 6 points, respectively. The default is 1. The following subroutines were modified: BCALC0, DEFPAT, ELRPH, INTAB, PATH, and RPATH.

  6. A new variable keyword INITGEO has been added to the REACT1, REACT2, PROD1, PROD2, and START sections to indicate the location of the initial geometry. The available options are geom and hooks, the default being geom. The following subroutines were modified: DEFOPT, DOREST, FCMEP, FIOPEN, INTABS, POLYAT, REACT, RGEOM, RGSAD, and RSTAT.

  8. The switch keywords NONLINEAR and LINEAR and the variable keyword PHASE have been incor porated into the single variable keyword SPECIES. The default has been set to nonlinrp. The following subroutines were modified: DEFSTA, INTABS, REDGEO, RSTAT, RVAR6, and WVAR6.

  10. Subroutine REACT:

  11. If the option read of the EZERO keyword in the potential section is used, only the geometries of the reactants are obtained. In the case of INITGEO = hooks, optimizations are required be cause the initial geometries are obtained through the OHOOK subroutine. Since MORATE-version 7.3 requires using INITGEO = hooks, the NOOPT option is not implemented with MORATE.
  12. A new keyword is added to the REACT1, REACT2, PROD1, PROD2, and START sections. The LINAXIS keyword is used to indicate that a molecule is linear and to specify its orientation. There are three options: x-axis, y-axis, and z-axis. The default option is z-axis. A new array IOLIN is added into This array is used in subroutines DEFSTA, RSTAT, CENTER. RVAR6, INTABS and WVAR6.

  14. An option to calculate the vibrational partition functions with classically treated vi brations has been added, and a new switch keyword CLASSVIB and its negation NOCLASSVIB have be en added to the GENERAL section which correspond to this new option. The default is to use qu antized vibrations. The following subroutine were modified: DEFGEN, INTAB, OPTION, and RGENE R.

  16. In subroutine ZOCPAR:

  17. The default value of the keyword RPL was calculated form the low-level surface (in 7.2 ); from version 7.3 on, the default is set to the value calculated from the high-level calculations.
  18. An option to calculate the vibrational partition functions with classically treated vi brations has been added, and a new switch keyword CLASSVIB and its negation NOCLASSVIB have be en added to the GENERAL section which correspond to this new option. The default is to use qu antized vibrations. The following subroutine were modified: DEFGEN, INTAB, OPTION, and RGENER.

  20. In subroutines ICFDIAG and PROJF:

  21. An unnecessary calculation of the G matrix has been removed in order to obtain better performance for the transformation from rectilinear to curvilinear internal coordinates.
  22. In subroutine NORMOD, HHOOK:

  23. Two GHOOK subroutine calls with an HHOOK call between them have been removed to eliminate unnecessary work. The HHOOK subprogram is modified to return the gradient at the same time as the Hessians, which is now the expected way for all HHOOK subprograms to be written.
  24. The FORTRAN file units fu31-fu36 have been moved to fu71-fu76, and the FORTRAN file units fu80-fu89 have been reserved for use with interface codes.

Version 7.3.1 (July 1997) (Bug fixes)

  1. The line "if (icode(jtype).lt.0) lgs(34) = 1" is missing from the interface.f subprogram in version 7.3. This only affects solid-state runs.

  3. In the oh3fu30tr3 testrun the value of the SPECIES keyword for the saddle point in version 7.3 is lints, and this has been now been changed to nonlints.

Version 7.4 (August 1997)

  1. The option curv3 is added by making modifications to, and to the OPTION, SETLGS, VECCON, CVCOOR, and READINT subroutines plus adding the new subroutines BIMAT2, MTINV2, GFDIA2, SVBKSB, and SVDCMP. This option is designed for the transformation from Cartesian coordinates to redundant internal coordinates for the frequency evaluations at generalized transition states. The maximum number of internal coordinates is set to be 3N + 6. This new option has been used in the test runs ch5j1tr4, ch5fu30tr6, ch5fu40tr6, and ch5j1tr4. Furthermore the following test runs have been changed to use the curv1 option: clhbrtr1, ho2tr2, and h3tr3.

  3. The file fu61 has been created to save the stationary point information so it can be used in a subsequent run, if desired. This effectively creates a new restart capability, as discussed in section 7.C. After the calculations are done on a given reactant or product, the geometries, energies, and frequencies of the reactants and products are written to file fu61. Similarly, for a saddle point, the geometry, energy, frequencies, Hessian, and eigenvectors are written. A new variable keyword STATUS is added in the *REACT1, *REACT2, *PROD1, *PROD2, and *START sections with several options.

  5.  Other keywords added to support this new option are ENERGY, FREQ, and EIGENVECTOR. The subroutines modified are DEFSTA, INTABG, INTABS, OPTION, RSTAT, RVAR6, STVARJ, WVAR6, DOREPR, FCRATE, FDIAG, FIOPEN, DOSAFR, NORMOD, POLYAT, REACT, SADDLE, and SADENG. A new subroutine WRTHOK is added. The keyword option OPT is removed, and FREQ, is changed to a list keyword. The subroutines SETLGS, DORPER, and MAIN have been modified to allow Polyrate to stop correctly after calculating one or more stationary points.

  7. The keywords ICA, ICL, and ICR are replaced by options for the new keyword option FREQ in ICOPT list. A new option none is added for no frequency corrections in the VTST-IC method. Modifications were made in the ZOCAST, ZOCPAR, ZOC3P, INTAB, and RICOPT subroutines.

  9. In hooks.f:

  10. Duplicate copies of the subroutines DERIV2, DERV24, NEWT, SECCEP, SECCEN, and TRANS were renamed YDERV2, YDER24, YNEWT, YSECEP, YSECEN, and YTRANS respectively, and they were added to the hooks.f file to increase modularity.
  11. The default of the FREQMAT keyword on unit fu50 has been modified for all cases. From now on, the default is to match the frequencies of a unimolecular reaction or reactions with wells in descending order by default. Modifications were made in the OPT50 and ZOC3P subroutines.

  13. The switch keywords PRSAVEMODE and PRSAVERP have been changed into variable keywords with default values set equal to 9999. This means that after every 9999 save grid points, the information on the save grid will be printed instead of after at every single save grid point. Modifications were made in and in the NORMOD, RPATH, INTAB, DEFPAT, and CVCOOR subroutines.

  15. The two extra gradients given in fu30 files for computing the curvature were placed before the Hessian matrix in previous versions of Polyrate, but have been moved after the Hessian matrix in version 7.4. Modifications were made to the RPHRD2 subroutine.

  17. Also, in previous versions of Polyrate the two extra gradients were always printed out in mass-scaled coordinates. From now on, the two extra gradients will be printed out in the same coordinates as the gradient. The subroutines PATH, RPHDXN, RPHWRT, and RPHRD2 have been modified to allow for this change.

  19. The subroutine FIOPEN has been modified to allow Polyrate to write fu25, fu26, fu27, and fu30 files at the same time. This modification allows the PRPATH and WRITEFU30 options to be used together.

  21. When PRPATH is used, the numerical values of the CDSC effective reduced mass and of kappa and the determinant of the moment of inertia are written to fu25. The following subroutines have been modified: MEPINV, MEPSRT, PATH, SSAVE, BCALC, COLSHF, EXTRAP, and TSRATE.

  23. When PRPATH is used, the numerical values of the CDSC effective reduced mass and of kappa and the determinant of the moment of inertia are written to fu25. The following subroutines have been modified: MEPINV, MEPSRT, PATH, SSAVE, BCALC, COLSHF, EXTRAP, and TSRATE.

  25. The SGI Power Challenge option in the set_machine.jc script has been divided into two options, one for the SGI R8000 chip set and one for the SGI R10000 chip set.

  27. New scripts have been added to support the Linux operating system.

Version 7.4.1 (September 1997) (Bug fix)

  1. In files polyrr.f, poly40.f, and

  2. When using input units fu30 or fu40 with hindered rotor anharmonicity, the reduced moment of inertia for hindered rotations along the reaction path was set to a fixed value for all the points along the path. Now, the value is interpolated using Lagrangian interpolation and extrapolated using exponential functions in the same fashion as the moment of inertia. The following subroutines have been modified: GENSEC40, IRFGT0, RPHFIT, RPHINTM RPHRD2, RPHSET, and SHFTSAD.

Version 7.4.2 (October 1997) (Bug fix)

  1. Subroutine ZOPAR and ZOCPRN:

  2. An error in the ICL algorithm has been corrected. The error involved using the energy ratio of frequencies (0 instead of 1) for the case where both the high- and low-level frequencies go to zero at reactants or products.

Version 7.4.3 (October 1997) (Bug fix)

  1. Subroutine ROPTOP:

  2. The dummy argument ISTRT in the subroutine’s formal-argument-list has been mispelled, ISTRTI, since version 7.2.

Version 7.4.4 (December 1997) (Bug fixes)

  1. When the geometries in files fu30 and fu40 were given in mass-scaled coordinates, the saddle point geometry, given in file fu5 in unscaled coordinates, was not mass-scaled when it was used with units fu30 and fu40 and therefore, the saddle point geometry was incorrectly used as mass-scaled. This leads to the wrong moment of inertia and the wrong TST rates. The subroutines RPHRD2 and SADSEC40 have been modified to fix this bug.

  3. When using the WRITEFU30 option with LOPT(6) = 3 or 4, the extra gradient before the Hessian point was being printed out incorrectly. The extra gradient was un-normalized using the wrong norm. This has been corrected by modifying the PATH subroutine.

Version 7.8 (December 1997)

  1. The IVTST-M algorithm has been implemented. For this purpose, the module ivtstm.f has been added, the variables N3S31 and NPT31 have been added into the INCLUDE file, and several variables or arrays have been added to the INCLUDE file. The subprograms added or modified are SPL31, SPLM31, SPLV31, MUCDSC, PSAG, IMOM40, SADSEC40, RPHINT, and RPHRD2.

  3. A new input unit, named fu31, has been added. The keyword WRITEFU31 in the GENERAL section and the option unit31 for the POTENTIAL keyword in the ENERGETICS section of the fu5 input file have been added. The module poly31.f has been added for this change, and the INCLUDE files, and and the PATH, DOPNM, DOSAFR, FCMEP, FIOPEN, POLYAT, REACT, DEFGEN, INTAB, RLINE, RGENER, RPOTET, SETLGS, RPHINT, and RPHWRT subprograms have been modified.

  5. The original extrapolation algorithm for the information in the input units fu30 and fu40 has been removed. The subprograms EXTRP40, RD40EXTR, RD40GEN, RPH40, and RPHRD1 have been modified to reflect these changes.

  7. The code has been modified in order to calculate wells in the reactant and/or product channels. The sections WELLR and WELLP have been added in the unit fu5 and WR40 and WP40 in unit fu40. Several arrays in the INCLUDE file and the variable NARRS in have been modified, as well as the subprograms WRTHOK, PATH, DOREPR, DORPH, REACT, DEFT40, EXTRP40, IMOM40, IRFGT0, PTSEC40, RD40EXTR, RD40RP, RPH40, RPSEC40, SADSEC40, DEFSTA, INTAB, INTABG, INTABS, OPTION, READ5, REDGEO, RGEOM, RSTAT, RVAR6, RVARY, SETANH, WVAR6, RPHINT, RPHRD1, RPHRD2, RPHSET, and RPHWRT. The subprogram WRTWEL has been added.

  9. The switch keyword RODS has been added to the PATH section of file fu5 to determine if the RODS algorithm is used. The DEFPAT, DOSAFR, INTAB, NORMOD, NOST31, PATH, RPATH, RPHRD2, RVAR6, and WVAR6 subroutines have been modified, the IRODS, VTT, and XNOU variables have been added to, and a new subroutine RRPM has been added to interface.f.

  11. The keywords INM and SSAVE have been removed from the PATH section of file fu5. This effectively makes the Hessian grid and the save grid the same. Therefore, when Polyrate calculates the reaction path, the Hessian is saved whenever it is calculated. The Hessian grid step size is now controlled by the INH keyword in the path section. The DEFPAT, ELRPH, INTAB, IVTST0, NEXTPT, OPTION, PATH, QRSENE, RESTOR, RESTRT, and RPHWRT subroutines have been modified accordingly.

  13. The CALCS keyword has been added to the path section of file fu5. This new keyword determines how the value of s is calculated when using the RODS algorithm. The INTAB, RPATH, RVAR6, and WVAR6 subroutines have been modified, and the ICALCS variable has been added to

  15. A new keyword CUS has been added into the RATE section for evaluating the reaction rate constants with the canonical unified statistical model. The file COMMON.INC and the following subroutines were changed: RATE, FINOUT, DEFRAT, INTAB, and RRATE. In addition, three new subroutines were added: CUSSPL, ISWAP, and DPSWAP.

  17. The keyword GEOMUNIT has been introduced in the GENERAL section of the fu5 input file to specify the units for the geometries of the stationary points read from the fu5 input file. The DEFGEN, INTAB, RGENER, RGEOM, and RGSAD subroutines have been modified and the RRGU5 subprogram has been added. The IGEOU5 variable has been added to the file.

  19. The subroutine TABLE has been modified in order to print the ZCT results in the fu15 output file.

  21. The subroutine RPHWRT has been modified in order to write a cleaner fu30 input file.

  23. Subroutine CENTER:

  24. This subroutine has been modified to clarify the output and reduce the amount of the output. The POLYAT, SADENG, IMOM40, and RPHRD2 subroutines have also been modified for this purpose.
  25. The frequency index for files fu30 and fu40 has been changed so that index 1 corresponds to the largest frequency at the saddle point, index 2 to the second largest frequency, and so on. The subroutines DEFLT40, RD40RP, and RPHRD2 have been modified accordingly. In addition, the subroutine RPHWRT has been modified so that when the writefu30 keyword is specified the generated unit fu30 file is consistent with this frequency numbering.

  27. The following testruns have been added: ch5fu31tr1, ch5icfu31tr1, oh3tr9, oh3tr10, oh3fu30tr6, oh3fu31tr1, oh3fu40tr6, and ch4otr1.

  29. A large number of minor corrections and clarifications have been made in the manual.

Version 7.8.1 (February 1998) (Bug fixes)

  1. When using the INTMUEFF option with IVTST-M, the values of meff at the first point on the reactant side were incorrectly stored as the values of meff at the first point on the product side and vice versa. This has been corrected in subroutine ARMUEF.

  3. The moment of inertia and the reduced moment of inertia were both incorrectly interpolated asymptotically to zero instead of asymptotically to infinity when using IVTST-M. The subroutines SPLRMI, SPLNM, and SPLM31 have been modified to reflect this correction.

  5. The reduced moment of inertia of the saddle point was incorrectly stored as the product well when using unit fu30. This has been corrected in subroutine RPHRD2.

  7. In runs which WRITEFU30 or WRITEFU31 is selected, along with the option for printing the Hessian in unscaled coordinates, the unscaled Hessian was correctly written out but then it was incorrectly substituted for the mass-scaled Hessian in the rest of the run. Subroutine RPHWRT has been corrected to eliminate this error.

  9. In the subroutine MEPINV the variable SBKAP was incorrectly specified as SBAP. This typo caused the wrong curvature to be printed to the fu26 file.

  11. The check_test.jc script has been modified to avoid checking both ch4o and ch4oh test run files when the ch4o test run files are to be checked.

  13. The compiling script comp_src.linux has been corrected to compile the dateclock.c subroutine.

  15. In subroutine RPHRD1, a change was made in the calculation of the reaction-path curvature at the points adjacent to the saddle point.  This was later found to be incorrect and was removed in version 7.9.3.

Version 7.8.2 (March 1998) (Bug fixes)

  1. The subroutine NORMOD has been modified to fix a run-time error which occurs on SUN workstations.

  3. The hindered rotor option has been enabled for the reactants, products, and wells. The subroutines modified are SETANH, NORMOD, REACT, HINDRT, and ANHARM and new arrays were added to

  5. When the hindered rotor approximation was used with unit fu31 the transformation from Cartesian coordinates to mass-scaled coordinates was incorrect. As a consequence, the reduced moment of inertia of the the saddle point was miscalculated. The subroutines RPNT31, STAT31, and NOST31 have been modified to account for this correction.

  7. The subroutines IRFGT0, LOPT40, NOST31, PATH, and RPHRD2 have been modified to allow SCT tunneling approximations to be calculated when using the RODS algorithm with units fu30, fu31, and fu40, and the hooks.

Version 7.9 (March 1998)

  1. A new keyword LOWFREQ has been added to the *PATH section. The subroutines RLOWFR and REPFL have been added and the subroutine NORMOD has been modified to account for this new option.

  3. To remove conflicts with AMSOL, the subroutines INVRT1 and OVERLP have been changed to INVRT and OVRLP, respectively.

  5. The CALCS keyword has been removed from the *PATH section because that option is not recommended. The subroutines DORODS, DEFPAT, INTAB, RPATH, RVAR6, and WVAR6 have been modified accordingly.

Version 7.9.1 (April 1998) (Bug fix)

  1. Some extraneous print statements have been removed from the PATH subroutine.

Version 7.9.2 (August 1998) (Bug fixes)

  1. A typo in the subroutine ROPTOP has been fixed.  This typo caused an error in the OPTMIN and OPTTS keywords in the OPTIMIZATION section.

  3. Subroutines ZOCPAR and ZOCPRN:

  4. Modifications were made to correct errors in the frequency interpolation with the icl option.
  5. The bug introduced in item 8 of Version 7.8.1 was removed.  Now the curvature at the saddle point is correctly calculated by eq. 98 of the GTST book chapter.  Notice that even though the curvature at the saddle point itself is obtained by interpolation (see discussion of the INTMU keyword), when INTMU = 1 the imaginary frequency eigenvector at the saddle point is used to obtain the curvature at the points on the save grid or either side of the saddle point.  Furthermore the code has been modified so that this calculation is carried out correctly when fu31 is used (which was not true before) as well as when the hooks or other electronic structure input file options are used.  Subroutines STAT31, NOST31, RPHRD1, and SHTSAD were modified.

Version 8.0 (August 1998)

  1. The mapped interpolation (MI) algorithm, which was added in version 7.8 for use with files fu30, fu31, and fu40, now also works with the hooks.  The mapped interpolation option has been used to replace the two-point exponential extrapolation for the   and   functions for reactions with a saddle point.  For reactions without a saddle point the original two-point extrapolation is still used.  Modifications were made to the subroutines ZOCUPD, BCALC, ELRPH, MEPSRT, and PATH.  New subroutines IVTMH, IVTMA, IVTMD, and ARMUEF1 have been added.  The keywords EXFIRST and EXSECOND in the PATH section are no longer used with the electronic structure input files fu30, fu31, and fu40, and their meaning is changed when they are used with the hooks.  Keywords UNIMOL and LBEXP were moved from file fu31 to the PATH section of file unit fu5.

  3. The keyword LBEXP has been moved from file fu31 and is now an option for the keyword IVTSTMOPT in the PATH section of file fu5.  In addition, the UNIMOL keyword has been removed from file fu31, and its options are now options for the keyword IVTSTMOPT in the PATH section of file fu5. These changes were made to use mapped interpolation with the hooks.

  5. In subroutine REACT:

  6. A new array WEW is added to store the frequencies of the wells for interpolation.  Energies of the reactant well and product well are stored in the variables EWR and EWP, respectively.  The geometries of the stationary points are stored in the corresponding XR arrays.  These changes were made to use MI with the hooks.
  7. In subroutine DEFPAT:

  8. A new variable keyword INI has been added to indicate the interval of the gradient interpolation steps in the MI algorithm.  A check has been added to the subroutine OPTION to make sure that INI ? INH.  These changes were made to use MI with the hooks.
  9. The option vrpe has been added to the RPM keyword to allow the user to use the variational reaction path (VRP) algorithm based on the Euler steepest-descents (ESD) method to follow the reaction path.  This algorithm is called VRP(ESD) or just VRP.  The subroutines DEFPAT, DORODS, ENDRODS, INTAB, NORMOD, NOST31, PATH, RPHRD2, RRPM, RVAR6, and WVAR6 have been modified.

  11. The IC keyword has been changed to an option of the DL keyword and is renamed ioc.  The ICOPT keyword has been renamed IOCOPT and the options eckart and noeckart have been changed to deckart and seckart, respectively.  The default for interpolating VMEP(s) is changed from deckart to seckart.  The zero option has been removed from the IOCOPT keyword.

  13. A new option for correcting energies along the reaction path by the dual-level single-point energies (ISPE) method has been added.  The new option ispe is available under the DL keyword. The file unit fu51 has been reserved for use with the new ispe option.  Note that the ISPE option uses the mapped interpolation algorithm and so the formulas differ from an IOC calculation in which only the energy is corrected.  Furthermore an IOC calculation involves corrections based on an optimization at a higher level.  The IC keyword has been changed to an option of the DL keyword and is renamed ioc.

  15. The option coord has been added to the PRPATH keyword in the PATH section to print the bond lengths and bond angles along the reaction path.  A new subroutine PRCORD has been added and the subroutines INTAB, RPRMEP, NORMOD, FCRATE, FIOPEN, and RPHRD2 have been modified.

  17. The keywords SPT and SPTOPT have been removed, and the associated has been commented out.

  19. The NONADIB keyword has been renamed LCTCOR, the option previously called quadratic has been renamed quadlin, and the default has been changed from no to quadlin.

  21. The LOWFREQ keyword in the PATH section of the fu5 input file has been renamed IVTST0FREQ.

  23. The default value for the INTMU keyword of the PATH section of the fu5 input file was changed from 1 to 3.

  25. The parameter NSDIM has been moved from to the param*.inc files.

  27. The RPM keyword option euler has been renamed esd; subroutines DEFPAT, INTAB, and RRPM have been modified.

  29. In subroutine MAIN:

  30. Modifications were made to allow anharmonicity options to be used with TST-only calculations.
  31. In function VPART:

  32. The vibrational partition function is set to 1010 when using the WKB method with an imaginary frequency normal mode.  This value was previously set to 1.
  33. In subroutine NOROUT:

  34. Modifications were made to print the ground-state vibrational energies for the saddle point to file unit fu6.
  35. Modifications have been made to print ‘VTST-IOC’ and ‘VTST-ISPE’ to the output files instead of ‘VTST/IC’.

  37. In subroutines REACT and NOROUT:

  38. Modifications were made to print ‘Harmonic Frequencies’ to the output files instead of ‘Frequencies’.
  39. The common block OUTPUT was renamed OUTCOM in all the subroutines contained in the givtst.f subprogram.

  41. The subroutines SORT and UPCASE were renamed SORTG and UPCSE, respectively.  In addition the function TORS was renamed PTORS.

  43. The IBM PowerPC 604e option has been added to the set_machine.jc script and the necessary script files, *.ibm604, have been added to the script directory.

  45. The test runs oh3fu31tr2, ch5fu51tr1, ch5fu50tr3, and cmtr3 have been added to the test suite.

  47. The WRITEFU31 keyword has been added to the oh3tr10 test run.

  49. The oh3tr1 test run has been modified to use the vrpe option of the RPM keyword.

Version 8.1 (July 1999)

  1. A new geometry optimization option using the eigenvector following (EF) algorithm was added for the reactants, products, reactant well, product well, and saddle point. The FORTRAN source code is taken from Frank Jensen’s program in the MOPAC5.07MN software package (this EF code is originally from Ref. 2 in Sect. 22) and stored in the file ef.f. The subroutines OHOOK, DEFOPT, ROPT, ROPTOP, and INTAB were modified, a new subroutine REFOPT was added, and the compilation scripts comp_src.* are modified to accomplish these changes.

  3. A new option for calculating the reduced moment of inertia of an asymmetric rotator using Pitzer’s curvilinear algorithm was added. The subroutines RTOR and RTOROPT were added to replace the RHINRT and RHINRTS subroutines in the interface.f file. Subroutines DEFSTAI, INTAB, INTABS, RSTAT, SETANH, ANHARM, CENTER, HRPART, RATE, RPHINT, and TSRATE were modified for this new option. Three new subroutines, HRSET, ASYMRMI and ASYMENT, were added. On can now estimate the effective vibrational frequency based on the rotational barrier height. A new testrun cwmctr3 is added to illustrate the curvilinear option. Also, the hindered rotor treatment has been generalized so that it no longer implicitly assumes that P = 1. The old list keyword HINROT was removed and is replaced by new list keywords TOR and TOROPT.

  5. The subroutines ICFDIAG, ICSAVE, and CVCOOR were modified to carry out normal mode analysis using curvilinear internal coordinates (with or without redundancy) at the saddle point for the CURV2 and CURV3 options.

  7. The PRMODE keyword was added to the REACT1, REACT2, PROD1, PROD2, WELLR, WELLP, and START sections for printing movie clips of the vibrational modes for the XMOL program. The subroutines NOROUT, INTABS, DEFSTA, and RSTAT were modified, and a new function DIGISTR was added.

  9. The option DVMEP is added to file fu51 for use with the IVTST-ISPE option. By using this option, the point at the higher level doesn’t need to be a save-grid point at the lower level. The subroutines READIC and ZSPMEP were modified.

  11. The subroutine WRTHOK has been modified for printing out the vibrational frequencies and Hessians for calculations with the SOLID option.

  13. In the previous versions of Polyrate, the FREQ list keyword is used when a list of harmonic frequencies is read in as a restart option when the STATUS keyword has the value 6, and the NOFREQ option is used to switch off the normal mode analysis. In this version, the functions of the old keyword FREQ in the REACT1, REACT2, PROD1, PROD2, WELLR, WELLP, and START sections have been separated, and they are now associated with the keywords VIB and FREQ in order to clarify these two distinct functions. The VIB list keyword is used to indicate a list of harmonic frequencies of the corresponding species when the STATUS keyword has the value of 6. The FREQ keyword is used as a switch keyword to determine whether the normal mode analysis is carried out in the calculation.

  15. The subroutines IVTMD, IVTMH, and RPHINT were modified to support the mapped interpolation VTST algorithm for cases without information about either the product or a product well. The method used in such calls is fully explained in Section 6.M. of this manual.

  17. The keyword FIXMUEF has been added to the IVTSTMOPT list keyword in the PATH section. This keyword is used to apply a global interpolation to estimate the effective reduced mass (meff ) of the SCT algorithm at the saddle point when the IVTST-M algorithm is used with hooks. The default option is to use local Lagrangian interpolation for the effective reduced mass at the saddle point with either one point or three points (see INTMU keyword option) on each side of the saddle point. The global interpolation can be used to obtain a smoother value of meff at the saddle point; it should be used if and only if the points close to the saddle point suffer from numerical instability.

  19. The keywords RMITS, RMIRP, and HRRMI were renamed to MITS, MIRP, and HRMI for input of the moment of inertia of the internal rotation mode in file fu50 instead of the reduced moment of inertia as the previous versions. The subroutine ROPT50 has been modified.

  21. A check has been implemented in the subroutine REMOVEC to ensure that the total number of internal coordinates is greater or equal to the total number of vibrational modes.

  23. The subroutine WRTHOK has been modified inorder to print out correct energies for the reactants, products, wells, and saddle point when using the restart option controlled by the STATUS keyword.

  25. The subroutine SSAVE has been modified to ensure that the array BKAP will contain the correct value of the curvature along the reaction path.

  27. The IVTST0FREQ keyword option has been extended the case of unimolecular reactants and/or products. The subroutine REPFL has been modified and a new subroutine rprfl has been added to polytrr.f. The test run ch5j1tr7 is used as an example for this keyword option.

  29. The compliation and linking scripts for IBMSP with PowerPC 604e processor is upgraded to O3 with 64-bit computation.

Version 8.1.1 (July 1999) (Bug Fixes)

  1. The BLAS subroutines in the ef.f file were moved to the file fromblas.f in order to keep all the routines from the mathematical libraries in the same file.

  3. The default values of the SR and SP options in the IVTST0FREQ keyword have been set to ?1.0 bohr and +1.0 bohr.

  5. The keyword option PROJECT in the *START section has been corrected.  In previous versions, the translational and rotational modes are always projected.  We recommend to project out the translational and rotational modes in order to obtain better vibrational frequencies; however, this is not necessary.  The subroutine CENTER has been modified.

Version 8.1.2 (August 1999) (Bug Fix)

  1. The *.jc scripts in the testrun directory were updated to work the with the current version of Polyrate.

Version 8.2 (August 1999)

  1. New keyword option BATH and its options FRICTION, BATHTEMP, DIFFUSION, and CUPLCNST are added to the PATH section to perform nonequilibrium solvation calculations.  There are two limitations for using this new option, 1) the system must be molecule, not solid state (because the redundant internal coordinate system is used) and 2) the equilibrium free energy of solvation is included in the potential function.  In this version, there are no test cases for carrying out nonequilibrium solvation calculations using Polyrate directly, however, new test cases are added to AMSOLRATE and GAMESOLRATE where the free energy of solvation is approximated using a continuum solvation model.  Three new subroutines are added to Polyrate: RBATH, RDIFFU, and EFFBATH.  The NEWT, SADENG, EHOOK, GHOOK, HHOOK, CVCOOR, IVTMH, DOSAFR, INITZE, NOROUT, PATH, PROJCT, VPART, WRTHOK, and ZOC3P subroutines are modified.  Since BATHTEMP is a variable keyword, the nonequilibrium solvation calculation can only be carried at one temperature.

Version 8.4 (December 1999)

  1. The subroutines RATE and TSRATE have been modified to print out the internal free energy of reactant.

  2. The nh3tr2 testrun has been created.

Version 8.4.1 (March 2000) (Bug fixes)

  1. The file /testo/cwmctr3.fu15 has been replaced with the correct version for this testrun.

  2. FORMAT statements were changed to prevent compiler warnings.

Version 8.4.2 (October 2000) (Bug fix)

  1. The calculation of the partition function was incorrect when calculated off the saddle point when using curvilinear internal coordinates. This affects all runs using the options CURV2 and CURV3 in versions 8.1-8.4.1. CURV1 and rectillinear-vibration runs were unaffected by this bug.

Version 8.5 (October 2000)

  1. The LCG4 option has been added. The implementation of the LCG4 method in Polyrate involved the modification of the following subroutines:

    a. LCXINT: function that calculates the imaginary action integral at every quadrature point of the adiabatic region.

    b. LCGTH (old LCG3TH): this subroutine calculates the imaginary action integral between the outer turning points of the vibrational adiabatic potential. Part of the code that was previously in this subroutine has been incorporated into two new subroutines called LCNAD and LCVEF.

    c. LCNAD: returns the value of the imaginary action integral at every quadrature point of the nonadiabatic region.

    d. LCVEF: function that calculates the effective potential of the nonadiabatic region. The output of units fu41–fu44 was modified in the following ways (see page 250 of

    the Polyrate–version 8.4.1 manual) and two new units (fu48 and fu49) were added:

    a. poly.fu41: contains the theta integral and the weighting factor of each point on each tunneling path.

    b. poly.fu42: contains the length of the tunneling path, the classical energy, the potential correction terms (zero-point energy and anharmonic), the interpolated correction if any, and the effective potential for each point in the nonadiabatic region of the tunneling path.

    c. poly.fu43: contains the theta integrals and the boundaries of the nonadiabatic region for each tunneling path.d. poly.fu44: contains the length of the tunneling path, the maximum of the effective potential, and its location on the path for each tunneling energy.

    e. poly.fu45-47: same as before.

    f. The unit poly.fu48 is used to restart a LCG calculation. It contains the grid number of a given tunneling energy, the grid number of a point along the linear path and the value of the calculated potential in the nonadiabatic region (the expensive part of the LCG calculations).

    g. The unit poly.fu49 stores the information that can be read directly from unit poly.fu48 afterwards.

  2. We added an option to scale the frequencies for CVT calculations with harmonic vibrations. This implementation involved changes in the main program, and the subroutines REACT, SADENG, ENROUT, SENOUT, NOROUT, RATE, TSRATE, TABLE, TSOUT, VPART, WRTWEL, and several subroutines in the interface.f block as well as changes in

  3. We added an option to compute energy levels by WKB-on-the-true-potential for excited-state calculations. This implementation involved changes in subroutines RATE, VPART, STAUV, VTMUSN, and EVIB.

  4. We added 6 new test runs, ohcltr1-4, ch5jltr9, and ch5jltr10.

Version 8.5.1 (November 2000) (Bug fix)

  1. A bug was removed that affected hindered rotor calculations in version 8.5

Version 8.6 (February 2001)

  1. The curvilinear internal coordinate bound-mode analysis for reactants and products is added.

  2. The scaling force constant keyword FCSCALE is added into PATH section.

  3. The keyword SCLPT and CARTRP are added. SCLPT is used to specify the effect of
    force constant scaling. CARTRP is used to declare explicitly that the normal mode analysis
    for reactants and products is carried out in Cartesian coordinates.

  4. The varible RTPJAC is added to the list keyword LCTOPT to specify the MEP and
    large curvature representative tunneling termini in mass-scaled Jacobian coordinates are
    printed in fu24.

Version 8.6.1 (August 2001) (Bug Fixes)

  1. The behavior of the keyword FREQSCALE is changed:
    Previously the keyword FREQSCALE was used to scale all harmonic vibrational frequencies uniformly but only for partition function calculations. However, the scaled frequencies were not used in calculation of zero point energies or transmission coefficients. The usage of FREQSCALE has been corrected to remove this error. If FREQSCALE is used, the scaling will be applied to all stationary point frequencies and generalized normal mode frequnecies for generalized transition states along the reaction path. Furthermore, the vibrationally adabatic potential energy curve VaG will be obtained by adding the scaled vibrational ZPE to VMEP, and all tunneling calculations will be based on this new VaG.

  2. A bug is fixed for curvature calculations when fu31 is supplied as electronicstructure input file, and RODS keyword is used.
    When RODS is specified, the reaction path curvature vector calculation should based on the vector normal to the reoriented dividing surface optimized by RODS algorithm. It involves a derivative calculation of this vector normal to the dividing surface with respect to the reaction coordinate s. Before the numerical derivative routine is called, the above vectors should be converted to mass-scaled and should be normalized. However, the code in old version did not handle this correctly. We fixed this bug in the current version in the subroutine NOST31 (poly31.f).

Version 8.7 (September 2001)

  1. The normal mode analysis of reactants and products is set to Cartesian coordinates as the default, i.e., CARTRP is set as default in PATH section. One can specify that the generalized normal mode analysis for reactants and products is applied in curvilinear coordinates by turning CARTRP off (NOCARTRP). Note that NOCARTRP must be used when the force constant scaling keyword FCSCALE is specified, and if incompatible options are chosen, a message is printed and the program stops.

  2. The default for EZUNIT keyword in the ENERGETICS section had not been set in previous versions. This bug is fixed, and the default for EZUNIT is set to be au in the subroutine DEFENG.

  3. The default setting of INITGEO keyword for reactants, products, and saddle points is moved from the subroutine DEFOPT to the appropriate subroutine DEFSTA because the keyword INITGEO is defined under REACT1, REACT, PROD1, PROD2, and START sections instead of OPTIMIZATION section.

  4. In subroutine INTAB, the writing of FPRINT input option in SECOND section is taken from the ghook "if" statement, so that status of the FPRINT switch will always be printed out whether or not HESSCAL is set to ghook or hhook.

Version 8.7.1 (January 2002) (Bug fix)

  1. Array declarations in rtpjac.f and intbsv3. f are modifed to be compatible with the '-static' compling option in compling scripts.

Version 8.7.2 (February 2002) (Bug fixes)

  1. A bug in subroutine HRSET was fixed that affected hindered rotor calculations. This bug only affects versions later than 8.5.

  2. A bug was fixed in subroutine REACT. The geometries for each species should be copied to a local array no matter the initial geometries were obtained from fu5 or hooks. See comments in the source code for details.

  3. A bug was fixed in subroutine DEFSTA. The initialization of array INITG(I) should be done from I=1 to 8 not only from I=1 to 5. See comments in the source code for details.

Version 8.7.3 (May 2002) (Bug fixes)

  1. The initialization of logical variable LUPD in subroutine EFMAIN that controls the use of an updated Hessian for an optimization was not done. This logical variable is now initialized to .TRUE.

  2. The initialization of the variable IPRNT that controls some printing options in subroutine EFMAIN was not done. This variable is now passed through a common block.

  3. A bug in subroutine KAPVA was causing the wrong header to be printed for LCG3 or LCG4 calculations when using the quantized-reactant-state tunneling method was fixed. This has now been fixed.

  4. A bug was fixed in subroutine HRSET that calculates information needed for evaluating the hindered rotor partition function. A wrong index for a vibrational frequency mode had been used.

  5. A compilation error with Linux has been fixed. This bug fix involved modifications in the TABLE, FINOUT, and KAPVA subroutines.

Version 8.9 (May 2002)

  1. The ILCG option has been added. This is done though two new keywords, ILCT and NILCTPT, that have been added to the list keyword LCTOPT. The implementation of the ILCG method in Polyrate involved modifications of the following subroutines:

    a. RLCT: two new variables, ILCGIT and NSPLIC, have been added. These two variables are also included in

    b. INTAB: the two new keywords, ILCT and NILCTPT, have been included and are now tabulated.

    c. LCG34 and LCGTH: the modifications have been made to incorporate the interpolated LCG algorithm.

    d. LCGIT: this is a new subroutine that chooses the points at which the ILCG interpolation is made.

    e. LCVEF: the modifications allow performing the spline-under-tension interpolation.

    f. SPL: the dimensionalities of arrays IPAS and SAVARR have been increased.

  2. An option for determining the MEP limits based on energetics criteria has been added. This is done though the new keyword SPECSTOP. The implementation of this new feature required addition of a new subroutine, RSSTOP, and modifications to the following subroutines: DEFPAT, ELRPH, INTAB, OPTION, PATH, and RPATH.

  3. The generalized free energy of activation can now be calculated in subroutines RATE and TSRATE either through direct use of the vibrational partition functions or through the use of the logarithms of the vibrational partition functions. Using logarithms enables the calculation of the free energy of activation when the vibrational partition functions (or their product) are susceptible to underflow. The procedure used for the calculating generalized free energy of activation is determined by the GTLOG switch in the RATE section. The implementation of this feature required modifications to the following subroutines: DEFRAT, INTAB, RATE, RRATE, SETLGC, and TSRATE.

  4. The STATES subkeyword is introduced under the QRST keyword to limit the number of quantized reactant states that will be included in the tunneling calculation. The implementation of this feature required modifications to the following subroutines: DEFRAT, QRSENE, RQRST, SETLGS, and WKBENE.

  5. The STATES subkeyword is introduced under the QRST keyword to limit the number of quantized reactant states that will be included in the tunneling calculation. The implementation of this feature required modifications to the following subroutines: DEFRAT, QRSENE, RQRST, SETLGS, and WKBENE.

  6. The format of the output files is changed so that the results obtained with ZCT (MEPSAG) method are labeled as ZCT instead of MEPSAG, and the results obtained with SCT (CD-SCSAG) method are labeled as SCT instead of CD-SCSAG. The modified subroutines are BOLTZ, GIVTST, KAPA, KAPPAS, KAPVA, and TABLE.

  7. The set_machine.jc script has been upgraded to include options for SGI Origin R12000 processors, for Sun UltraSparc workstations, and for Compaq AlphaStations.

  8. New scripts have been added for SGI Origin R12000 processors, for Sun UltraSparc workstations, and for Compaq AlphaStations.

  9. The script comp_src.linux was modified to allow compilation with the fort77 compiler in Mandrake Linux.

  10. Two new timing routines have been added. One of them, dattim.compaq, is used for timings on Compaq workstations, and the other, dattim.f90, uses the DATE_AND_TIME routine that is the standard timing routine in Fortran 90.

  11. Three new test runs, ch5j1tr11, clhbrtr3, and clhbrtr4, have been added, and two test runs, ch5j2tr and oh3tr8, have been slightly modified to include the SPECSTOP keyword. The running, checking, and cleaning scripts have been updated.

  12. A few old variables that were not used anymore have been removed from the code.

Version 8.9.1 (May 2002) (Bug fixes)

  1. The default setting of STATES subkeyword in QRST keyword is moved from the subroutine DEFRAT to the appropriate subroutine DEFTUN because the keyword QRST is defined under the TUNNEL section instead of the RATE section.

  2. The interpolation for determining the tunneling probability at certain energies was done wrongly when using quantized tunneling energy method with a low frequency mode for the reaction coordinate. This bug was fixed in subroutine BOLTZ.

  3. A bug was fixed in subroutine QRSENE that was not allowing using quantized tunneling energy method with a given number of quantized states.

Version 9.0 (May 2002)

  1. The keyword WRITE62 has been added to the GENERAL section of the unit fu5 input file to create an fu62 file that contains a subset of the stationary point information presented in fu61. The implementation of this feature required modifications to the following subroutines: DEFGEN, INTAB, RGENER, FIOPEN, FCRATE, and WRTHOK.

  2. The STQVIB subkeyword is introduced under the QRST keyword to limit the number of quantized reactant vibrational states that will be included in the reactant vibrational partition function. The implementation of this feature required modifications to the following subroutines: DEFTUN, QRSENE, RQRST, KAPVA, and WKBENE.

  3. The format of the long output file, fu6, has been slightly modified when using quantized tunneling energy method. Similarly, the format of the output file fu15 has been slightly modified for IVTST calculations.

  4. Test run nh3tr2 has been slightly modified to include the GTLOG keyword.

  5. A few common blocks have been renamed and are now ended in either COM or CM.

  6. A few old variables that were not used anymore have been removed from the code.

Version 9.1 (July 2002)

  1. The long output file, fu6, has been modified so it contains the rate constants with non-tunneling contributions (i.e., contributions from energies above the top of the effective barrier). The implementation of this feature required modifications to the following subroutines: BOLTZ, FINOUT, and KAPVA.

  2. The default of the CARTRP switch keyword has been set to on. The option of changing the default based on the values of other keywords has been removed. The implementation of this feature required modifications to the following subroutines: DEFPAT, INTAB, and SETLGS.


Version 9.1.1 (Never Released)
  1. One bug affecting the evaluation of the correction potential, Vcorr, when tunneling occurs into final vibrational excited states was corrected.

  2. The restart option of the LCT method, which under some conditions, gave wrong results for tunneling into vibrationally excited states was corrected.
Version 9.2 (Never Released)
  1. Modification of subroutine LCG34.

  2. The old LCGTH subroutine is now subroutine LCGNAD. It evaluates the LCT3 and LCT4 nonadiabatic regions and stores all the needed information to evaluate the tunneling amplitude.

  3. The new subroutine LCGTHE evaluates the theta integral.

  4. Old subroutine LCGNAD is now subroutine LCG4V. It searches for a LCT4 nonadiabatic region within a LCG3 adiabatic region.

  5. Two common blocks GRDDX and GRDDX2 were added to store the information from the LCGNAD subroutine.

  6. Several subroutines called by SPL2D, which incorporate the 2D spline under tension, were added. They are based in the code developed by R. Renka.

  7. The rectangular grid needed by the 2D spline under tension is built in LCGRD and printed in unit fu42.

  8. The LCGTR subroutine was added.

  9. The LCVEF subroutine was slightly modified.

  10. Keywords ILCT1D, ILCT2D and LCTGRID were added and the two keywords ILCT and NILCTPT were removed.

  11. Subroutine RLCTGRD was created in order to activate the new keywords.

  12. Two new test runs, clhbrtr5 and ch5j1tr12, were added.
Version 9.3 (November 2003)
  1. Version 9.3 runs on Windows 95/98/Me/2000/XP.

  2. Version 9.3 can be compiled with the efc compiler and run on the SGI Altix.
Version 9.3.1 (June 2005)
  1. Previous versions had errors in the calculation of the reduced moment of inertia for a torsion using the curvilinear scheme of Pitzer and Gwinn. Version 9.3.1 corrects the errors in the alpha matrix, and uses all right-handed coordinate systems. The CO and CW torsion schemes now work correctly.

  2. Polyrate no longer prints out the table of torsion information before it is calculated, and the value labeled Total Moment of Inertia is now correct

  3. The ISPE and FREQSCALE options are now compatible with fu31 files. The IVTST0FREQ option remains a known incompatibility.
Version 9.4 (May 2006)
  1. Program will now compile and work properly with the gnu and ifort compilers. Since the gnu compiler is available in Linux and for most other operating systems, this greatly increases the portability.

  2. The 'configure' script is added to automatically detect compilers, and a Makefile is made for easy compilation of Version 9.4.

  3. Version 9.4 allows parallel processing using MPI. The code has been rearranged to accommodate this, where the file poly_mpi is used for multiple processors, and the file dummy_mpi is required for serial jobs. This is done in the Makefile.
Version 9.4.1 (June 2006)
  1. The configure script has been modified to only print the parallel options if an MPI compiler is found
Version 9.4.2 (October 2006)
  1. A frequency scaling bug has been corrected. Prior to Version 9.3.1, the FREQSCALE option was not compatible with the fu30, fu31, and fu40 potential files. In Versions 9.3.1-9.4.1, the frequencies were inadvertently scaled twice for calculations that did not use a potential file. In Version 9.4.2, the FREQSCALE option works for all PES methods.

  2. The torsion options have been made fully compatible for the reactant and products for a chemical reaction. The READI keyword has been created to read in the internal moment of inertia which is needed for calculations that do not calculate the vibrations of the species in the traditional manner (i.e. a restart calculation.)

  3. The SSRP species is now compatible with the fu40 file.

  4. A bug in the IVTST spline fitting procedure has been corrected.
Version 9.4.3 (November 2006)
  1. The file dattim.gnu, which has inadvertently removed from the 9.4.2 release, has been included in the 9.4.3 release.
Version 9.4.4 (non released)
  1. Previous versions did not correctly evaluate torsions where multiple wells required updating as the MEP was calculated. This has been corrected.
Version 9.5 (January 2007)
  1. The keyword SCALERP has been added, which causes the frequency scaling factor to be applied to frequencies found in the VIB section of the input file.
Version 9.5.1 (February 2007)
  1. Frequencies calculated with internal coordinates are now scaled properly by the factor given by the FREQSCALE option. This was incorrectly implemented in previous versions.
Version 9.6 (February 2007)
  1. Options have been added to the TOR and TOROPT sections, allowing for several interpolation methods to be used when calculating a hindered rotor method.
  2. The keyword MUVTOPT has two new options "fit gas13" and "fit gas31" to do 1-point and 3-point fits instead of 3-point and 5-point fits.
Version 9.7 (June 2007)
  1. Two new keywords has been added in the GENERAL section, INPUNIT and OUTUNIT. They control the units of geometries and distances in the fu5 input file and in the fu6 output file, respectively. In this version, the default unit is angstrom. The old keyword GEOMUNIT in the GENERAL section of the fu5 file is removed.
Version 2008 (May 2009)
  1. Variable reaction coordinates and multifaceted dividing surfaces have been implemented in this version for barrierless association reactions. This implementation is parallelized using MPI.
  2. The keywords, SIGMAF and SIGMAR, can accept floating point numbers as their values, while previous versions only allow integer values.
  3. A new keyword, TENSION, is added to allow the user to give a tension factor for spline-under-tension interpolation in IVTST-M calculations.
  4. The default value of the keyword VEFSRCH is changed to 999 from 0.
  5. In file polyhl.F, subroutine LCGNAD, the following line is changed to remove some confusion output when LCG3 is used.
  6. A bug is fixed for using the VADAVG keyword. In file polyhl.F, the following line is changed in subroutine lcgnad.
    DO 89 IZ = IZ1, IZ0
    TERM1 = (IZ-IZ1)/(IZ0-IZ1) (wrong)
    TERM1 = (QDX(IZ) - QDX(IZ1))/(QDX(IZ0) - QDX(IZ1)) (correct)
  7. A bug is fixed for the FREQSCALE keyword when doing IVTSTM with fu31 file. In file poly31.F, the following line is added to subroutine nost31
    if (ifqfac.eq.1) ws(is,i)=ws(is,i)*freqfac
  8. In polymq.F file, a shifting constant is used to solve overflow and underflow problems in the case that the imaginary action integral &theta is too large
Version 2008-A (not released as a separate version, but fully incorporated in version 2010)
  1. A bug is fixed for Monte Carlo error estimation in VRC-VTST calculations.
  2. The VRC-VTST output format is reorganized in a more user-friendly way.
  3. A bug is fixed so that the WELLR and WELLP energies are written to the fu31 file using relative energies. The old code wrote their absolute electronic energies to the fu31 file.
  4. A bug is fixed so that a torsion treatment can be performed in conventional TST rate calculations.
  5. A bug is fixed in poly31.F file for initializing the array WS, BFS, and FMIRS in the subroutine rph31.
  6. A bug is fixed for calculating the reduced momentum of inertia using C scheme in the subroutine asyment.
Version 2010 (June 2010)
  1. One new keyword "FREQINCR" is added to raise low frequencies to a certain number (e.g., 50 or 100 cm-1) to approximately account for anharmonicity.
  2. In rate calculations for barrierless association reactions by VRC-VTST, the reverse reaction (dissociation) rate is also calculated from the equilibrium constant and the association rate. Previously only the association rate was calculated.
  3. The SPRNG 2.0 package is included in the Polyrate distribution. The configure script will compile the SPRNG 2.0 library if the VRC-VTST installation is performed.
  4. In VRC-VTST calculations, in calculating the total number of available states, the integration over the projection on the principal axis (K) of the total angular momentum J is calculated analytically.
  5. Several methods for treating torsions, in particular the RPG, AS, SRPG, and SAS methods, are implemented. The input format and options for the keyword "TOR" and "TOROPT" are reorganized.
  6. One test run directory h3o2 is added to show the usage of the SPRG, SAS, RPG, and AS methods for treating torsions.
Version 2010-A (June 2010)
  1. A bug is fixed in the SRPG and SAS methods for torsional treatment. This bug only affects the cases in which the total symmetry number is not 1.
Version 2015 (January 2015)

Important note: This version introduced bugs in CURV2 and CURV3. These bugs have been fixed in version 2016. Users with this version should upgrade to version 2016 or later versions. Users with versions prior to 2015 are not affected by this bug.

  1. All common blocks are replaced by Fortran 90 modules. Memory for arrays is dynamically allocated. Therefore, compiling the code with a predefined system size (e.g., number of atoms) is no longer required.
  2. The number of states calculation that is required for μVT is now programmed much more efficiently by the extended Beyer-Schwinehart method. Now there is no significant difference between CVT and μVT as far as computational cost.
  3. The ICVT option is removed. Whenever one needs a more accurate treatment of the threshold, one can simply use μVT without significantly increasing the computational cost, so there is no longer any motivation for using ICVT.
  4. The single-structure MS-T method is added with coupled torsional potentials. This capability is added both for saddle point and for including torsional anharmonicity along a reaction path.
  5. The standard-state free energy of activation profile is calculated along a reaction path using a standard state of 1 bar rather than an unconventional pressure.
  6. Various minor bug fixes have been made.