Atmol Integw program, Nijmegen version

With thanks to the Utrecht Theoretical Chemistry Group, who supplied a manual which formed the basis of the present manual.


Table of Contents


Preface


This manual describes the ATMOL Gaussian Integral program INTEGW, as implemented in Nijmegen on the IBM RS/6000, the SUN Enterprise 4000 and SUN HPC10000. The original version of this program was written by V.R. Saunders, (Daresbury Lab. UK) for the CRAY/1S.

Introduction


The ATMOL program for the computation of molecular integrals over contracted Gaussian orbitals is outlined.

The program is capable of evaluating sets of integrals:


The present restrictions of INTEGW are:

Program Specifications


Data is accepted from FORTRAN unit 5, and consists of a sequence of directives. Printed output is routed to FORTRAN unit 6.

The following data sets will be used by the programs:

MAIN FILE:
This dataset contains the evaluated 2-electron atomic integrals. In default mode this dataset is routed to the ATMOL stream ED2. This may be changed through the use of the MAINFILE directive.

DUMP FILE:
This dataset contains information on the geometry and basis set of the system under investigation. It also holds the evaluated 1-electron atomic integrals. The DUMP FILE is assigned by default to ATMOL stream ED3. This can be changed through the use of the DUMPFILE directive.

SCRATCH FILE:
This file is used by the multipole package and must be assigned to ATMOL file ED7.

In the following sections the data directives for INTEGW are presented.


Directives


The TITLE Directive


    The  TITLE  directive  allows  the  user to define up to a 80 character
title for a calculation. This directive extends over two  data  lines.  The
first  line contains the text TITLE in the first data field, the second the
required title.

   example:

       TITLE
       H2O CASE - INTEGRALS



The MULTIPOLE Directive


    The MULTIPOLE directive  allows  the  user to define the maximum
    order of the multipoles to be computed.

    example:

       MULTIPOLE 3

    Multipole integrals up to and including octupoles will be computed
    and stored on the DUMP file (with thanks to Peter Knowles).


The CONVERT Directive


    This  directive  may  be used to specify the units (Angstroms or Atomic
Units) which the user may wish to specify  the  Cartesian  co-ordinates  of
nuclei (see GEOMETRY or GEOMGEN directives) or symmetry centres (see SYMCEN
directive). The directive consists of a single data line read to  variables
TEXTA,TEXTB using format (2A).

    TEXTA   should be set to the character string CONVERT.

    TEXTB   can  be  set  to either ANGSTROM or AU.

    ANGSTROM means that the input Cartesian co-ordinates will be assumed
to be in Angstrom,  and  would be converted to  atomic units by division
by 0.529177249D0. AU (or A.U.) means the input co-ordinates will be
assumed to be in atomic units.

    The CONVERT directive  may  be  omitted,  when  atomic  units  will  be
selected in default.



The GEOMETRY Directive


    The GEOMETRY directive is used to define the  molecular  geometry.  The
first data line, the directive initiator, is read to variables TEXTA, TEXTB
using format (2A).

    TEXTA   should be set to the string GEOMETRY.

    TEXTB   may be set to one of the strings AU (or A.U.) or ANGSTROM,  and
is  used  to  define  the units in which the Cartesian co-ordinates will be
specified. If TEXTB is omitted,  the  units  will  be  as  specified  in  a
preceding CONVERT or GEOMGEN directive, or atomic units in default.

    The  last  line  of  the  GEOMETRY directive, the directive terminator,
consists of the text END in the first data field. Lines  appearing  between
the  initiator and terminator are the 'nucleus definition' lines. Each line
defines   a   given   nuclear   centre,   and   is   read   to    variables
X,Y,Z,CHARGE,TAG using format (4F,2A).

    X,Y,Z   are  the  Cartesian  co-ordinates  of  the given centre, in the
appropriate units.

    CHARGE  is the charge of a given nucleus, the units being such that the
charge  of  the  proton is unity. Negative, zero and fractional charges are
allowed, as well as more usual postive integer values. It is also  possible
to  specify  the  text  DUMMY  instead  of  a  number centre for the CHARGE
parameter. In this case the centre will take no part in the calculation  of
molecular  integrals  (so  that  basis functions cannot be sited on a DUMMY
centre). DUMMY centres have been allowed  to  simplify  the  generation  of
molecular  geometries  when  using  the GEOMGEN directive, and for no other
purpose.

    TAG     is used to  give  the  centre  a  name  by  which  it  will  be
subsequently  known.  TAG  may  be  up to 8 characters long, and should not
include the 'space' character. If  the  m'th  nucleus  definition  line  is
presented  without  a  TAG  parameter, the system will supply the character
string representation of m (expressed as a decimal number) by default.


   example 1:

       GEOMETRY
       0 2.656347 0 1 H1
       -1.533643 0 0 1 H2
       1.533643 0 0 1 H3
       0 .885449 .719722 7 N
       END


   example 2:

       GEOMETRY
       0 2.656347 0 1
       -1.533643 0 0 1
       1.533643 0 0 1
       0 .885449 .719722 7
       END


    The difference between these two examples is the omission  of  the  TAG
parameters  in example 2. Thus centres which the user TAGged H1,H2,H3 and N
in example 1, are TAGged 1,2,3 and 4 respectively by the program in example
2.


The GEOMGEN Directive


    The  GEOMGEN  directive  may  also be used to define the molecular
