==========================================================
$MCSCF group                       (for SCFTYP=MCSCF)

    This group controls the MCSCF orbital optimization
step.  The difference between the five convergence methods
is outlined in the Further Information chapter, which you
should carefully study before trying MCSCF computations.

 --- the next chooses the configuration basis ---

CISTEP = ALDET chooses the Ames Lab. determinant full CI,
               and requires $DET input. (default)
       = ORMAS chooses an Occupation Restricted Multiple
               Active Space determinant CI, requiring
               both $DET and $ORMAS inputs.
       = GUGA  chooses the graphical unitary group CSFs,
               and requires $DRT input.  This is the
               only value usable with the QUAD converger.
       = GENCI chooses the Ames Laboratory general CI, and
               requires $GEN input.
       = GMCCI chooses the Kyushu University general CI,
               and requires $GMCPT input.

 --- the next five choose the orbital optimizer ---

FOCAS  = a flag to select a method with a first order
         convergence rate.  (default=.FALSE.)
         Parallel runs with FOCAS do not use MEMDDI.

SOSCF  = a flag selecting an approximately second order
         convergence method, using an approximate orbital
         hessian.  (default=.TRUE.)
         Parallel runs with SOSCF do not use MEMDDI.

FULLNR = a flag selecting a second order method, with an
         exact orbital hessian.  (default=.FALSE.)
         Parallel runs with FULLNR require input of MEMDDI.

QUAD   = a flag to pick a fully quadratic (orbital and
         CI coefficient) optimization method, which is
         applicable to FORS or non-FORS wavefunctions.
         QUAD may not be used with state-averaging.
         (default = .FALSE.)
         This converger can be used only in serial runs.

JACOBI = a flag to pick a program that minimizes the
         MCSCF energy by a sequence of 2x2 Jacobi
         orbital rotations.  This is very systematic in
         forcing convergence, although the number of
         iterations may be high and the time longer
         than the other procedures.  This option does
         not compute the orbital Lagrangian, hence at
         present nuclear gradients may not be computed.
         (default = .FALSE.)
         This converger can be used only in serial runs.

Note that FOCAS must be used only with FORS=.TRUE. in $DRT.
The other convergers are usable for either FORS or non-FORS
wavefunctions, although convergence is always harder in the
latter case, when FORS below must be set .FALSE.


   --- the next apply to all convergence methods ---
Keywords specific to each converger are described below.

ACURCY = the major convergence criterion, the maximum
         permissible asymmetry in the Lagrangian matrix.
         (default=1E-5, but 1E-6 if MPLEVL, CI, or FMO
         is selected.)

ENGTOL = a secondary convergence criterion, the run is
         considered converged when the energy change is
         smaller than this value. (default=1.0E-10)

MAXIT  = Maximum number of iterations (default=100 for
         FOCAS, 60 for SOSCF, 30 for FULLNR or QUAD)

MICIT  = Maximum number of microiterations within a
         single MCSCF iteration. (default=5 for FOCAS
         or SOSCF, or 1 for FULLNR or QUAD)

NWORD  = The maximum memory to be used, the default is
         to use all available memory.  (default=0)

FORS   = a flag to specify that the MCSCF function is of
         the Full Optimized Reaction Space type, which is
         sometimes known as CAS-SCF.  .TRUE. means omit
         active-active rotations from the optimization.
         Since convergence is usually better with these
         rotations included, the default is sensible:
         for FOCAS: .TRUE.,
         for FULLNR or QUAD: .FALSE. for FULLNR or QUAD,
         and for SOSCF: .TRUE. for ALDET/GUGA
                    but .FALSE. for ORMAS/GENCI)
         It is seldom a good idea to enter this keyword.


   Some keywords that apply after convergence is obtained:

CANONC = a flag to cause formation of the "standard
         Fock operator", used to generate canonical core
         and virtual orbitals.  This may reorder the core
         by orbital energies.  If the active space is also
         canonicalized, the active orbitals may also be
         reordered by energy.  Whenever possible, the
         program will also attempt to canonicalize the
         active orbitals.  (default=.TRUE.)

VVOS   = Valence Virtual Orbital generation, akin to the
         same keyword in $SCF, for MCSCF runs.  The same
         restrictions (no core potentials, atoms H-Xe)
         apply.  (default= .FALSE.)

FINCI  = NONE means skip regeneration of CAS-CI states over
              final converged orbitals.  (default)
       = MOS  use the final MOS, including any final
              canonicalization by CANONC, to regenerate
              the CAS-CI states matching the MOs.
       = NOS  use the final NOS to regenerate the CAS-CI
              states.  Note that CISTEP=ORMAS' natural
              orbital process will mix active subspaces,
              so an ORMAS natural orbital CI will not
              reproduce the MCSCF energies.
This keyword is not implemented for CISTEP=GENCI or GMCCI.

DIABAT = flag controlling construction of diabatic states,
         from the final MCSCF adiabatic states.
         This is presently programmed only for CISTEP=GUGA.
         See the $DIABAT input.   (default is .FALSE.)

