$MP2 group  (relevant to SCFTYP=RHF,UHF,ROHF if MPLEVL=2)
 
     Controls 2nd order Moller-Plesset perturbation runs,
if requested by MPLEVL in $CONTRL.  MP2 is implemented for
RHF, high spin ROHF, or UHF wavefunctions, but see also
$MRMP for MCSCF.  Analytic gradients and the first order
correction to the wavefunction (i.e. properties) are
available for RHF, ROHF (if OSPT=ZAPT), and UHF.  The $MP2
input group is not usually given.  See also the DIRSCF
keyword in $SCF to select AO integral direct MP2.
 
     The spin-component-scaled MP2 (SCS-MP2) energy of
Grimme is printed for SCFTYP=RHF references during energy
runs.  See also the keyword SCSPT below.  Only the CODE=IMS
program is able to do analytic gradients for SCS-MP2.
 
     Special serial codes exist for RHF or UHF MP2 energy
or gradient, or the ROHF MP2 energy.  Parallel codes using
distributed memory are available for RHF, ROHF, or UHF MP2
gradients.  In fact, the only way that ROHF MP2 gradients
can be computed on one node is with the parallel code,
using MEMDDI!
 
     MP2 energy values using solution models are computed
by using the solvated SCF orbitals in the perturbation
step.  All of the MP2 nuclear gradient programs contain
additional terms required for EFP, PCM, EFP plus PCM, or
COSMO solvation models.
 
NACORE = n Omits the first n occupied orbitals from the
           calculation.  The default for n is the number
           of chemical core orbitals.
 
NBCORE =   Same as NACORE, for the beta orbitals of UHF.
           It is almost always the same value as NACORE.
 
MP2PRP=    a flag to turn on property computation for jobs
           jobs with RUNTYP=ENERGY.  This is appreciably
           more expensive than just evaluating the second
           order energy correction alone, so the default
           is to skip properties.  Properties are always
           computed during gradient runs, when they are
           an almost free byproduct. (default=.FALSE.)
 
OSPT=      selects open shell spin-restricted perturbation.
           This parameter applies only when SCFTYP=ROHF.
           Please see the 'further information' section for
           more information about this choice.
    = ZAPT picks Z-averaged perturbation theory. (default)
    = RMP  picks RMP (aka ROHF-MBPT) perturbation theory.
 
CODE  =    the program implementation to use, choose from
           SERIAL, DDI, IMS, RIMP2, OMPRIMP2 or RICCHEM
           according to the following chart, depending on
           SCFTYP and if the run involves nuclear gradients,
 
 RHF     RHF        UHF    UHF       ROHF    ROHF    ROHF
energy gradient   energy gradient   energy gradient energy
                                OSPT=ZAPT    ZAPT    RMP
SERIAL  SERIAL    SERIAL  SERIAL    SERIAL    -     SERIAL
DDI      DDI       DDI     DDI       DDI     DDI      -
IMS      IMS        -       -         -       -       -
RIMP2     -       RIMP2     -         -       -       -
OMPRIMP2  -         -       -         -       -       -
RICCHEM RICCHEM     -       -      RICCHEM RICCHEM    -
 
The default for serial runs (p=1) is CODE=IMS for RHF, and
CODE=SERIAL for UHF or ROHF (provided PARALL is .FALSE. in
$SYSTEM).  When p>1 (or PARALL=.TRUE.), the default becomes
CODE=DDI.  However, if FMO is in use, the default for
closed shell parallel runs is CODE=IMS.  The "SERIAL" code
for OSPT=RMP will run with modest scalability when p>1.
 
The many different MP2 programs are written for different
hardware situations.  Here N is the number of atomic basis
functions, and O is the number of correlated orbitals in
the run:
 
The original SERIAL programs use N**3 memory, and have
larger disk files and generally takes longer than CODE=IMS.
 
The IMS program uses N*O**2 memory, and places most of its
data on local disks (so you must have good disk access),
and will run in parallel...ideal for small clusters.  Using
this program on a node where the disks are of poor quality
(SATA-type) and with many cores accessing that single disk
may be very I/O bound.  Adding more memory can make this
program run more efficiently.  Network traffic is modest
when running in parallel.
 