geometry, either in  conjunction  with  the  GEOMETRY  directive  described
previously  or  alone. The first data line, the directive initator, is read
to variables TEXTA,TEXTB using format (2A).

    TEXTA   should be set to the string GEOMGEN.

    TEXTB   should be set to one of the strings AU (or A.U.)  or  ANGSTROM,
and is used to define the units in which the Cartesian co-ordinates will be
specified. If TEXTB is omitted,  the  units  will  be  as  specified  in  a
preceeding CONVERT or GEOMETRY directive, or atomic units in default.

    The  last  line  of  the  GEOMGEN  directive, the directive terminator,
consists of the text END  in  the  first  data  field.  Lines  between  the
directive  initator and terminator are of different 'types', each 'type' of
line being distinguished by the contents of the first data field. This data
field  is  always read in A format, and should contain one of the following
characters S,C,A or P.

    'S' type lines: Such lines are characterised by the  appearance  of
the  character S in the first data field, and are used to assign a floating
point value to a symbol. The second data field is also read in A format  to
SYMB,  and  should be set to the symbol whose value you wish to define. The
symbol can be up to 8 characters in length, and any ASCII characters  are
allowed.  Successive  data  fields  are  read in pairs, using format (A,X).
Before proceeding further it is necessary to explain the format X, which is
non-standard,  and  used  only in the energy integrals program. When a data
field is read under format X, the field may contain either:

(a) A valid number as readable with format F.

(b) A symbol, whose value has been previously defined.

In both cases a REAL variable will be initialised. In case (a),  the  field
will be read in F format, and the REAL variable initialised accordingly. In
case (b), the REAL variable will be set equal  to  the  previously  defined
value of the symbol.

    At the time when the 'S' type line is read in, a REAL variable VALUE is
initialised  to zero. Each pair of (A,X) data fields is read and causes the
contents of VALUE to be altered according to the specification of OPER  and
the  value of GAMMA, as summarised in Table 1. When processing of all (A,X)
fields is complete,  the  enity  of  VALUE  can  subsequently  be  accessed
symbolically by SYMB.

                            Table 1
                            _______
    Interpretation of (A,X) pairs of data fields on 'S' type lines
    ______________________________________________________________

    OPER                            RESULT
    ____                            ______

      +                         VALUE = VALUE + GAMMA
      -                         VALUE = VALUE - GAMMA
      *                         VALUE = VALUE * GAMMA
      /                         VALUE = VALUE / GAMMA
   SQRT or +SQRT                VALUE = VALUE + DSQRT(GAMMA)
           -SQRT                VALUE = VALUE - DSQRT(GAMMA)
           *SQRT                VALUE = VALUE * DSQRT(GAMMA)
           /SQRT                VALUE = VALUE / DSQRT(GAMMA)
   SIN  or +SIN                 VALUE = VALUE + DSIN(GAMMA)
           -SIN                 VALUE = VALUE - DSIN(GAMMA)
           *SIN                 VALUE = VALUE * DSIN(GAMMA)
           /SIN                 VALUE = VALUE / DSIN(GAMMA)
   COS  or +COS                 VALUE = VALUE + DCOS(GAMMA)
           -COS                 VALUE = VALUE - DCOS(GAMMA)
           *COS                 VALUE = VALUE * DCOS(GAMMA)
           /COS                 VALUE = VALUE / DCOS(GAMMA)
   ASIN or +ASIN                VALUE = VALUE + DARSIN(GAMMA)
           -ASIN                VALUE = VALUE - DARSIN(GAMMA)
           *ASIN                VALUE = VALUE * DARSIN(GAMMA)
           /ASIN                VALUE = VALUE / DARSIN(GAMMA)
   ACOS or +ACOS                VALUE = VALUE + DARCOS(GAMMA)
           -ACOS                VALUE = VALUE - DARCOS(GAMMA)
           *ACOS                VALUE = VALUE * DARCOS(GAMMA)
           /ACOS                VALUE = VALUE / DARCOS(GAMMA)

The following supplementary notes on 'S' type lines may be helpful.

(a) If the symbol to be assigned a value is not one of S,C,A,P or END,
the line may be punched omitting the introductory S. For example,
the two data lines:

     S COSX COS 25.0
     COSX COS 25.0

are equivalent, both resulting in the symbol COSX  being  given  the  value
cos(25).

(b)  If  the  first operation is +, you may omit it. For example, the three
data lines:

     S SIGMA + 1.4
     S SIGMA 1.4
     SIGMA 1.4

all set the value to SIGMA to 1.4.

(c) The argument for COS and SIN functions should be in degrees.

(d) The result from the ACOS and ASIN routines will be in degrees, and  in
the range 0 to 180 (for ACOS) or -90 to 90 (for ASIN).

(e)  The  symbol  T is assigned the value 109.471220634491 (the tetrahedral
angle).

(f) The user may reset any symbol (including T) any number  of  times.  The
maximum number of symbols allowed is 100.

(g)  The user is permitted to set a symbol which takes the form of a number
readable in F format. If this number  appears  in  subsequent  data  fields
which  are  read  in X format, the symbolically ascribed value is used. The
sequence:

       S 1.9 1.8
       S F 1.9

will ascribe the value 1.8 to F.

   example 1:

The following sequence

       R 1.4
       ALPHA 30
       RX R *COS ALPHA
       RY R *SIN ALPHA

