The Atmol SCF 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 SCF program, as implemented in Nijmegen on the IBM RS/6000 and the SUN Enterprise 4000. The original version of this program was written by V.R. Saunders and M.F. Guest (Daresbury, UK).

Introduction


In this document a program is described capable of performing closed and open shell restricted and unrestricted Hartree-Fock calculations and Boys localisation of molecular orbitals.

Program Specification


The following modules are available:

Data input and printed output are on FORTRAN streams 5 and 6 respectively. Punched output is sent to FORTRAN stream 7.

The following files are needed:
MAIN FILE:
this contains the atomic 2-electron integrals generated via the integrals program. This data set can be assigned to any of ED0 to ED6 or MT0 to MT7, the default is ED2.
DUMP FILE:
this data set contains general information such as the geometry and basis set of the system under investigation as well as the atomic 1-electron integrals. The SCF program also outputs the eigen vectors on termination of the SCF program to the DUMP FILE. This data set can be assigned to any of ED0 to ED6 or MT0 to MT7, the default is ED3.
SCRATCH FILE:
the SCF program requires a data set to be made available to be used as a scratch area for transient data handling. This data set is assigned to file ED7.

The First Data Line



Data is read from FORTRAN unit 5. The syntax of the first line is:
     PROG NBASIS NCORE IBLKD [ DDUMP [ INTSEC ] ]
where
PROG
This is a string which allows the selection of the appropriate module. The string may be set to SCF, RHF, SERHF, GRHF, UHF or BOYS.
NBASIS
This is an integer specifying the number of basis functions as defined at integral evaluation time.
NCORE
This is an integer specifying the number of doubly occupied orbitals.
NOPEN
This is an integer specifying the number of open shell orbitals.
IBLKD
This is an integer specifying the number of the starting block of the DUMP FILE.
DDUMP
This is a string specifying the ATMOL file name used to assign the DUMP FILE. If the DDUMP parameter is omitted, the DUMP FILE will be assumed to reside on a data set assigned to ED3.
INTSEC
This is an integer specifying the section number of the 1-electron integrals. By default the programs assumes that the 1-electron integrals reside on section 192. Note that if INTSEC is specified DDUMP should be specified also.
The remainder of the data consists of directives. The directive structure applicable to each program will be outlined in this manual.

The Directives of the Closed Shell SCF Program


The Directives of the Open Shell RHF Program


The Directives of the Symmetry Equivalenced RHF Program
The Directives for the General RHF Program
The Directives of the Unrestricted Hartree-Fock Program
The Directives of the BOYS Localisation Program

Directives Structure


The directives for the programs may be presented in any order, unless otherwise specified.

The Directives of the Closed Shell SCF Program




The TITLE Directive

    This  directive allows the user to define an 80 character title for the
run, and extends over two data lines. The first line contains the character
string TITLE in the first data field, the second line contains the required
80 character title.

   example :

       TITLE
       H2O   CLOSED SHELL


The MAXCYC Directive

    This  directive consists of one data line, read to variables TEXT, MAXC
using format (A,I).

    TEXT    should be set to the character string MAXCYC.

    MAXC    is an integer used to specify the maximum number  of  iteration
cycles required.

    The directive may be omitted when MAXC will be set to the default value
of 50.

    The following conitions cause termination of iteration:

(a) When the desired accuracy is reached, iteration of the SCF cycle stops.

(b) If the job time remaining is insufficient to complete another iterative
cycle,  or  the maximum number of cycles as set by the MAXCYC directive (or
default) has completed, causes iteration to cease.


The MFILE Directive

    This directive is used to define the location of the MAIN  FILE  to  be
used  as a source of 2-electron integrals, and consists of four data lines,
the first containing the character string MFILE in the first data field.

    Consider the case where the MAIN FILE is  split  into  LTAPE  sections,
then the remaining 3 lines of the MFILE directive is consists of LTAPE data
fields.

    The  second  line  is  read  to  variables  (DDMAIN(I),  I=1,LTAPE)  in
A-format. DDMAIN(I) specifies the ATMOL file used to assign the data set in
which the I'th section of the MAIN FILE is to be found. The value of  LTAPE
is determined by the program from the number of data fields on this line.

    The third line is read to variables (IBLK(I), I=1,LTAPE)  in  I-format.
IBLK(I)  specfies the starting block number of the I'th section of the MAIN
FILE.

    The fouth line is read to variables (LBLK(I), I=1,LTAPE)  in  I-format.
LBLK(I)  defines the block number of the first vacant or unused block after
the I'th section of the MAIN FILE. Thus the number of blocks  in  the  I'th
section  will  be given by LBLK(I)-IBLK(I). If the I'th section is known to
be an ENDFILE block, LBLK(I) may be set to zero.

   example :

    A MAIN FILE consists of three sections, stored on data sets assigned as
ED2,MT2,MT3  all  starting  at block 1, and all ending with ENDFILE blocks.
The appropriate MFILE directive is as follows:

       MFILE
       ED2 MT2 MT3
       1 1 1
       0 0 0


The SIZE Directive

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

    TEXT    should be set to the character string SIZE.

    ISIZE   is an integer used to specify the maximum size (in  blocks)  to
which the DUMP FILE is allowed to grow.

    The  SIZE directive may be used to overide the previous SIZE assignment
as given by the integrals program.

   example :

       SIZE 90


The CTRANS Directive

    The CTRANS directive may be used to define a  basis  set  for  the  SCF
calculation,  where the basis functions comprise linear combinations of the
orginal basis as defined at the integral evaluation [2]. The  acronym  LCBF
(Linear  Combined  Basis  Function)  will be used when referencing a linear
combination defined by the CTRANS directive. The first data line is read to
variables TEXT,N using format (A,I).

    TEXT    should be set to the character string CTRANS.

    N       is  an  integer specifying that the first N 'LCBF' are to equal
to the first N 'orginal' basis functions. N may  be  omitted,  when  it  is
given value zero.

    Data  concerning  further  LBCF to be appended to the list generated by
the first directive is presented next. Each LCBF is introduced in turn.  If
a LCBF required NTRAN terms, NTRAN data lines would  be  required  for  its
definition.  The  first  being read to variables C,ITRAN,NTRAN using format
(F,2I). The ITRAN'th 'original' basis function will be included in the LCBF
with coefficient C. The value of NTRAN specifies the number of terms within
the linear combination, and NTRAN-1 successive  data  lines  will  then  be
read, (if NTRAN=1, no further lines required), each being read to variables
C,ITRAN using format (F,I). The ITRAN'th 'original' basis function will  be
included with coefficient C. When all data concerning all the LCBF has been
supplied, the directive is terminated by a line  containing  the  character
string END in the first data field.

    The following points may prove helpful:

(a) Each LCBF will be normalised by the SCF program.

(b) The total number of LCBF (denoted NEWBAS) must be less than or equal to
the number of 'orginal' basis functions (denoted NBASIS).

(c) The CTRANS directive may be  omitted,  when  NEWBAS  is  set  equal  to
NBASIS, the calculation being performed in the 'original' basis set.

(d) The  total  number  of terms in all the LCBF should be not greater than
300.

(e) If the CTRANS directive is invoked, this directive must precede any  of
the LOADQ directives, otherwise an error code will ensue.

   example 1:

    An  integral  evaluation  was  performed  with  8  basis functions. The
calculation is to be performed in the following basis set: LCBF 1 to 6  are
to  be  the  same  as  'original' basis functions 1 to 6, and symmetric and
anti-symmetric combiantions of the 'original' basis functions 7 and  8  are
to be taken. The CTRANS data would be presented as:

       CTRANS 6
       1 7 2
       1 8
       1 7 2
       -1 8
       END

   example 2:

    An integral evaluation was performed with 15  basis  functions.  It  is
necessary to perform a calculation with 'original' basis functions 11 to 15
removed. The CTRANS data would consist of:

       CTRANS 10
       END

    For  small  cases,  the  use  of the CTRANS directive to 'delete' basis
functions is convenient.


The FPRINT Directive

    This directive is used  to  control  the  quantity  of  printed  output
produced  at  convergence (or at non-convergence if the OUTPUT directive is
specified). The FPRINT directive may be used  to  increase  the  volume  of
printing,  which  consists  of  one  data  line set to the character string
FPRINT in the  first  data  field.  Subsequent  data  fields  are  read  in
A-format,  and  specify that printing as detailed in Table 1 is to occur at
convergence.

         Table 1: Paramaters of the FPRINT Directive
         ___________________________________________

         Data Field               Printing of
         __________               ___________

             S                    Matrix of overlap integrals over the
                                  LCBF.
             T                    Matrix of kinetic energy integrals
                                  over the LCBF.
             T+V                  Matrix of integrals for the 1-electron
                                  part of the Hamiltonian operator.
             FOCK                 Roothaan-Hartree-Fock matrix.
             POPS                 Basis function Mulliken overlap
                                  populations.
             R                    The 1-particle density matrix.
             X                    The matrix of integrals over the X
                                  component of the dipole operator.
             Y                    The matrix of integrals over the Y
                                  component of the dipole operator.
             Z                    The matrix of integrals over the Z
                                  component of the dipole operator.

   example :

       FPRINT FOCK POPS

will cause  printing  of  the  Fock  and  overlap  population  matrices  at
convergence (or non-convergence if the OUTPUT directive is included).


The PUNCH Directive

    This directive consists of one data line, the first data field of which
contains  the  character  string  PUNCH.  Subsequent  data  fields  are  in
A-format,  and specify that 'punching' (to FORTRAN stream 7) is to occur at
convergence (or non-convergence  if  the  OUTPUT  directive  with  a  CARDS
paramater is used). The other data fields may be set to:

    VECTORS specifies that converged eigen vectors are to be punched.

    MOPOPS  specifies   that   the  population  numbers  of  the  converged
molecular orbitals are to be punched.

    EVALUES specifies that the converged eigen values are to be punched.

    FOCK specifies that the FOCK matrix is to be punched.

    If the second parameter is omitted and the  character  string  PUNCH  is
included, this is equivalent to the coding

              PUNCH VECTORS


    The format used for the punched output:

    VECTORS: The first line punched will be the title of the run  (as  read
from  the  TITLE  directive).  The  second  punched  line contains the text
VECTORS in columns 1 to 7, a space character in column 8, and in  column  9
to  16  the  FORTRAN  format to be used for the punching of the vectors, as
specified by the FORM1 paramter of the FORMAT directive, or  to  5F16.9  in
the  absence of the FORMAT directive. The eigen vectors are then punched by
means of code of the form:

   WRITE(7,FORM1)((Q(I,J),I=1,NEWBAS),J=1,NEWBAS)

where FORM1 denotes the format specified by  the  FORM1  parameter  of  the
FORMAT directive (or default 5F16.9).

    MOPOPS:  The  first  line punched consists of the title of the run. The
second line contains the text MOPOPS in columns 1 to 6, a  space  character
in column 7, and the FORTRAN format (as specified by the FORM2 parameter of
the FORMAT directive, or 5F16.9 in default) to be  used  for  punching  the
molecular  orbital populations is punched in columns 8 to 15. The molecular
orbital populations are then punched, by means of the code:

   WRITE(7,FORM2)(POP(I),I=1,NEWBAS)

In the case of the closed shell SCF program, the  first  NCORE  populations
will equal 2, the remainder being zero.

    EVALUES:  The  first line punched consists of the title of the run. The
second line contains the text EVALUES in columns 1  to  7,  followed  by  a
space  character  in  column 8, an then the FORTRAN format (as specified by
the FORM3 parameter of the FORMAT directive or 5F16.9  in  default)  to  be
used for punching the eigen values in columns 9 to 16. The eigen value  are
then punched by means of the code:

   WRITE(7,FORM3)(EIG(I),I=1,NEWBAS)


The FORMAT Directive

    This  directive  is  used for specifying the FORTRAN formats to be used
for punching VECTORS,MOPOPS and EVALUES. The directive consists of one data
line read to variables TEXT,FORM1,FORM2,FORM3 using format (4A).

    TEXT    should be set to the character string FORMAT.

    FORM1,FORM2,FORM3 are  the parameters referred to in the description of
the PUNCH directive which control the printing of the VECTORS,  MOPOPS  and
EVALUES.

    If  the  paramter  of the FORMAT directive is omitted, it will be given
the default value 5F16.9.

   example :

       FORMAT 4D20.11 4F20.8 4D20.9

will cause the punching of VECTORS,MOPOPS and  EVALUES  to  be  in  FORTRAN
formats 4D20.11,4F20.8 and 4D20.9 respectively.


The OUTPUT Directive

    This  directive consists of one data line, read to variables TEXT, TEST
using format (2A).

    TEXT    should be set to the character string OUTPUT.

    TEST    may optionally be set to the character string CARDS, or may  be
omitted.

    The  OUTPUT  directive  is only of relevance if non-convergence occurs,
and will then  initate  a  full  printout  of  the  current  state  of  the
calculation.  If  the  parameter CARDS appears on the OUTPUT directive, any
punching requested by the PUNCH directive will also be produced.

    Omission of the  OUTPUT  directive  causes  the  program  to  terminate
execution without printing or punching in a non-convergence situation.


The IPRINT Directive

    This directive consists of a single data line with the character string
IPRINT in the first data field. If used  causes  printing  of  the  orbital
energies resulting from each iterative cycle.


The ACCURACY Directive

    This  directive  consists  of one data line, read to variables TEXT,B,K
using format (A,F,I).

    TEXT    should be set to the character string ACCURACY.

    B,K     a  convergence  threshold, T = B*10**(-K) will be computed. At
convergence, the elements of the density matrix will be converged to within
an absolute error T.

    The   ACCURACY  directive  may  be  omitted,  then  the  default  value
T=10**(-5) will be used.

   example 1:

       ACCURACY 1 4

sets the convergence threshold to 10**(-4).

   example 2:

       ACCURACY 1 9

will cause the convergence threshold to be set to 10**(-9), this being  its
lowest possible value.

   example 3:

       ACCURACY 5 7

will cause the convergence threshold to be set to 5*10**(-7).


The TIME Directive

    This  directive may be used to set the maximum time allowed for the
calculation, and consists of one data line read to variables  TEXT,  TIMEMX
using format (A,F).

    TEXT    should be set to the character string TIME.

    TIMEMX  is  used  to  specify  the  time  maximum in units of seconds. The
program will terminate iterative cycling when the  time used for the
job, plus the iteration cycle time is greater than TIMEMX.

    The  TIME directive is normally omitted, when TIMEMX will be set by the
program.

   example :

       TIME 750

causes  the  program  to  terminate  cycling,  whether convergence has been
achieved or not, when it's found that

   (total jobtime used + cycle time) > 750 seconds



The AUTO Directive

    Because of the 'level shifting' technique for forcing convergence,  the
possibility  arises  that  convergence  to a stationary point on the energy
surface may occur, such  that  the  converged  molecular  orbitals  do  not
represent  the  ground  state. To circumvent this problem, the program will
automatically, if required, switch virtual and occupied orbitals so  as  to
force  convergence  to  a configuration which obeys the 'aufbau' principle.
Such switching  is  normally  allowed  to  occur  only  when  the  presumed
occupancy of the input molecular orbitals is within a tolerance of 0.075.

    The AUTO directive may be used to override these usual conventions, and
consists of a single data line, read to varaibles TEXT, SWITCH using format
(A,F).

    TEXT    should be set to the character string AUTO.

    SWITCH  automatic  orbital  switching  will  not  be  allowed until the
molecular orbitals of a non-aufbau configuration achieve an accuracy within
a tolerance specified by SWITCH.

    The  following  notes  may  prove  helpful  to  the user employing this
directive:

(a) A closed shell stationary energy configuration not obeying  the  aufbau
principle  will  not,  with  almost  absolute  certainty, correspond to the
ground state.

(b) A number of cases are known where  a  stationary  energy  closed  shell
configuration can be generated which does obey the aufbau principle and yet
does not correspond  to  the  ground  state.  Such  situations,  are  often
indicated  by  the  prediction  of  an  unreasonably  low  first ionisation
potential when Koopmans' theorem is invoked.

   example 1:

The automatic  orbital  switching  may  be  completely  suppressed  by  the
directive of the form:

       AUTO 0

This  may  be  useful  in  the study of excited closed shell configurations
which do not obey the aufbau principle.

   example 2:

An optimal convergence rate may often be  achieved  by  allowing  automatic
orbital switching from an early stage in the calculation.

       AUTO 100

Will  permit switching to occur from the start of the calculation. The user
is asked to note that the strength of the convergence guarantee provided by
the  level  shifting  feature  is  weakend  if  switching  is used, so that
convergence problems may arise if switching is allowed at a too early stage
in the calculation. Such a situation may arise when the  default  value  of
SWITCH  is invoked, although this is not likely, and may be remedied by the
reduction in the value of SWITCH, by means of a directive:

       AUTO 0.001


The DAMP Directive

    This consists of one data line read to variables  TEXT,D1,E1,IBRK,D2,E2
using format (A,2F,I,2F).

    TEXT    should be set to the character string DAMP.

    D1      is the damp factor up to iterative cycle specified by IBRK.

    E1      is the level shifter up to iterative cycle specified by IBRK.

    IBRK    is an integer used to a specify the cycle number.

    D2      is the damp factor after the iterative cycle given by IBRK.

    E1      is the level shifter after the iterative cycle given by IBRK.

    An  alternative  form  of  DAMP  is permitted, consisting of only three
parameters, read to variables TEXT,D1,E1 using foramt (A,2F). If used, this
set  the  IBRK  parameter  to  the default 999, D2 and E2 will be given the
default values of 1  and  0  respectively.  D1  and  E1  have  there  usual
meanings.

    The  DAMP  directive  may  be omitted, then the program will assign the
following default settings:

    D1,D2=1.0 E1,E2=0.0 and IBRK=999

    The  choice  of  the  above  defaults  corresponds  to  performing  the
iterations in precisely the manner prescibed by Roothaan [x].

    A full treatment of the role of damp factors and level shifters will be
discussed later. At  present  one  shall  confine  the  discussion  to  the
practical  matter  of selecting reasonable parameters. Experience indicates
that, at least for ground state studies, there is little to  be  gained  by
choosing  values  for  the  damp  factor  (D1,D2) different from unity, and
further discussion will assume that the value of unity has been chosen.  It
remains to consider the values of (E1,E2), level shift parameters.

    Let K denote a parameter which notionally measures the rate of
convergence of the iterations.  When K is positive, the procedure is
convergent, the larger the value of K, the more rapid the convergence.
When K is negative, the process is divergent.  Figure 4.1 in the hard
copy manual illustrates the correlation of K with the values of the
level shifter for two typical cases.


    CASE  I  :  represents a situation where the orthodox procedure will be
successful, the optimum value of the level shifter being circa zero.

    CASE II: represents a situation where the orthodox  Roothaan  procedure
will  fail  to  converge. The level shifted procedure is convergent for all
values of the level shifter greater than circa  0.5,  reaching  an  optimum
rate of convergence when a level shifter of approximately unity is chosen.

    A  common feature of all convergence curves is that convergence sets in
at  some  critical  value  of  the  level  shifter,  the  optimum  rate  of
convergence  being found at somewhat higher values of level shifter. Use of
a level shifter with a value greater than  the  optimum  does  not  prevent
convergence,  but convergence is slowed down, whilst use of a level shifter
which is too small may cause divergence.

    The user may be helped in the choice of the level shifter parameters if
they take notice of the following points:

(a) For the first three cycles, a value of at least unity should be chosen,
to stabilise what are usually the most erratic cycles.

(b) After the third cycle, a value of zero for the level shifter will often
found satisfactory. A DAMP directive of the form:

      DAMP 1 1 3 1 0

will often prove successful.

(c) If  divergence  is experienced, increasing the level shifter will force
convergence. It is suggested that the user increases the level shifters  by
0.3  and repeat the attempts until the calculation converges. Note that the
user supplied level shifters are treated as minimum values by the  program,
and  if  divergence  is  experienced,  the  program will increase the level
shifters in an  attempt  to  force  convergence.  In  general,  the  system
performs best if the user selects appropriate level shifters.

    For further reading see also Damp Factors
and Level Shifters for the Closed Shell SCF Program


The LOADQ Directives

    Seven directives are available for obtaining trial eigen vectors to act
as input to the first iterative  cycle,  namely  VECTORS,START,ALPHAS,GETQ,
RESTORE,EXTRA  and  COMBINE.  The  generic  term  LOADQ  is  not  itself  a
directive. One, and only one, LOADQ directive can appear in the input data,
the structure of these directives are now discussed.

    The following notes on the LOADQ directives may prove  helpful  to  the