The DDI program uses N**4 memory, but this is distributed
across all nodes, and there is essentially no I/O...ideal
for large parallel machines where the manufacturer has
forgotten to include disk drives.  MEMDDI must be given in
$SYSTEM for these codes, so large problems may require many
nodes to aggregate enough MEMDDI.  The network traffic is
high, so an Infiniband quality network or better preferred.
Scalability is very good, for example, this program has
been used up to 4,000 cores on Altix/ICE equipment.
 
All of the programs just mentioned should generate the same
numerical results, so select which one best matches your
hardware.
 
The RIMP2 program is an approximation to the true MP2
energy, using the "resolution of the identity" to reduce
the amount of data stored (in memory and/or on disk), and
also the total amount of computation.  See the paper on
this program for its reduced CPU and memory requirements.
Network traffic is modest.  The code has options within the
$RIMP2 input to govern the use of replicated memory versus
shared memory, as well as the use of disk storage versus
distributed memory, so you can tune this to your hardware.
 
The OMPRIMP2 program is an OpenMP threaded version of the
RIMP2 code. TO use the OMPRIMP2 program you must build
GAMESS with GMS_OPENMP set to true in the following files:
- $GMS_DIR/install.info
- $GMS_DIR/Makefile
 
References for the various programs are given in REFS.DOC.
 
NOSYM  =   disables the orbital symmetry test completely.
           This is not recommended, as loss of orbital
           symmetry is likely to mean a bad calculation.
           It has the same meaning as the keyword in
           $CONTRL, but just for the MP2 step. (Default=0)
 
CUTOFF =   transformed integral retention threshold, the
           default is 1.0d-9 (1.0d-12 in FMO runs).
 
The following keyword applies only to RHF references:
 
SCSPT = spin component scaled MP2 energy selection.
      = NONE - the energy will be the normal MP2 value.
               This is the default.
      = SCS  - the energy used for the potential surface
               will be the SCS energy value.
Use of SCSPT=SCS causes gradients to be those for the SCS-
MP2 potential surface.  For CODE=IMS, the nuclear gradient
can be evaluated analytically.  See NUMGRD in $CONTRL if
for some reason you wish to use the other two closed shell
codes for SCS-MP2 gradients.
 
The following keywords apply to any CODE=SERIAL MP2 run, or
to parallel ROHF+MP2 runs using OSPT=RMP:
 
LMOMP2=    a flag to analyze the closed shell MP2 energy
           in terms of localized orbitals.  Any type of
           localized orbital may be used.  This option
           is implemented only for RHF, and its selection
           forces use of the METHOD=3 transformation, in
           serial runs only.  The default is .FALSE.
 
CPHFBS =   BASISMO solves the response equations during
           gradient computations in the MO basis.  This
           is programmed only for RHF references without
           frozen core orbitals, when it is the default.
       =   BASISAO solves the response equations using
           AO integrals, for frozen core MP2 with a RHF
           reference, or for ROHF or UHF based MP2.
 
NWORD =    controls memory usage.  The default uses all
           available memory.  Applies to CODE=SERIAL.
           (default=0)
 
METHOD= n  selects transformation method, 2 being the
           segmented transformation, and 3 being a more
           conventional two phase bin sort implementation.
           3 requires more disk, but less memory.  The
           default is to attempt method 2 first, and
           method 3 second.  Applies only to CODE=SERIAL.
 
AOINTS=    defines AO integral storage during conventional
           integral transformations, during parallel runs.
        DUP stores duplicated AO lists on each node, and
           is the default for parallel computers with slow
           interprocessor communication, e.g. ethernet.
        DIST distributes the AO integral file across all
           nodes, and is the default for parallel
           computers with high speed communications.
           Applies only to parallel OSPT=RMP runs.
 
 
184 lines are written.
Edited by Shiro KOSEKI on Tue May 17 15:19:38 2022.