gives the values 1.4,  30,  1.4cos(30)  and  1.4sin(30)  to  the  variables
R,ALPHA,RX and RY respectively.

   example 2:

    It  is  required  to  compute the cos of half the tetrahedral angle and
place the result in X. The correct sequence is:

       X T / 2
       X COS X

The line

       X COS T / 2

will not do. The result would be X=COS(T)/2 rather than X=COS(T/2).

   example 3:

    It  is  required to assign the value 1.6 to equal the symbol S, and 1.3
to the symbol P. The following sequence is required:

       S S 1.6
       S P 1.3

Notice  that  the  introductory S is required for both these cases, as they
belong to the S,C,A,P and END group of symbols.

    'C' type lines: Such lines are characterised by the  appearence  of
the  character  C  in  the  first  data  field,  and are used to define the
Cartesian co-ordinates of a given centre in a  manner  closely  similar  to
that  employed  by  the  GEOMETRY  directive. The line is read to variables
TEXT,X,Y,Z,CHARGE,TAG,TSTSYM using format (A,4X,2A).

    TEXT    should be set to the character C.

    X,Y,Z   are the Cartesian co-ordinates of the centre, and these  fields
may  be  set  as  valid  floating  point  numbers,  or as previously defind
symbols.

    CHARGE  is  the  charge  of  the  given  nucleus   in   atomic   number
representation, and this field may be set as a floating point number, or as
a previously defined symbol. It is also possible to specify the text DUMMY,
and  in  this  case  the  centre  will  take  no part in the calculation of
molecular integrals. Notice that the centre will still be  declared  DUMMY,
even  if  the  user has assigned a value to the symbol DUMMY. DUMMY centres
have been allowed so as to permit simplification  of  molecular  geometries
when using 'A' type lines.

    TAG     is  used  to  give  the  centre  a  name  by  which  it will be
subsequently known. If the TAG parameter is omitted, and this is  the  m'th
centre  to  be  defined (including any centres defined in previous GEOMETRY
directives), TAG will be set as the decimal character string representation
of m by default.


   'P'  type lines: Such lines are characterised by the appearence of
the string P  in  the  first  data  field,  and  are  used  to  define  the
co-ordinates  of  the  present centre with respect to the co-ordinates of a
previously defined  centre.  The  line  is  read  to  variables  TEXT,TAGX,
AX,AY,AZ,CHARGE,TAG,TSTSYM using the format (5A,X,2A).

    TEXT     should be set to the character P.

    TAGX     should be set to the TAG of a previously defined centre, which
may have been declared DUMMY.

    AX,AY,AZ these A-fields may be set to  any  of  the  character  strings
X,Y,Z,-X,-Y  or  -Z.  Thus  if  AX is set to -Z, the 'x' co-ordinate of the
present centre will be set to minus  the  'z'  co-ordinate  of  the  centre
nominated by TAGX.

    CHARGE  see definition in above.

    TAG     see definition in above.

   example 1:

    The following data line

       P H1 -X Y Z 1 H2

defines the x, y and z co-ordinates of H2 to  be  equal  to  -x,  y  and  z
co-ordinates respectively of a previously defined centre, H1.

   example 2:

    The following data line

       P C1 -Y X -Z 6 C2

defines  the  x,y  and  z  co-ordinates  of  C2 to be equal to -y, x and -z
co-ordinates respectively of a previously defined centre, C1.

    'A' type lines: Such lines are characterised by the  appearence  of
the  character  A  in  the  first  data  field,  and are used to define the
co-ordinates of the present centre by defining bond lengths and angles with
respect  to three previously defined centres (some or all of which may have
been  declared  DUMMY).  The  line  is   read   to   variables   TEXT,TAGA,
TAGB,TAGC,R,THETA,ALPHA,CHARGE,TAG  using format (4A,4X,2A).

    TEXT    should be set to the character A.

    TAGA,TAGB,TAGC  should  be  set to the TAGs of three previously defined
centres, which will be referred as A,B and C. These centres should *not*  be
collinear.

    R       should  be set equal to the bond length AD, where D will denote
the centre whose co-ordinates one wishes to define. R  may  be  defined  by
means of a symbol, or a floating point number, and will be assumed to be in
atomic units or Angstrom, according to the  user's  specifications  on  the
GEOMGEN, GEOMETRY or CONVERT directives.

    THETA   should  be  set equal to the DAB angle (in degrees), and should
be less than 180 degrees.

    ALPHA   should be set equal to the dihedral angle (in degrees) by which
one must rotate D about the A-B bond (in a clockwise direction) so that the
bonds AD and BC are eclipsed. The user should imagine looking down  the  AB
bond from A to B when performing this rotation.

    CHARGE  see definition in above.

    TAG     see definition in above.


The GTOS Directive


    The GTOS directive provides one method of defining the basis  set.
The  first  line, the directive initiator, consists of the character string
GTOS or GAUSSIAN in the first data field. The last line of  the  directive,
the directive terminator, consists of the text END in the first data field.
Lines between the initiator  and  terminator  define  the  basis  set,  and
consist  of  'group  definition' and 'primitive definition' lines. The data
for each group of contracted functions is introduced in turn, as follows:

(a) The group definition line is read to variables TYPE, TAGA, IFNORM
using (2A,I,A).

    TYPE    should  be  set to one of the characters S,P,D,F,G,H or I