user:

(a) If a CTRANS directive is used, it must precede the LOADQ directive.

(b) It  is  permissible  to present a non-orthonormal set of trial vectors,
for example through the VECTORS,GETQ,EXTRA or  COMBINE  directives.  Whilst
the EXTRA and COMBINE directives will internally issue ORTHOG directives in
SCHMIDT mode, the others will not. If non-orthogonal vectors are used,  the
energy value produced in the first iterative cycle will be meaningless. Any
lack of orthonormality will be corrected during the first iterative  cycle,
so that subsequent energy values will be variationally significant. However
it is recommended if a set of non-orthonormal trial vectors is to be  used,
the user should issue an ORTHOG directive in SCHMIDT mode.

(c) Because of the method employed in the SCF iterations, the trial virtual
orbitals  are made use of. This means that the use of the VECTORS directive
to define valid occupied orbitals and zero valued  trial  virtual  orbitals
will not work correctly.



The VECTORS Directive

    This directive consists of one data line read to variables TEXT,  FORMV
using format (2A).

    TEXT    should be set to the character string VECTORS.

    FORMV   is used to specify the FORTRAN format to be used to input trial
eigen vectors, or may be omitted, when the default is 5F16.9.

    The remainder of the data for the VECTORS directive is read  using  the
code:

      READ(5,FORMV)((Q(I,J),I=1,NEWBAS),J=1,NEWBAS)

where FORMV denotes the format specified by the FORMV parameter to be found
on the directive initiator. Vectors punched out by the SCF programs will be
found  suitable  for  re-input, so long as the user remembers to remove the
first card  punched,  which  contains  the  TITLE  of  the  job  which  was
responsible for producing the vectors.


The START Directive

    This  consists  of one data line with the character string START in the
first data field. Trial vectors will be formed by  diagonalisation  of  the
'unscreened'  1-electron  hamiltonian  operator matrix. The vectors will be
ordered according to increasing eigen  value,  and  the  NCORE  vectors  of
lowest eigen value deemed to constitute the trial set of occupied orbitals.


The ALPHAS Directive

    The  first  data  line  consists  of the character string ALPHAS in the
first data field. Subsequent lines should contain NEWBAS real numbers  read
in free F-format to a vector:

              (A(I),I=1,NEWBAS)

Hence the sequences:

       ALPHAS
       5.5 2.1 .5 .5 .3

and

       ALPHAS
       5.5
       2.1
       .5
       .5
       .3

are  equivalent.  A(I)  should be set equal to the negative of the expected
value of the I'th element of the Roothaan- Hartree- Fock martrix (in  basis
set  representation)  at  self  consistency.  The  utility  of  the  ALPHAS
directive  stems from the fact that diagonal Roothaan- Hartree- Fock matrix
elements  remain  approximately  invariant  under   change   in   molecular
environment for a given basis set. For example, a study of the water yields
ALPHAS parameters appropriate for the oxygen and hydrogen  atoms  in  other
molecular  environments  in  the  basis set used. The user, if applying the
same basis set,  can  quickly  build  a  'library'  of  appropriate  ALPHAS
parameters,  simply  by  printing  out  converged  Roothaan-  Hartree- Fock
matrices by means of the FPRINT directive:

   FPRINT FOCK

If a reasonably accurate set of ALPHAS parameters is available, the  ALPHAS
directive will provide a good mechanism for the trial eigen vectors. If the
user is unable to provide good estimates for  the  ALPHAS  parameters,  the
START directive may be used.

    The  following  algorithm  is  used in the implementation of the ALPHAS
directive. The matrix representatives of the kinetic  energy  operator  (T)
and  nuclear  attraction  operator  (V)  are  internally  available  to the
program. An approximation for the coulomb/exchange 2-electron operator  (G)
and an approximate Fock operator (H) could be constructed from:

   H = T + V + G

The  user  supplies  the  A-parameters,  which  are  approximations  to the
negative to the diagonal Fock operator elements.

   Hii = -A(I)

The diagonal elements of G can therefore be formed from:

   Gii = Hii - Tii - Vii

where the guessed values of Hii are used.

    Assume that the off-diagonal elements of G and V can  be  expressed  in
the form of Mulliken approximations:

   Gij = Kij * (Gii + Gjj)

   Vij = Kij * (Vii + Gjj)

where Kij is some unknown scalar. Elimination of Kij gives the result:

   Gij = Vij * (Gii + Gjj) / (Vii + Vjj)

whence approximations to the off-daigonal elements of the Fock operator can
be computed from:

   Hij = Tij + Vij + Vij * (Gii + Gjj) / (Vii + Vjj)

The eigen value problem:

    HQ = SQA

is solved with Fock operator (H) approximated as above. The resulting eigen
values  (Q) are arranged in order of ascending eigen values, and define the
trial molecular orbitals as linear combinations of the LCBF.


The RESTORE Directive

    This directive consists of a single data line, read to variables  TEXT,
ISECT and PRINT using format (A,I,A).

    TEXT    should be set to the character string RESTORE.

    ISECT   is  an  integer  used  to  specify the section of the DUMP FILE
where trial eigen vectors may  be  found.  Such  trial  vectors  will  have
normally been placed on the DUMP FILE by a previous run of the SCF program,
the section number used to store the vectors being specified by  the  ENTER
directive of a previous run.

    PRINT if present restored vectors and eigenvalues are printed.

   example :

       RESTORE 1 PRINT


    Eigenvectors are restored from section 1 of the DUMP FILE, such vectors
having  been  routed  to  section  1  by means of a previous run of the SCF
program where the directive

       ENTER 1

was used. After reading they are printed on unit 6.


The GETQ Directive

    This directive causes restoration of eigen  vectors  from  a  'foreign'
DUMP  FILE,  and  consists  of  a  single data line read to variables TEXT,
DDFORN, IBLKF, ISECTF using format (2A,2I).

    TEXT    should be set to the character string GETQ.

    DDFORN  is the ATMOL file name assigned to the 'foreign' DUMP FILE.

    IBLKF   is an integer specifying  the  starting  block  number  of  the
'foreign' DUMP FILE.

    ISECTF  is  an integer used to specify the section wherein the required
vectors are to be found on the 'foreign' DUMP FILE.

   example :

       GETQ ED5 1 3

This example indicates the recovery of the eigen vectors from section 3  of
the data set assigned to ED5 starting at block 1.



The EXTRA Directive

    If the present set of LCBF's differs  from  that  used  in  a  previous
calculation  by  the  addition  of  a  number  of  LCBF's.  Also that these
additional LCBF's do not consitute a significant  influence  in  the  newer
calculation.  Then  molecular  orbitals  of  the previous calculation would
provide a good starting point for  the  new  calculation,  thus  the  EXTRA
directive  has been implemented to allow the previous vectors to be used as
starting vectors. The first data line is read  to  variables  TEXT,  DDEXT,
IBLKE, ISECTE using format (2A,2I).

    TEXT    should be set to the character string EXTRA.

    DDEXT   specifies  the  ATMOL file name assigned to the data set, where
the trial vectors reside (in the smaller basis set).

    IBLKE   is an integer specifying  the  starting  block  number  of  the
foreign data set.

    ISECTE  is  an  integer  specifying  the section number where the trial
vectors are to be found. This integer was specified on the ENTER  directive
of the run which created the trial vectors.

    If  the  number  of  LCBF  in  the  reference calculation is denoted by
OLDBAS. Then the number of additional LCBF required in the new  calculation
is  given  by  NEWBAS-OLDBAS=NEXTRA.  Subsequent  data  lines  of the EXTRA
directive will consist of NEXTRA integers read in free I-format, which  are
used  to specify the LCBF which appear in the new calculation, and which do
not appear in the reference calculation.

    The last data field should contain the character string END. This entry
will  issue  the  ORTHOG  directive  in SCHMIT mode so that the trial eigen
vectors will be automatically Schmit orthogonalised.

   example 1:

       EXTRA ED5 1 1
       11 12 13 14 15 END

This  example  specifies  that  the trial vectors reside on ED5 starting at
block 1 of section 1. LCBF 11 to 15 appear in the new  calculation  but  do
not  appear  in  the  reference calculation. It is assumed that those basis
functions of the new calculation in common with the  reference  calculation
occur  in  the  same  order.  The above example may be specified in several
ways:

       EXTRA ED5 1 1
       11
       12
       13
       14
       15
       END

and

       EXTRA ED5 1 1
       11 TO 15
       END

are all equivalent. In the last permutation the  character  string  TO  was
employed to link a sequence of consecutively numbered additional LCBF.

   example 2:

The sequences:

       EXTRA ED6 200 2
       1 5 6 7 8 20 21 22 23 END

and

       EXTRA ED6 200 2
       1 5 TO 8 20 TO 23 END

are equivalent.


The COMBINE Directive

    Consider the case where we have performed separate SCF
calculations on two systems, A and B, the converged vectors being
stored on their DUMP FILEs.  We now wishe to perform a calculation on
the system AB, where A is sited at a considerable distance from B. The
trial vectors from A and B, if combined would provide a suitable
starting point for the calculation on AB.  The COMBINE directive has
been supplied to provide such a facility.  The first data line is read
to variables TEXT, DDA, IBLKA, ISECTA, DDB, IBLKB, ISECTB using format
(2A,2I,A,2I).

    TEXT    should be set to the character string COMBINE.

    DDA,IBLKA,ISECTA the 'A' set of vectors will be read from section
ISECTA of a DUMP FILE commencing at block IBLKA on an ATMOL file
specified by the parameter DDA.

    DDB,IBLKB,ISECTB the 'B' set of vectors will be read from section
ISECTB of a DUMP FILE commencing at block IBLKB on an ATMOL file
specified by the parameter DDB.

    In subsequent data lines the 'origins' of the LCBF of the system
AB are defined.  Such data lines read to variables I, J, AORB, K using
format (2I,A,I).  This means that LCBF I to J (inclusive) of the AB
calculation are in one to one correspondence with the LCBF K onwards
of either the A or B calculation, depending upon the specification of
AORB.  AORB should be set to the character A or B accordingly.  When
all the AB LCBF have had their 'origins' specified, this part of the
data input is terminated by the character string END in the first data
field.

    Note that all the LCBF of the system AB must be in correspondence
with LCBF of either A or B, and that the total number of LCBF in the A
and B systems must equal the number in the AB system.

    The next part of the COMBINE data specifies how the trial eigen
vectors for the AB system are derived.  These data lines are read to
variables I, J, AORB, K using format (2I,A,I), and mean that trial
vectors I to J (inclusive) of the AB system are to be in one to one
correspondence with vectors K onwards of either the A or B set of
vectors, according to the specification of AORB.  AORB should be set
to the character A or B. When all the AB trial vectors have been
defined, the directive is terminated with a data line containing the
character string END in the first data field.  The directive will
issue an ORTHOG directive in SCHMIDT mode.

   example :


LCBF 1 to 5 of AB are to be in one to one correspondence with LCBF
1 to 5 of A. LCBF 6 to 10 of AB correspond to LCBF 1 to 5 of B. LCBF
11 to 20 of AB corresponds to LCBF 6 to 15 of A. LCBF 21 to 26 of AB
are to be in correspondence with LCBF 6 to 11 of B. The trial vector
matrix of AB is constructed as follows:

Vectors 1 to 4 are to correspond to vectors 1 to 4 of the A system.
Vectors 5 to 7 are to correspond to vectors 1 to 3 of the B system.
Vectors 8 to 18 are to correspond to vectors 5 to 15 of the A system.
Vectors 19 to 26 are to corespond to vectors 4 to 11 of the B system.

    The COMBINE data would look like:

       COMBINE ED4 1 1 ED4 200 3
       1 5 A 1
       6 10 B 1
       11 20 A 6
       21 26 B 6
       END
       1 4 A 1
       5 7 B 1
       8 18 A 5
       19 26 B 4
       END [FIRST]

where the 'A' set of vectors are retrieved from section 1 starting
at block 1 on a DUMP FILE assigned to ED4.  While the 'B' set of
vectors are stored on section 3 starting at block 200 of the DUMP FILE
assigned to ED4.  If the second END line contains the string first,
the calculation will stop after one cycle and printing the energy
(Heitler-London energy).


The DIIS Directive

    Direct inversion in the iterated subspace directive:  convergence
accelerator (in SCF and RHF only).  Directive consists of single data
line format (A,3I)

    TEXT   I J  K

TEXT should be DIIS, I must be the maximum dimension of the iterated
subspace and B = J**10(-K) is a threshold for TESTER. When TESTER
comes below B the DIIS convergence accelerator is invoked.

    Example:

             DIIS 10 1 3

These values usually give good results. In the present
implementation I is restricted to maximum 10.

The algorithm interpolates the new Fock matrix in between the last I Fock matrices such that the Brillouin error is minimal. (With thanks to Hinne Hettema).
The Multipole Directive

Finite Field SCF with INTEGW real multipoles as input for the computation of multipolar polarizabilities.

The first line, the directive initiator, is read to the variable TEXT,
using format (A).

        TEXT should be set to the character string MULT.

Data concerning the multipolar interactions is appended next, format
(A,F)

        TEXT F

where TEXT is of the form QLM, QLMC, or QLMS, and F is the field
strength (atomic units).  Here QLMC indicates a cosine type multipole
with quantum numbers l and m, QLMS indicates a sine type multipole with
quantum numbers l and m and QLM is independent of the azimuthal angle
phi (so that m = 0).  The operator TEXT*F is added to the T+V matrix.
The directive is ended by a data line containing the string END in the
first data field.

Notes:
(a) The directive must come before any of the LOADQ directives.
(b) The MULT directive in INTEGW must have been issued.

       Example:

           MULT
           Q10   0.0001
           Q22C  0.002
           END

Explanation:  a field 0.0001*Z plus a field 0.002*(X**2-Y**2)*sqrt(3/2)
will be added to the T+V matrix, since Q10 = Z and Q22 =
(X**2-Y**2)*sqrt(3/2).


The ORTHOG Directive

    This  directive  is used to cause orthonormalisation of the trial eigen
vectors, and consists of one data line read to  variables  TEXT,TEST  using
format (2A).

    TEXT    should be set to the character string ORTHOG.

    TEST    may  be  set to one of the character strings SCHMIDT or SYMM or
may be omitted. If  SYMM  is  specified,  the  Lowdin  symmetric  S**(-0.5)
orthormalisation  scheme will be used. If TEST is omitted, or if SCHMIDT is
specified, then the Gramm-Schmidt orthonormalisation scheme will be used.

    Note if the directive is issued twice, once with the SCHMIDT parameter,
and once with the SYMM parameter, then the symmetric scheme will be chosen.
Note  also  the  EXTRA  and  COMBINE  directives  issue  ORTHOG  directives
internally.


The SWAP Directive

    The  first  data  line  should contain the character string SWAP in the
first data field. Subsequent data lines are read  to  variables  I,J  using
format (2I).

    The  effect  is  that  the I'th and J'th molecular orbitals, as entered
into by the LOADQ directive, are interchanged. When all  the  interchanging
lines have been presented, the directive should be  terminated  by  a  data
line  containing  the  character  string  END  in the first data field. The
following notes may prove helpful:

(a) The program assumes that the first NCORE molecular orbitals are  doubly
occupied, the remainder being virtual.

(b) The  SWAP  directive  is  normally  used to switch from a configuration
known not to be the ground state into the ground state.

(c) The SWAP directive must appear after the LOADQ directive.

(d) Upon completion of the SWAP directive, revised molecular orbital  lists
are held in memory, but not in the DUMP FILE.

   example :

       SWAP
       10 12
       11 13
       END

Molecular orbitals 10 and 11 are interchanged with  molecular  orbitals  12
and 13 respectively.


The ORBSYM Directive

    In  order to make effective use of this directive, the basis set should
be symmetry adapted (CTRANS directive). The purpose of the directive, which
must  appear after the LOADQ directive, is to allow reordering of the trial
molecular orbitals according to their symmetry labels. The first data  line
contains the character string ORBSYM in the first data field.

    Following  this  text should be the basis function symmetry declaration
lines, at least one line per each irreducible representation  is  required.
The first data field of such a line is read in A-format, and should contain
a user specified symmetry species label. Subsequent data fields are read in
I-format.  Let  the value of the integer specified in such an I-field be j.
Then the j'th basis function will be assigned the symmetry label  found  in
the first data field of the line. The following:

       SIGMAG 1 2 3 4 7 8 9 10

comprises a valid basis function symmetry designation line. Such a line may
be shortened if sequences of consecutive integers are presented,  by  means
of the character string TO. Thus the above list may be expressed:

       SIGMAG 1 TO 4 7 TO 10

    The  basis  function symmetry designation lines are presented until all
basis functions have been given symmetry labels,  and  a  data  line  which
contains  the  character  string  END  in  the  first data field is used to
terminate the sequence. Notice that it is therefore impossible to  use  the
text  END  as a symmetry label. Any basis functions not assigned a symmetry
label by the user will be assigned the label * by  the  program.  From  the
symmetry labels of the basis functions, the program works out the  symmetry
labels of the trial molecular orbitals.

    The  next phase of the ORBSYM directive consists of one data line whose
purpose is  to  specify  the  ordering  of  the  trial  molecular  orbitals
according  to symmetry label. The first data field is read in A-format, and
should be equal to a symmetry  label,  as  defined  by  one  of  the  basis
function  symmetry designation lines presented above (or possibly '*'). The
remaining data fields are read in I-format. Let the value  of  the  integer
specified  in  such an I-field be j. Then the j'th molecular orbital in the
reordered list will be of symmetry specified by the first data field of the
current line. The following:

       SIGMAG 1 2 3 4 5 6 7 8

when  read  as  a  'molecular orbital ordering line' causes the first eight
molecular orbitals of the reordered list to correspond to the  first  eight
molecular  orbitals of SIGMAG symmetry found in the input list of molecular
orbitals. The  'molecular  orbital  ordering  list'  may  be  curtailed  if
sequences  of consecutive integers appear, by means of the character string
TO. Thus the above line is equivalent to:

      SIGMAG 1 TO 8

   example :


    Consider  the  hydrogen molecule, the basis set, as defined at integral
evaluation time, being in the order:

       H1(1s),H2(1s),H1(1s'),H2(1s')

Using  the  CTRANS  directive,  the  user  can  symmetry  adapt  the  basis
functions:

       CTRANS
       1 1 2
       1 2
       1 3 2
       1 4
       1 1 2
       -1 2
       1 3 2
       -1 4
       END


    To  study  the  configuration  (1-sigma-g)2(1-sigma-u)2 state of the H2
molecule, with a charge of -2, using the basis set defined above  with  the
trial  molecular  orbitals  generated  through  the  START  directive.  The
required configuration, as stated above, may be obtained using the data  of
the form:

       ORBSYM
       SIGMAG 1 2
       SIGMAU 3 4
       END
       SIGMAG 1
       SIGMAU 2
       END

If the order of the trial  molecular  orbitals  was  1-sigma-g,  2-sigma-g,
1-sigma-u,  2-sigma-u.  After obeying the ORBSYM directive, the order would
be 1-sigma-g, 1-sigma-u, 2-sigma-g, 2-sigma-u.  Thus  the  first  molecular
orbitals found of sigma-g and sigma-u symmetry are placed in postions 1 and
2 in the re-ordered list. The remaining two molecular orbitals,  which  are
not  explictly mentioned in the ORBSYM directive, are appended to positions
3 and 4, in the same order as they are found in the original configuration.


The ALIGN Directive

    The ALIGN directive has been coded to allow the  user  to  specify  the
alignment  of  degenerate sets of orbitals (usually occurs in GRHF module).
The user supplies symmetry  designation  tags  for  the  LCBF  (see  CTRANS
directive). The program analyses each trial molecular orbital by means of a
popluation analysis, and assigns symmetry designation tags to the molecular
orbitals.

    Suppose  the user has labelled LCBF with the tags SIGMA, PIX and PIY. A
given molecular orbital is found on Mulliken  anaylsis  to  consist  of  1%
SIGMA,  20%  PIX  and  79%  PIY,  it will be labelled PIY. The program then
deletes all 'contaminating' components from the molecular  orbitals.  Thus,
in  the  given  example, the coefficients of PIX and SIGMA orbitals will be
set to zero. The GRHF module  will  retain  the  'purified'  state  of  the
orbitals after the an ALIGN directive has been processed, by preventing the
mixing of molecular orbitals of different symmetry. All other  modules  may
allow  such  mixing  however,  and cause the iterated molecular orbitals to
become 'inpure'.

    The ALIGN directive may not appear before the LOADQ directive, and LCBF
