PC GAMESS DFT MODULE DOCUMENTATION.

I. Limitations. The present implementation does not support SMP mode. 
Analytical energy and energy gradients (and hence numerical hessians) 
are supported for both R-DFT and RO/U-DFT. Parallel mode is supported 
both for DFT energy and gradients. The molecular symmetry is only partially 
used during calculation of the DFT contributions to the Fock matrix, namely
the so-called octant symmetry is not used at present.

II. Compatibility. The grid-based DFT code in PC GAMESS is completely
different from that of GAMESS (US). This includes both implementation
and input specification. As to implementation details, in PC GAMESS,
angular integration is based on Lebedev quadratures, radial integration
is based on Mura-Knowles quadratures, while the partitioning function used
is the modification of SSF. The default implementation of B3LYP functional
differs from that of GAMESS (US) as well.

III. Performance. The main goal of the PC GAMESS DFT module is to allow
(hopefully fast) B3LYP type (and other implemented hybrid functionals)
calculations for medium and large-size molecules. Thus, the Resolution of
Identity / Coulomb fitting techniques are not implemented at present.
One might expect that other DFT programs that exploit these techniques
for pure DFT functionals (e.g., TURBOMOLE) will outperform PC GAMESS on that
kind of calculations. The RODFT energy/gradient code is routed through 
the generic UDFT code, thus the RODFT performance is identical to that of UDFT.
This situation will be changed in the future by adding separate RODFT driver
routines, leading to speedup of approx. 15-20% for small and medium size 
molecules.

IV.  Scaling. For large molecules, the time for pure DFT part of calculations
depends approximately quadratically on the number of atoms in molecule.
Only in the worst cases of the very compact molecules this dependence can become
cubic. Thus, while for small molecular systems the pure DFT part of the
calculations is usually the time-limiting step, for large systems, the costs
of standard Coulomb (and possible exchange for hybrid functionals) contributions
to the Fock matrix due to two-electron integrals become the dominant part of the
calculations. This shortcoming will be solved in the future PC GAMESS versions
by adding faster 2-e integral routine, as well as implementing Coulomb fitting 
and QFMM for these stages.

V.  Input description.
        To activate PC GAMESS DFT module, you should specify the valid value
for the DFTTYP variable found in the  $CONTRL group (not in the $DFT group!).
At present, the supported functionals are as follows:

DFTTYP   Functional
  pure exchange functionals (no correlation)
SLATER   Slater exchange, no correlation
LSDA     the same as SLATER
B88      Becke 1988 exchange, no correlation
GILL96   Gill 1996 exchange, no correlation
XPBE96   Perdew-Burke-Ernzerhof 1996 exchange, no correlation

  pure correlation functionals (Hartree-Fock exchange)
LYP      Hartree-Fock exchange, Lee-Yang-Parr 1988 correlation
VWN1RPA  Hartree-Fock exchange, VWN formula 1 RPA LDA correlation
VWN5     Hartree-Fock exchange, VWN formula 5 LDA correlation
PW91LDA  Hartree-Fock exchange, Perdew-Wang 1991 LDA correlation
CPBE96   Hartree-Fock exchange, Perdew-Burke-Ernzerhof 1996 nonlocal +
                                Perdew-Wang 1991 LDA correlation
CPW91    Hartree-Fock exchange, Perdew 1991 nonlocal +
                                Perdew-Wang 1991 LDA correlation

  exchange-correlation functionals
SLYP     Slater exchange, Lee-Yang-Parr 1988 correlation
BLYP     Becke 1988 exchange, Lee-Yang-Parr 1988 correlation
GLYP     Gill 1996 exchange,  Lee-Yang-Parr 1988 correlation
SVWN1RPA Slater exchange, VWN formula 1 RPA correlation
BVWN1RPA Becke 1988 exchange, VWN formula 1 RPA correlation
SVWN5    Slater exchange, VWN formula 5 correlation
BVWN5    Becke 1988 exchange, VWN formula 5 correlation
PBE96    Perdew-Burke-Ernzerhof 1996 exchange,
         Perdew-Burke-Ernzerhof 1996 nonlocal +
         Perdew-Wang 1991 LDA correlation
PBEPW91  Perdew-Burke-Ernzerhof 1996 exchange,
         Perdew 1991 nonlocal + Perdew-Wang 1991 LDA correlation

  hybrid functionals
B3LYP1   B3LYP as implemented in NWCHEM and GAUSSIAN 98,
         using VWN formula 1 RPA correlation
B3LYP5   B3LYP as implemented in GAMESS (US),
         using VWN formula 5 correlation
B3LYP    either B3LYP1 or B3LYP5 depending on the value of B3LYP keyword
         in the $DFT group, see later.
BHHLYP   Becke 1988 + Hartree-Fock exchange, Lee-Yang-Parr 1988 correlation
PBE0     Perdew-Burke-Ernzerhof 1996 + Hartree-Fock exchange,
         Perdew-Burke-Ernzerhof 1996 nonlocal +
         Perdew-Wang 1991 LDA correlation