These symbols defines the type of group of basis functions being introduced.

    TAGA    should  be  set  to  a  TAG  of one of the centres (not a DUMMY
centre) defined in a GEOMETRY or GEOMGEN  directive.  The  group  of  basis
functions will be sited on the nominated centre.

    IFNORM = 0  the contractions are to be normalised.
           = -1  the contractions are to be left unnormalised.
           = 999 the  normalisation  procedure used, and the orbital exponent
and contraction coefficients of the primitives are to be as selected  for
the preceding group of basis functions in the data stream.

Note:
=====
     IFNORM has a different meaning in INTEGW. Use only 0 or 999 when
     using this program.

(b) The primitive definition lines follow the group  definition  line,  and
are  used  to  define the contraction coefficients and orbital exponents of
the primitive associated with the group. If NTERM primitives are to be used
(NTERM<21),  NTERM  primitive  definition  lines are required, each read to
CTRAN,ZETA using format (2F).

    CTRAN    the contraction coefficient of the primitive.

    ZETA     the orbital exponent of the primitive.

    The following example defines a poor basis set  for  Ammonia,  the
centre TAGging conventions being used are the example given in the GEOMETRY
directive.

    GTOS
    S H1
    0.18 10.25
    0.86 2.346
    S H2 999
    S H3 999
    S H1
    1.0 0.255
    S H2 999
    S H3 999
    S N
    0.16 3474.0
    0.24 216.6
    S N
    0.8 68.48
    0.61 8.566
    S N
    1.0 0.906
    P H1
    1.0 0.1
    P H2 999
    P H3 999
    P N
    0.22 13.95
    0.43 1.598
    P N
    1.0 0.2609
    END


    Note that there is no restriction as to the ordering of the groups
in  the  input  stream. However the program will internally re-organise the
data to produce a list of ordered functions. A copy of  the  orginal  list,
together with the re-ordered list is printed.



The LIB1 Directive


    *Warning*: This directive has never been used in Nijmegen!

    The  LIB1  directive  may be used to define the basis set, either in
conjunction with the GTOS directive  or  alone.  The  program,  when  under
control  of  the  LIB1  directive, makes reference to a library of basis
functions, the latter being normally stored on a data set assigned  to  the
program using the local file name, ED0. The procedure for construction  and
maintence of a LIBRARY file may be found in the LIBRARY program [3].

    The  first  data  line,  the  directive initiator, is read to variables
TEXT,DDLIB,IBLIB using format (2A,I).

    TEXT    should be set to one of the character strings  LIBRARY,STOS  or
SLATERS.

    DDLIB   should  be  set  to  the  local  ATMOL  name used to assign the
LIBRARY file.

    IBLIB   should be used to specify the starting  block  of  the  LIBRARY
file, and hence is normally 1.

    If  the  LIBRARY  file is on a dataset assigned to the ATMOL file, ED0,
starting at block 1, then both DDLIB and IBLIB may be omitted.

    The last line, the directive terminator, has the character  string  END
in  the  first  data  field.  Data  between  the  directive  initiator  and
terminator defines the basis functions, one data line per  group  of  basis
functions, read to variables NAME,TAGC,SCALE,MERGE using format (2A,F,A).

    NAME    the  name  of  the  contraction  held  on  the LIBRARY file, as
defined when the contraction was placed in the file by the LIBRARY program.

    TAGC    should be set to the TAG of a centre (not a  DUMMY  centre)  as
defined  in  a  GEOMGEN or GEOMETRY directive. The group of basis functions
will be sited at the nominated centre.

    SCALE   the orbital exponents  of  the  primitives  as  read  from  the
library will be multiplied by SCALE**2.

    MERGE   the  MERGE  paramter is detailed for the GTOS directive, and if
omitted, the default NEW is assumed.

    Basis functions will be reordered by the program  so  that  the  lowest
principal quantum number will come first.

   example :

    The  following defines a minimal basis set for ammonia, in which Slater
orbitals were expanded (least squares fit)  in  terms  of  three  Cartesian
Gaussians.  The  LIBRARY  file has been assigned assigned to the ATMOL data
stream MT0:

       LIB1 MT0 1
       1S3 H1 1.0
       1S3 H2 1.0
       1S3 H3 1.0
       1S3 N 6.7
       2S3 N 1.95
       2P3 N 1.95
       END

The example illustrates the following points:

(a) Library contractions names of the form nAm, where n and m  are  decimal
digits,  and  A  denotes  one  of  the  principle quantum number characters
reserved in the system library to  denote  'least  squares'  expansions  of
Slater  orbitals  of  unit  exponent into linear combinations of Gaussians.
Character n, denotes the principal quantum number of  the  Slater  orbital,
whilst  m  denotes the number of Gaussian primitives used in the expansion.
For example, 2S3 is used for the least squares expansion  of  a  Slater  2s
orbital of unit exponent in terms of three 1s Gausssians. All expansions of
this type were taken from [4].

(b) To generate the least squares expansion of a Slater orbital of arbitary
exponent,  given  the  corresponding expansion for a Slater orbital of unit
exponent, it is  necessary  to  multiply  the  exponents  of  the  Gaussian
primitives  by  (Slater exponents)**2, hence the use of the SCALE parameter
in the shown example.