given different symmetry tags must have zero overlap integrals.

    The  first  line  of  the  ALIGN  directive,  the  directive initiator,
consists of the character string ALIGN, in the first data field.  Following
the  directive  initiator should be the basis function symmetry declaration
lines, at least one line per irreducible representation being required. The
first  data  field of such a line is read in A-format, and should contain a
user specified symmetry label. Subsequent data fields are read in I-format;
let the value of the integer specified in such an I-format field be j. Then
the j'th basis function will be assigned the  symmetry  tag  found  in  the
first data field of that line. For example :

   SIGMA 1 2 3 4 5 8 9 10 11

comprises  a valid basis function symmetry declaraion line, and assigns the
tag SIGMA to LCBF 1 to 5 and 8 to 11. If sequences of consecutive  integers
arise, the line may be abbreviated using the character string TO. Thus :

   SIGMA 1 TO 5 8 TO 11

is equivalent to the previous example.  Any  basis  function  not  given  a
symmetry  tag  by the user will be assigned the tag '*' by the system. When
all the basis function symmetry declaration lines have been  read  in,  the
directive is terminated by a data line containing the character string END.
It is not possible to use the symmetry tag END. The ALIGN directive  issues
an ORTHOG directive in SCHMIDT mode.

    example :

    A  diatomic  molecule has been oriented down the z-axis. The basis set,
in the order, is, 1sa, 2sa, 3sa, 1sb, 2sb, 3sb,  2pxa,  2pya,  2pza,  2pxb,
2pyb,  2pzb.  It is desired to align a trial set of molecular orbitals such
that they are composed of only'sigma', 'pi-x'  or  'pi-y'  components.  The
appropriate ALIGN directive would look like:

         ALIGN
         SIGMA 1 TO 5 8 11 14
         PIX 6 9 12
         PIY 7 10 13
         END

an alternative form (allowing 'sigma' orbitals to be tagged '*') is:

         ALIGN
         PIX 6 9 12
         PIY 7 10 13
         END


The MOPOPS Directive

    This directive is used primarily  to  permit  the  SCF  program  to  be
capable  of  reconstruction of the eigen vectors as stored on the DUMP FILE
from a file (card format). The MOPOPS directive will normally  be  followed
by  the  STOP  directive,  when  the  latter  will  cause the eigen vectors
restored  by  means  of  a  LOADQ  directive  plus  the  molecular  orbital
populations  defined  by  the MOPOPS directive to be written to a specified
section of the DUMP FILE. The first line of the MOPOPS directive is read to
variables TEXT,FORM using format (2A).

    TEXT    should be set to the character string MOPOPS.

    FORM    should  be set to a valid FORTRAN format to be used for reading
in the  molecular  orbitals  occupation  numbers.  This  parameter  may  be
omitted, when the default 5F.16.9 will be chosen.

    Subsequent data lines are read using the code:

              READ(5,FORM)(POP(I),I=1,NEWBAS)

where FORM denotes the format specified by the FORM parameter (or 5F16.9 if
FORM is omitted).



The EVALUES Directive

    This directive is used primarily  to  permit  the  SCF  program  to  be
capable  to  reconstruct the eigen vectors as stored on the DUMP FILE, this
directive is similar to the MOPOPS directive. The EVALUES directive  allows
eigen  values  (orbital  energies) to be input from a file (card image) and
subsequently to be written to the DUMP FILE. The  specified  section  being
designated  by  the  STOP  directive,  which  normally  follows the EVALUES
directive. The first line of the EVALUES directive  is  read  to  variables
TEXT,FORM using format (2A).

    TEXT    should be set to the character string EVALUES.

    FORM    should  be set to a valid FORTRAN format to be used for reading
the eigen values. This parameter may be omitted, when  the  default  5F16.9
will be chosen.

    Subsequent data lines are read using the code:

              READ(5,FORM)(EIG(I),I=1,NEWBAS)


    Note that the parameters defined by the MOPOPS  or  EVALUES  directives
take  no  active  part  in  the  SCF iteration process (indeed they will be
overwritten during the iteration phase)  such  that  these  directives  are
solely for the purpose of reconstruction of the DUMP FILE.


The ENTER Directive

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

    TEXT    should be set to the character string ENTER.

    ISECT   is an integer specifying the section number of  the  DUMP  FILE
where the iterated eigen vectors are to be placed.

    The actions of the ENTER directive are:

(a) To  initate action on any ORTHOG directive which may have been found in
the precedeing data.

(b) To write the trial vectors to the nominated section of the DUMP FILE.

(c) To initate execution of the iterative phase of the calculation.

    The ENTER directive must be presented last,  any  directives  presented
after  the  ENTER directive will be ignored. The ENTER directive is illegal
if a LOADQ directive has not been found in the precedeing data.

   example :

       ENTER 10



The STOP Directive

    This directive may be used as an alternative to  the  ENTER  directive,
and  consists  of  one  data line read to variables TEXT,ISECT using format
(A,I).

    TEXT    should be set to the character string STOP.

    ISECT   an integer specifying the section number of the DUMP FILE where
the trial vectors are to be written.

    The  effect  of  the  STOP  directive  is  as  for  the ENTER directive
discribed  previously,  except  that  the  SCF  iterations  are  by-passed,
execution  being  terminated as soon as the trial vectors have been written
to the appropriate section of the DUMP FILE. The  major  use  of  the  STOP
directive is where the user wishes either:

(a) To  place  trial  vectors  (prepared  by a LOADQ directive) on the DUMP
FILE, preparatory to performing a separate restart run.

(b) To palce re-ordered vectors (prepared by the SWAP or ORBSYM directives)
on the DUMP FILE, before performing a separate restart run.


Damp Factors and Level Shifters for the Closed Shell SCF Program

4.34.1  Introduction
        ____________

    The  following  notes  are based on a paper by V. R. Saunders and I. H.
Hillier [x]. The SCF calculation is performed in a basis of NEWBAS linearly
independant  LCBF.  For  a 2*NCORE electron system, one constructs a set of
NCORE doubly occupied molecular orbitals (DOMOS) and NVIRT = NEWBAS - NCORE
virtual  molecular orbitals (VMOS), such that the complete set of molecular
orbitals is orthonormal. Let 0, X1 and X2 denote row vectors of  the  LCBF,
DOMOS and VMOS respectively.

   (X1:X2) = 0(Q1:Q2) = 0Q                                          4.1

where  a  column  of  Q contains the atomic orbital coefficients of a given
molecular orbital. Previously referred to Q as the  'eigen  vector  array'.
The total wavefunction is invariant to mixing between DOMOS, so that mixing
between DOMOS and VMOS, need only be of concern. Small  variations  may  be
written:

   X1' = (X1:X2) !I1!                                                4.2
                 !..!
                 !D !

