1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#ifndef _MOL_COM_
#define _MOL_COM_
c This common block contains the molecule and basis set information
c read in from the JOBARC file. Since much of this information is
c used in a large number of modules, and since most of the information
c is relatively small compared to the other things held in memory,
c a large percentage of the data stored in the JOBARC file is stored
c here, even though some modules will not use all of it.
c maxangshell - The maximum number of angular momentum shells. Since this
c is used VERY infrequently, set it high enough to never
c cause a problem.
c spinc(2) - The characters 'A' and 'B' (useful for alpha/beta labels)
c natoms - The number of atoms in the Z-matrix (including X/GH). After
c remove is called, natoms becomes equivalent to nrealatm.
c natomsx - The number of atoms in the Z-matrix (including X/GH). This
c does not change.
c nrealatm - The number of atoms in the Z-matrix (including GH).
c naobasfn - The number of AOs in the basis
c nbastot - The number of symmetry adapted orbitals in the basis (the AO
c basis may be larger than the SO basis if spherical orbitals
c are used since harmonic contaminants are deleted)
c linear - 1 if the molecule is linear
c orientmt - 3x3 matrix which relates the computational and canonical
c orientations
c nucrep - Nuclear repulsion energy in a.u.
c nmproton - Number of protons in the molecule.
c
c compptgp - Point group
c fullptgp -
c compordr - Order of the point group
c fullordr -
c compnirr - Number of irreps in the point group
c fullnirr -
c compnorb - Number of unique atoms (orbits) in the point group
c fullnorb -
c c1symmet - 1 if the molecule is C1 symmetry
c nirrep - The same as compnirr (since nirrep is used so commonly,
c this is included for conveniance)
c ***NOTE*** nirrep is read in twice and is stored in /sym/
c so it is not actually included here
c totprim - Total number of primitive functions in the molecule
c maxshlprim - Largest number of primitives in a single shell
c maxshlao - Largest number of AOs in a single shell
c maxshlorb - Largest number of primitive orbitals (primitive functions
c times the number of AOs) in a single shell
c maxangmom - Largest angular momentum for any atom
c maxshell - Larges number of angular momentum shells for any atom
c noccorb(2) - The number of alpha and beta occupied orbitals
c nvrtorb(2) - The number of alpha and beta virtual orbitals
c The parameter maxorbit is needed because of how dynamic memory is used.
c Two runs of the program are needed. The first to calculate memory usage,
c the second to use it. In order to calculate totprim, we have to know the
c orbit population vector (the number of each type of atom). BUT, this is
c stored in dynamic memory since we do not know how long this vector is.
c In the future, joda or vmol will write this information to JOBARC, and
c this problem will disappear. In the meantime, we have to introduce a
c genuine limit on the size of the molecule. It may have no more than
c maxorbit sets of unique atoms. This limit is ONLY used in the subroutine
c basis, so it probably will disappear when the information in the MOL file
c is put in JOBARC.
c maxorbit - the number of symmetry unique atoms
c The following are pointers to real arrays
c
c zatommass(natoms) - Atomic mass of all atoms (X=0.0, GH=100.0)
c zcoord(3,natoms) - Coordinates of all atoms (computational orientation)
c zalpha(totprim) - The alpha for each primitive function
c zprimcoef(totprim,naobasfn)
c - The primitive to AO coefficients
c
c The following are pointers to integer arrays
c
c patomchrg(natoms) - Atomic number of all atoms (X=0, GH=110)
c pfullclss(fullordr)- Class type vector
c pcompclss(compordr)-
c pfullpopv(natoms) - Number of atoms in each orbit
c pcomppopv(natoms) -
c pfullmemb(natoms) - Atoms sorted by point group orbits
c pcompmemb(natoms) -
c pnprimatom(natoms) - Number of primitive functions for each atom
c pnshellatom(natoms)- Number of different angular momentum shells for each
c atom (takes on values of 1,4,9,16, etc.)
c pnangatom(natoms) - The number of different angular momentum for each
c atom (takes on values of 1,2,3,4, etc.)
c pnaoatom(natoms) - Number of AOs for each atom
c pnshellprim(maxshell,natoms)
c - The number of primitive functions in each shell
c of each atom
c pnshellao(maxshell,natoms)
c - The number of AOs in each shell of each atom
c pprimoff(maxshell,natoms)
c paooff(maxshell,natoms)
c - The primcoef matrix is a block diagonal matrix.
c Each shell of each atom has a block. If you have
c a list of all primitive functions, pprimoff(ishell,
c iatom) tells the location of the first primitive
c function in the block (ishell,iatom) and paooff
c contains similar information for the AOs.
c
c ***NOTE*** Because joda stores pfullpopv/pcomppopv as size natoms, we
c do to, but they should be of size fullnorb/compnorb. The
c first ones have real values. The remaining ones are 0.
double precision orientmt(3,3),nucrep
integer natoms,nrealatm,naobasfn,nbastot,linear,compnirr,
& fullnirr,compnorb,fullnorb,compordr,fullordr,nmproton,
& c1symmet,totprim,maxshlprim,maxshlorb,maxshell,noccorb(2),
& nvrtorb(2),maxshlao,maxangmom,natomsx
integer patomchrg,zatommass,zcoord,pfullclss,pcompclss,
& pfullpopv,pcomppopv,pfullmemb,pcompmemb,pnprimatom,
& pnshellatom,pnaoatom,pnshellprim,pnshellao,
& zalpha,zprimcoef,pprimoff,paooff,pnangatom
common /mol_com/ orientmt,nucrep,
& natoms,nrealatm,naobasfn,nbastot,linear,compnirr,
& fullnirr,compnorb,fullnorb,compordr,fullordr,nmproton,
& c1symmet,totprim,maxshlprim,maxshlorb,maxshell,noccorb,
& nvrtorb,maxshlao,maxangmom,natomsx,
& patomchrg,zatommass,zcoord,pfullclss,pcompclss,
& pfullpopv,pcomppopv,pfullmemb,pcompmemb,pnprimatom,
& pnshellatom,pnaoatom,pnshellprim,pnshellao,zalpha,
& zprimcoef,pprimoff,paooff,pnangatom
save /mol_com/
character*4 compptgp,fullptgp
character*1 spinc(2)
common /molc_com/ compptgp,fullptgp,spinc
save /molc_com/
#endif /* _MOL_COM_ */
|