(c) Basis functions are intoduced in groups, as  for  the  GTOS  directive.
Notice  that  the  presence  of  the  COMBINE  directive (not in the INTEGW
program) in the data stream will cause the D  groups  to  be  of  spherical
harmonic form.



The ACCURACY Directive


    This directive consists of a single data line, read to variables
TEXT,I,J,K  using format (A,2I).

    TEXT    should be set to the character string ACCURACY.

    I       a threshold factor, ACC1=10**(-I), is computed. If the absolute
value  of  a  2-electron  integral is less than ACC1, that integral will be
omitted from the output to the MAIN FILE.

    J       a  threshold  factor,  ACC2=10**(-J),  is  computed.   If   the
estimated  absolute  value of a two-centrum 2-electron integral over
primitives is less than ACC2, that integral is not computed, and hence
not taken into  account to form the total integral over the
contracted functions.

    K       a  threshold  factor,  ACC3=10**(-K),  is  computed.   If   the
estimated  absolute  value of a four-centrum 2-electron integral over
primitives is less than ACC3, that integral is not computed, and hence
not taken into  account to form the total integral over the
contracted functions.

    Notes on the ACCURACY directive:

(a) Defaults: 11, 12, and  8 for I, J, and K, respectively.

(b) The smaller the value of I, the smaller will be the size  of  the  MAIN
FILE.

(c) The smaller the values of J and K, the  shorter  will  be  the  computer  time
required.

(d) J must be greater than I.

(e) For large cases, the ACCURACY directive should be set to:

       ACCURACY 7 11 7

to  minimise  the  MAIN  FILE  size  and  the computational expense without
serious degradation to the accuracy of the final result.



The IMIN Directive

    *Warning* The IMIN and IMAX directives have never been used
    in Nijmegen!

    The IMIN directive may be used to effect control of the looping of  the
program  when  evaluating 2-electron integrals. The directive consists of a
single data line  read  to  variables  TEXT,ILOW,JLOW,KLOW,LLOW  using  the
format (A,4I).

    TEXT    should be set to the character string IMIN.

    ILOW,JLOW,LOW,LLOW should  be  set to the integers between 1 and NGROUP
inclusive, where NGROUP denotes the number of groups of basis functions.

    The presence of the IMIN directive will cause the program  to  commence
looping  at  a  user  specified point. The following points should be noted
when using this directive:

(a) ILOW should be greater or equal to the JLOW value.

(b) KLOW should be greater or equal to the LLOW value.

(c) Let M = (ILOW*(ILOW-1))/2 + JLOW
    and N = (KLOW*(KLOW-1))/2 + LLOW
then M should be greater or equal to N.



The IMAX Directive


    The  IMAX directive may be used to effect control of the looping of the
program when evaluating 2-electron integrals. The directive consists  of  a
single  data  line  read  to  variables  TEXT,IHI,JHI,KHI,LHI  using format
(A,4I).

    TEXT    should be set to the character string IMAX.

    IHI,JHI,KHI,LHI may be set to positive values.

    Imagine the program has dumped, such that the 2-electron integrals  are
incomplete,  and  that  the  batch of integrals are positioned at the stage
where I=IHI,  J=JHI,  K=KHI  and  L=LHI  values.  The  program  has  ceased
computation  of  integrals,  and  initiated  a standard dump, recording the
present state of the task to section 191 of the DUMP FILE. Any  attempt  to
restart the task (either with RESTORE or RESTART) without resetting IHI JHI
KHI LHI parameters will prove fruitless, no more integrals will be computed
until a suitable IMAX directive is issued.


The MAINFILE Directive


    The  MAINFILE directive consists of a single dataline read to variables
TEXT,DDMAIN using format (2A).

    TEXT    should be set to the character string MAINFILE.

    DDMAIN  should be set to the ATMOL file used to assign the  dataset  to
be  used  for  the  output  of  the  2-electron  integrals.  The ATMOL file
specified must be one of ED1-ED7 or MT0-MT7.

    The MAINFILE directive may be omitted, when 2-electron  integrals  will
be routed to the ATMOL file ED2.

   example :

       MAINFILE ED5



The DUMPFILE Directive


    The  DUMPFILE directive consists of a single dataline read to variables
TEXT,DDDUMP using format (2A).

    TEXT    should be set to the character string DUMPFILE.

    DDDUMP  should be set to the ATMOL file used to assign the  dataset  to
be   used   for  the  output  of  1-electron  integrals  and  dump  control
information. The ATMOL file can be one of the files ED1-ED7 or MT0-MT7.

    The following points should be noted:

(a) The DUMPFILE and MAINFILE can reside  on  the  same  dataset,  although
different areas of the dataset must be used.

(b) The  DUMPFILE  directive  may  be  omitted,  when  this occurs DUMPFILE
information is routed to the ATMOL file, ED3.

(c) The DUMPFILE directive must  appear  before  ENTER,RESTORE  or  RESTART
directives.

(d) Only one DUMPFILE directive is permitted.

   example :

       DUMPFILE ED1



The IBLOCK Directive


    The IBLOCK directive consists of a single dataline, read  to  variables
TEXT,IBLK using format (A,I).

    TEXT    should be set to the character string IBLOCK.

    IBLK    is  the  integer  used  to specify the starting block number to
which the 2-electron integrals is to commence on the MAIN FILE.

    An IBLOCK directive must appear in the datastream for startup runs. The
