Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

g94_globals.h

00001 /* $ID: g94_globals.h
00002  *
00003  * Global variables of Gaussian-94
00004  * for HARLEM and other program using Gaussian
00005  */
00006 
00007 #ifndef G94_GLOBALS_H
00008 #define G94_GLOBALS_H
00009 
00010 #ifdef __cplusplus
00011 extern "C" {
00012 #endif
00013 
00014 
00015 #include "f2c.h"
00016 
00017 #if defined(GAUSS94)
00018 #define GAUSSVER 94
00019 #else
00020 #define GAUSSVER 98
00021 #endif
00022 /* GAUSSIAN Chk-point files numbers:  Description is in L1.F */
00023 
00024 #ifdef  DEFMAXATM
00025 const int MAXATM  = DEFMAXATM;
00026 #else
00027 #if GAUSSVER == 94
00028 /* default for G94 */
00029   const int MAXATM = 1000;
00030 #else
00031 /* default for G98 */
00032   const int MAXATM = 20000;
00033 #endif
00034 #endif
00035 
00036 const int MAXAT1 = MAXATM+1;
00037 
00038 #ifdef  DEFMAXSHL
00039   const int MAXSHL  = DEFMAXSHL;
00040 #else
00041 #if GAUSSVER == 94
00042   /* default for G94 */
00043   const int MAXSHL = 2500;
00044 #else
00045   /* default for G98 */
00046   const int MAXSHL = 20000;
00047 #endif
00048 #endif
00049 
00050 const int MAXPRM = 3*MAXSHL;
00051 const int MAXSH1 = MAXSHL+1;
00052 
00053 #ifdef  DEFMAXNZ
00054 const int MAXNZ = DEFMAXNZ;
00055 #else
00056 #if GAUSSVER == 94
00057   /* default for G94 */
00058   const int MAXNZ = 1200;
00059 #else
00060   /* default for G98  */
00061   const int MAXNZ = 20000;
00062 #endif
00063 #endif
00064 
00065 #if GAUSSVER == 94
00066 const int  MAXSUB = 40;
00067 const int  MAXDIR = 80*sizeof(int);
00068 #else
00069 const int  MAXSUB = 40;
00070 const int  MAXDIR = 80*sizeof(int);
00071 #endif
00072 
00073 /* GAUSSIAN COMMON DEFINITIONS */
00074 
00075 typedef struct {             // description in L1.F
00076   integer    natoms;         
00077   integer    icharge;        
00078   integer    multip;         
00079   integer    nae;            
00080   integer    nbe;            
00081   integer    ne;             
00082   integer    nbasis;         
00083 #if GAUSSVER == 94
00084   integer    ian[MAXAT1];    
00085 #else
00086   integer    ian[MAXATM];    
00087 #endif 
00088   doublereal atmchg[MAXATM]; 
00089   doublereal c[MAXATM][3];   
00090 
00091 
00092 #if GAUSSVER == 98
00093   integer    iattyp[MAXATM];  
00094   doublereal atchmm[MAXATM];
00095 #endif
00096 } mol_type;
00097 
00098 struct b_type{
00099   doublereal exx[MAXPRM];
00100   doublereal c1[MAXPRM];
00101   doublereal c2[MAXPRM];
00102   doublereal c3[MAXPRM];
00103   doublereal x[MAXSHL];
00104   doublereal y[MAXSHL];
00105   doublereal z[MAXSHL];
00106   integer    jan[MAXSHL];
00107   integer    shella[MAXSHL];
00108   integer    shelln[MAXSHL];
00109   integer    shellt[MAXSHL];
00110   integer    shellc[MAXSHL];
00111   integer    aos[MAXSHL];
00112   integer    aon[MAXSHL];
00113   integer    nshell;
00114   integer    maxtyp;
00115 };
00116 
00117 typedef struct
00118 {
00119         integer maxm[2];
00120 } maxmem_type;
00121 
00122 
00123 typedef struct {
00124   doublereal scale[MAXSHL];
00125 } scale_type;
00126 
00127 //      COMMON /B/
00128 
00129 //      EXX    ... CONTAINS THE GUASSIAN EXPONENTS FOR ALL THE
00130 //                 THE PRIMITIVE SHELLS.  THE ARRAY SHELLA
00131 //                 CONTAINS POINTERS INTO EXX FOR THE VARIOUS
00132 //                 PRIMITIVE SHELLS.
00133 //      C1     ... CONTAINS THE S COEFFICIENTS FOR ALL THE PRIMITIVE
00134 //                 SHELLS.  INDEXED BY SHELLA.
00135 //      C2     ... CONTAINS THE P COEFFICIENTS FOR THE PRIMITIVE
00136 //                 SHELLS.  INDEXED BY SHELLA.
00137 //      C3     ... THIS ARRAY REALLY CONSISTS OF 3 SUB-ARRAYS
00138 //                 (EACH 400 WORDS LONG) THAT CONTAIN THE
00139 //                 D AND F COEFFICIENTS PLUS THE D AND F
00140 //                 POINTER TABLE FOR D AND F TYPE SHELLS.
00141 //                 THESE ARRAYS ARE C3, C4 AND SHLADF, RESPECTIVELY.
00142 //      X      ... THE X-CARTESIAN COORDINATE FOR EACH OF THE
00143 //                 PRIMITIVE SHELLS.
00144 //      Y      ... THE Y-CARTESIAN COORDINATE FOR EACH OF THE
00145 //                 PRIMITIVE SHELLS.
00146 //      Z      ... THE Z-CARTESIAN COORDINATE FOR EACH OF THE
00147 //                 PRIMITIVE SHELLS.
00148 //      JAN    ... Number of the center associated with each shell.
00149 //      SHELLA ... SHELLA(I) CONTAINS THE STARTING LOCATION
00150 //                 WITHIN (EXX,C1,C2) OF THE DATA
00151 //                 (EXPONENTS, S-COEFFICIENTS, P-COEFFICIENTS)
00152 //                 FOR THE I-TH PRIMITIVE SHELL.
00153 //      SHELLN ... SHELLN(I) CONTAINS THE NUMBER OF PRIMITIVE
00154 //                 GAUSSIANS IN THE I-TH PRIMITIVE SHELL.
00155 //      SHELLT ... CONTAINS THE MAXIMUM ANGULAR QUANTUM NUMBER
00156 //                 OF THE I-TH SHELL.
00157 //      SHELLC ... CONTAINS THE SHELL CONSTRAINT FOR THE I-TH
00158 //                 SHELL (SEE TABLE BELOW).
00159 //      AOS    ... AOS(I) GIVES THE STARTING ATOMIC ORBITAL BASIS
00160 //                 FUNCTION NUMBER (IE NUMBER WITHIN THE LIST
00161 //                 OF ATOMIC ORBITAL BASIS FUNCTIONS) OF THE
00162 //                 I-TH SHELL.  NOTE THAT AOS IS ALWAYS FILLED
00163 //                 AS THOUGH THE SHELL CONTAINED ALL POSSIBLE
00164 //                 LOWER ANGULAR MOMENTUM FUNCTIONS.  SEE ROUTINE
00165 //                 GenBas FOR DETAILS ON HOW AOS IS FILLED.
00166 //      AON    ... Name of the shell (e.g. 2SI, 5D, 10F).
00167 //      NSHELL ... THE NUMBER OF PRIMITIVE SHELLS.
00168 //      MAXTYP ... THE HIGHEST ANGULAR QUANTUM NUMBER PRESENT
00169 //                 IN THE BASIS.
00170 
00171 //      THE FOLLOWING TABLE SUMMARIZES THE RELATIONSHIP BETWEEN
00172 //      SHELLT AND SHELLC.
00173 
00174 //      =========================================
00175 //      TYPE   FUNCTIONS          SHELLT   SHELLC
00176 //      =========================================
00177 //        S     S                     0        0
00178 //       SP     S PX PY PZ            1        0
00179 //      SPD     S PX PY PZ            2        0
00180 //              XX YY ZZ XY XZ YZ
00181 //        P     PX PY PZ              1        1
00182 //        D     XX YY ZZ XY XZ YZ     2        2
00183 //        F     XXX YYY ZZZ XYY       3        2
00184 //              XXY XXZ XZZ YZZ
00185 //              YYZ XYZ
00186 //      =========================================
00187 
00188 
00189 
00190 typedef struct {
00191   integer nchain;
00192   integer idum;
00193 } nchain_type;
00194 
00195 typedef struct {
00196   integer iunit[20]; // see description in L1.F
00197 } munit_type;
00198 
00199 
00200 //       COMMON/MUNIT/ IUNIT(20)
00201 
00202 //       DEFINES THE UNIT NUMBERS FOR ALL EXTERNAL DATA FILES NEEDED
00203 //       BY GAUSSIAN.  IUNIT IS INITIALIZED BY SUBROUTINE DEFUNT IN
00204 //       LINK 1.
00205 //       THE PURPOSE OF THIS COMMON IS TO CENTRALIZE THE DEFINITIONS
00206 //       OF THE FORTRAN LOGICAL UNITS REQUIRED IN THE GAUSSIAN SYSTEM.
00207 //       THUS, IF IT IS EVER NECESSARY TO CHANGE TO DIFFERENT LOGICAL
00208 //       UNITS ON ANOTHER MACHINE, ONE SHOULD BE ABLE TO MERELY
00209 //       CHANGE THE DEFINITIONS IN DEFUNT.
00210 
00211 
00212 //       =================================================================
00213 //       IUNIT( )            USE
00214 //       =================================================================
00215 //          1           NOT USED.
00216 //          2           PRIMARY FORTRAN INPUT (internal input file).
00217 //          3           PRIMARY FORTRAN PRINTED OUTPUT.
00218 //          4           PRIMARY FORTRAN PUNCHED OUTPUT.
00219 //          5           NOT USED.
00220 //          6           NOT USED.
00221 //          7           NTRAN unit for the read-write file.
00222 //                      Effectively hard-wired to 1 everywhere.
00223 //          8           Fortran I/O unit for DRT information.  See L806
00224 //                      for details.  Not used in standard SDGuga routes.
00225 //          9           CHECK-POINT FILE.
00226 //          12          INTEGRALS.
00227 //          13          Sorted AO integrals.
00228 //          16          D2E UNIT.
00229 //          17          Output unit for the archive entry.  Not used under
00230 //                      VAX/VMS or Cray/COS.
00231 //          18          ECP formula tape unit.
00232 //          19          Polyatom integral tape unit.
00233 //      ==================================================================
00234 
00235 
00236 typedef struct {
00237   doublereal  phycon[30];
00238 } phycon_type;
00239 
00240 //       COMMON /PHYCON/ PHYCON(30)
00241 //
00242 //       THIS COMMON BLOCK HOLDS THE VALUES OF THE PHYSICAL CONSTANTS
00243 //       WHICH ARE USED IN THE PROGRAM.  IT IS INITIALIZED BY SUBROUTINE
00244 //       PHYFIL IN LINK1 WHICH ALSO DOCUMENTS THE SOURCES FOR THE NUMBERS.
00245 //
00246 //       PHYCON( 1) ... TOANG,  ANGSTROMS PER BOHR
00247 //       PHYCON( 2) ... TOKG,   KILOGRAMS PER AMU
00248 //       PHYCON( 3) ... TOE,    ESU PER ELECTRON CHARGE
00249 //       PHYCON( 4) ... PLANK,  PLANK CONSTANT
00250 //       PHYCON( 5) ... AVOG,   AVOGADRO NUMBER
00251 //       PHYCON( 6) ... JPCAL,  JOULES PER CALORIE
00252 //       PHYCON( 7) ... TOMET,  METRES PER BOHR
00253 //       PHYCON( 8) ... HARTRE, JOULES PER HARTRE
00254 //       PHYCON( 9) ... SLIGHT, SPEED OF LIGHT
00255 //       PHYCON(10) ... BOLTZ,  BOLTZMAN CONSTANT
00256 //       PHYCON(11) ... Fine structure constant.
00257 //       PHYCON(12) ... EMKG, Electron mass in KG.
00258 //       PHYCON(13) ... NOT USED AT PRESENT
00259 
00260 
00261 typedef struct {
00262   integer  iop[50];
00263 } iop_type;
00264 
00265 typedef struct {
00266   integer  nsubst;
00267   integer  ipdsub;
00268   integer  linkn  [MAXSUB];
00269   integer  lendir [MAXSUB];
00270   integer  linkd  [MAXSUB][MAXDIR];
00271 } substn_type;
00272 
00273 typedef struct {
00274   doublereal tstart[3];
00275   doublereal tstop[3];
00276   doublereal elapsd[3];
00277  } clcks_type;
00278 
00279 typedef struct {
00280   integer killnk;
00281   integer kilcnt;
00282   integer refcnt;
00283   integer kill;
00284   integer numprc;
00285   integer klpd1[2];
00286   doublereal jobtim;
00287  } kjob_type;
00288 
00289 typedef struct {
00290    logical debug;
00291    integer ntrout;
00292 } ntr002_type;
00293 
00294 typedef struct {
00295   integer ispect;
00296   integer lspect;
00297   integer nrorb;
00298   integer noa;
00299   integer nva;
00300   integer nob;
00301   integer nvb;
00302   integer noaob;
00303   integer noava;
00304   integer noavb;
00305   integer nobva;
00306   integer nobvb;
00307   integer nvavb;
00308   integer noa2;
00309   integer noa3;
00310   integer nob2;
00311   integer nob3;
00312   integer nva2;
00313   integer nva3;
00314   integer nvb2;
00315   integer nvb3;
00316   integer novaa;
00317   integer novab;
00318   integer novbb;
00319   integer maxbuc;
00320   integer ieval;
00321   integer ioab;
00322   integer loab;
00323 } orb_type;
00324 
00325 typedef struct {
00326   integer idb1;
00327   integer idb2;
00328   integer idb3;
00329   integer idb4;
00330   integer idb5;
00331   integer idb6;
00332   integer idb7;
00333   integer idb8;
00334   integer idb9;
00335   integer idb10;
00336   integer idb11;
00337   integer idb12;
00338   integer idb13;
00339   integer idb14;
00340   integer idb15;
00341   integer idb16;
00342   integer idb17;
00343   integer idb18;
00344   integer idb19;
00345   integer idb20;
00346   integer idb21;
00347   integer iad1;
00348   integer iad2;
00349   integer iad3;
00350   integer ias1;
00351   integer ias2;
00352   integer iwd1;
00353   integer iwd2;
00354   integer iwd3;
00355   integer iws1;
00356   integer iws2;
00357   integer iscr1;
00358   integer iscr2;
00359   integer iscr3;
00360   integer iscr4;
00361   integer iscr5;
00362   integer iscr6;
00363   integer iscr7;
00364   integer iscr8;
00365   integer iscr9;
00366   integer iscr10;
00367   integer iscr11;
00368   integer iscr12;
00369   integer iscr13;
00370   integer iscr14;
00371   integer iscr15;
00372   integer iscr16;
00373   integer iscr17;
00374   integer iscr18;
00375   integer iscr19;
00376 } bucknr_type;
00377 
00378 typedef struct {
00379   integer in;   
00380   integer iout;
00381   integer ipunch;
00382 } io_type;
00383 
00384 typedef struct {
00385   integer nsymop;
00386   integer nreps;
00387   integer lblrep[32];
00388   doublereal chrtbl[16][10];
00389   doublereal symops[10][9];
00390   integer iprmut[10][MAXATM];
00391 } repcom_type;
00392 
00393 typedef struct {
00394   integer ismode;
00395   integer mode;
00396   integer istat;
00397   integer last;
00398   integer ntx;
00399   integer iux[5];
00400   integer icon;
00401   integer nrpext;
00402   integer knit1;
00403   integer knit2;
00404   integer ibase;
00405   integer ibasd[2];
00406   integer dbase;
00407   integer dbasd[2];
00408   integer ireset[2];
00409   integer iq;
00410   integer ifil;
00411   integer intcnt;
00412   integer itotal;
00413   integer limint;
00414   integer nwpi;
00415   integer nwiib;
00416   integer isym2e;
00417 } ibf_type;
00418 
00419 #ifdef GAU_MAIN
00420 
00421 int      f77argc  = 0;     /*   command line arguments          */
00422 char*    f77argv  =NULL;   /*   for fortran getarg and iargc    */
00423 
00424 #else
00425 
00426 extern int     f77argc ;     /*   command line arguments          */
00427 extern char*   f77argv ;     /*   for fortran getarg and iargc    */
00428 
00429 #endif
00430 
00431 #if defined(GAUSSVER)
00432 
00433 /* Gaussian COMMONS */
00434 
00435 extern mol_type     mol_;
00436 extern integer      info_[20];  // see description in L1.F
00437 extern nchain_type  nchain_;
00438 extern munit_type   munit_;
00439 extern phycon_type  phycon_;
00440 extern iop_type     iop_;
00441 extern substn_type  substn_;
00442 extern clcks_type   clcks_;
00443 extern kjob_type    kjob_;
00444 extern ntr002_type  ntr002_;
00445 extern b_type       b_;
00446 extern b_type       b2_;
00447 extern orb_type     orb_;
00448 extern bucknr_type  bucknr_;
00449 extern io_type      io_;
00450 extern repcom_type  repcom_;
00451 extern ibf_type     ibf_;
00452 extern scale_type   scale_;
00453 extern maxmem_type  maxmem_;
00454 
00455 #endif
00456 
00457 #ifdef __cplusplus
00458         }
00459 #endif
00460 
00461 
00462 #endif  /* End G94_GLOBALS_H */

Generated on Tue Feb 17 02:03:03 2004 for harlem by doxygen 1.3.6