PBE1PW91 Perdew-Burke-Ernzerhof 1996 + Hartree-Fock exchange,
         Perdew 1991 nonlocal + Perdew-Wang 1991 LDA correlation
B3PW91   Slater + Becke 1988 + Hartree-Fock exchange,
         Perdew 1991 nonlocal + Perdew-Wang 1991 LDA correlation

Additional options can be specified in the $DFT group. The keywords are as
follows:

        NRAD    (integer) the default number of radial points per atom used.
                Default value is 63.

        NRDATM  (integer array, dimension 128) An array to change the actual
                value of NRAD on per element number basis. For example, setting
                NRDATM(6)=128 will apply the radial grid of 128 points to all
                carbon atoms. The entry NRDATM(128) is used for dummy atoms
                with no charge. The default values are all equal to NRAD.

        LMAX    (integer) the default order of Lebedev angular grid to be used.
                The default value is 29. Valid values are:

                LMAX     Number of points per radial shell
                  3                       6
                  5                      14
                  7                      26
                  9                      38
                 11                      50
                 13                      74
                 15                      86
                 17                     110
                 19                     146
                 21                     170
                 23                     194
                 25                     230
                 27                     266
                 29                     302
                 31                     350
                 35                     434
                 41                     590
                 47                     770
                 53                     974
                 59                    1202
                 65                    1454
                 71                    1730
                 77                    2030
                 83                    2354
                 89                    2702
                 95                    3074
                101                    3470
                107                    3890
                113                    4334
                119                    4802
                125                    5294
                131                    5810

        LMXATM  (integer array, dimension 128) An array to change the actual
                value of LMAX on per element number basis. For example, setting
                NRDATM(1)=25 will apply the angular grid of 25th order to all
                hydrogen atoms. The entry LMXATM(128) is used for dummy atoms
                with no charge. The default values are all equal to LMAX.

        ANGPRN  (logical) flag to activate the angular grid pruning as function
                of radius, uses the scheme similar to proposed by Murray, Handy
                and Laming (MHL).
                Default is .true. Setting it to false will slow down the
                calculations but will result to the more accurate results.

        KAP     (double precision) The parameter Ktheta used for angular
                pruning. The default value is 5.0 as recommended by MHL.
                Increasing this value to, say, 10.0 will improve precision
                by the cost of performance. This parameter has no effect if
                angular pruning is not used.

        RADPRN  (logical) flag to activate the radial grid pruning.
                Default is .true. Setting it to false will slow down
                calculations to some degree but may improve precision.

        RMXATM  (integer array, dimension 128). An array to change the atomic
                cutoff radii used during radial pruning on per element number
                basis. For example, setting  RMXATM(8)=6 will set the effective
                radius of all oxygen atoms to 6 Angstrom. The entry RMXATM(128)
                is used for dummy atoms with no charge. The default values
                are probably much larger than is actually necessary and depend
                on the basis set used.

        CUTOFF  (double precision). Contributions to the DFT Fock matrix due to
                batch of angular points, which are smaller than CUTOFF, are
                ignored. The default value is 1.0d-10.

        CUTAO   (double precision). If the absolute numerical value of AO is
                smaller than CUTAO, it will be set to zero during calculations.
                The default value is 1.0d-10.

        CUTWGT  (double precision). If the absolute value of weight associated
                with grid point is less than CUTWGT, this point will not be
                taken into account during DFT calculations. The default value
                is 1.0d-20.

        CUTORB  (double precision). Contributions to the DFT Fock matrix due to 
                batch of orbitals, which are smaller than CUTORB, are ignored. 
                The default value is 1.0d-15.

        CUTGG1,
        CUTGG2,
        CUTGG3,
        CUTGG4  (double precision). Various cutoffs used during calculation
                of grid weights derivatives contributions to the molecular
                gradients. The default values are 1.0d-13, 1.0d-13, 1.0d-13,
                and 1.0d-30 correspondingly and are probably too strict.

        B3LYP   (symbolic). Selects the default implementation of B3LYP
                functional. The default value is NWCHEM which makes B3LYP
                to be synonym of B3LYP1. Setting this value to GAMESS will
                change B3LYP to be the same as B3LYP5.



Below is the sample input file.


! GAMESS (US) STYLE B3LYP OPTIMIZATION+HESSIAN CALCULATION OF WATER MOLECULE
 $CONTRL SCFTYP=RHF DFTTYP=B3LYP5 runtyp=optimize $END
 $SYSTEM TIMLIM=3000 MEMORY=3000000 $END
 $BASIS  GBASIS=n31 ngauss=6 NDFUNC=1 $END
 $statpt hssend=.t. nprt=-2 $end
 $force nvib=2 $end
 $DATA
H2O
CNV 2

 O           8.0   0.0000000000   0.0000000000   0.7205815395
 H           1.0   0.0000000000   0.7565140024   0.1397092302
 $END