IBLOCK  directive  is  ignored  in  restart  runs  containing  the  RESTART
directive, and may optionally be present in  restart  runs  containing  the
RESTORE directive.

   example :

       IBLOCK 101



The MAXBLOCK Directive


    The MAXBLOCK directive consists of a single dataline, read to variables
TEXT,MXBLK using format (A,I).

    TEXT    should be set to the character string MAXBLOCK.

    MXBLK   is an integer used to specify the highest block number to which
writing of 2-electron integrals is allowed on the MAIN FILE.

    The following points should be noted:

(a) The  MAXBLOCK directive may be omitted, when the default value of 99999
will be used for MXBLK.

(b) When the MXBLK block has been  written  to,  the  program  initiates  a
standard dump of the task, and terminates execution.

(c) The MAXBLOCK directive can be used to prevent overlapping of MAIN FILEs
where a number of distinct cases are being run using the  same  dataset  at
the same instant.

(d) The  MAXBLOCK  directive  can  be  used  to  prevent  the  program from
exceeding the physical bounds of the dataset.

(e) In cases of high symmetry, and in particular if a  large  number  of  d
groups  (or  higher)  are  present in the basis set, the size of a batch of
integrals may rise to a very large value. Because the program is unable  to
monitor  the MXBLK setting during the output of a batch of integrals, it is
possible to commence output at a block position beneath MXBLK, but to  have
exceeded the MXBLK parameter when output of the batch is  complete.  It  is
recommended  that  the user consider the accuracy of the program monitoring
of MXBLK be not greater than within  5  blocks,  as  such  this  should  be
considered when assigning the space for the ATMOL dataset.

(f) The MAXBLOCK directive is not functional within the INTEGW program.

   example :

       MAXBLOCK 12500



The SIZE Directive


    The  SIZE  directive  consists  of a single dataline, read to variables
TEXT,ISIZE using format (A,I).

    TEXT    should be set to the character string SIZE.

    ISIZE   is an integer which specifies the maximum size  (in  blocks,  1
block = 512 words) to which the DUMP FILE is allowed to grow too.

    If  the  SIZE  directive is omitted, then the maximum permitted size of
the DUMP FILE is 99999 blocks.

   example :

       SIZE 121



The STOP Directive


    The  STOP  directive  consists  of a single dataline, read to variable
TEXT format (A).

    TEXT    should be set to the character string STOP.

Geometry and orbitals are read in, dump file is prepared and execution
stops. Directive should come before the ENTER directive. This directive
may be used to check integral input.


The NOPRINT Directive


    The  NOPRINT directive  consists  of a single dataline, read to
variables TEXTA TEXTB TEXTC TEXTD TEXTE format (5A).

    TEXTA    should be set to the character string NOPRINT.
    TEXTB    should be set to any of DIST, GROUP, GTOS, or BASIS.
    TEXTC    should be set to any of DIST, GROUP, GTOS, or BASIS.
    TEXTD    should be set to any of DIST, GROUP, GTOS, or BASIS.
    TEXTE    should be set to any of DIST, GROUP, GTOS, or BASIS.

Meaning of strings:
    DIST  --> suppress printing of distance matrix
    GROUP --> suppress list of ordered groups
    GTOS  --> suppress list of ordered GTOS
    BASIS --> suppress list of input basis

This directive should come before the GEOMETRY and GTOS directive.


The BYPASS Directive


    The  BYPASS  directive  consists  of a single dataline, read to variable
TEXTA,  TEXTB format (2A).

    TEXTA    should be set to the character string BYPASS.
    TEXTB    should be set to any the character strings
             TWO, 2, ONE, 1, PROP, or PROPERTY.


    If ONE (or 1) is specified the computation of one-electron integrals
will be bypassed, if TWO (or 2) is specified the computation of two-electron
integrals will be bypassed, if PROPERTY (or PROP) is specified no multipole
moments will be calculated.

   example :

       BYPASS TWO

   The two-electron  integrals will not be calculated.

This directive is convenient in the computation of basis set superposition
errors and counterpoise corrections, since only nuclear attraction
integrals (which are one-electron integrals) are affected by a ghost
orbital treatment.


The SAFETY Directive


    The INTEGRAL program monitors the computer time remaining  for  a  run,
