$MCQDPT group  (relevant if SCFTYP=MCSCF and MPLEVL=2)
 
     Controls 2nd order MCQDPT (multiconfiguration quasi-
degenerate perturbation theory) runs, if requested by
MPLEVL=2 in $CONTRL.  MCQDPT2 is implemented only for FORS
(aka CASSCF) wavefunctions.  The MCQDPT method is a
multistate, as well as multireference perturbation theory.
The implementation is a separate program, interfaced to
GAMESS, with its own procedures for determination of the
canonical MOs, CSF generation, integral transformation, CI
in the reference CAS, etc.  Therefore some of the input in
this group repeats data given elsewhere, particularly for
$DET/$DRT.
 
    Analytic gradients are not available.  Spin-orbit
coupling may be treated as a perturbation, included at the
same time as the energy perturbation.  If spin-orbit
calculations are performed, the input groups for each
multiplicity are named $MCQD1, $MCQD2, ... rather than
$MCQDPT.  Parallel calculation is enabled.
 
   When applied to only one state, the theory is known as
multi-reference Moller-Plesset (MRMP), but the term MCQDPT
is used when this theory is used in its multi-state form.
Please note that this perturbation theory is not the same
thing as the CASPT2 theory, and should -NEVER- be called
that.  A more complete discussion may be found in the
'Further Information' chapter.
 
   Most values will inherit sensible defaults for the state
symmetry and the orbital space counts from the $DET or $DRT
input defining the MCSCF: however for multi-state runs, the
user probably has to supply the desired state and weighting
information.
 
   In case of diabatic state generation at the MCQDPT
level, the settings for state selection and weights will be
inherited from the $DIABAT input, to be the same as used
for the Diabatic MO generation.  Thus diabatization runs
will probably not give any input here, although they might
override NMOFZC/NMODOC defaults.
 
       *** MCSCF reference wavefunction ***
 
NEL    =   total number of electrons, including core.
           (default from $DATA and ICHARG in $CONTRL)
 
MULT   =   spin multiplicity (default from $CONTRL)
 
NMOACT =   Number of orbitals in FORS active space
           (default is the active space in $DET or $DRT)
NMOFZC =   number of frozen core orbitals, NOT correlated
           in the perturbation calculation.  (default is
           number of chemical cores)
NMODOC =   number of orbitals which are doubly occupied in
           every MCSCF configuration, that is, not active
           orbitals, which are to be included in the
           perturbation calculation.  (The default is all
           valence orbitals between the chemical core and
           the active space)
NMOFZV =   number of frozen virtuals, NOT occupied during
           the perturbation calculation.  The default is
           to use all virtuals in the MP2.  (default=0)
 
If the input file does not provide a $DET or $DRT, the user
must give NMOFZC, NMODOC, and NMOACT correctly here.
 
STSYM = The symmetry of the target electronic state(s).
        See $DET for possible values: use AP/APP in Cs, not
        primes.  This must be given, and need not match the
        state symmetry used in optimizing the orbitals by
        $DET or $DRT, although it often does.
        Default is the totally symmetric representation.
 
NOSYM  = 0 use CSF symmetry (see the STSYM keyword).
           off diagonal perturbations vanish if states are
           of different symmetry, so the most efficient
           computation is a separate run for every space
           symmetry. (default)
         1 turn off CSF state symmetry so that all states
           are treated at once.  STSYM is ignored.
           Presently this option does not seem to work!!
        -1 Symmetry purify the orbitals.  Since $GUESS is
           not read by MCQDPT runs, this option can be used
           as a substitute for its PURIFY.  After cleaning
           the orbitals, they are reorthogonalised within
           each irrep and within each group (core, double,
           active, virtual) separately.  Since this occurs
           without MCSCF optimization if you have chosen to
           use RDVECS in $MRMP, it is *your* responsibility
           to ensure that any purification of the orbitals
           is small enough that the CAS energies for the
           original CASSCF and the CAS-CI performed during
           the MCQDPT are the same!
 
       *** perturbation specification ***
 