where  I1  denotes  an  identity  matrix  of  order  NCORE,  and  D  is the
NVIRT*NCORE mixing matrix, whose elements are arbitary but presumed  small.
The  perturbed  DOMOS  are  not  orthonormal  in  second  or  higher order.
Fortunately, the expansion of the energy is correct to  first  order  only,
which is given by:

             virt occ
   E = E0 + 4 [    [  Dki Hki  + higher terms                        4.3
              k    i

where E0 is the energy of the unperturbed wavefunction, and Hki
denotes the matrix element connecting the k'th VMO with the i'th
DOMO over the Roothaan- Hartree- Fock operator. From the form
of equation 4.1 that the conditions of self consistency are
satisfied when all Hki are zero.

   ! dE !
   ------ D = 0 = 4Hki                                               4.4
   !dDki!

4.34.2  Convergence Guarantees
        ______________________

    It can be seen from 4.3 that any method capable  of  generating  values
for the elements of D such that

(a) all Dki are of opposite sign to the corresponding Hki.

(b)  all  Dki may be chosen sufficiently small in magnitude that the higher
order terms of 4.3 are smaller in magnitude than the first order terms will
be  capable of generating an iterated wavefunction of lower energy than the
unperturbed function, and therefore will guarantee convergence. Convergence
to the lowest energy stationary point will not necessarily be guaranteed.

4.34.3  The Roothaan procedure
        ______________________

    From  the  trial  set of DOMOS, the Roothaan- Hartree- Fock operator is
constructed in the basis set matrix representation  and  diagonalised.  The
resulting  eigen  vectors,  after  ordering,  usually  based  on the aufbau
principle, define improved molecular orbitals as linear combinations of the
basis functions. A minor variant of the above, yielding equivalent results,
is to diagonalise the Roothaan- Hartree- Fock operator constructed  in  the
basis  of  the  trial  molecular orbitals. The resulting eigen vectors will
define improved molecular orbitals as  linear  combinations  of  the  trial
molecular  orbitals.  The  Roothaan-  Hartree-  Fock  matrix  in  the trial
molecular orbital basis can be partition as follows:

         !Hdd:Hdv!
   H  =  !-------!                                                   4.5
         !Hvd:Hvv!

where the partitions are defined as follows:

    Hdd is the Fock matrix in the basis of the DOMOS

    Hvv is the Fock matrix in the basis of the VMOS

    Hdv (and Hvd) represents the Fock matrix connecting DOMOS with VMOS

4.34.4  Modifications due to the Damp Factor and Level Shifter
        ______________________________________________________

    The closed shell SCF program constructs a modified Fock  matrix,  Hmod,
in the trial molecular orbital basis,

          !Hdd :  lHdv !
   Hmod = !----:-------!                                            4.6
          !lHvd:Hvv+aI2!

Hmod differs from H (4.5) because elements  of  the  off-diagonal  DOMO-VMO
block have been multiplied by the damp factor (l), whilst the level shifter
(a) has been added to each diagonal element of Hvv. I2 denotes the identity
matrix  of  order  NVIRT.  The  procedure  adapoted  is  to diagonalise the
modified Fock matrix, and order the eigen vectors according to  the  aufbau
principle  based  on  the  resulting  eigen values. The first NCORE vectors
define iterated  DOMOS  as  linear  combinations  of  the  trial  molecular
orbitals.

4.34.5  Analysis of the Damp and Level Shifted scheme
        _____________________________________________

    In  the  following  it is assumed, without loss of generality, that the
canonicalisation of the trial DOMOS and VMOS is such that Hdd and  Hvv  are
rendered  diagonal.  An  analysis  of  the diagonalisation of Hmod by first
order Rayleigh-Schrodinger theory yields the result:

   Dki = lHki / (Hii - Hkk - a)                                      4.7

where the matrix D was defined by 4.2. The damp factor (l) is normally  set
to  the  value  unity, and therefore concentrate on the effect of the level
shifter (a) on convergence, assuming a unit damp factor.  If  a  is  chosen
positive and sufficiently large, then:

(a)  The  first  order perturbation analysis will be valid, irrespective of
the values of the elements of the Fock operator.

(b) Trial molecular orbitals can be forced to  obey  the  aufbau  principle
with  respect  to  the  level shifted Fock operator, so that swaping of the
molecular orbitals between virtual and occupied shells will not occur. Note
that if orbital swaping does occur, this corresponds to large values of the
D matrix elements.

(c) The Dki (4.7) can be chosen of an arbitrarily small magnitude,  and  of
opposite  sign  to  the  corresponding  Hki, so that the first order energy
variation (4.3) is negative and larger in absolute  magnitude  than  higher
order energy variations.

    In   summary,   a   sufficiently  level  shifted  procedure  will  give
convergence to a stationary point on the energy surface,  given  any  trial
set of molecular orbitals.

4.34.6  Pratical details of the implementation of Level Shifting
        ________________________________________________________

(a) Beacause the molecular orbital ordering procedure is based on the eigen
values of the level shifted Fock operator, convergence  to  excited  states
not obeying the aufbau principle with respect to the non-level shifted Fock
operator is possible, if a large  level  shifter  is  used.  The  automatic
orbital   switching  feature  (AUTO  directive)  has  been  implemented  to
circumvent this problem.

(b) The level shifted eigen values of the VMOS are reduced by the value  of
the level shifter prior to printing, so that results equivalent to those of
the orthodox Roothaan, method are produced.

(c)  The user should not be tempted to use excessively large values for the
level shifter. Whilst such practices will  usually  guarantee  convergence,
the rate of convergence will be unduly slow.

(d) Let Q(k) denote the eigen vectors defining the trial molecular orbitals
for the k'th iterative cycle, as linear combinations of the LCBF. T(k) will
denote  the  eigen vectors resulting from the k'th cycle, defining iterated
molecular orbitals as linear combinations of the trial molecular  orbitals.
Then

    (k+1)    (k)  (k)    (1) (1) (2) (3)         (k)
   Q      = Q    T    = Q   T   T   T   ........T                     4.8

4.8 is not numerically satisfactory, since the build up in round-off  error
is  accumlative  over  k  cycles.  Round-off  errror  can occur both in the
indicated matrix  multiplications,  and  in  the  diagonalisation  used  to
generate   the   T   matices.   To   stablise   this   method,  the  Schmit
orthonormalisation procedure to refesh the orthonormality of the columns of
Q  (over  the  matrix  of  the overlap integrals of the LCBF) is used. This
orthonormalisation phase has the side benefit of removing errors due to the
user suppling a non-orthonormal set of initial vectors.

(e)  The  procedure  is  well  suited  to  the  Jacobi diagonalisation [xx]
procedure, since the  Fock  operator  in  the  molecular  basis  limits  to
diagonal form as convergence is approched.



The Directives of the Open Shell RHF Program



    The directives for the 'half closed' shell restricted Hartree-Fock
module (RHF).  It is suggested that they are presented in the
following order:


The TITLE Directive

    See the TITLE directive of closed shell program.


The MAXCYC Directive

    See the MAXCYC directive of closed shell program.


The MFILE Directive

    See the MFILE directive of closed shell program.


The SIZE Directive

    See the SIZE directive of closed shell program.


The CTRANS Directive

    See the CTRANS directive of closed shell program.


The FPRINT Directive

    See the FPRINT directive of closed shell program.


The PUNCH Directive

    See the PUNCH directive of closed shell program.


The FORMAT Directive

    See the FORMAT directive of closed shell program.


The OUTPUT Directive

    See the OUTPUT directive of closed shell program.


The IPRINT Directive

    See the IPRINT directive of closed shell program.


The ACCURACY Directive

    See the ACCURACY directive of closed shell
    program.


The TIME Directive

    See the TIME directive of closed shell program.



The LEVEL Directive

    This directive consists of one data line read  to  variables  TEXT,DS1,
SV1,IBRK,DS2,SV2 using format (A,2F,I,2F).

    TEXT    should be set to the character string LEVEL.

    DS1,SV1 are  the  Doubly  Occupied  Molecular  Orbital  (DOMO) - Singly
Occupied Molecular Orbital (SOMO) and  SOMO  -  Virtual  Molecular  Orbital
(VMO) level shifters, will be set to the values DS1 and SV1 respectively.

    IBRK    is  the  iterative  cycle number to which the DS1 and SV1 level
shifters hold too.

    DS2,SV2 is the DOMO-SOMO and SOMO-VMO level shifters after cycle IBRK.

    An alternative form of  the  LEVEL  directive  is  allowed,  where  the
variables  are  read  to  TEXT,DS1,SV1  using  format (A,2F). In this form,
TEXT,DS1 and SV1 have their usual meanings, whilst  the  program  will  set
IBRK=999  and DS2,SV2 to zero. The LEVEL directive may be omitted, when the
following default settings will apply:

   DS1,SV1,DS2,SV2 = 0.0
   IBRK = 999


    The following notes may prove helpful to the user if level shifters are
used to aid convergence.

(a) It  can  be  shown that convergence to a stationary point on the energy
surface can be  guaranteed  if  'sufficiently'  large  and  positive  level
shifters  are  used.  Thus if divergence is experienced the user may repeat
the job but with increased level shifters.

(b) Denoting the energy of the k'th molecular orbital over  the  'non-level
shifted'  and  'level shifted' Fock matrices by E(k) and L(k) respectively,
the following equations hold exactly at convergence, approximately prior to
convergence.

         L(k) = E(k)          for DOMOS
         L(k) = E(k) +a       for SOMOS
         L(k) = E(k) +a+b     for VMOS

where  'a'  and  'b'  denote  the  DOMO-SOMO  and  SOMO-VMO  level shifters
respectively. It is often found that a reasonable rate  of  convergence  is
obtained when the level shifters are chosen such that:

         L(lowest energy VMO)-L(highest energy SOMO) = 0.5 Hartree
         L(lowest energy SOMO)-L(highest energy DOMO) = 0.4 Hartree

The above equations may be re-written:

         E(lowest energy VMO)-E(highest energy SOMO)+b = 0.5 Hartree
         E(lowest energy SOMO)-E(highest energy DOMO)+a = 0.4 Hartree

If a calculation is found to diverge and that the IPRINT directive was used
in  the  divergent  run. Then the non-level shifted orbital energies, E(k),
will be available, and may be used in conjunction with the  above  formulae
to determine reasonable values for the level shifters.

(c) The  emperical rule concerning the selection of suitable level shifters
in (b) is applicable to ground states and perhaps  the  first  few  excited
states.  Even then the rule will occasionally be unsatisfactory, and higher
valued level shifters will be required. The rule breaks down completely for
very  highly  excited  configurations since quite unreasonably large values
for the first level shifter 'a' would be  predicted,  whereas  such  states
normally require a LEVEL directive of the form:

         LEVEL 0 0.3

(d) The   canonicalisation  requested  through  the  DOMOS,SOMOS  and  VMOS
directives affect the 'non level shifted' orbital energies (the energies of
the  SOMOS are most strongly affected), and therefore the optimum values of
the level shifters.

   example 1:


    Consider  the following 'non-level shifted' orbital energy spectrum for
a triplet state:

       ... -0.7 -0.5   -0.3 -0.1   0.1 0.2 ...
             DOMOS       SOMOS      VMOS

To increase the SOMO-DOMO energy gap to 0.4 Hartree it is required that the
first level shifter to be 0.2 and to increase the VMO-SOMO  energy  gap  to
0.5  Hartree,  it would require a value for the second level shifter of 0.3
Hartree. Thus the LEVEL directive would be:

      LEVEL 0.2 0.3


The D12 Directive

    This directive may be used to set the DOMO-SOMO 'damp factor' (referred
as  lds),  and  consists of one data line, read to variables TEXT,D12 using
format (A,F).

    TEXT    should be set to the character string D12.

    D12     should be set to the required value of the lds parameter.

    The D12 directive is normally omitted, when the value of unity will  be
assigned  to  this parameter. Users are directed to reference [xx] to where
the D12 directives proves useful.


The D13 Directive

    This directive may be used to set the DOMO-VMO 'damp factor'  (referred
as  ldv),  and  consists of one data line, read to variables TEXT,D13 using
format (A,F).

    TEXT    should be set to the character string D13.

    D13     should be set to the required value of the ldv parameter.

    The D13 directive is normally omitted, when the damp factor is assigned
the default value of unity.


The D23 Directive

    This directive may be used to set the SOMO-VMO 'damp factor'  (referred
as  lsv),  and  consists of one data line, read to variables TEXT,D23 using
format (A,F).

    TEXT    should be set to the character string D23.

    D23     should be set to the required value of the lsv parameter.

    The D23 directive is normally omitted, then the damp factor is assigned
the value of unity.


The DOMOS Directive

    This  directive  consists  of  one data line, read to variables TEXT,HD
using format (2A).

    TEXT    should be set to the character string DOMOS.

    HD      should set to one of the character strings H1,H2,H3,H4 or H5.

    The Fock operator used for the canonicalisatiob of the DOMOS,  will  be
chosen  according to the specification of the HD parameter from H1 to H5 as
detailed in table 5.1. The DOMOS directive may be omitted, when H1 will  be
used to canonicalise the DOMOS.

   example :

       DOMOS H2


The SOMOS Directive

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

    TEXT    should be set to the character string SOMOS.

    HS      should be set to one of the character  strings  H1,H2,H3,H4  or
H5.

    The  Fock  operator  used  for  the  canonicalisations of the SOMOS, is
chosen according to the specification of the HS parameter, from H1  to  H5,
as  outlined in table 5.1. The SOMOS directive may be omitted, when H1 will
be used to canonicalise the SOMOS.

   example :

       SOMOS H2


The VMOS Directive

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

    TEXT    should be set to the character string VMOS.

    HV      should  be  set  to one of the character strings H1,H2,H3,H4 or
H5.

    The Fock operator used for the canonicalisation of the VMOS, is  chosen
to  the  specification  of  the HV parameter, from H1 to H5, as outlined in
table 5.1.

   example :

       VMOS H2

                            Table 5.1
                            _________

         Definition of Fock Operators for the RHF Module
         _______________________________________________

         Fock Operator            Cn
         _____________            __

         H1                        0
         H2                       -1
         H3                       +1
         H4                       -2
         H5                       +2


The LOCK Directive

    This directive consists of a single data line with the character string
LOCK  in  the first data field. If used, the LOCK directive causes iterated
molecular orbitals to be selected on the principle of maximum overlap  with
trial molecular orbitals.

    The  LOCK  directive  may  be  omitted,  when  ordering is based on the
'aufbau' principle, so that the molecular orbitals are ordered according to
increasing eigen value. The directive will be found useful for the study of
excited states. The user should note that in open shell calculations, there
are  often  a  number  of states close to the ground state energy. The user
should not assume that because  the  self  consistent  solution  obeys  the
'aufbau'  principle,  it  corresponds  to  the  ground state. Conversely, a
number of cases are known where the ground state does not obey the 'aufbau'
principle,  particularly  where  other  than default canonicalisations have
been specified (by means of the DOMOS,SOMOS or VMOS directives).  The  user
should obtain convergence to one stationary point on the energy surface. If
the resulting configuration is not the one required, convergence to another
configuration  may  be  acheived  by  restart  runs employing SWAP and LOCK
directives.

    It is possible to run a closed shell calculation through the RHF module
(by  specifying  NOPEN as zero in the first data line). The only reason for
doing so is to make use of the LOCK option, the latter being not  available
with the SCF module.


The LOADQ Directive

    One  of the LOADQ directives VECTORS,START,ALPHAS,RESTORE,GETQ,EXTRA or
COMBINE must be presented so that trial eigen vectors may be obtained.  The
first NCORE orbitals will be doubly occupied, the next NOPEN will be singly
occupied, the remainder will be virtual.


The SDIAG Directive

    See the SDIAG directive of closed shell program.


The ORTHOG Directive

    See the ORTHOG directive of closed shell program.


The SWAP Directive

    See the SWAP directive of closed shell program.


The ORBSYM Directive

    See the ORBSYM directive of closed shell program.


The ALIGN Directive

    See the ALIGN directive of closed shell program.


The MOPOPS Directive

    See the MOPOPS directive of closed shell program.


The EVALUES Directive

    See the EVALUES directive of closed shell program.


The ENTER Directive

    See the ENTER directive of closed shell program.


The STOP Directive

    See the STOP directive of closed shell program.


Damp Factors, Level Shifters and Canonicalization within the 'Half-Closed' Shell Restricted Hartree-Fock Program

5.33.1  Introduction
        ____________

    The following notes are based on the paper by M. F.  Guest  and  V.  R.
Saunders  [xx].  The  purpose  of  the  RHF  program  is to make stationary
(usually to minimise) the energy  of  a  single  determinatal  wavefunction
contructed from NCORE orthonormal doubly occupied molecular obitals (DOMOS)
and NOPEN orthonormal singly occupied molecular  orbitals  (SOMOS),  latter
being  of  common  spin  factor.  From  NEWBAS  linearly  independant basis
functions one can construct NVIRT =  NEWBAS-NCORE-NOPEN  virtual  molecular
orbitals  (VMOS)  such  that all molecular orbitals comprise an orthonormal
set. Let 0, X1, X2 and X3 denote row vectors of the basis functions  DOMOS,
SOMOS and VMOS respectively. Then:

   (X1:X2:X3) = 0(Q1:Q2:Q3) = 0Q                                     5.1

where  each column of Q contains the basis function coefficients of a given
molecular orbital. The density matrices R1 and R2 are defined as:

   R1 = Q1Q1+                                                        5.2

   R2 = Q2Q2+                                                        5.2

The electronic energy expression for the half-closed shell  case  is  given
by:

   E = 2trR1F + trR2F + 2trR1J[R1] - trR1K[R1] + 1/2trR2J[R2]

       - 1/2trK2[R2] + 2trR2J[R1] - trR2[R1]                         5.4

where  F  is  the  matrix  representative  of  the one-electron Hamiltonian
operator; J[R] and K[R] denote Coulomb and exchange  matrices  respectively
for  a  given  density matrix, R. The functional notation is to be taken as
meaning that the matrix elements of the J and K are functions of the matrix
elements of R, as follows:

   Jpg = [ Rrs(pq!rs)                                                5.5
         rs

   Kpq = [ Rrs(pr!qs)                                                5.6
         rs

where

   (pq!rs) = // 0p(1)0q(1) 1/r12 0r(2)0s(2) dt1 dt2                  5.7

Now define:

   R = 2R1 + R2                                                      5.8

   P = 1/2R2                                                         5.9

and

   G = J[R] - 1/2K[R]                                                5.10

   Z = K[P]                                                          5.11

It is convenient to make the following definition of a Fock operator:

   Hn = F + G + cnZ                                                  5.12

where the values for cn of interest are displayed in table 5.1. The  energy
expression (5.4) may be written in the compuatationally convenient form:

   E = 1/2trR(F+H1) - trPZ                                           5.13

5.33.2  Conditions for a Stationary Energy
        __________________________________

    Physically  significant  variations  in  the  molecular orbitals may be
classified as follows:

(a) Mixing of DOMOS  with  VMOS.  Small  such  variations,  preserving  the
orthonormality of the DOMOS to first order, may be written:

   X1' = (X1:X3) !I1!                                                5.14
                 !--!
                 !A !

where  I1  is  an  identity  matrix  of order NCORE, and A is a NVIRT*NCORE
matrix of mixing coefficients.

(b)  Mixing  of  SOMOS  with  VMOS.  Small   variations,   preserving   the
orthonormality of the SOMOS to first order, may be written as:

   X2' = (X2:X3) !I2!                                                5.15
                 !--!
                 !B !

where  I2  is  an  identity  matrix  of order NOPEN, and B is a NVIRT*NOPEN
matrix of mixing coefficients.

(c) Mixing between  DOMOS  and  SOMOS.  Small  variations,  preserving  the
orthonormality of the DOMOS and SOMOS to first order, may be written as:

   (X1:X2)' = (X1:X2) !I1:-C+!                                       5.16
                      !--:---!
                      !C : I2!

where C is a NOPEN*NCORE matrix of mixing coefficients.

    Combining 5.14, 5.15 and 5.16,

   (X1:X2)' = (X1:X2:X3) !I1:-C+!                                    5.17
                         !--:---!
                         !C : I2!
                         !--:---!
                         !A : B !

Notice  taht  self  mixing  between  DOMOS  or  SOMOS  has no effect on the
wavefunction of the  energy.  The  perturbed  molecular  orbitals  are  not
orthonormal in second or higher ordrer. Fortunately, the energy  expression
is  only  required  to the first order in the elements of the matrices A, B
and C, given by:

   NVIRT NCORE            NVIRT NOPEN
   E = E0 + 4  [   [ Aki H1ki   +  2  [   [  Bkj H2kj
               k   i                  k   j

        NCORE NOPEN
     = 2  [   [ Cji H3ji  + higher terms                             5.18
          i   j

H1ki denotes the matrix elements connecting the k'th VMO with the
i'th DOMO over the Fock operator H1 (see table 5.1).

H2kj denotes the matrix elements connecting the k'th VMO with the
j'th SOMO over the Fock operator H2 (see table 5.1).

H3ji denotes the matrix elements connecting the j'th SOMO with the
i'th DOMO over the Fock operator H3 (see table 5.1).
 It is clear that the conditions for a stationary energy are satisfied
when all matrix elements (H1ki, H2kj and H3ji) appearing in 5.18 are
zero. Thus:

   (dE  )
   -----Aki = 0 = 4H1ki                                            5.19
   (dAki)

   (dE  )
   ------ Bkj = 0 = 2H2kj                                            5.20
   (dBkj)

   (dE  )
   ------ Cji = 0 = 2H3ji                                            5.21
   (dCji)

5.33.3  General Philosphy of the Minimisation Procedure
        _______________________________________________

    A suitable Fock operator id defined in the basis of the trial molecular
orbitals  (normally  the  Fock  operator  is  defined in the basis function
representation), and this Fock  operator  is  diagonalised.  The  resulting
eigen  vectors, after suitable ordering, define iterated molecular orbitals
as linear combinations of the trial molecular orbitals.

    Let Q(k)  denote  the  eigen  vector  array  defining  trial  molecular
orbitals  as  linear  combinations of the LCBF at the k'th iterative cycle,
and let T(k) denote eigen vectors resulting from the diagonalisation of the
Fock  operator  in  the  iterated  molecular  orbital basis, hence defining
iterated molecular orbitals as linear combinations of the  trial  molecular
orbitals.

5.33.4  The ATMOL Fock Operator
        _______________________

    The general form of the Fock operator is given by:

         !   (HD)dd:lds(H3)ds   :ldv(H1)dv       !
         ----------------------------------------!
         !lds(H3)sd:(HS)ss + aI2:lsv(H2)sv       !
         ----------------------------------------!
         !ldv(H1)vd:lsv(H2)vs   :(HV)vv + (a+b)I3!


    (HD)dd, (HS)ss and (HV)vv : each denote a block of one of the operators
H1 to H5 in the basis of the DOMOS, SOMOS and VMOS respectively.

    lds, ldv and lsv : denote DOMO-SOMO, DOMO-VMO and SOMO-VMO damp factors
respectively.

    a   and   b   :  denote  the  DOMO-SOMO  and  SOMO-VMO  level  shifters
respectively.

    (H3)ds : denotes a block of H3 connecting all  DOMOS  with  all  SOMOS.
(H3)sd is the transpose.

    (H1)dv  :  denotes  a  block  of H1 connecting all DOMOS with all VMOS.
(H1)vd is the transpose.

    (H2)sv : denotes a block of H2  connecting  all  SMOS  with  all  VMOS.
(H2)vs is the transpose.

    It  will  be  readily seen that if the above Fock operator is diagonal,
the conditions for a stationary energy will be satisfied, so that the total
wavefunction   will   be  self-consistent.  The  procedure  adopted  is  to
diagonalise the Fock operator, and unless the LOCK directive is  presented,
to  order the resulting eigen vector columns according to the level shifted
eigen values. If the LOCK directive was used, then ordering is based on the
principle  of  maximum  overlap  of an iterated eigen vector with the trial
eigen vector. Whichever ordering scheme is adopted, the first NCORE and the
next  NOPEN  columns define iterated DOMOS and SOMOS as linear combinations
of the trial molecular orbitals.

    Analyse of the diagonalisation of the Fock operator using  first  order
perturbation theory, yields the following results:

   Aki = ldv H1ki / (HDii - HVkk - a - b)                            5.23

   Bkj = lsv H2kj / (HSjj - HVkk - b)                                5.24

   Cji = lds H3ji / (HDii - HSjj - a)                                5.25

    The following discusion is based on the assumption that the usual value
of unity has been chosen for the l-parameters (ldv, lds and lsv). If a  and
b are chosen positive and with a sufficiently large value, then:

(a) The first order analysis will be valid irrespective of the magnitude of
the Fock operator.

(b) Trial molecular orbitals can be forced to obey the aufbau principle, so
that  large  scale  inter shell swapping of molecular obitals is inhibited.
Such large scale swapping would correspond to large  perturbations  in  the
wavefunction.

(c) The matrix elements of A, B and C can be chosen  of  arbitrarily  small
magintude,  and  of  opposite sign to the corresponding first derivative of
the energy (see 5.19 to  5.21).  Thus  the  first  order  energy  variation
(5.18),  will  be negative and larger in absolute magnitude than the higher
order variations.

    A sufficiently level shifted  procedure  will  give  convergence  to  a
stationary  point  on  the  energy surface given any trial set of molecular
orbitals, and will always procede down the energy surface.

    The level shifted eiegn values of the Fock operator are reduced by  the
constants (a+b) and a for the VMOS and SOMOS respectively, so as to produce
non-level shifted eiegn values on the printed output.

5.33.5  Some Notes on Canonialisation
        _____________________________

    At convergence, the canonicalisation of the molecular orbitals is  such
that:

   Q1+(HD)Q1 = Ad                                                    5.26

   Q2+(HS)Q2 = As                                                    5.27

   Q3+(HV)Q3 = Av                                                    5.28

where  Ad,  As  and Av are diagonal matrices defining the non-level shifted
orbital energies of the DOMOS, SOMOS and VMOS respectively. The purpose  of
the  following  is  to  give  some  idea  as  to why other than the default
canonicalisation scheme (which normally  gives  a  good  convergence  rate)
might be used.

(a)  The  Roothann  Fock  operator which appears in Roothaan's one-electron
Hamiltonian formulation [xx], may be written in  the  basis  of  the  trial
molecular orbitals, and takes the form:

         !(H4)dd:(H3)ds:(H1)dv!
         !--------------------!
         !(H3)sd:(H1)ss:(H2)sv!
         !--------------------!
         !(H1)vd:(H2)vs:(H5)vv!

it will be readily seen that the Roothaan single Fock operator is a special
case of the ATMOL Fock operator, and the program may be forced  to  perform
iterations  in  precisely  the  manner prescribed by Roothaan's single Fock
operator method if the directives:

         DOMOS H4
         SOMOS H1
         VMOS H5

are presented in the user's input data.

    The Roothaan double Fock operator  method  cannot  be  shown  to  be  a
special case of the ATMOL procedure. However identical orbitals and orbital
energies result from the present program if canonicalisations of the  DOMOS
and SOMOS are specified as H1 and H2 respectively.

(b)  The canonicalisations may be specified so that the orbital energies of
the DOMOS and SOMOS are  ionisation  potential  in  the  Koopmans'  theorem
sense.  Assume  that the common spin factor of the SOMOS is a, and consider
the removal of an electron from the b-spin DOMO, giving rise  to  an  ionic
configuration  of  spin  degeneracy  one  greater than the parent molecular
configuration. It is possible to form NCORE such configurations, and  would
expect in general, the description of the ionic states would be improved by
allowing configuartion interaction (CI) between these  configurations.  The
ion  Hamiltonian matrix element connecting two ionic configurations, Xp and
Xq, may be expressed as:



   Hpq =  = -                              5.29

where  Wp  and  Wq  denote  the  molecular  orbitals  which have under-gone
electron removal to form the configurations, Xp and Xq. Note that if H3 had
been chosen to canonicalise the DOMOS, then Hpq would be equal to zero, and
no interaction between the above ionic configurations would occur. Moreover
it  can  be  easily  shown  that  the energy required for the removal of an
electron from b-spin DOMO is given by the nagative of the orbital energy of
the DOMO, calculated over H3.

    Now  consider  the  case of removal of an electron from an a-spin SOMO,
giving rise to an ionic configuration of spin degeneracy one less than  the
parent   molecular  configuration.  It  is  possible  to  form  NOPEN  such
configurations, and again would expect that the description  of  the  ionic
states  would  be  improved  by allowing CI between the configurations. The
Hamiltonian matrix connecting two configuartions, Xq and Xv is given by:



   Hqv =  = -                              5.30

where  Wq  and  Wv  denote  the  molecular  orbitals  which have under-gone
electron removal to form the configurations Xq and Xv. Thus, if H2 had been
chosen  to  canonicalise  the  DOMOS,  then  Hqv  would  equal zero, and no
interaction between the above configurations would occur. Moreover  it  can
be  shown  that  the  energy required for the removal of an electron from a
SOMO is given by the negative of the orbital energy of the SOMO, calculated
over H2.

(c)  The  canonicalisation  of  the  SOMOS  and VMOS may be chosen so as to
produce electron affinity orbital energies. Consider  the  addition  of  an
electron  to a SOMO of b-spin, to produce an ionic configuration whose spin
degeneracyis one  less  than  that  of  the  parent  molecule.  NOPEN  such
configuartions may be produced, and in general would expect the description
of the ion states to be improved by CI. The matrix element  connecting  two
ionic configurations Xp and Xq is given by:



    =                                      5.31


where Wp and Wq denote the SOMOS involved  as  electron  acceptors  in  the
configurations Xp and Xq respectively. Thus, if the SOMOS are canonicalised
over H3, the ionic configurations formed by addition of an  electron  to  a
SOMO  will  be  non-interacting.  Furthermore,  the energy released when an
electron is added to the p'th SOMO (electron  affinity)  is  given  by  the
negativeof the corresponding orbital energy computed over H3, ep. Thus:

   Eion = Emol + ep                                                  5.32


    Consider the addition of an electron to an a-spin VMO,  to  produce  an
ionic  configuration  whose spin degeneracy is one greater than that of the
parent  molecule.  NVIRT  such  configurations  can   be   generated,   and
Hamiltonian matrix elements are given by:



    =                                      5.33

where Wp  and  Wq  denote  VMOS  involved  as  electron  acceptors  in  the
configurations Xp and Xq respectively. Thus, if the VMOS are canonical over
H2, the above ionic configurations will be  non-interacting.  Further,  the
energy  released  when an electron is added to the p'th a-spin VMO is given
by the negative of the corresponding orbital energy, computed over H2,  ep.
Thus:

   Eion = Emol + ep                                                  5.34

(d) In table 5.2, a summary of the commonly used canonicalisation is given.
The user should note that it is not necessary for a restart run to use  the
same  canonicalisations  as in previous startup or restart runs. Thus it is
possible to converge a case using H1 for all canonicalisations, producing a
nearly  optimim  rate of convergence. Restart runs may then be submitted to
obtain ionisation  potential  and  electron  affinity  significant  orbital
energies  with  the  use  of  the  DOMOS,  SOMOS and VMOS directives. It is
advised that the LOCK directive be used in restart runs, (and large  values
for  the  level  shifters),  to  prevent any possible swapping of molecular
orbitals which  might  otherwise  accompany  the  changes  in  the  orbital
energies.

                            Table 5.2
                            _________

                     Useful Canonicalisations

       Optimum    Ionisation   Electron   To simulate    To reproduce
     Convergence  Potentials  Affinities  Roothaan's     results from
                                          Single Fock    Roothaan's Double
                                          Matrix Method  Fock Matrix Method
------------------------------------------------------------------------------

 DOMOS    H1          H3       Not Valid       H4               H1

 SOMOS    H1          H2          H3           H1               H2

 VMOS     H1       Not Valid      H2           H5            Not Valid




The Directives of the Symmetry Equivalenced RHF Module


    The aim of the symmetry equivalenced RHF module (codenamed SERHF) is to
provide  facilities for the minimisation of energy expressions which are of
more general form than can be handled by the RHF module. This module can be
used  to  symmetry  equivalence  orbitals,  such  that  an  average  energy
expression may be obtained. The directives of  the  SERHF  module  are  now
outlined,  generally  they  may be presented in any order if not previously
stated.

The TITLE Directive

    See the TITLE directive of closed shell program.

The MAXCYC Directive

    See the MAXCYC directive of closed shell program.

The MFILE Directive

    See the MFILE directive of closed shell program.

The SIZE Directive

    See the SIZE directive of closed shell program.

The CTRANS Directive

    See the CTRANS directive of closed shell program.

The FPRINT Directive

    See the FPRINT directive of closed shell program.

The PUNCH Directive

    See the PUNCH directive of closed shell program.

The FORMAT Directive

    See the FORMAT directive of closed shell program.

The OUTPUT Directive

    See the OUTPUT directive of closed shell program.

The IPRINT Directive

    See the IPRINT directive of closed shell program.

The ACCURACY Directive

    See the ACCURACY directive of closed shell
    program.


The TIME Directive

    See the TIME directive of closed shell program.

The LEVEL Directive


    This  directive  consists  of  one  data   line   read   to   variables
TEXT,DP1,PV1, IBRK,DP2,PV2 using format (A,2F,I,2F).

    TEXT    should be set to the character string LEVEL.

    DP1,PV1 are  the  Doubly  Occupied  Molecular  Orbital (DOMO)-Partially
Occupied Molecular Orbital (POMO) and  POMO  -  Virtual  Molecular  Orbital
(VMO) level shifters, will be set to the values DS1 and SV1 respectively.

    IBRK    is  the  iterative  cycle number to which the DP1 and PV1 level
shifters hold too.

    DP2,PV2 is the DOMO-POMO and POMO-VMO level shifters after cycle IBRK.

    In general terms, the partially occupied molecular orbitals (POMO) have
a  similar  role  within  the  SERHF  module  as the SOMOS have for the RHF
module. Users may find it useful to  read  the  description  of  the  LEVEL
directive  for  the  RHF program to gain insight into the corresponding use
within the SERHF program.

The D12, D13 and D23 Directives


    These directives are used to  set  the  parameters  ldp,  ldv  and  lpv
respectively referred to in section 6.xx. The general syntax may be deduced
from the descriptions given for the corresponding  directives  of  the  RHF
program (paragraphs 5.xx t0 5.yy)

The ENERGY Directive


    This directive is used to define the energy expression to be minimised,
and consists of one data  line,  read  to  variables  TEXT,NELEC,X,Y  using
format (A,I,2F).

    TEXT    should be set to the character string ENERGY.

    NELEC   should  be  set  to  the  total number of electrons in the open
shell orbitals. Defined in a subsequent table is the  parameter  'w',  such
that  w  =  NELEC  /  NOPEN.  Note  the  condition  0
The DOMOS Directive

    This directive consists of a single data line, read to variables  TEXT,
CD,DD using format (A,2F).

    TEXT    should be set to the character string DOMOS.

    CD,DD   are  used  to  specify  the values of the parameter 'c' and 'd'
respectively (see 6.5), which enters into the  canonicalising  Fock  matrix
for the DOMOS, referred as HD in paragraph 6.xx.

    The  DOMOS  directive may be omitted, when H1 (as defined in table 6.3)
will be used to canonicalise the DOMOS.

The POMOS Directive

    This directive consists of one data line read to  variables  TEXT,CP,DP
using format (A,2F).

    TEXT    should be set to the character string POMOS.

    CP,CD   are  used  to  specify the values 'c' and 'd' respectively (see
6.5) which enter  into  the  canonicalising  Fock  matrix  for  the  POMOS,
referred to as HP in paragraph 6.xx.

    The   POMOS   directive   may  be  omitted,  when  the  POMOS  will  be
canonicalised over H1, as defined in table 6.3.

The VMOS Directive

    This directive consists of a single data line, read to variables  TEXT,
CV,DV using format (A,2F).

    TEXT    should be set to the character string VMOS.

    CV,CD   are  used  to specify the values 'c' and 'd' respectively, (see
6.5) which enter into the canonicalised Fock matrix for the VMOS,  referred
to as HV in paragraph 6.xx.

    The  VMOS directive may be omitted, when the VMOS will be canonicalised
over H1, as defined in table 6.3.


The LOCK Directive

    See the LOCK directive of open shell program.

The LOADQ Directive

    One of the LOADQ directives (VECTORS,START,ALPHAS,RESTORE,GETQ,EXTRA or
COMBINE)  must be presented, to define trial eigen vectors. The first NCORE
orbitals will  be  doubly  occupied,  the  next  NOPEN  will  be  partially
occupied, the remainder virtual.

The SDIAG Directive


    See the SDIAG directive of closed shell program.

The ORTHOG Directive

    See the ORTHOG directive of closed shell program.

The SWAP Directive

    See the SWAP directive of closed shell program.

The ORBSYM Directive

    See the ORBSYM directive of closed shell program.

The ALIGN Directive

    See the ALIGN directive of closed shell program.

The MOPOPS Directive

    See the MOPOPS directive of closed shell program.

The EVALUES Directive

    See the EVALUES directive of closed shell program.

The ENTER Directive

    See the ENTER directive of closed shell program.

The STOP Directive

    See the STOP directive of closed shell program.

Theoretical Aspects of the SERHF Program

6.31.1  Introduction
        ____________


    The following notes are based on a paper by M.F Guest and V.R  Saunders
[xx].  The  purpose  of  the  SERHF program is to make stationary (often to
minimise) the energy  of  a  wavefunction  constructed  from  NCORE  doubly
occupied  molecular orbitals (DOMOS) and NOPEN partially occupied molecular
orbitals (POMOS). From NEWBAS linearly independant basis functions one  can
construct  NVIRT = NEWBAS - NCORE - NOPEN virtual molecular orbitals (VMOS)
such that all the molecular orbitals comprise an orthonormal  set.  Let  0,
X1,  X2, and X3 denote row vectors of the basis functions, DOMOS, POMOS and
VMOS respectively. Then:

   (X1:X2:X3) = 0(Q1:Q2:Q3) = 0Q                                     6.1

where each column of Q contains the basis function coefficients of a  given
molecular orbital. The density matrices are defined as:

   R1 = Q1 Q1+                                                       6.2

   R2 = Q2 Q2+                                                       6.3

The  electronic  energy  expression to be minimised is assumed to be of the
form:

   E = 2trR1F + wtrR2F + 2trR1J[R1] -trR1K[R1]

      + 2wtrR2J[R1] - wtrR2K[R1] + xtrR2J[R2] - ytrR2K[r2]           6.4

where w, x and y are the parameters discussed in subparagraph  6.xx,  F  is
the  matrix  representative  of  the  one-electron  Hamiltonian, whilst the
construction  of  the  Coulomb  and  exchange  matrices,  J[R]   and   K[R]
respectively, have been outlined in subparagraph 5.33.1.

    It  is  convenient  to make the following definition of a class of Fock
operators:

   H = F + 2J1[R1] - K[R1] + cJ[R2] - d1/2K[R2]                      6.5

    In table 6.3 the c and d values are given (as functions of  the  energy
expression  parameters  w,  x and y) for those forms of H that the user may
find useful.

                          Table 6.3
                          _________
      Definition of Fock Operators for the SERHF Module
      _________________________________________________

   Fock Operator                  c                   d
   _____________                  _                   _

        H1                        w                   w
        H2                      2x/w                4y/w
        H3                  2(w-x)/(2-w)       2(w-2y)/(2-w)
                          2  3                2  3
        H4             (4w -w -4x)/w(2-w)  (4w -w -8y)/w(2-w)
                         3                   3
        H5             (w -4xw+4x)/w(2-w)  (w -8yw+8y)/w(2-w)
                                3                   3
        H6                 (4x-w )/w(2-w)      (8y-w )/w(2-w)


6.31.2  Conditions for a Stationary Energy
        __________________________________

    Physically significant variations in  the  molecular  orbitals  may  be
classified as follows:

(a)  Mixing  of  DOMOS  with  VMOS.  Small  such  variations preserving the
orthonormality of the DOMOS to first order, may be written:

   W1' = (W1:W3) !I1!
                 !--!                                                6.6
                 !A !

where I1 is an identity matrix of order  NCORE,  and  A  is  a  NVIRT*NCORE
matrix of mixing coefficients.

(b)  Mixing  of  POMOS  with  VMOS.  Small  such variations, preserving the
orthonormality of the POMOS to first order, may be written:

   W2' = (W2:W3) !I2!
                 !--!                                                6.7
                 !A !

where I2 is an identity matrix of order  NOPEN,  and  B  is  a  NVIRT*NOPEN
matrix of mixing coefficients.

(c)  Mixing  of  DOMOS  and  POMOS.  Small  such variations, preserving the
orthonormality of the DOMOS and POMOS to first order, may be written:

   (W1:W2)' = (W1:W2) !I1:-C+!
                      !------!                                       6.8
                      !C : I2!

where C is a NOPEN*NCORE matrix of mixing coefficients.

    Equations 6.6 to 6.8 may be combined to produce:

  (W1:W2)' = (W1:W2:W3) !I1:-C+!
                        !------!
                        !C : I2!                                     6.9
                        !------!
                        !A : B !

Notice that self mixing between the DOMOS or POMOS has  no  effect  on  the
wavefunction   or   energy.   The  perturbed  molecular  orbitals  are  not
orthonormal beyond first order. The expansion of the energy  expression  is
required  to  be  correct  only  to  the first order in the elements of the
matrices A, B and C, given by:

             NVIRT NCORE           NVIRT NOPEN
   E = E0 + 4  [     [ AkiH1ki + 2w  [     [ BkjH2ki
               k     i               k     j

                 NCORE NOPEN
         + 2(2-w)  [     [ CjiH3ji     +     higher terms            6.10
                    i    j


    H1ki  denotes  the matrix element connecting the k'th VMO with the i'th
DOMO over the Fock operator H1 (see table 6.3).

    H2kj denotes the matrix element connecting the k'th VMO with  the  j'th
POMO over the Fock operator H2 (see table 6.3).

    H3ji  denotes the matrix element connecting the j'th POMO with the i'th
DOMO over the Fock operator H3 (see table 6.3).

    It is clear that the conditions for a stationary energy  are  satisfied
when  all  the  matrix elements (H1ki, H2kj and H3ji) appearing in 6.10 are
zero.

6.31.3  Minimisation Procedure
        ______________________

    The general strategy of the SERHF energy is as for the RHF program. The
ATMOL  SERHF  Fock  operator in the basis of the trial molecular orbital is
given by:

         !   (HD)dd:lds(H3)dp :  ldv(H1)dv   !
         !-----------------------------------!
         !ldp(H3)pd:(HP)pp+aI2:  lpv(H2)pv   !
         !-----------------------------------!
         !ldv(H1)vd:lpv(H2)vp :(HV)vv+(a+b)I3!

where:

    (HD)dd, (HP)pp and (HV)vv: denote a block  of  a  Fock  operatorof  the
general  form  given in equation 6.5, in the basis of DOMOS, POMOS and VMOS
repectively. The user may specify the form of HD, HP and HV as discribed in
subparagraphs 6.xx to 6.xx.

    ldp,  ldv  and  lpv:  denote  the DOMO-POMO, DOMO-VMO and POMO-VMO damp
factors, referred in subparagraph 6.xx.

    a and b: denote the DOMO-POMO and POMO-VMO level shifters respectively.

    (H3)dp: denotes a block of H3 (see table 6.3) connecting all DOMOS with
all POMOS. (H3)pd is the transpose.

    (H1)dv: denotes a block of H1 (see table 6.3) connecting all DOMOS with
all VMOS. (H3)pd is the transpose.

    (H2)pv: denotes a block of H2 (see table 6.3) connecting all POMOS with
all VMOS. (H2)vp is the transpose.

6.31.4  Connection with the Roothaan Procedure
        ______________________________________

    The   Fock  operator  which  appears  in  the  Roothaan's  one-electron
Hamiltonian [xx], may be written  in  the  basis  of  the  trial  molecular
orbitals, and takes the form:

         !(H4)dd:(H3)dp:(H1)dv!
         !--------------------!
         !(H3)pd:(H5)pp:(H2)pv!
         !--------------------!
         !(H1)vd!(H2)vp:(H6)vv!

It will be readily seen that the Roothaan single Fock operator is a special
case  of the ATMOL SERHF Fock operator, and the SERHF program may be forced
to perform the  SCF  iterations  in  precisely  the  manner  prescribed  by
Roothaan's  single  Fock  operator, given that appropriate DOMOS, POMOS and
VMOS directives are used.

    The Roothaan double-Hamiltonian method cannot be shown to be a  special
case  of  the  SERHF  method.  However,  it  can  be shown that the orbital
energies and canonicalisations of the converged  DOMOS  and  POMOS  may  be
rendered identical in the two procedures with the choice HD = H1, HP = H2.

    It may be useful to note the following connections between the Roothaan
f, a and b  energy  expression  parameters,  and  the  SERHF  w,  x  and  y
parameters:

   w = 2f                                                           6.11

   x = 2af2                                                         6.12

   y = bf2                                                          6.13




The Directives for the General RHF Program



    The aim of the 'general' RHF module (code named  GRHF)  is  to  provide
facilities  for  the  minimisation  of energy expressions of a more general
form than can be handled by the RHF or SERHF modules. The user should  note
that  the  NCORE  and  NOPEN  parameters  of  the  first  data line have no
significance for the GRHF module, although they are  submitted  to  certain
standard checking procedures, and the users are thus advised to set both of
these parameters to unity. The directives of the GRHF module following  the
first data line may be presented in any order, unless explicitly specified.

The TITLE Directive

    See the TITLE directive of closed shell program.

The MAXCYC Directive

    See the MAXCYC directive of closed shell program.

The MFILE Directive

    See the MFILE directive of closed shell program.

The SIZE Directive

    See the SIZE directive of closed shell program.

The CTRANS Directive

    See the CTRANS directive of closed shell program.

The FPRINT Directive

    See the FPRINT directive of closed shell program.

The PUNCH Directive

    See the PUNCH directive of closed shell program.

The FORMAT Directive

    See the FORMAT directive of closed shell program.

The OUTPUT Directive

    See the OUTPUT directive of closed shell program.

The IPRINT Directive

    See the IPRINT directive of closed shell program.

The ACCURACY Directive

    See the ACCURACY directive of closed shell
    program.


The TIME Directive

    See the TIME directive of closed shell program.

The SHELLS Directive

    This directive, which is comparitively complex  in  structure,  defines
data  which plays an equivalent role in the GRHF module to that supplied by
the LEVEL,D12,D13,D23,DOMOS,POMOS,VMOS and ENERGY directives of  the  SERHF
module.  The SHELLS directive has the additional responsibility of defining
the molecular orbital 'shell' struture.

    The first data line should contain the character string SHELLS  in  the
first  data field. Subsequent data lines define the molecular orbital shell
structure, one data line per shell, each line being read in I-free  format,
the  integers  specifying the numbering of the molecular orbitals to appear
in a given shell. For example, if the following line appeared:

       1 3 5

as the first 'shell definition line'. Then molecular  orbitals  1,3  and  5
would be deemed to constitute shell 1. Similarly, if the data line:

       10 11

appeared  as the second 'shell definition line', then molecular orbitals 10
and 11 would be deemed to constitute shell 2.  The  use  of  the  character
string  TO  may  be  used  to simplify the preparation of 'shell definition
lines'. For example,  the  following  data  lines  are  equivalent  in  the
context:

       1 2 3 4 5 7

or

       1 TO 5 7

or

       7 1 TO 5

    When all the 'shell definition lines' have been presented, the sequence
should be terminated by a line containing the character string END  in  the
first data line. A maximum of ten shells can be handled by the GRHF module.

    The  data  lines  following  the  'shell  definition lines' are used to
define the 1-electron  energy  expression  parameters  (W  parameters,  see
equation   3).   The   data   is   read  in  free  F-format  to  an  array,
(W(I),I=1,NSHELLS), whers NSHELLS equals the number of occupied shells.  As
many data lines as required may be used, so that sequences:

       2.0 1.0 0.333333

and

      2.0
      1.0
      0.333333

are equiavlent.

    Immediately following the 1-electron energy expression definition lines
there  follows  a  sequence  of  lines read to variables TEXT,M,N,VAL using
format (A,2I,F). The purpose of  these  lines  is  to  define  coulomb  and
exchange  energy expression parameters, damp factors and level shifters and
canonicalisation conditions.

    The role of each data line is dependant upon the character string found
in TEXT, as follows:

 TEXT = JE : Such lines define coulombic energy expression parameters.
             The program will arrange that x  = x   , so that there is
                                            NM   MN
             no need for the user to specify 'x' directly.

    If the coulomb energy expression parameter for a given pair  of  shells
is  not  user  defined  by means of a JE line, it will be given the default
value:

      x  = (W W ) / 2 = x
       MN    M N         NM

Note that the maximum value for M and N is NSHELL.

 TEXT = KE: Such lines define the exchange expression parameters. The
            program will arrange that y  = y  .
                                       NM   MN

    If  the energy energy expression parameter is not user defined by means
of a KE line, it will be given the default value:

       y  = -(W W ) / 4
        MN     M N

Note that the maximum value for M and N is NSHELL.

 TEXT = DAMP: Such lines define tha damp factor for a given pair of
              shells. If the damp factor for a given pair of shells is
              not user defined, it will be assigned the default value
              unity by the program.

    Because mixing between occupied and virtual shells is permitted in  the
minimisation process, the maximum value of M and N is given by NSHELL+1.

 TEXT = SHIFT: Such lines define the level shifter for a given pair of
               shells. If the level shifter for a given pair of shells
               is not user defined, it will be assigned the default
               value zero by the program.

The maximum value of M and N is given by NSHELL+1.

 TEXT = JC: Such lines define coulomb canonicalisation factors. If the
            user does not define 'c' (see equation 4) explicitly, by
            means of the JC line, it will be assigned the value W by the
            program.

    The  maximum  value  of  M  is  given  by  NSHELL+1  (the  program does
canonicalise VMOS), the maximum value of N being NSHELL (because  only  the
occupied  shells  have  their  coulomb operators calculated). Note that the
program does not assume or require the  matrix  of  'c'  parameters  to  be
symmetric.

 TEXT = KC: Such lines define exchange canonicalisations factors. If the
            user does not define 'd' (see equation 4) explicitly, by the
            means of a KC line, it will be assigned the value -W/2 by
            the program.

    The maximum value of M is given by NSHELL+1, the maximum value of N  is
NSHELL.  The  program  does  not  assume  or require that the matrix of 'd'
parameters is symmetric.

    When all the JE,KE,DAMP,SHIFT,JC and KC lines have been  presented  (in
any  order),  the  SHELLS  directive is terminated by a line containing the
character string END in the first data field.

The LOADQ Directive


    One of the LOADQ directives (VECTORS,START,ALPHAS,RESTORE,GETQ,EXTRA or
COMBINE) must be presented, to define trial eigen vectors.

The SDIAG Directive

    See the SDIAG directive of closed shell program.

The ORTHOG Directive

    See the ORTHOG directive of closed shell program.

The SWAP Directive

    See the SWAP directive of closed shell program.

The ORBSYM Directive

    See the ORBSYM directive of closed shell program.

The ALIGN Directive

    See the ALIGN directive of closed shell program.

The MOPOPS Directive

    See the MOPOPS directive of closed shell program.

The EVALUES Directive

    See the EVALUES directive of closed shell program.

The ENTER Directive

    See the ENTER directive of closed shell program.

The STOP Directive

    See the STOP directive of closed shell program.

Theoretical Aspects of the GRHF Program


7.25.1  Introduction
        ____________

    The GRHF program assumes that the  total  wavefunction  is  constructed
from  NACT  occupied  molecular  orbitals which are orthonormal. It further
assumes that the user has  assigned  the  occupied  molecular  orbitals  to
'shells',  where  a  'shell'  consists  of  a  set of one or more molecular
orbitals. Note that a given molecular orbital may be assigned to  only  one
shell.  In  the  following notes the symbols M and N denote shells, and the
symbols  m  and  n  denote  molecular  orbitals  within  shells  M  and   N
respectively.  From NEWBAS linearly independent basis functions the program
is able to construct NEWBAS - NACT VMOS. Given  that  NSHELLS  shells  have
been  defined  as  occupied,  then  the  VMOS will comprise the NSHELL+1'th
shell, with occupation numbers of zero. The VMOS  will  be  so  constructed
that  the  total  set  of  NEWBAS  molecular  orbitals are orthonormal. The
following parameters are defined as:

 Fmm               The expectation value of the m'th molecular orbital
                   over the unscreened 1-particle Hamiltonian operator.

 FM = [ Fmm        The sum of the 1-particle expection values for all
                   molecular orbitals in shell M.

 Jmn = [mm!nn]     The Columb integral between molecular orbitals m
                   and n.

 JMN = [  [  Jmn

 Kmn = [mn!mn]     The exchange integral between molecular orbitals m
                   and n.

 KMN = [  [  Kmn

Energy expressions which can be handled by the  GRHF  program  are  of  the
form:

      NSHELL       NSHELL NSHELL          NSHELL NSHELL
   E =  [ WM FM   +   [   [   xMN JMN    +   [   [   yMN KMN          7.1
        M             M   N                  M   N

Where WM are the one electron energy expression parameters.

    xMN are the Coulomb energy expression parameters (note  that  xMN  must
equal xNM).

    yMN  are  the exchange energy expression parameters (note that yMN must
equal yNM).

    The SHELLS directive is used to  define  the  above  energy  expression
parameters.  Note the form of equation 7.1, that the energy is invariant to
mixing of the molecular orbitals within a shell.

7.25.2  Energy Expression Examples
        __________________________

    Detailed below are simple examples of energy expressions which  can  be
handled  by  the  GRHF program. More detailed examples of particular energy
expressions of selected states are given at the end of this section.

    Example 1

    Consider the case of a half-closed shell triplet, the wavefunction  may
be written as:

      -   -
   !a a b b c d!

In this case the orbitals a and b comprise one shell (the closed shell) and
orbitals  c  and d comprise another (the open shell). The energy expression
for such a state (see equation 5.4) may be rewitten in the form:

   E = 2F1 + F2 + 2J11 +J12 + J21 + 1/2J22 - K11 - 1/2K12 - 1/2K21 - 1/2K22

The SHELLS directive to discribe such a case would look like:

         SHELLS
         1 2
         3 4
         END
         2.0 1.0
         JE 1 1 2.0
         JE 1 2 1.0
         JE 2 2 0.5
         KE 1 1 -1.0
         KE 1 2 -0.5
         KE 2 2 -0.5
         END

However,  remember  that  the  program  sets  Coulombic and exchange energy
expressions to default values according to the rule:

   xMN = (WMWN) / 2                                                 7.2

   yMN = -(WMWN) / 2                                                 7.3

The only parameter which does not comply with the above default settings is
that  for  exchange self energy of shell 2. Thus the above SHELLS directive
may be simplified to the form:

          SHELLS
          1 2
          3 4
          END
          2.0 1.0
          KE 2 2 -0.5
          END

    Example 2:

    Consider the following singlet wavefunction:

       _   _   _       _   _   _
   (!a a b b c d! + !a a b b d c!) / (2)**0.5

In  this  case,  orbitals  a  and  b comprise one shell (the closed shell),
orbital c comprises the second shell and  orbital  d  comprises  the  third
shell. The energy expression may be written:

   E = 2F1 + F2 + F3 + 2J11 + J12 + J21 + J13 + J31 + 1/2J22

     + 1/2J23 + 1/2J32 + 1/2J33 - K11 - 1/2K12 - 1/2K21 - 1/2K13

     - 1/2K31 - 1/2K22 + 1/2K23 + 1/2K32 - 1/2K33

The appropriate SHELLS directive to define the above case would look like:

         SHELLS
         1 2
         3
         4
         END
         2.0 1.0 1.0
         KE 2 2 -0.5
         KE 2 3 0.5
         KE 3 3 -0.5
         END

The only two-electron energy expression parameters which  differ  from  the
defaults  are  those  for the exchange self energies of shells 2 and 3, and
also the exchange energy between shells 2 and 3.

    Example 3:

    Consider the two term configuration interation (CI) function:

       _   _   _        _   _   _
   p!a a b b c c! + q!a a b b d d!

where   p2 + q2 = 1

Normally p and q will have been  determined  from  a  CI  calculation.  Let
molecular orbitals a and b constitute shell 1, orbital c constitute shell 2
and orbital d  constitute  shell  3.  The  one-electron  energy  expression
parameters are given as:

    W1 = 2 : W2 = 2p2 : W3 = 2q2

The Coulomb energy expression parameter matrix written:

   SHELLS          1         2         3
   ------------------------------------------
   !   1       !   2    !   2p2   !   2q2   !
   ------------------------------------------
   !   2       !        !   2p2   !    0    !
   ------------------------------------------
   !   3       !        !         !   2q2   !
   ------------------------------------------

where the lower triangle of the matrix  has  been  omitted  (the  matix  is
symmetric).

    The exchange energy expression parameter matrix may be written as:

   SHELLS          1         2         3
   ------------------------------------------
   !   1      !   -1    !   -p2    !  -q2   !
   ------------------------------------------
   !   2      !         !   -p2    !  pq    !
   ------------------------------------------
   !   3      !         !          !  -q2   !
   ------------------------------------------

again the lower triangle of the matrix has been omitted.

    The two-electron energy expression parameters differ from  the  default
settings, and are defined as:

   x22 = 2p2 : x23 = 0 : x33 = 2q2

   y22 = -p2 : y23 = pq : y33 = -q2

7.25.3  Energy Minimisation Scheme
        __________________________

    The  general  stategy  within  a  given iteration cycle is to construct
revised (hopefully improved molecular orbitals) as linear  combinations  of
the  input molecular orbitals to that cycle. Let w denote the row vector of
trial molecular orbitals, and let  w'  denote  a  row  vector  of  iterated
molecular orbitals. Then:

   w' = w(I + D)                                                     7.4

where  I  denotes  the  identity  matrix  of  order NEWBAS, and D denotes a
NEWBAS*NEWBAS  skew  matrix,  containing  the  molecular   orbital   mixing
coefficients.  The  revised  molecular  orbitals are not orthonormal beyond
first order. However, they are eventually rendered  completely  orthonormal
by a subsequent application of  the  symmetric  orthonormalisation  scheme.
Clearly  what  is  required  is  a scheme for the computation of the matrix
elements of D. For the mixing of two orbitals within  a  given  shell,  the
corresponding  matrix  element  of D is set to zero, since such mixing does
not affect the energy. For mixing of  two  molecular  orbitals  (m  and  n)
within  different  shells  (one  of  which  may  be the virtual shell), the
following formula is used:

   Dmn = lMN (gMN / (-hmn - aMN))                                   7.5

where

   gmn = (dE/dDmn)D = 0                                              7.6

   hmn = (d2E/d2Dmn)D = 0                                            7.7

   lMN : A user supplied input parameter, known as the damp factor.
         The same damp factor is used for all mixings between
         orbitals belonging to a given pair of shells. The default
         value for all damp factors is unity.

   aMN : A user supplied input parameter, known as the level shifter.
         The same level shifter is used for all mixings between
         orbitals belonging to a given pair of shells. The default
         value for all level shifters is zero.

The lMN and aMN parameters may be user  defined  by  means  of  the  SHELLS
directive.  Before  outlining  the  formulae used to evaluate the first and
second derivatives of the energy, the Coulomb and exchange operators for  a
given shell via their matrix elements, are defined as follows:

   JabM = [ / wm(2)wm(2) 1/r12 a(1)b(1) dt1 dt2                      7.8
         m
M

   KabM = [ / wm(2)a(2) 1/r12 wm(1)b(1) dt1 dt2                      7.9
         m
M

further define operators as:

   LM   = WM F + 2 [ xMN JN + 2 [ yMN KN                             7.10
                   N            N

The type of molecular orbital mixing are considering is given by:

   wm = wm + dnm wn + 1/2 dnm2 wm                                    7.11

   wn = wn - dnm wm - 1/2 dnm2 wn                                    7.12

where one included the second order changes which will be  induced  by  the
symmetric  orthonormalisation  scheme.  The  following  formulae define the
first and second energy derivatives:

   ( dE )
   ------  = 2(LnmM - LnmN)                                          7.13
   (dDnm)

   ( dE2 )
   ------- = 2(LnnM - LnnN - LmmM + LmmN
   (dD2mn)
             + Jmn(2yMM + 2yNN - 4yMN)

             + Kmn(4xMM + 4xNN - 8xMN - 2yMM + 2yNN - 4yMN))        7.14

To  avoid the expense of computation of the Coulomb and exchange integrals,
Jmn and Kmn which appear  in  equation  7.14,  these  are  approximated  as
averages, thus:

   Jmn = ( [   [  Jmn ) / (NM * NN)                                  7.15
          m
M n
N

   Kmn = ( [   [  Kmn ) / (NM * NN)                                  7.16
          m
M n
N

where  NM  and NN denote the number of molecular orbitals in shells M and N
respectively.

    When calculating the D-matrix elements between orbitals of shells M and
N, the program canonicalises these molecular orbitals over the operator (LM
- LN), computes the appropriate D-matrix  elements  in  this  canonicalised
basis, then transforms back to the original molecular orbital basis.

7.25.4  Molecular Orbital Canonicalisations
        ___________________________________

    Since  the  energy is invariant to unitary mixing of molecular orbitals
within  a  given  shell,  it  is  necessary  to  specify  canonicalisations
conditions  before  a  unique  definition  of  each  molecular  orbital  is
obtained. The procedure used by the program is  to  require,  for  a  given
shell  (M),  that  a user defined Fock operator HM, is rendered diagonal in
the basis of the molecular orbitals comprising the given shell. The general
form of the Fock operator is given by:

   HM = F + [ cMN JN + [ dMN KN                                      7.17
            N          N

where cMN and dMN are parameters which may be user specified  by  means  of
the  JC  and  KC  lines  of the SHELLS directive, or are set to the default
values cMN = WN, dMN = -WN / 2.

    Two molecular orbitals wm1 and  wm2,  within  a  given  shell  M,  will
therefore obey the following equations:

   (wm1 !HM! wm1) = em1                                             7.18

   (wm2 !HM! wm2) = em2                                             7.19

   (wm1 !HM! wm2) = 0   (m1=/m2)                                    7.20

where  em1  and  em2  are  referred to as the orbital energies of molecular
orbitals  wm1  and  wm2  respectively.  The  user  should  note  that   the
canonicalisations  which  the  user  specifies  will not affect the rate of
convergence of the  iterative  procedure.  The  procedure  for  determining
canonicalisation has been suppiled simply  so  that  the  user  may  obtain
molecular   orbitals  which  have  been  rendered  canonical  in  the  most
convenient form for the user own purposes.

7.25.5  Energy Expression Parameters for s1pn Configurations
        ____________________________________________________

    The following examples give details of the energy expression parameters
to   be   used   with  the  GRHF  program  when  studying  linear  molecule
configurations of the form s1pn, n = 1 to 3.  Such  configurations  may  be
coupled to a closed shell kernal of [+ symmetry, the closed shell having an
occupation number (one-electron energy  expression  parameter)  of  2.  All
two-electron  energy  expression  parameters involving the closed shell (in
interaction with itself or with open shells) take  the  default  values  as
calculated by the GRHF program, and therefore need not be specified. In the
following, two open shells are considerd, the first being  a  single  sigma
orbital  of  occupation 1, the second consisting of a pair of degenerate pi
orbitals occupied by n electrons, and having an occupation number of n/2.

7.25.6  The States Derived from s1pn Configurations
        ___________________________________________

    Table  6.4  details  the  possible  states  derivable  from  the   s1pn
configuration.  The detailed form of the wavefunctions for those components
of highest ms values is also given.

                            Table 6.4
                            _________

              Wavefunctions of the States Derived from s1pn

   Configuration      State       Wavefunction
------------------------------------------------------------------------------

      s1p1             1PI            (!sx! - !sx!) / (2)**0.5
                                  and (!sy! - !sy!) / (2)**0.5

                       3PI             !sx!
                                  and  !sy!

      s1p2             2[+             (!sxx! + !syy!) / (2)**0.5

                       2[-             (2!sxy! - !sxy! + !syx!) / (6)**0.5

                       2D              (!sxx! - !syy!) / (2)**0.5
                                  and  (!sxy! - !syx!) / (2)**0.5

                       4[-             !sxy!

      s1p3             1PI             (!sxxy! - !sxxy!) / (2)**0.5
                                  and  (!syyx! - !syyx!) / (2)**0.5

                       3PI             !sxxy!
                                  and  !syyx!

7.25.7  The Energy Expression Parameters for the States Dervied from s1pn
        _________________________________________________________________

    Table 6.5 details the Coulomb and exchange energy  parameters  for  all
the  states derviable from the s1pn configurations. Note that the 4[- state
derived from the s1p2 is of the half closed shell type, and  may  therefore
also  be  treated using the RHF program, the open shell being s and both pi
orbitals in that case. Where the values of the energy expression parameters
are quoted in parentheses, they take the default value as calculated by the
GRHF program, and need  not  therefore  be  specified  through  the  SHELLS
directive.

                             Table 6.5
                             _________

        Coulomb and Exchange Energy Expression Parameters for the States
                          Dervied from s1pn

                        !      Coulomb       !      exchange      !
  -----------------------------------------------------------------
  Configuration ! State !  ss  !  sp  !  pp  !  ss  !  sp  !  pp  !
  -----------------------------------------------------------------

      s1p1         1PI   (1/2)   (1/4)   0     -1/2   1/4     0

                   3PI   (1/2)   (1/4)   0     -1/2   -1/4    0

      s1p2         2[+   (1/2)   (1/2)   0     -1/2   (-1/4)  0

                   2[-   (1/2)   (1/2)  (1/2)  -1/2    1/4   -1/2

                   2D    (1/2)   (1/2)   1/4   -1/2   (-1/4)  0

                   4[-   (1/2)   (1/2)  (1/2)  -1/2    -1/2  -1/2

       s1p3        1PI   (1/2)   (3/4)    1    -1/2      0   -1/2

                   3PI   (1/2)   (3/4)    1    -1/2     -1/2 -1/2

7.25.8  Example for the 1PI State of the s1p3 Configuration
        ___________________________________________________

    Suppose  that  the first ten molecular orbitals comprise a closed shell
kernal, orbital 11 is to be singly occupied s orbital, and orbitals 12  and
13  the  triply occupied pi shell. The appropriate SHELLS directive for the
1PI state of the s1p3 configuration would look like:

         SHELLS
         1 TO 10
         11
         12 13
         END
         2 1 1.5
         JE 3 3 1
         KE 2 2 -0.5
         KE 2 3 0
         KE 3 3 -0.5
         END


7.25.9  Energy Expression Parameters for (p)1(p*)1, (p)3(p*)1 and (p)3(p*)3
        ___________________________________________________________________
        Configurations
        ______________

    The  following examples give details of energy expression parameters to
be used with the GRHF program when studying linear molecule  configurations
of  the  form (p)1(p*)1, (p)3(p*)1 and (p)3(p*)3, where p and p* denote two
orthogonal sets of p orbitals; these denote  orbitals  belonging  to  these
sets by the symbols x, y, x* and y*. It is important, when using the energy
expression parameters given in the  following  text,  to  ensure  that  the
orbitals  x  and  y  (and similarly for x* and y*) remain properly parallel
throughout the iterations. This gives rise to a difficulty: because  the  x
and  y orbitals are degenerate, so there is nothing in principle to prevent
the  GRHF  program  (or  any  other  of  the  Hartree-Fock  programs)  from
constructing the p orbitals as linear combinations of the x and y orbitals,
and p* orbitals as non-parallel  linear  combinations  of  the  x*  and  y*
orbitals.  Use  of  the  ALIGN  directive,  allows  the  use to specify the
alignment of such degenerate sets of orbitals.

    The open shell sysyems considered may be  coupled  to  a  closed  shell
kernal  of  [+  symmetry,  the closed shell will have a one-electron energy
expression  parameter  of  2,  and  all  two-electron   energy   expression
parameters involving the closed shell (either in interaction with itself or
with the open shells) take the default values as  calculated  by  the  GRHF
program, and will not be specified here. The one-electron energy expression
parameters for the p shells are either 1/2 or 3/2  depending  upon  whether
they are singly or triply occupied respectively.

7.25.10  The   States  Derived  from  (p)1(p*)3,  (p)3(p*)1  and  (p)3(p*)3
         __________________________________________________________________
        Configurations
        ______________

    Table 6.6 details the possible states  derivable  from  the  (p)1(p*)1,
(p)3(p*)1  and (p)3(p*)3. The form of the wavefunctionsfor those components
of highest ms value is also given. The symbol P is used to denote the first
part of the wavefunction (as written down) after permutation of the symbols
x and y.

                         Table 6.6
                         _________

   Configuration   State    Wavefunction
------------------------------------------------------------------------------
    (p)1(p*)1       1[+         (!xx*! - !xx*! + P) / 2

                    1[-         (!xy*! - !xy*! - P) / 2

                    1D          (!xy*! - !xy*! + P) / 2
                            and (!xx*! - !xx*! - P) / 2

                    3[+         (!xx*! + P) / (2)**0.5

                    3[-         (!xy*! - P) / (2)**0.5

                    3D          (!xy*! + P) / (2)**0.5
                            and (!xx*! - P) / (2)**0.5

    (p)3(p*)1       1[+         (!xxyy*! - !xxyy*! + P) / 2

                    1[-         (!xxyx*! - !xxyx*! - P) / 2

                    1D          (!xxyx*! - !xxyx*! + P) / 2
                            and (!xxyy*! - !xxyy*! - P) / 2

                    3[+         (!xxyy*! + P) / (2)**0.5

                    3[-         (!xxyx*! - P) / (2)**0.5

                    3D          (!xxyx*! + P) / (2)**0.5
                            and (!xxyy*! - P) / (2)**0.5

    (p)3(p*)3       1[+         (!xxyx*x*y*! - !xxyx*x*y*! + P) / 2

                    1[-         (!xxyy*y*x*! - !xxyy*y*x*! - P) / 2

                    1D          (!xxyy*y*x*! - !xxyy*y*x*! + P) / 2
                            and (!xxyx*x*y*! - !xxyx*x*y*! - P) / 2

                    3[+         (!xxyx*x*y*! + P) / (2)**0.5

                    3[-         (!xxyy*y*x*! - P) / (2)**0.5

                    3D          (!xxyy*y*x*! + P) / (2)**0.5
                            and (!xxyx*x*y*! - P) / (2)**0.5

7.25.11  Energy  Expression  Parameters  for  the   States   Derived   from
         __________________________________________________________________
         (p)1(p*)1, (p)3(p*)1 and (p)3(p*)3 Configurations
         _________________________________________________

    In  the  following  it is assumed that 4 open shells have been defined,
namely the x, y, x* and y* orbitals. The energy expression  parameters  for
the  xx,  xy and yy interactions (and similarly for the x*x*, x*y* and y*y*
interactions) depend only upon occupation number, and take the values 1 and
-1/2  for  Coulombic  and  exchange  parameters respectively in the case of
triply  occupied  p  orbitals,  and  0  for  both  Coulombic  and  exchange
parameters  in  the  case of singly occupied p orbitals. The parameters for
the xx*, xy*, yy* and yx*  interactionsdepend  upon  the  particular  state
being  studied, and are listed in table 6.7. Note that only the xx* and xy*
parameters are listed explicitly, because yy* = xx*, yx* = xy*. In the case
of  the  3D  state  derived  from  (p)3(p*)1  it is possible to perform the
calculation using only two  open  shells,  namely  the  p  and  p*  shells,
consisting  of  the x, y, x* and y* orbitals respectively. In this case the
Coulomb energy expression parameters of 1, 3/8 and 0 for the  pp,  pp*  and
p*p*  interactions  respectively,  and -1/2, -1/4 and 0 for the pp, pp* and
p*p* exchange parameters respectively. Note that, as in table  6.7,  values
quoted  in  parenthases  take  the default values as calculated by the GRHF
program, and need not be specified in the SHELLS  directive.  Attention  is
drawn  to  the  degeneracy  of  the  3[-  and  1[-  statesof  the (p)3(p*)1
configuration in the Hartree-Fock approximation. There is  no  need  to  do
separate  SCF  calculations  on these states. The results for the (p)3(p*)1
and (p)3(p*)3 configurations have  been  checked  by  comparison  with  the
results  of  J.B.  Rose  and V. Mckoy [xx], after appropriate conversion of
these authors results to ATMOL standards. In all cases complete  argreement
was found.


                             Table 6.7
                             _________

  Coulombic and Exchange Energy Expression Parameters for the States
  Derived from (p)1(p*)1, (p)3(p*)1 and (p)3(p*)3 Configurations

                            !   Coulombic       Exchange    !
   ----------------------------------------------------------
   Configuration  !  State  !  xx*  !  xy*  !  xx*  !  xy*  !
   ----------------------------------------------------------

    (p)1(p*)1         3[+      3/8    -1/8    -1/4    -1/4

                      1[+      3/8    -1/8     1/4     1/4

                      3[-     -1/8     3/8     1/4    -3/4

                      1[-     -1/8     3/8    -1/4     3/4

                      3D      (1/8)   (1/8)   -1/4     1/4

                      1D      (1/8)   (1/8)   -1/4     3/4

    (p)3(p*)1         3[+      1/8     5/8    -1/4    -1/4

                      1[+      1/8     5/8     3/4    -5/4

                      3[-      5/8     1/8    -1/4    -1/4

                      1[-      5/8     1/8    -1/4    -1/4

                      3D      (3/8)   (3/8)   -1/4    -1/4

                      1D      (3/8)   (3/8)   -1/4     3/4

     (p)3(p3*)        3[+     11/8     7/8    -3/4    -3/4

                      1[+     11/8     7/8    -1/4    -1/4

                      3[-      7/8    11/8    -1/4    -5/4

                      1[-      7/8    11/8    -3/4     1/4

                      3D      (9/8)   (9/8)   -3/4    -1/4

                      1D      (9/8)   (9/8)   -1/4    -3/4

9.25.12  Examples  for  the  1[+  and   3D   States   for   the   (p)3(p*)1
         __________________________________________________________________
         Configuration
         _____________

    Example 1:

    Suppose  that  the  molecular  orbitals  9  and 10 comprise the x and y
orbitals repectively, to be populated by 3 electrons,  whilst  orbitals  11
and  12  comprise  the  x*  and y* orbitals, to be populated by 1 electron.
Orbitals 1 to 8 comprise a closed shell [+ kernal. The  appropriate  SHELLS
directive for the 1[+ state of the (p)3(p*)1 configuration would look like:

         SHELLS
         9
         10
         11
         12
         1 TO 8
         END
         1.5 1.5 0.5 2
         JE 1 1 1
         JE 1 2 1
         JE 2 2 1                 Defines the pp interaction
         KE 1 1 -0.5
         KE 1 2 -0.5
         KE 2 2 -0.5
         JE 3 3 0
         JE 3 4 0
         JE 4 4 0                 Defines the p*p* interaction
         KE 3 3 0
         KE 3 4 0
         KE 4 4 0
         JE 1 3 0.125
         JE 1 4 0.625
         JE 2 3 0.625
         JE 2 4 0.125             Defines the pp* interaction
         KE 1 3 0.75
         KE 1 4 -1.25
         KE 2 3 -1.25
         KE 2 4 0.75

    Example 2

    The  appropriate  SHELLS  directive  for the 3D state for the (p)3(p*)1
configuration, where one takes advantage of the possibility  of  using  the
only two shells, is given as:

         SHELLS
         9 10
         11 12
         1 TO 8
         END
         1.5 0.5 2
         JE 1 1 1
         KE 1 1 -0.5
         JE 2 2 0
         KE 2 2 0
         JE 1 2 0.375
         KE 1 2 -0.25
         END

where  the  orbital  structure  is  as  given  in  Example 1. Note that the
Coulombic energy expression parameter for  the  pp*  interaction  could  be
omitted, since it takes default values as calculated by the GRHF program.




The Directives of the Unrestricted Hartree-Fock Program




    The aim of this module (code named UHF), is  the  minimisation  of  the
energy of spin unrestricted Hartree-Fock single determinantal wavefunctions
constructed using different spatial orbitals for different spins. The  user
should  note  that the NCORE and NOPEN parameters which appear on the first
data line of data input are interpreted as follows:

      NALPHA = NCORE+NOPEN
      NBETA  = NCORE

where  NALPHA  and  NBETA  denote  the  number  of  occupied alpha-spin and
beta-spin molecular orbitals, respectively.  The  directives  for  the  UHF
module may be presented in any order, unless specifically requested.

The TITLE Directive

    See the TITLE directive of closed shell program.

The MAXCYC Directive

    See the MAXCYC directive of closed shell program.

The MFILE Directive

    See the MFILE directive of closed shell program.

The SIZE Directive

    See the SIZE directive of closed shell program.

The CTRANS Directive

    See the CTRANS directive of closed shell program.

The FPRINT Directive


    The  general  form  of this directive is described in subparagraph 4.7.
One extra parameter, namely ANIL,  is  allowed,  and  if  used  causes  the
program to output results concerning the effects of projection of the first
contaminating spin multiplet from the UHF wavefunction.

The PUNCH Directive

    See the PUNCH directive of the closed shell
    program. Note that the two sets of eigen vectors, population and
eigen values will be 'punched'. The first set corresponds to the a-spin
molecular orbitals, the second to the b-spin molecular orbitals.

The FORMAT Directive

    See the FORMAT directive of closed shell program.

The OUTPUT Directive

    See the OUTPUT directive of closed shell program.

The IPRINT Directive

    See the IPRINT directive of closed shell program.

The ACCURACY Directive

    See the ACCURACY directive of closed shell
    program.

The TIME Directive

    See the TIME directive of closed shell program.

The AUTO Directive


    See  subparagraph  4.14.  Note  that  the   occupied-virtual   orbitals
switching  may  occur  within  either  the  a  or  b-spin sets of molecular
orbitals.

The DAMP Directive


    This directive consists of one data line, read to  variables  TEXT,DA1,
EA1,DB1,EB1,IBRK,DA2,EA2,DB2,EB2 using format (A,4F,I,4F).

    TEXT    should be set to the character string DAMP.

    DA1,EA1,DB1,EB1 the  a-spin  damp factor and level shifter are given by
DA1 and EA1, respectively. While DB1 and EB1 are the b-spin damp and  level
shifters.

    IBRK    this  designates  the  iterative cycle to which DA1,EA1,DB1 and
EB1 hold too (inclusive of cycle IBRK).

    DA2,EA2DB2,EB2 after cycle IBRK,  these  parameters  will  be  used  to
specify the damp factors and level shifters.

    An  alternative  form of the DAMP directive is permitted, consisting of
only 5 data fields( ), read to variables  TEXT,DA1,EA1,DB1  and  EB1  using
format  (A,4F). This alternative form causes IBRK to be set to 999, DA2 and
DB2 to be set to unity and EA2 and EB2 to zero.  TEXT,DA1,EA1,DB1  and  EB1
have their usual meanings.

    The  DAMP directive may be omitted, when the following default settings
will be chosen:

              DA1,DB1,DA2,DB2 = 1.0
              EA1,EB1,EA2,EB2 = 0.0
              IBRK            = 999

    The default settings correspond to performing  the  iterations  in  the
manner prescribed by in reference [6].


The LOCK Directive

    See the LOCK directive of the open shell program.
Note that if the LOCK directive is used, the program will issue an internal
AUTO directive of the form:

       AUTO 0

thus completely surpressing the automatic orbital switching feature.

The LOADQ Directive


    Seven  directives  are  available  for obtaining trial eigen vectors as
input to the first iterative  cycle,  namely  VECTORS,START,ALPHAS,RESTORE,
GETQ,EXTRA and COMBINE. The generic term LOADQ has been coined for use when
referencing any of these directives. A LOADQ directive must appear  in  the
input  data, and each possibility is discussed in the following pharagraphs
(note that the syntax  of  the  UHF-LOADQ  directives  is  similar  to  the
SCF-LOADQ directives).

The VECTORS Directive

    The  syntax  of  the  first  part  of  this  directive  is  as  for the
corresponding closed shell module directive. This first stage of the  input
defines the trial alpha-spin eigen values. The second phase of the input is
again a repeat of the closed shell module VECTORS syntax, and  is  used  to
define the trial beta-spin eigen vectors. The second phase of the directive
may be omitted, when the trial beta-spin eigen vectors will be set equal to
the trial alpha-spin eigen vectors.

The START Directive

    See the START directive of the closed shell
program. Notice  that  the  trial  a and b-spin eigenvectors will be
equivalent if this directive is used.

The ALPHAS Directive

    See the ALPHAS directive of the closed shell
program. The trial a and b-spin  eigen  vectors  will  be equivalent
if this directive is used.

The RESTORE Directive


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

    TEXT    should be set to the character string RESTORE.

    ISECTA  should be set to identify the section on the  DUMP  FILE  where
the  trial  a-spin  eigen  vectors may be recovered. Such vectors will have
normally been placed on the DUMP FILE by a previous  run,  of  one  of  the
other  modules, the section used to store these eigen vectors being defined
by means of the ENTER directive.

    ISECTB  should be used to specify the section of the  DUMP  FILE  where
the trial b-spin eigen vectors may be found. If ISECTB is omitted, then the
trial b-spin vectors will be set equal to the a-spin vectors.

The GETQ Directive

    This directive causes restoration of trial eigen vectors from a foreign
DUMP  FILE,  and  consists  of  one  data  line read to variables TEXT,DDA,
IBLKA,ISECTA,DDB,IBLKA,ISECTB using format (2A,2I,A,2I).

    TEXT    should be set to the character string GETQ.

    DDA,IBLKA,ISECTA the trial a-spin  vectors  are  to  be  found  in  the
section  specified  by  ISECTA  of a foreign DUMP FILE residing on an ATMOL
file assigned by the parameter DDA, starting at block IBLKA.

    DDB,IBLKB,ISECTB the trial b-spin  vectors  are  to  be  found  in  the
section  specified foreign DUMP FILE residing on an ATMOL section specified
by ISECTB of a foreign DUMP FILE residing on an ATMOL file assigned by  the
DDB parameter, starting at block IBLKB. The DDB,IBLKB and ISECTB parameters
may be omitted, when the trial b-spin vectors will  be  set  equal  to  the
trial a-spin vectors.

   example 1:

    A  UHF  calculation has been performed at a geometry slightly different
from the present case, and the DUMP FILE for this previous case is  located
to  a  data  set  assigned  as  ED4  starting at block 251. Assume that the
converged a and b-spin  vectors  for  this  previous  case  are  stored  in
sections  8 and 9 respectively of this DUMP FILE. The previous case vectors
may be made available to the present run by means of the GETQ directive  of
the form:

       GETQ ED4 251 8 ED4 9 251 9

The EXTRA Directive

    If  that a set of LCBF differs from that used in a previous calculation
by the addition of a number of LCBF. Further, that  these  additional  LCBF
will not be of prime importance in the an updated calculation (for example,
addition of polarisation functions).

    The occupied a and b-spin orbitals of  the  previous  calculation  will
provide  a  good  starting point for the updated calculation, and the EXTRA
directive has been implemented to be allow them to be used in this  manner.
The    first    data    line   is   read   to   variables   TEXT,DDA,IBLKA,
ISECTA,DDB,IBLKB,ISECTB using format (2A,2I,A,2I).

    TEXT    should be set to the character string EXTRA.

    DDA,IBLKA,ISECTA the  DUMP  FILE  whereon  the  trial  a-spin   vectors
(smaller  basis)  are to be found, resides on an ATMOL file assigned by the
parameter DDA, and starting at the block  specified  by  IBLKA.  The  trial
a-spin vectors are to be found in the section specified by ISECTA.

    DDB,IBLKB,ISECTB the DUMP FILE whereon the trial b-spin (smaller basis)
vectors are to be found, resides on an  ATMOL  file  assigned  by  the  DDB
parameter,  starting  at  block  IBLKB.  The trial b-spin vectors are to be
found in the section ISECTB.

    Notice that the 'size' of the a- and b-spin trial eigen vectors must be
the same (must be constructed from the same  number  of  basis  functions).
DDB,IBLKB  and ISECTB may be omitted, when the trial b-spin vectors will be
set equivalent to the trial a-spin vectors.

    Let the number of LCBF in  the  reference  calculation  be  denoted  by
OLDBAS.  Then  the  number of additional LCBF in the present calculation is
given by NEWBAS-OLDBAS=NEXTRA. Subsequent data lines of the EXTRA directive
will  consist  of  NEXTRA integers read in free I-format, which are used to
specify the LCBF which appear in the reference calculation. The  last  data
field  presented  should  contain the character string END. Note that it is
assumed that those basis functions common to  both  present  and  reference
calculations occur in the same order in both calculations.

    The  directive  will issue an ORTHOG directive in SCHMIDT mode, so that
trial eigen vectors will be automatically orthogonalised.

   example 1:

       EXTRA ED4 1 1 ED4 1 2
       11 12 13 END

specifies  that  trial a- and b-spin vectors are to be read from sections 1
and 2 respectively of the DUMP FILE stored in the data set assigned to  ED4
and  starting  at block 1. LCBF 11 to 13 appear in the present calculation,
yet did not appear in the reference calculation.

   example 2:


    The  use  of  the  character  string  TO  to  abbreviated the method of
specifying the list of extra LCBF is allowed. Thus the sequence:

       EXTRA ED4 1 1 ED4 1 2
       11 TO 13 END

is equivalent to that presented in example 1, above.

The COMBINE Directive

    The  syntax  of  the  first  part  of  this  directive  is  as  for the
corresponding SCF module. This first stage of the input defines the  a-spin
vectors.  The  second  phase  of  the input consists of a repeat of the SCF
module COMBINE directive, and is used to define the trial  b-spin  vectors.
This  second  phase  of  the  directive may be omitted, when the trial beta
vectors will be set equal to the trial a-spin vectors.

    The notes on  the  LOADQ  directive  of  the  SCF  module  are  equally
applicable to the UHF module LOADQ directives.

The SDIAG Directive

    See the SDIAG directive of closed shell program.


The ORTHOG Directive

    See the ORTHOG directive of closed shell program.
Use of this directive causes orthonormalisation of trial alpha and
beta-spin vectors.

The SWAP Directive

    The  syntax  of  this  directive  is similar to that of the SCF module,
except that the directive initiator is read to  variables  TEXT,SPIN  using
format (2A).

    TEXT    should be set to character string SWAP.

    SPIN    should  be  set  to one of the character strings ALPHA or BETA,
and will cause swapping of either alpha or beta spin vectors  respectively.
The  SPIN  parameter  may be omitted (thus the directive is the same as the
SCF module), and will cause a-spin vectors to be  interchanged.  Note  that
the  first  NALPHA  and  NBETA  columns  of the trial a- and b-spin vectors
respectively will be deemed to be occupied.

The ENTER Directive


    This directive consists of a single data line, read to variables  TEXT,
ISECTA,ISECTB,ISECTC,ISECTD,ISECTE,ISECTF using format (A,6I).

    TEXT    should be set to the character string ENTER.

    ISECTA  specifies  the  section  number  of  the  DUMP  FILE  where the
iterated a-spin vectors are to be placed.

    ISECTB  specifies the  section  number  of  the  DUMP  FILE  where  the
iterated b-spin vectors are to be placed.

    ISECTC  specifies the section number of the DUMP FILE where the natural
orbitals of the UHF wavefunction are to be placed. ISECTC  may  be  set  to
zero, in which case the UHF natural orbitals will not be stored on the DUMP
FILE.

    ISECTD  specifies the section number of the DUMP FILE  where  the  spin
natural  orbitals  of  the UHF wavefunction are to be placed. ISECTD may be
set to zero, in which case the UHF spin natural orbitals will not be on the
DUMP FILE.

    ISECTE  specifies the section number of the DUMP FILE where the natural
orbitals  of  the  wavefunction  produced  by  annhilation  of  the   first
contaminating  spin  multiplet  from the UHF wavefunction are to be placed.
ISECTE may be set to zero, in  which  case  the  natural  orbitals  of  the
annhilated  UHF  wavefunction  are  not  produced  if ANIL parameter of the
FPRINT directive is not presented. Note also that the natural  orbitals  of
the UHF function are identical  before  and  after  annhilation.  The  only
difference lies in the occupation numbers.

    ISECTF  specifies  the  section  number of the DUMP FILE where the spin
natural orbitals of the annhilated  UHF  wavefunction  are  to  be  placed.
ISECTF  may  be  set  to  zero,  in which case the spin natural orbitals of
annhilated UHF function will not be routed to the DUMP FILE. Note that  the
spin  natural  orbitals  of the annhilated UHF function are not produced if
the ANIL parameter of the FPRINT directive is omitted. Note also  that  the
spin  natural  orbitals  of the UHF function are identical before and after
the annhilation. The only difference lies in the occupation numbers.

    The ENTER directive must be presented last,  any  directives  presented
after  the  ENTER directive will be ignored. The ENTER directive is illegal
if a LOADQ directive has not been found in the preceding data.

The STOP Directive


    This directive may be used as an alternative to  the  ENTER  directive,
and  consists  of a single data line, read to variables TEXT,ISECTA, ISECTB
using format (A,2I).

    TEXT    should be set to the character string STOP.

    ISECTA,ISECTB specifies the section numbers of the DUMP FILE where  the
trial a- and b- spin vectors are to be written.

    The  effect of the STOP directive is as described for the corresponding
SCF module STOP directive.

Theoretical Aspects of the UHF Program


8.31.1  Introduction
        ____________

    The purpose of the UHF program is to minimise the energy  of  a  single
determinantal  wavefunction  constructed  from  NALPHA  orthonormal  a-spin
molecular orbitals, and NBETA orthonormal b-spin molecular  orbitals.  From
NEWBAS linearly independant LCBF one may construct NVIRTA = NEWBAS - NALPHA
virtual a-spin molecular orbitals, such that the  complete  set  of  a-spin
molecular  orbitals  are  orthonormal.  Similarly,  NVIRTB = NEWBAS - NBETA
virtual b-spin molecular orbitals may be constructed. Let 0, X1a, X2a,  X1b
and  X2b  denote  row  vectors  of  the  LCBF,  occupied and virtual a-spin
molecular orbitals, and occupied  and  virtual  b-spin  molecular  orbitals
respectively. Then:

   (X1a:X2a) = 0(Q1a:Q2a) = 0Qa                                      8.1

   (X1b:X2b) = 0(Q1b:Q2b) = 0Qb                                      8.2

where each column of Qa and Qb contains the coefficients of the LCBF within
a given a- or b-spin molecular orbital respectively. Now introduce  the  a-
and b-spin density matrices, Ra and Rb respectively:

   Ra = Q1aQ1a+                                                      8.3

   Rb = Q1bQ1b+                                                      8.4

Ra and Rb are invariant  to  unitary  mixing  between  the  a-  and  b-spin
molecular  orbitals.  The  total  wavefunction is invariant to such mixing,
being uniquely defined by Ra and Rb. The electronic  energy  expression  is
given by:

   E = trRaF +trRbF + 1/2trRaJ[Ra] + 1/2trRbJ[Rb] + trRaJ[Rb]

       - 1/2trRaK[Ra] - 1/2trRbK[Rb]                                8.5

where  F  is  the  matrix  representative  of  the one-electron Hamiltonian
operator, J[R] and K[R] denote Coulomb and exchange matrices  respectively,
as described in subparagrapgh 4.xx. Now define:

   R = Ra + Rb                                                       8.6

   P = (Ra - Rb) / 2                                                 8.7

where  R  is  the  total  density matrix of the system, while P is the spin
density matrix of the system divided by two. Also define:

   G = J[R] - 1/2K[R]                                                8.8

   Z = K[P]                                                          8.9

   H = F + G                                                         8.10

The energy expression may be expressed in  the  computationally  convenient
form:

   E = 1/2trR(F+H) - trPZ                                            8.11

It is convenient to define the a- and b-spin Fock matrices, Ha and Hb:

   Ha = H - Z                                                        8.13

   Hb = H + Z                                                        8.14

8.31.2  Conditions for a Stationary Energy
        __________________________________

    Physically significant variations in the molecular orbitals as follows:

(a) Mixing  of  a-spin  occupied with virtual molecular orbital. Small such
variations may be written:

   w1a = (w1a:w2a) !Ia!
                   !--!                                              8.14
                   !Da!

where Ia  is  an  identity  matrix  of  the  order  NALPHA,  and  Da  is  a
NVIRTA*NALPHA matrix of mixing coefficients.

(b) Mixing  of  b-spin occupied with virtual molecular orbitals. Small such
variations may be written:

   w1b = (w1b:w2b) !Ib!
                   !--!                                              8.15
                   !Db!

where Ib is an identity matrix of order NBETA, and  Db  is  a  NVIRTB*NBETA
matrix of mixing coefficients.

    The  perturbed  molecular  orbitals  are  not  orthonormal beyond first
order. Fortunately, the energy expression is  required  to  be  correct  to
first order only, and is given by:

             NVIRTA NALPHA           NVIRTB NBETA
   E = E0 + 2  [    [   Dkia Hkia + 2  [    [   Dljb Hljb
               k    i                  l    j

       + higher terms

where Hkia denotes the matrix element connecting the k'th virtual with  the
i'th  occupied  a-spin  orbital over the a-spin Fock operator, Ha, and Hljb
denotes the matrix element  connecting  the  l'th  virtual  with  the  j'th
occupied b-spin orbital over the b-spin Fock operator, Hb. It is clear that
the conditions for self consistency are  satisfied  when  all  Fock  matrix
elements, Hkia and Hljb are zero. Such that:

   ( dE )
   ------      = 2Hkia                                              8.17
   (dDkia)D=0

   (  dE )
   -------     = 2Hljb                                               8.18
   (dDljb)D=0

8.31.3  ATMOL Energy Minimisation Procedure
        ___________________________________

    The  form  of  equation  8.16 indicates that any minimisation procedure
capable of producing values for the elements of the  D-matrices  such  that
all  Dkia  are of opposite sign to the corresponding Hkia, and all Dljb are
of opposite sign to the corresponding Hljb,  and  such  that  the  D-matrix
elements  can  be  chosen  sufficiently  small in magnitude that the higher
terms of equation 8.16 are smaller in magnitude than the first order terms,
will be capable of generating an iterated wavefunction of lower energy than
the trial wavefunction, and therefore will guarantee convergence. Note that
convergence  to  the lowest energy stationary point will not necessarily be
guaranteed. The ATMOL procedure is as follows:

    First construct the Fock operators Ha and Hb in the basis of the  trial
a-  and  b-spin molecular orbitals, then incorporate damp factors and level
shifters to produce modified Fock operators, HMODa and HMODb as follows:


     a            !(Ha)oo  :la(Ha)ov   !
    H      =      !--------------------!                            8.19
     MOD          !la(Ha)vo:(Ha)vv+ubI1!

and

     b            !(Hb)oo  :la(Hb)ov   !
    H      =      !--------------------!                            8.20
     MOD          !lb(Hb)vo:(Hb)vv+ubI2!

where:

    (Ha)oo and (Hb)oo: denote a block of Ha and Hb  in  the  basis  of  the
occupied a- and b-spin trial molecular orbitals.

    (Ha)vv  and  (Hb)vv:  denote  a  blok  of Ha and Hb in the basis of the
virtual a- and b-spin molecular orbitals.

    (Ha)ov and (Hb)ov: denote a block of Ha and Hb  connecting  all  a-spin
occupied  with  virtual  molecular  orbitals  and  all b-spin occupied with
virtual molecular orbitals.

    ua and ub: denote a- and b-spin level shifters.

    la and lb: denote a- and b-spin damp factors.

    Both Fock operators are diagonalised, and unless a  LOCK  directive  is
used,  the  resulting  eigen  vectors  are  ordered according to the aufbau
principle based on the associated level shifted eigen values. If  the  LOCK
directive  is  used,  ordering  of  the eigen value columns is based on the
principle of maximum overlap of the iterated vector with the trial  vector.
Whichever  ordering  scheme  is  adopted,  the  first NALPHA columns of the
a-spin vector array define  iterated  occupied  a-spin  occupied  molecular
orbitals  as  linear  combinations  of the trial a-spin molecular orbitals.
Similarly, the first NBETA  columns  of  the  b-spin  vector  array  define
iterated occupied b-spin molecular orbitals.

    Analysis  of the above diagonalisation procedure shows that if the damp
parameters are set to the default value of unity, and the LOCK directive is
not  used, convergence in a downward direction on the energy surface can be
guaranteed if a sufficiently large and positive  valued  level  shifter  is
employed.  The  analysis  is closly similar to that outlined for the closed
shell case. Note that the choice of unity for the damp factor and zero  for
the  level  shifters corresponds to performing the iterations in the manner
prescribed by J.A. Pople and R.K. Nesbet [xx].

8.31.4  The Use of the UHF Program for Closed Shell Systems
        ___________________________________________________

    In the case that NALPHA=NBETA, it is easy to show that  a  wavefunction
whose  energy is stationaryon the closed shell RHF surface will also have a
stationary energy on the UHF surface. Furthermore, it is usually found that
for  closed  shell  molecules  near  their equilibrium geometry the minimum
energy solutions of the RHF and UHF equations  are  identical.  However  if
bond  lengths  much greater than the equilibrium are employed, then the RHF
solution corresponds only to a saddle point on the  UHF  surface,  so  that
there exists a lower energy stationary point on the UHF surface. Suppose  a
trial wavefunction for a UHF closed shell case, has identical a- and b-spin
molecular orbitals. Unless  special  precautions  are  taken,  the  present
method,  which  treats a- and b-spin molecular orbitals symmetrically, will
converge to a self consistent UHF wavefunction which is  identical  to  the
corresponding  RHF  wavefunction.  In such cases it is wise for the user to
force an assymmetry of the treatment of the a- and  b-spin  orbitals.  Such
assymmetry may be achieved in two ways:

(a)  The use of different values for the a- and b-spin damp factors (la and
lb) or the level shifters (ua and ub), will produce assymmetry.

(b) Dissimilar trial a- and b-spin vectors may be generated by performing a
UHF  calculation  on  some  closly  related open shell species. The vectors
generated may be made available to the closed shell UHF case by means of  a
RESTORE  directive.  Since  the  purpose  of  the open shell calculation is
simply to provide dissimilar a- and b-spin vectors, there  is  no  need  to
procede to convergence, only one cycle would be sufficient.

8.31.5  The Annhilation of Contaminating Spin Multiplets
        ________________________________________________

    As  is  known, the UHF wavefunction is not in general an eigen function
of the S2 operator.  The  wavefunction  can  be  spectrally  analysed  into
components  which  are  eigen functions of the S2 operator, such components
having spin quantum numbers, s, which lie in the range:

   1/2(NALPHA + NBETA) > s > 1/2(NALPHA - NBETA)

Each component is a of multiplicity 2s+1, with eigen values  (with  respect
to  S2)  of s(s+1). Assume that the UHF wavefunction consists predominantly
of the component of lowest possible spin quantum number, m, where:

   m = 1/2(NAPLHA - NBETA)

and that the principal contamiant is that multiplet of spin quantum  number
m+1. The operator:

   As = S2 - s(s+1)

when acting upon the UHF wavefunction will annihilate the component of spin
quantum number s. Clearly, the operator Am+1 will annihilate the contamiant
of spin quantum number m+1. The wavefunction:

   WAUHF = N Am+1 wUHF

will  be  referred  as the annihilated UHF wavefunction (N is a normalising
function). In the implementation of the above annihilation  procedure,  the
form of the effective S2 operator takes, is:

   S2 = [' Pij + 1/4[(na - nb)2 + 2na + 2nb]
        ij

where Pij interchanges spin functions of  electrons  i  and  j,  the  prime
indicates  on the summation that only interchanges involving differing spin
functions are to be summed. Hence:


   Am+1 = [' Pij + 2NBETA - NALPHA - 2
          ij

        = [' Pij + NBETA - 2(m+1)
          ij

The theroy necessary for the analysis of WAUHF can be found in paper by  T.
Amos and L.C. Snyder [xx]. Users are directed to references [xx] - [xx] for
more detailed discussion on the UHF procedure.




The Directives of the BOYS Localisation Program




    The purpose of this module (code named BOYS), is  the  localisation  of
molecular orbitals according to the criterion of Foster and Boys [xx].

    The  user  should  note that NCORE and NOPEN parameters which appear on
the standard first data line have no  significance  for  the  BOYS  module,
although  they  are  submitted to certain standard checking procedures, and
its is advised that both these parameters  should  be  set  to  unity.  The
directives  of  the  BOYS  module  following  the  first  data  line can be
presented in any order, unless previously stated.

The TITLE Directive

    See the TITLE directive of closed shell program.

The MAXCYC Directive

    See the MAXCYC directive of closed shell program.

The SIZE Directive

    See the SIZE directive of closed shell program.

The CTRANS Directive

    See the CTRANS directive of closed shell program.

The FPRINT Directive

    See the FPRINT directive of closed shell program.
Note that only the parameters S,T,T+V,X,Y  and  Z are relevant.

The PUNCH Directive

    See the PUNCH directive of closed shell program.
Note that only the parameter VECTORS is relevant.

The FORMAT Directive

    See the FORMAT directive of the closed shell
program. Note that only the FORM1 parameter is relevant.

The OUTPUT Directive

    See the OUTPUT directive of closed shell program.

The IPRINT Directive

    This  directive  consists  of  one  data line with the character string
IPRINT in the first data field. If used, printing of the  dipole  centroids
of  the  molecular  orbitals  involved  in the localisation process will be
produced from each iterative cycle.

The ACCURACY Directive

    See the ACCURACY directive of closed shell
    program.

The ACTIVE Directive

    This directive is used to define those molecular  orbitals  which  take
part  in  the  localisation  process.  The first data field consists of the
character string ACTIVE in the first data field. Subsequent data lines  are
read  to  an  array (IACTIV(I),I=1,NACT) using free I-format. The last data
field presented should be the character string END.

   example 1:

       ACTIVE
       2 3 4 5 6 7 9 END

Declares  molecular  orbitals 2 to 7 inclusive, plus molecular orbital 9 to
be active in the localisation process.

   example 2:

The sequence

       ACTIVE
       2 3 4 5 6 7
       9
       END

has an equivalent effect to that of example 1.

   example 3:


    An abbreviated form of specifying the list of active molecular orbitals
is  to  invoke  the  character  string  TO,  to link together a sequence of
consecutive numbered active molecular orbitals.

       ACTIVE
       2 TO 7 9 END

The above sequence is equivalent to examples 1 and 2.

   example 4:

       ACTIVE
       2 TO 7 9 TO 14
       END

specifies  that  molecular orbitals 2 to 7, and 9 to 14 are to be active in
the localisation process.

The LOCK Directive


    This directive consists of one data line,  with  the  character  string
LOCK  in  the  first data field. In the presence of the LOCK directive, the
program will seek a stationary value for the functional, and proceed in the
direction of 'minimum change'. The use of the LOCK directive may cause  the
procedure  to  fail  to converge. In the absence of the LOCK directive, the
program will unconditionally maximise the functional defined in equation 5.

The LOADQ Directive


    Seven directives are available for obtaining the molecular orbitals  to
be  localised;  namely VECTORS,START,ALPHAS,RESTORE,GETQ,EXTRA and COMBINE.
One LOADQ directive must appear in the input data, see SCF LOADQ directives
for syntax.

    It  is  expected  that  the RESTORE directive will be the most commonly
used,  either  to  retrieve  molecular  orbitals  producedby  one  of   the
Hartree-Fock  modules, or to retrieve partially localised orbitals produced
by a run of the BOYS  localisation  module  which  was  given  insufficient
iterations to achieve convergence.

The SDIAG Directive

    See the SDIAG directive of closed shell program.

The ORTHOG Directive

    See the ORTHOG directive of closed shell program.

The SWAP Directive

    See the SWAP directive of closed shell program.
Note  that  the  form of the ACTIVE directive requires the user to know
in which order the molecular orbitals are  to  be found,  so it is not
expected that the SWAP directive would be heavily used in the BOYS module.

The ORBSYM Directive

    See the ORBSYM directive of closed shell
program. Again it is not expected the use of  the  ORBSYM
directive  will be extensively used in the BOYS module, for the same reason
given in the SWAP directive.

The ALIGN Directive

    See the ALIGN directive of closed shell program.

The MOPOPS Directive

    See the MOPOPS directive of closed shell program.

The EVALUES Directive

    See the EVALUES directive of closed shell program.


The ENTER Directive

    See the ENTER directive of closed shell program.

The STOP Directive

    See the STOP directive of closed shell program.

The Foster-Boys Localisation Method

9.24.1  Introduction
        ____________

    The  method  of  Foster  and  Boys  generates  localised  orbitals   by
specifying  that unitary transformation of the orbitals which maximises the
sum of the orbital self quadratic repulsion integrals:

        NACT
   I  =  [                             9.1
         i

This procedure may be shown equivalent to one where one maximises  the  sum
of  the squares of the distances between the dipole centroids of the active
orbitals.

        NACT 2
   J  =  [  ( - )                              9.2
        i>j

Equivalently one may maximise the sum of the squares of  the  distances  of
the  dipole  centroids  of  the active orbitals, measured from an artibrary
point, in the present case the origin as specified in the  data  input  for
the molecular integrals run:

       NACT          2
   K =  [                                                9.6
        i

9.24.2  Practical Implemenation
        _______________________

    The  maximisation  of  K (equation 9.6) is accomplished by an iterative
procedure, involving successive rotations  of  pairs  of  active  molecular
orbitals.  One  cycle  of  the iterative procedure is deemed to be complete
when all possible such pairs have been subjected to a rotation.

    Consider the two dimensional case involving active orbitals wk and  wl.
Express the rotations by the usual form of equations:

   wk' = cosa wk + sina wl

   wl' = -sina wk + cosa wl

The functional, K, may be written as a function of a:

   K(a) = K(0) - A + Acos4a + Bsin4a                                  9.4


where

   A = ( - )2 / 4 - 2

   B = ( - )2 . 2

hence

   dK(a)
   -----   =   - Asin4a + Bcos4a
    da

Require solutions for a, such that the above equation =  0.  Two  sloutions
can be found.

    Solution 1

    a is chosen so that the following equations are satisfied:

   sin4a = B / (A2 + B2)**0.5

   cos4a = A / (A2 + B2)**0.5

This  solution  corresponds to maximising the functional with respect to a,
and will be chosen if the LOCK directive is not requested.  The  functional
acquires the value:

   K(amax) = K(0) - A + (A2 + B2)**0.5

This  solution  also  corresponds  to  the  minimum change stationary point
(solution with the smallest value of a and sina), in the event  that  A  is
positive, this will be used if the LOCK directive is presented.

    Solution 2

    a is chosen so that the following equations are satisfied:

   sin4a = -B / (A2 + B2)**0.5

   cos4a = -A / (A2 + B2)**0.5

This  solution  corresponds to minimising the functional with respect to a,
and would not be chosen if  the  LOCK  directive  was  not  presented.  The
functional acquires the value:

   K(amin) = K(0) - A - (A2 + B2)**0.5

This  solution corresponds to the minmum change solution, in the event of A
being negative, and will be chosen if the the LOCK directive is presented.

9.24.3  The Determination of a
        ______________________

    It is obvious that if Solution 1 is used unconditionally  in  the  case
that  the  LOCK  directive was not used, or choose between the two possible
Solutions by monitoring the sign of A in the case where  a  LOCK  directive
was used. One is left with equations of the form:

   sin4a = 'a'

   cos4a = 'b'

to solve (where a2 + b2 =1). The procedure is, determine:

   c = sin-1 a

This yields a value for c such that -pi/2 < c  <  pi/2,  given  a  suitable
definition  of  the  sin-1  function. If b is positive, a may be determined
from:

   a = c / 4

If b is negative, then a may be determined from either:

   a = (pi - c) / 4

in the case that c is positive valued, or:

   a = - (pi + c) / 4

in the case that c is negative valued.

    The above procedure is most numerically stable when determining  values
for  a  which  are small, this case being by far the most frequently met in
the practical application.



Error Monitoring



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

  Error Code   Explanation
  __________   ___________

          14   Directive should not be used with the selected module.
          15   Illegal value for NBASIS (1 < NABSIS < 256).
          16   Directive unknown.
          31   Illegal value for NCORE or NOPEN.
          32   An attempt has been made to use an undefined MAIN FILE.
          33   The MFILE directive to specify the MAIN FILE is missing.
          34   The parameters specifying the symmetry of the LCBF are
               not valid. May occur in the ALIGN directive.
          35   Illegal value for ITRAN (in CTRANS directive).
          36   Illegal value for NTRAN (in CTRANS directive).
          37   Illegal value for NEWBAS (1 < NEWBAS < NBASIS+1).
          38   The SWAP directive appears before a LOADQ directive.
          39   The parameters of the SWAP directive are invalid.
          40   An ENTER or STOP directive appears before a
               LOADQ directive.
          41   Two LCBF which have been given different symmetry tags
               in the ALIGN directive are not orthogonal.
          42   AFN in MFILE, GETQ, EXTRA or COMBINE
               directive not known.
          43   The ALIGN directive appears before a LOADQ directive.
          46   The ORBSYM directive appears before a LOADQ directive.
          47   The parameters specifying the symmetry of the LCBF
               are not valid. May occur in the ORBSYM directive.
          48   A molecular orbital of the specified symmetry was
               not found during processing of the ORBSYM directive.
          49   Invalid sequence of parameters specifying the required
               order of molecular orbitals in the ORBSYM directive.
          50   Invalid parameter in WIDTH pre-directive.
          51   The MOPOPS directive appears before a LOADQ directive.
          52   The EVALUES directive appears before a LOADQ 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. If the
               latter, a finite VSOS error code will be given
               whose explanation will be found in [8].
          63   An attempt has been made to use a Section number
               on the DUMP FILE outside the allowed range.
               (1 < Section number < 190).
          64   An attempt has been made to retrieve an undefined
               Section from the DUMP FILE.
          65   A retrieved Section on the DUMP FILE is of the
               wrong TYPE.
          66   ATMOL data set not assigned.
          67   Illegal search of ATMOL data set.
          68   A data field was read in F-format, and an illegal
               character was detected.
          69   A data field was read in I-format, and an illegal
               character was detected.
          70   The SIZE directive specified a maximum size less than
               than the current size of the DUMP FILE.
          71   An attempt has been made to expand the DUMP FILE
               beyond its maximum size (as specified by a SIZE
               directive).
          72   An attempt has been made to overwrite a Section on
               the DUMP FILE with a Section of greater length.
          92   The absolute value of a coefficient in the CTRANS
               directive is less than 10**(-8).
          99   Module not known. This error may occur when
               attempting to interpret the first parameter of the
               first data line.
         150   The eigen vectors retrieved by either of the RESTORE,
               GETQ, EXTRA or COMBINE directives are invalid.
         151   The CTRANS data in the input stream is incompatible
               with that retrieved from the DUMP FILE during execution
               of a RESTORE directive.
         153   An illegal parameter has been detected in an EXTRA
               directive.
         154   Incorrect number of EXTRA LCBF specified.
         156   LCBF declared twice in the EXTRA directive.
         159   Invalid value for NELEC in the ENERGY directive.
         160   Invalid parameters specified in the ACTIVE directive.
         161   Invalid number of active molecular orbitals.
         162   A molecular orbital has been specified more than once
               in the ACTIVE directive.
         163   Invalid molecular orbital declared to be a member of
               a shell. May occur in the SHELLS directive.
         164   Molecular orbital referenced more than once in a SHELLS
               directive.
         165   Invalid number of molecular orbitals in a shell.
         166   Invalid number of shells.
         167   Invalid reference to a shell on a JE, KE, JC, KC,
               DAMP or SHIFT line of the SHELLS directive.
         168   One of the character strings JE, KE, JC, KC, DAMP
               or SHIFT was expected, but was not found. This
               diagnostic may occur during processing of the
               SHELLS directive.
         171   An error has been detected in the data declaring
               the origins of the LCBF of the AB system in the
               COMBINE directive.
         172   An error has been detected in the data declaring
               the origins of the molecular orbitals of the AB
               system in the COMBINE directive.



Specimen Jobs



    Specimen Job 1

    This job illustrates how to run the closed shell module of the SCF
program.  The trial test MO's are generated via the START directive.
The SCF vectors are placed in section 1 of the DUMP FILE, while the
accuracy of the energy is set at 10**(-8) if convergence is achieved.

     SCF 25 5 0 1 ED3
     TITLE
     (H2O) SCF
     MFILE
     ED2
     1
     0
     OUTPUT
     DAMP 1 1 10 .5 .5
     ACCURACY 1 8
     MAXCYC 100
     START
     ENTER 1

Specimen Job 2 SCF 84 10 0 1 ED3 TITLE (H2O)2 SCF MFILE ED2 1 0 OUTPUT DAMP 1 2 8 .4 .4 MAXCYC 50 START ENTER 1
Specimen Job 3 RHF 25 4 1 1 ED3 TITLE (H2O)+ RHF MFILE ED2 1 0 OUTPUT D12 .9 D13 .89 D23 .91 MAXCYC 42 ACCURACY 3 5 LOCK LEVEL .2 .2 6 .1 .1 RESTORE 1 ENTER 2
Specimen Job 4 SERHF 25 3 2 1 ED3 TITLE (H2O)++ SERHF MFILE ED2 1 0 OUTPUT IPRINT D12 .5 D13 .69 D23 .61 MAXCYC 20 ACCURACY 4 5 LOCK ENERGY 2 0 -0.333333 LEVEL .2 .2 6 .1 .1 RESTORE 1 SWAP 3 4 END ENTER 3
Specimen Job 5 GRHF 25 5 1 1 ED3 TITLE (H2O) GRHF MFILE ED2 1 0 OUTPUT MAXCYC 50 SHELLS 1 TO 3 4 5 END 2 1.75 1.25 SHIFT 1 2 1 SHIFT 1 3 1 SHIFT 1 4 1 SHIFT 2 3 1 SHIFT 2 4 1 SHIFT 3 4 1 END REST 1 ENTER 4
Specimen Job 6 UHF 25 4 1 1 ED3 TITLE (H2O)+ UHF MFILE ED2 1 0 OUTPUT MAXCYC 42 ACCURACY 3 5 LOCK LEVEL .2 .2 6 .1 .1 RESTORE 1 ENTER 5 6
Specimen Job 7 BOYS 25 1 1 1 ED3 TITLE (H2O) BOYS MFILE ED2 1 0 OUTPUT ACTIVE 2 TO 5 END MAXCYC 45 ACCU 1 5 RESTORE 1 ENTER 8