Programs to ease Normal Coordinate Analysis



Dear Netters,
 Some time ago I wrote two short FORTRAN programs: RANKZ and RANKFG. They
 can serve as handy tools for dealing with the normal coordinate analysis (NCA)
 using the GF-matrix Wilson method. To my knowledge, NCA is most commonly
 done by running well-known 1963 Schachtschneider & Mortimer programs
 (or their modifications). The basic idea is still the same:
 1) Generate inverse of the kinetic energy matrix G
 2) Generate the force constant matrix F_ij = sum_k (Z_ijk*f_k)
    (where f_k denotes the set of independent force constants,
    Z_ijk is the so-called Z-matrix which combines f_k 's to give
    F-matrix)
    [NOTE: - please, do not confuse the NCA Z-matrix with the "ab
 initio"
    Z-matrix (providing molecular geometry in internal coordinates) !!!]
 3) Symmetrize matrices G and F (via Z)
 4) Solve GF secular equation to obtain frequencies and normal eigenvectors.
 Generating good input for large molecules is still an art rather than routine,
 especially for beginners (like me). It is not easy to define sufficiently good
 set of internal coordinates and independent force constants. Moreover,
 globally independent force constants may become dependent within one symmetry
 block (after symmetrization of G and Z matrices). RANKZ and RANKFG programs
 test how good is the NCA input.
 RANKZ calculates rank of the combined Z-matrix (one or several combined
 symmetry blocks or unsymmetrized) using Gauss elimination. The input file(s)
 (with extension .ZMAT --- though it may be changed if needed)
 contain(s) the non-zero elements of Z-matrix in format (3I3,F9.6). The input
 is terminated by a sequence -1  0  0 0.000000. User can combine several blocks
 of symmetrized Z-matrix, each in separate '*.ZMAT' file, by answering 'N' when
 program asks 'END OF DATA <Y/N> ?' . The output file (extension '*.RAOUT')
 produced by the program contains a list of offending force constants which are
 either dependent or missing.
 RANKFG uses singular value decomposition to calculate the rank of the real
 symmetric matrix. It can be therefore used to test either G or F matrices.
 The rank of these matrices tells the number of frequencies from NCA
 calculations which will result in reasonable values within each of the symmetry
 blocks (this number depends on the redundancy of internal coordinates). The
 number can be then compared with the group-theoretical value.
 To calculate the rank of the G-matrix (or its symmetry block) the user should
 input '0' as a 'number of force constants'. The input file in this case should
 have an extension '*.GMAT' and should contain non-zero elements of G-matrix in
 the format (2I3,F12.6). The terminating sequence which markes the end of the
 list is -1  0    0.000000. The output produced by the program consists of the
 rank and the singular values of G-matrix (file *.RAOUTG).
 To calculate rank of F-matrix (or its symmetry block) user should input: the
 actual number of force constants, specify corresponding Z-matrix input file
 (*.ZMAT), and specify the file containing force constants (extension *.FI).
 The F-matrix is then calculated by the program. The format of Z-matrix file is
 the same as that of RANKZ input file. The force constant file *.FI has a free
 input format.  In the output program gives the rank of the F-matrix and its
 singular values (file *.RAOUTF).
 Please, report bugs to chem86(-(at)-)jetson.uh.edu (Robert Fraczkiewicz)
 ---
 The programs and examples are available from Computational Chemistry List
 archives on www.ccl.net in directory pub/chemistry/normal_coor_anal.
 The files are:
 This file: readme
 Source code of the RANKZ program: rankz.f
 Source code of the RANKFG program: rankfg.f
 Examples of input files for some 60-atom molecule:
 (One symmetry block A2G, dimension=20, number of force constants=99)
 Z-matrix input file : a2g.zmat
 G-matrix input file : a2g.gmat
 Force constant file : a2g.fi
 Examples of output files:
 RANKZ output : a2g.raout
 RANKFG outputs : a2g.raoutg and a2g.raoutf
 You can retrieve the programs and examples via ftp as:
 ftp www.ccl.net   (or ftp 128.146.36.48)
 Login: anonymous
 Password: your_email_address
 ftp> cd /pub/chemistry/normal_coor_anal
 ftp> ascii
 ftp> prompt              (to skip yes/no prompts for individual files)
 ftp> mget *
 ftp> quit
 If you do not have ftp, you can retrieve files via e-mail interface by
 sending a message:
 --------- cut here start -----
 send ./normal_coor_anal/a2g.fi from chemistry
 send ./normal_coor_anal/a2g.gmat from chemistry
 send ./normal_coor_anal/a2g.raout from chemistry
 send ./normal_coor_anal/a2g.raoutf from chemistry
 send ./normal_coor_anal/a2g.raoutg from chemistry
 send ./normal_coor_anal/a2g.zmat from chemistry
 send ./normal_coor_anal/rankfg.f from chemistry
 send ./normal_coor_anal/rankz.f from chemistry
 send ./normal_coor_anal/readme from chemistry
 -------- cut here end --------
 to OSCPOST(-(at)-)ccl.net or OSCPOST(-(at)-)OHSTPY.BITNET.
 Robert Fraczkiewicz
 Department of Chemistry
 University of Houston
 CHEM86(-(at)-)jetson.uh.edu
 ---
 Administrivia: This message is automatically appended by the mail exploder.
 CHEMISTRY(-(at)-)ccl.net --- everyone      CHEMISTRY-REQUEST(-(at)-)ccl.net ---
 coordinator
 OSCPOST(-(at)-)ccl.net  send help from chemistry            Anon. ftp
 www.ccl.net
 ---