## DESCRIPTION

The program
**stable**
performs a stability analysis on the molecular orbitals by
diagonalizing the molecular orbital Hessian. The analysis
includes orbital rotations which may break spin or spatial
symmetry. If an instability is detected (i.e., there are
negative eigenvalues of the MO Hessian), the previous
Hartree-Fock self consistent field (SCF) computation has landed
on a local minimum, not the global minimum, in orbital
rotation space. For spatial- or symmetry-breaking rotations,
this merely means that there is another orbital occupation or a
UHF wavefunction with a lower energy. For instabilties which
preserve the reference type (RHF or UHF) and are totally symmetric,
this suggests that the SCF computation has simply found the wrong
solution and should be re-run using a new initial guess.

Instabilities corresponding to spatial symmetry breaking rotatios can be resolved by re-running the calculation in a lower computational point group. (It may also be necessary to employ some trick to break the symmetry of the initial guess wavefunction). Instabilities corresponding to spin symmetry breaking rotations (RHF->UHF) can be resolved by re-running the SCF using a UHF reference.

For UHF wavefunctions with totally-symmetric instabilities, it is possible to follow the instability automatically toward the global minimum by setting FOLLOW=TRUE.

## INPUT FORMAT

Input for this program is read from the file The following keywords are valid:

**CACHELEV =***integer*-
This is the cache level used for the DPD files. It functions the
same way as in the coupled-cluster codes. Currently, this is
hardwired to 0.
**FOLLOW =***boolean*-
If TRUE, then the eigenvector corresponding to the most negative
eigenvalue of the MO Hessian will be followed to try to find a lower
energy Hartree-Fock solution. The orbitals will be rotated, and the
cscf module should be re-run using these new guess orbitals.
**NUM_EVECS_PRINT =***integer*-
Gives the number of MO Hessian eigenvectors to print.
**PRINT =***integer*-
The print level determines how much information is printed by the
program. Values typically range from 1 (minimal printing) to 5 (very
verbose printing for debugging only). The default is 1.
**REFERENCE =***string*-
This is the reference type, RHF, ROHF, or UHF. The default is RHF.
**SCALE =***real*-
This is the scale factor used for taking steps in eigenvector
following. Normal values would be between 0 and 1. The default is 0.5.