  Analytical nuclear gradients for fully internally contracted complete active
space second-order perturbation theory (CASPT2) are reported. This
implementation has been realized by an automated code generator that can handle
spin-free formulas for the CASPT2 energy and its derivatives with respect to
variations of molecular orbitals and reference coefficients. The underlying
complete active space self-consistent field and the so-called Z-vector
equations are solved using density fitting. The implementation has been applied
to the vertical and adiabatic ionization potentials of the porphin molecule to
illustrate its capability.