KSTATE=    state is used (1) or not (0) in the MCQDPT2.
           Maximum of 20 elements, including zeros.
           For example, if you want the perturbation
           correction to the second and the fourth roots,
               KSTATE(1)=0,1,0,1
           See also WSTATE.
           (normal default=1,0,0,0,0,0,0,...)
           (default for DIABAT=.TRUE. will be from $DIABAT)
 
XZERO   a flag to choose the 0-th order Hamiltonian used,
        when more than one state is included by KSTATE and
        WSTATE. XZERO has no impact on single state runs.
        .TRUE.  selects Granovsky's XMCQDPT equations for
        the zero-th order Hamiltonian, see
          A.A.Granovsky, J.Chem.Phys. 134, 214113(2011).
        .FALSE. selects the original definition of the
        unperturbed Hamiltonian.  The default is .FALSE.
 
        *** Intruder State Removal ***
 
EDSHFT =   energy denominator shifts.  (default=0.0,0.0)
           See also REFWGT.
 
Intruder State Avoidance (ISA) calculations can be made by
changing the energy denominators around poles (where the
denominator is zero).  Each denominator x is replaced by x
+ EDSHFT/x, so that far from the poles (when x is large)
the effect of such change is small.  EDSHFT is an array of
two values, the first is used in spin-free MCQDPT, and the
second is for spin-orbit MCQDPT.  Both values are used if
RUNTYP=TRNSTN, only the first is used otherwise.  A
suggested pair of values is 0.02,0.1, but experimentation
with your system is recommended.  Setting these values to
zero is ordinary MCQDPT, whereas infinite collapses to the
MCSCF reference.
 
Note that the energy denominators (which are ket-dependent
in MCQDPT) are changed in a different way for each ket-
vector, that is, for each row in MCQDPT Hamiltonian matrix.
In other words, the zeroth order energies are not
"universal", but state specific.  This is strictly speaking
an inconsistency in defining zeroth order energies that are
usually chosen "universally".
 
In order to maintain continuity when studying a PES, one
usually uses the same EDSHFT values for all points on PES.
In order to study the potential surface for any extended
range of geometries, it is recommended to use ISA, as it is
quite likely that one or more regions of the PES will be
unphysical due to intruder states.
 
For an example of how intruder states can appear at some
points on the PES, see Figures 1,2,7 of
    K.R.Glaesemann, M.S.Gordon, H.Nakano
       Phys.Chem.Chem.Phys. 1, 967-975(1999)
and also
    H.A.Witek, D.G.Fedorov, K.Hirao, A.Viel, P.-O.Widmark
       J.Chem.Phys. 116, 8396-406(2002)
For a discussion of intruder state removal from MCQDPT, see
    H.A.Witek, Y.-K.Choe, J.P.Finley, K.Hirao
       J.Comput.Chem. 23, 957-965(2002)
 
REFWGT =   a flag to request decomposition of the second
           order energy into internal, semi-internal, and
           external contributions, and to obtain the weight
           of the MCSCF reference in the 1st order wave
           function.  This option significantly increases
           the run time!  When you run in parallel, only
           the transformation steps will speed up, as the
           PT part of the reference weight calculation has
           not been adapted for speedups (default=.FALSE.)
 
           The EDSHFT option does not apply if REFWGT is
           used.  One purpose of using REFWGT is to try to
           understand the nature of the intruder states.
 
       *** Canonical Fock orbitals ***
 
IFORB  = 0 skip canonicalization
           (default when DIABAT=.TRUE.).
       = 1 determine the canonical Fock orbitals.
           (the usual default)
       = 3 canonicalise the Fock orbitals averaged over
           all $MCQDx input groups.
 
IFORB=3 option pertains only to RUNTYP=TRANSITN.  It is
primarily meant to include spin-orbit coupling perturbation
into the energy perturbation, but could also be used in
conjunction with OPERAT=DM to calculate only the second
order energy perturbation.  IFORB=3 means that WSTATE is
used as follows:  In each $MCQDx group, the WSTATE weights
are divided by the total number of states (sum(i)
IROOTS(i)), so the sum over all WSTATE values in all $MCQDx
groups is normalized to sum to 1.  Thus there is no
normalization to 1 within each $MCQDx group.
This option might be used to speed up an atomic MCQDPT,
e.g. if computing the 3-P ground state of carbon, one would
want to average over all three spatial components of the P
term, to be sure of spatial degeneracy, but then run the
perturbation using symmetry, separately on the B1g+B2g+B3g
subspecies (within D2h) of a P term. It is very important
to give weights appropriate for the symmetry, the input
requires care.
 