EKT    = a flag to cause generation of extended Koopmans'
         theorem orbitals and energies.  (Default=.FALSE.)
    For this option, see R.C.Morrison and G.Liu,
    J.Comput.Chem., 13, 1004-1010 (1992).  Note that
    the process generates non-orthogonal orbitals, as
    well as physically unrealistic energies for the
    weakly occupied MCSCF orbitals.  The method is
    meant to produce a good value for the first I.P.

NPUNCH = MCSCF punch option (analogous to $SCF NPUNCH)
         0  do not punch out the final orbitals
         1  punch out the occupied orbitals
         2  punch out occupied and virtual orbitals
             The default is NPUNCH = 2.

NPFLG  = an array for debug printing control.  This is
         analogous to the same variable in $CIINP.
         Elements 1,2,3,4,6,8 make sense, the 8th step
         controlling debugging of the orbital optimization.
         In case you want to see normal output from all
         steps during all iterations, set NPFLG(10)=1.
         This may help trace problems that occur only
         after the first iteration.


     --- the next apply to SOSCF optimizations ---

NOFO   = number of FOCAS iterations before switching to the
         SOSCF converger.  May be 0, 1, ... (default=1).
         One FOCAS iteration at the first geometry permits
         a canonicalization of the virtual space to occur,
         which is likely to be crucial for convergence.

MCFMO  = set to 1 to remove redundant orbital Lagrangian
         elements in FMO-MCSCF.  Note that corresponding
         orbital rotations will still be optimised but not
         considered when deciding whether a run converged.
         This option is only in effect if detached bonds
         are present (for which redundant orbitals exist).
         Default: 1.
         (This variable is irrelevant except to FMO runs)

   --- the next three refer to FOCAS optimizations ---

CASDII = threshold to start DIIS (default=0.05)

CASHFT = level shift value (default=1.0)

NRMCAS = renormalization flag, 1 means do Fock matrix
         renormalization, 0 skips (default=1)

    --- the next applies to the QUAD method ---
 (note that all FULLNR input is also relevant to QUAD)

QUDTHR = threshold on the orbital rotation parameter,
         SQCDF, to switch from the initial FULLNR
         iterations to the fully quadratic method.
         (default = 0.05)

   --- The JACOBI converger accepts FULLNR options ---
      --- NORB, NOROT, MOFRZ, and FCORE as input ---

   --- all remaining input applies only to FULLNR ---
        except that JACOBI obeys four of these!

     Freezing any orbitals (FCORE, MOFRZ, NORB, NOROT)
     is incompatible with gradients, as the orbitals will
     not be fully optimized.  Use frozen orbital options
     only with RUNTYP=ENERGY!

DAMP   = damping factor, this is adjusted by the program
         as necessary.  (default=0.0)

METHOD = DM2 selects a density driven construction of the
         Newton-Raphson matrices.  (default).
       = TEI selects 2e- integral driven NR construction.
         See the 'further information' section for more
         details concerning these methods.  TEI is slow!

LINSER = a flag to activate a method similar to direct
         minimization of SCF.  The method is used if
         the energy rises between iterations.  It may in
         some circumstances increase the chance of
         converging excited states.  (default=.FALSE.)

FCORE  = a flag to freeze optimization of all filled
         orbitals, which is useful in preparation for
         RUNTYP=TRANSITN jobs.  Filled orbitals means not
         only chemical core, but also any inert valence
         orbitals below the active space. Setting FCORE
         automatically forces CANONC false. It may be
         useful to decrease TOLZ and TOLE in $GUESS by two
         orders of magnitude to ensure the filled orbitals
         are unchanged during MOREAD.  (default=.FALSE.)

MOFRZ  = an array of orbitals to be frozen out of the
         orbital optimization step (default=none frozen).
         This list may contain active orbitals, as well
         as the filled orbitals.
         No more than 15 orbitals may be frozen.
         You probably want to toggle CANONC off too!

   --- the last few FULLNR options are seldom used ---

NORB   = the number of orbitals to be included in the
         optimization. The default is to optimize with
         respect to the entire basis.  Give NORB as two
         smaller than the number of MOs if you want to
         freeze out the top two virtual orbitals.
         (default=all orbitals present in the run).

NOROT  = an array of up to 250 orbital rotation pairs
         to be omitted from the optimization process.
         The program automatically deletes all core-core
         rotations, all act-act rotations if FORS=.TRUE.,
         and all core-act and core-virt rotations if
         FCORE=.TRUE.  Additional rotations are input as
         I1,J1,I2,J2... to exclude rotations between
         orbital I running from 1 to NORB, and J running
         up to the smaller of I or NVAL in $TRANS.

DROPC  = a flag to include MCC core orbitals during the
         CI computation.  The default is to drop them
         during the CI, instead forming Fock operators
         which are used to build the correct terms in
         the orbital hessian. (default = .TRUE.)

==========================================================
 
348 lines are written.
Edited by Shiro KOSEKI on Fri Nov 5 15:25:53 2021.