and  when there is insufficient time to continue, a standard dump procedure
is initiated, and execution terminated. The criterion used for initiating a
time controlled dump is :

 Let
    B = The computer time required to complete the previous block of
        integrals (in Sec's).
    S = A safety factor (in Sec's).
    X = The time remaining to the run (in Sec's).

A dump will be initiated if:

    2.5 * B + S is greater or equal to X

    The  default  value  of  S  is  20 Sec's. The SAFETY directive has been
incorporated so that the user may alter S.  The  directive  consists  of  a
single dataline read to variables TEXT,S using format (A,F).

    TEXT    should be set to the character string SAFETY.

    S       should be set to the required timing safety margin (in units of
Sec's).

   example :

       SAFETY 35



The ENTER Directive


    The ENTER directive consists of one dataline, read to variables  TEXT,M
using format (A,I).

    TEXT    should be set to the character string ENTER.

    I       is  an  integer  which  should  set  the  block number at which
writing of the DUMP FILE is to commence.

    The ENTER directive is responsible for the assembly  and  much  of  the
checking ofthe previously presented data, and causes integral evaluation to
commence. Therefore, the ENTER directive appears last in the data stream.

   example :

       ENTER 121



The RESTART Directive


    The following conditions may cause the program to initiate  a  standard
dump:

(a) Insufficient computer time remaining.

(b) The  logical  end  of the MAIN FILE (as set by the MAXBLOCK directive),
has been reached.

(c) The IMAX condition has been realised.

    After such a dump, the user will wish to restart  the  integrals  task,
and  if the reason for the dump was (a), the RESTART directive may be used.
The RESTART directive consists of a  single  dataline,  read  to  variables
TEXT,N using format (A,I).

    TEXT    should be set to the character string RESTART.

    N       should  be  set  to  the  starting  block  of the DUMP FILE, as
specified by the ENTER directive of the startup run.

    The following points should be noted:

(a) The only  directives  which  may  precede  the  RESTART  directive  are
SAFETY,DUMPFILE  and  MAINFILE. All other directives will either be ignored
or cause an error condition.

(b) The RESTART mode causes retrieval of the dump control information  from
section  191  of  the DUMP FILE, and initiates the commencement of integral
evaluation from an appropriate point.

(c) A RESTART job may itself run out of time and initiate a dump.  If  this
occurs, resubmit the RESTART job until the message

             END OF 1-ELECTRON INTEGRALS

is seen on the printed output.

   example :

       RESTART 121



The RESTORE Directive


    Suppose  an  integrals task has produced a standard dump because either
the logical end of the MAIN FILE has been reached, or  the  IMAX  condition
has  been  invoked.  The RESTORE directive may be used to restart the task,
and consists of a single dataline read to  variables  TEXT,N  using  format
(A,I).

    TEXT    should be set to the character string RESTORE.

    N       should  be  set  to  the  starting  block  of  the DUMP FILE as
specified by the ENTER directive of the startup run.

    The RESTORE mode causes retrieval  of  dump  control  information  from
section   191  of  the  DUMP  FILE.  The  program  then  processes  further
directives, which in general will cause various items of data in  the  dump
control  area  to be overwritten, until an ENTER directive is met, when the
program will commence integral evaluation using the  revised  dump  control
area   for   control   purposes.   The  directives  IMIN,IMAX,  IBLOCK,MAIN
FILE,MAXBLOCK,SIZE and SAFETY may appear  between  the  RESTORE  and  ENTER
directives,  whilst the directives SAFTEY,DUMPFILE and MAINFILE may precede
a RESTORE directive.

   example 1:

    If the integral task has reached the logical end of the MAIN FILE. Then
the calculation if to be completed, the 2-electron integrals must be routed
to a new ATMOL data file (starting  at  block  1),  the  ATMOL  file  being
assigned  to  MT2.  It is assumed that the DUMP FILE starts at block 121 on
the ATMOL file assigned to ED4. To complete the task  (given  enough  time)
the data would look like:

       DUMP FILE ED4
       MAIN FILE MT2
       RESTORE 121
       IBLOCK 1
       MAXBLOCK 8000
       ENTER 121

   example 2:

    A  task has required two restarts, and routed its MAIN FILE output to a
ATMOL file dataset assigned to ED2.  Lineprinter  output  produced  by  the
three jobs gave:

 Run 1 -Startup Job
 __________________

       IMIN JMIN KMIN LMIN
          1    1    1    1
       MAIN FILE STARTING AT BLOCK 1
       NEXT BATCH 9 6 7 4
       MAIN FILE AT BLOCK 22

 Run 2 -First Restart Job
 ________________________

       IMIN JMIN KMIN LMIN
          9    6    7    4
       MAIN FILE STARTING AT BLOCK 22
       NEXT BATCH 13 1 12 4
       MAIN FILE AT BLOCK 38

 Run 3 -Second Restart Job
 _________________________

       IMIN JMIN KMIN LMIN
         13    1   12    4
       MAIN FILE STARTING AT BLOCK 38
       END OF 2-ELECTRON INTEGRALS
       MAIN FILE AT BLOCK 72


    It was subsequently found that block 28 of the MAIN FILE  is  unusable.
Note  from  above  that  block  28 was produced in run 2, so that it is now
necessary to repeat run 2, routing output of 2-electron integrals  to  some
other  dataset  (or  possibly  the  same  dataset but in a different area).
Assume in the rescue run, MAIN FILE output is routed to  an  ATMOL  dataset
assigned  to  MT2, starting at block 1, and the original DUMP FILE is on an
ATMOL dataset assigned to ED3, starting at block  121.  The  data  for  the
rescue job would look like:

        MAIN FILE MT2
        RESTORE 121
        IBLOCK 1
        IMIN 9 6 7 4
        IMAX 13 1 12 4
        ENTER 121

The rescue run will produce the following line printer output:

        IMIN JMIN KMIN LMIN
           9    6    7    4
        MAIN FILE STARTING AT BLOCK 1
        NEXT BATCH 13 1 12 4
        MAIN FILE AT BLOCK 17

At SCF evaluation, the MAIN FILE would be split into three sections  spread
over two datasets:

        ATMOL NAME       ED2  MT2  ED2
        STARTING BLOCK   1    1    38
        TERMINATOR BLOCK 22   17   0 (endfile)

The terminator block number for the third section of the MAIN FILE is given
as zero, since this section will be ended by an endfile block.



Basic Directives for an Integral Job


    For the user to startup an Integral job, the following directives  must
be  present  within  the  data  input  stream; GEOMETRY or GEOMGEN, GTOS or
LIB1 (or both), IBLOCK  and  lastly  ENTER.  All  other  directives  are
optional extras, which the user is free to choose from.



Error Monitoring


    The possible ATMOL error codes with a brief explanation  are  given  in
the following table:

  Error Code   Explanation
  __________   ___________

          10   Absolute value of contraction coefficient less than
               10**(-8).
          11   Invalid number of centres (should be 2< and <201).
               Note that the DUMMY centres are included for error
               diagnostics.
          12   A TAG parameter presented in a GEOMETRY or GEOMGEN
               directive is not unique.
          13   Invalid number of groups of basis functions. Should
               be between 1 and 350 inclusive.
          15   Invalid number of basis functions (1< NBASIS< 512).
          16   Directive unknown.
          17   Invalid sequence of parameters in IMIN directive.
          18   DUMP FILE directive appears twice, or after a
               RESTORE directive.
          20   Basis function on undefined centre.
          21   Invalid number of primitives in a contraction.
               Valid range between 1 and 20 inclusive.
          22   MERGE parameter in LIBRARY or GTOS directive not
               recognised.
          23   The first group of basis functions in a GTOS
               directive has IFNORM=999.
          24   The NAME of a library contraction is not known,
               may occur in the LIBRARY directive.
          26   Exponent of primitive Gaussian less then 10**(-8).
          28   Invalid parameters on ACCURACY directive.
          42   Unrecognised ATMOL file name
          50   Invalid parameter in the WIDTH directive.
          61   Index block of DUMP FILE not in correct format.
          62   ATMOL block with invalid checksum has been read,
               or input/output error on ATMOL file.
          64   The dump control area (Section 191) on the
               DUMP FILE is not defined, an attempt has been
               made to access this Section, via a RESTORE
               or RESTART directive.
          66   ATMOL data set not assigned.
          67   Illegal search of an ATMOL data set.
          68   A data field was read in F-format, and an
               illegal character found.
          69   A data field was read in I-format, and an
               illegal character found.
          70   SIZE directive specifies a maximum size
               less than the current length.
          71   An attempt has been made to write beyond
               the logical end of the DUMP FILE.
         120   Attempt to "EQUAL" basis sets for undefined centers.
         401   An operator does not appear between two
               symbols on an S type line of the GEOMGEN
               directive.
         402   Too many symbols have been defined in the
               GEOMGEN directive (Maximum is 100).
         403   An attempt to divide by a number whose absolute
               value is less than 10**(-8) whilst trying to
               evaluate a symbol.
         404   Less than three centres have been defined, and an
               A type line has been met in a GEOMGEN directive.
         405   Centre not known. This diagonostic may be produced
               when processing A type lines of the GEOMGEN directive.
         406   The centres A, B and C defined on an A type line
               of the GEOMGEN directive are collinear.
         407   No centres have been defined, and a P type line
               in the GEOMGEN directive has been met.
         408   The TAGX paramter of a P type line in the GEOMGEN
               directive is not known.
         409   The fields AX, AY, AZ have not been set to any
               of X, Y, Z, -X, -Y or -Z in a P type line of a
               GEOMGEN directive.
         415   The distance between two centres has been found
               to be less than 10**(-3) atomic units.
         416   The paramter of the CONVERT, GEOMETRY or GEOMGEN
               line was not set to AU, A.U. or ANGSTROM. Omission
               of this parameter will not, however, cause an
               error diagnostic.
         501   The MOLECULE directive was called more than once.
         502   The maximum number of molecules was exceeded in the
               MOLECULE directive.
         503   The total number of atoms in the MOLECULE directive
               exceeded the maximum.
         666   End of file condition detected on FORTRAN unit 5.
               The program requires more data.
         999   Insufficient main memory for the program to continue.



Specimen Job

Specimen Job: The H2O molecule. Here the INTEGW program is used to evaluate the Gaussian integrals. The input geometry is supplied by the GEOMGEN directive, and not the explicit cartesian co-ordinates. The total number of basis functions generated is 25.
     TITLE
     (H2O) INTEGW
     CONVERT ANGSTROM
     GEOMGEN
     OH 0.957
     ALPHA 104.52
     ALP2 ALPHA / 2
     RZ OH *COS ALP2
     RY OH *SIN ALP2
     C 0.0 0.0 0.0 8 O1
     C 0.0 RY RZ 1 H1
     P H1 X -Y Z 1 H2
     END
     GTOS
     S O1
     0.002031 7816.54
     0.015436 1175.82
     0.073771 273.188
     0.247606 81.1696
     0.611832 27.1836
     0.241205 3.41360
     S O1
     1.0 9.5322
     S O1
     1.0 0.9398
     S O1
     1.0 0.2846
     P O1
     0.019580 35.1832
     0.124189 7.9040
     0.394727 2.3051
     0.627375 0.7171
     P O1
     1.0 0.2137
     D O1
     1.0 0.88
     S H1
     0.032828 19.2406
     0.231208 2.8992
     0.817238 0.6534
     S H2 999
     S H1
     1.0 0.1776
     S H2 999
     P H1
     1.0 1.20
     P H2 999
     END
     MAINFILE ED2
     DUMPFILE ED3
     ACCURACY 7 11
     IBLOCK 1
     ENTER 1