WSTATE =   weight of each CAS-CI state in computing the
           closed shell Fock matrix.  You must enter 0.0
           whenever the same element in KSTATE is 0.
           In most cases setting the WSTATEs for states
           to be included in the MCQDPT to equal weights
           is the best, and this is the default.
           Runs with DIABAT=.TRUE. default to the same
           weights used during the DMO generation step.
 
 
       *** Miscellaneous options ***
 
ISELCT     is an option to select only the important CSFs
           for inclusion into the CAS-CI reference states.
           Set to 1 to select, or 0 to avoid selection of
           CSFs (default = 0)
           All CSFs in a preliminary complete active space
           CI whose CI coefficients exceed the square root
           of THRWGT are kept in a smaller CI to determine
           the zero-th order states.  Note that the CSFs
           with smaller coefficients, while excluded from
           the reference states, are still used during the
           perturbation calculation, so most of their
           energy contribution is still retained.  This can
           save appreciable computer time in cases with
           large active spaces.
 
THRWGT =   weight threshold for retaining CSFs in selected
           configuration runs.  In quantum mechanics, the
           weight of a CSF is the square of its CI
           coefficient.  (default=1d-6)
 
THRGEN =   threshold for one-, two-, and three-body
           density matrix elements in the perturbation
           calculation.  The default gives about 5 decimal
           place accuracy in energies.  Increase to 1.0D-12
           if you wish to obtain higher accuracy, for
           example, in numerical gradients (default=1D-8).
           Tightening THRGRN and perhaps CI diagonalization
           should allow 7-8 decimal place agreement with
           the determinant code.
 
THRENE =   threshold for the energy convergence in the
           Davidson's method CAS-CI.  (default=-1.0D+00)
 
THRCON =   threshold for the vector convergence in the
           Davidson's method CAS-CI.  (default=1.0D-06)
 
MDI    =   dimension of small Hamiltonian diagonalized to
           prepare initial guess CI states. (default=50)
 
MXBASE =   maximum number of expansion vectors in the
           Davidson diagonalization subspace (e.g. MXXPAN).
           (default=50)
 
NSOLUT =   number of states to be solved for in the
           Davidson's method, this might need to exceed
           the number of states in the perturbation
           treatment in order to "capture" the correct
           roots.
 
NSTOP  =   maximum number of iterations to permit in
           the Davidson's diagonalization.
 
LPOUT  =   print option, 0 gives normal printout, while
           <0 gives debug print (e.g. -1, -5, -10, -100)
           In particular, LPOUT=-1 gives more detailed
           timing information.  (default=0)
 
The next three parameters refer to parallel execution:
 
DOORD0 =   a flag to select reordering of AO integrals
           which speeds the integral transformations.
           This reduces disk writes, but increases disk
           reads, so you can try turning it off if your
           machine has slow writes.  (default=.TRUE.)
 
PARAIO =   access 2e- integral file on every node, at
           the same time.  This affects only runs with
           DOORD0 true, and it may be useful to turn
           this off in the case of SMP nodes sharing
           a common disk drive.  (default=.TRUE.)
 
DELSCR =   a flag to delete file 56 containing half-
           transformed integrals after it has been
           used.  This reduces total disk requirements
           if this file is big.  (default=.FALSE.)
 
Note that parallel execution will be more effective if you
use distributed memory, MEMDDI in $SYSTEM.  Using
AOINTS=DIST in $TRANS is likely to be helpful in situations
with relatively poor I/O rates compared to communication,
e.g. SMP enclosures forced to share a single scratch disk
system.  See PROG.DOC for more information on parallel
execution.
 
Finally, there are additional very specialized options,
described in the source code routine MQREAD: IROT, LENGTH,
MAXCSF, MAXERI, MAXROW, MXTRFR, THRERI, MAINCS, NSTATE
 
 
 
 
 
305 lines are written.
Edited by Shiro KOSEKI on Tue May 17 15:19:38 2022.