# -*- coding: utf-8 -*-

"""Top-level package for MOPAC step."""

# Bring up the classes so that they appear to be directly in
# the package.

from mopac_step.mopac_step import MOPACStep  # noqa: F401
from mopac_step.mopac import MOPAC  # noqa: F401
from mopac_step.tk_mopac import TkMOPAC  # noqa: F401
from mopac_step.energy_step import EnergyStep  # noqa: F401
from mopac_step.energy import Energy  # noqa: F401
from mopac_step.energy_parameters import EnergyParameters  # noqa: F401
from mopac_step.tk_energy import TkEnergy  # noqa: F401
from mopac_step.optimization_step import OptimizationStep  # noqa: F401
from mopac_step.optimization import Optimization  # noqa: F401
from mopac_step.optimization_parameters import OptimizationParameters  # noqa: F401 E501
from mopac_step.tk_optimization import TkOptimization  # noqa: F401
from mopac_step.ir_step import IRStep  # noqa: F401
from mopac_step.ir import IR  # noqa: F401
from mopac_step.ir_parameters import IRParameters  # noqa: F401
from mopac_step.tk_ir import TkIR  # noqa: F401
from mopac_step.thermodynamics_step import ThermodynamicsStep  # noqa: F401
from mopac_step.thermodynamics import Thermodynamics  # noqa: F401
from mopac_step.thermodynamics_parameters import ThermodynamicsParameters  # noqa: F401 E501
from mopac_step.tk_thermodynamics import TkThermodynamics  # noqa: F401

# Handle versioneer
from ._version import get_versions
__author__ = """Paul Saxe"""
__email__ = 'psaxe@molssi.org'
versions = get_versions()
__version__ = versions['version']
__git_revision__ = versions['full-revisionid']
del get_versions, versions

keyword_metadata = {
    '0SCF': {
        'description': 'Read in data, then stop',
    },
    '1ELECTRON': {
        'description': 'Print final one-electron matrix',
    },
    '1SCF': {
        'description': 'Do one scf and then stop',
    },
    'ADD-H': {
        'description': ('Add hydrogen atoms (intended for use with organic '
                        'compounds)'),
    },
    'A0': {
        'description': 'Input geometry is in atomic units',
    },
    'AIDER': {
        'description': 'Read in ab-initio derivatives',
    },
    'AIGIN': {
        'description': 'Geometry must be in Gaussian format',
    },
    'AIGOUT': {
        'description': 'Print the geometry in Gaussian format in the ARC file',
    },
    'ALLBONDS': {
        'description': ('Print final bond-order matrix, including bonds to '
                        'hydrogen'),
    },
    'ALLVEC': {
        'description': 'Print all vectors (keywords vectors also needed)',
    },
    'ALT_A': {
        'description': 'In PDB files with alternative atoms, select atoms A',
        'takes values': 1,
        'default': 'A',
        'format': '{keyword}={value}'
    },
    'ANGSTROMS': {
        'description': 'Input geometry is in Angstroms',
    },
    'AUTOSYM': {
        'description': 'Symmetry to be imposed automatically',
    },
    'AUX': {
        'description': ('Output auxiliary information for use by other '
                        'programs'),
    },
    'AM1': {
        'description': 'Use the AM1 hamiltonian',
    },
    'BAR': {
        'description': 'reduce bar length by a maximum of n.nn%',
        'takes values': 1,
        'default': '0.01',
        'format': '{keyword}={value}'
    },
    'BCC': {
        'description': 'Only even unit cells used (used by BZ)',
    },
    'BIGCYCLES': {
        'description': 'Do a maximum of n big steps',
        'takes values': 1,
        'default': '1',
        'format': '{keyword}={value}'
    },
    'BIRADICAL': {
        'description': 'System has two unpaired electrons',
    },
    'BFGS': {
        'description': 'Use the Flepo or BFGS geometry optimizer',
    },
    'BONDS': {
        'description': 'Print final bond-order matrix',
    },
    'CAMP': {
        'description': 'Use Camp-King converger in SCF',
    },
    'CARTAB': {
        'description': 'Print point-group character table',
    },
    'C.I.': {
        'description': 'A multi-electron configuration interaction specified',
        'takes values': [1, 2],
        'default': '2',
        'format': ['{keyword}={value}', '{keyword}=({value1},{value2}}']
    },
    'CHAINS(text)': {
        'description': ('In a protein, explicitly define the letters of '
                        'chains.'),
    },
    'CHECK': {
        'description': 'Report possible faults in input geometry',
    },
    'CHARGE': {
        'description': 'Charge on system = n (e.g. NH4 = +1)',
        'takes values': 1,
        'default': '+1',
        'format': '{keyword}={value}'
    },
    'CHARGES': {
        'description': ('Print net charge on the system, and all charges in '
                        'the system'),
    },
    'CHARST': {
        'description': 'Print details of working in CHARST',
    },
    'CIS': {
        'description': 'C.I. uses 1 electron excitations only',
    },
    'CISD': {
        'description': 'C.I. uses 1 and 2 electron excitations',
    },
    'CISDT': {
        'description': 'C.I. uses 1, 2 and 3 electron excitations',
    },
    'COMPARE': {
        'description': 'Compare the geometries of two systems',
    },
    'COMPFG': {
        'description': 'Print heat of formation calculated in COMPFG',
    },
    'COSCCH': {
        'description': 'Add in COSMO charge corrections',
    },
    'COSWRT': {
        'description': ('Write details of the solvent accessible surface to a '
                        'file'),
    },
    'CUTOFP': {
        'description': 'Madelung distance cutoff is n .nn Angstroms',
        'takes values': 1,
        'default': '15.0',
        'format': '{keyword}={value}'
    },
    'CUTOFF': {
        'description': ('In MOZYME, the interatomic distance where the NDDO '
                        'approximation stops'),
        'takes values': 1,
        'default': '6.0',
        'format': '{keyword}={value}'
    },
    'CUTOF1': {
        'description': 'In MOZYME, the cutoff distance for polarization',
        'takes values': 1,
        'default': '10.0',
        'format': '{keyword}={value}'
    },
    'CUTOF2': {
        'description': ('In MOZYME, the cutoff distance for two-center '
                        'integral'),
        'takes values': 1,
        'default': '9.9',
        'format': '{keyword}={value}'
    },
    'CUTOFS': {
        'description': 'In MOZYME, the cutoff distance for overlap integrals',
        'takes values': 1,
        'default': '9.0',
        'format': '{keyword}={value}'
    },
    'CYCLES': {
        'description': 'Do a maximum of n steps of geometry optimization',
        'takes values': 1,
        'default': '50',
        'format': '{keyword}={value}'
    },
    'CVB': {
        'description': ('In MOZYME. add and remove specific bonds to allow a '
                        'Lewis or PDB structure.'),
    },
    'DAMP': {
        'description': ('in MOZYME. damp SCF oscillations using a factor of '
                        'n.nn, 0<n.nn<1.0, <0.5 for solids'),
        'takes values': 1,
        'default': '0.5',
        'format': '{keyword}={value}'
    },
    'DATA': {
        'description': 'Input data set is re-defined to text',
        'takes values': 1,
        'default': '/file.dat',
        'format': '{keyword}={value}'
    },
    'DCART': {
        'description': 'Print part of working in DCART',
    },
    'DDMAX': {
        'description': ('The maximum value of the trust radius in EF and TS. '
                        'Defaults to 0.3 in TS and 0.5 in EF'),
        'takes values': 1,
        'default': '0.3',
        'format': '{keyword}={value}'
    },
    'DDMIN': {
        'description': ('Minimum trust radius in a EF/TS calculation. '
                        'Defaults to 0.001. Use smaller values close to '
                        'minimium'),
        'takes values': 1,
        'default': '0.00001',
        'format': '{keyword}={value}'
    },
    'DEBUG': {
        'description': 'Debug option turned on',
    },
    'DEBUG PULAY': {
        'description': 'Print working in PULAY',
    },
    'DENOUT': {
        'description': 'Density matrix output, unformatted',
        },
    'DENOUTF': {
        'description': 'Density matrix output, formatted',
    },
    'DENSITY': {
        'description': 'Print final density matrix',
    },
    'DERI1': {
        'description': 'Print part of working in DERI1',
    },
    'DERI2': {
        'description': 'Print part of working in DERI2',
    },
    'DERITR': {
        'description': 'Print part of working in DERIT',
    },
    'DERIV': {
        'description': 'Print part of working in DERIV',
    },
    'DERNVO': {
        'description': 'Print part of working in DERNVO',
    },
    'DFORCE': {
        'description': 'Force calculation specified, also print force matrix.',
    },
    'DFP': {
        'description': ('Use Davidson-Fletcher-Powell method to optimize '
                        'geometries'),
    },
    'DISEX': {
        'description': ('Distance for interactions in fine grid in COSMO. '
                        'Defaults is 2.0, should converge results using '
                        'smaller values if needed.'),
        'takes values': 1,
        'default': '2.0',
        'format': '{keyword}={value}'
    },
    'DISP': {
        'description': ('Print the hydrogen bonding and dispersion '
                        'contributions to the heat of formation'),
    },
    'DMAX': {
        'description': 'Maximum stepsize in eigenvector following',
        'takes values': 1,
        'default': '2.0',
        'format': '{keyword}={value}'
    },
    'DOUBLET': {
        'description': 'Doublet state required',
    },
    'DRC': {
        'description': ('Dynamic reaction coordinate calculation. The '
                        'parameter, if given, is the cooling half-life in fs'),
        'takes values': [0, 1],
        'default': '50',
        'format': ['{keyword}', '{keyword}={value}']
    },
    'DUMP': {
        'description': ('Write restart files every n seconds, or minutes or '
                        'hours with "m" or "h" suffix'),
        'takes values': 1,
        'default': '2h',
        'format': '{keyword}={value}'
    },
    'ECHO': {
        'description': 'Data are echoed back before calculation starts',
    },
    'EF': {
        'description': ('Use the EigenFollowing routine for geometry '
                        'optimization'),
    },
    'EIGEN': {
        'description': ('Print canonical eigenvectors instead of LMOs in a '
                        'MOZYME calculations'),
    },
    'EIGS': {
        'description': 'Print all eigenvalues in ITER',
    },
    'ENPART': {
        'description': 'Partition energy into components'
    },
    'EPS': {
        'description': 'Dielectric constant in COSMO calculation',
        'takes values': 1,
        'default': '78.4',
        'format': '{keyword}={value}'
    },
    'ESP': {
        'description': 'Electrostatic potential calculation',
    },
    'ESPRST': {
        'description': 'Restart of electrostatic potential',
    },
    'ESR': {
        'description': 'Calculate RHF spin density',
    },
    'EXCITED': {
        'description': 'Optimize first excited singlet state',
    },
    'EXTERNAL': {
        'description': 'Read parameters from a file',
        'takes values': 1,
        'default': '"file name"',
        'format': '{keyword}={value}'
    },
    'FIELD=(n.nn,m.mm,l.ll)': {
        'description': ('Apply an external electric field of a,b,c V/Å in the'
                        'Cartesian directions'),
        'takes values': 3,
        'default': '0,0,1',
        'format': '{keyword}=({value1},{value2},{value3})'
    },
    'FILL': {
        'description': ('In RHF open and closed shell, force M.O. n to be '
                        'filled'),
        'takes values': 1,
        'default': '0',
        'format': '{keyword}={value}'
    },
    'FLEPO': {
        'description': 'Print details of geometry optimization',
    },
    'FMAT': {
        'description': 'Print details of working in FMAT',
    },
    'FOCK': {
        'description': 'Print last Fock matrix',
    },
    'FREQCY': {
        'description': 'Print symmetrized Hessian in a FORCE calculation',
    },
    'FORCE': {
        'description': 'Calculate vibrational frequencies',
    },
    'FORCETS': {
        'description': ('Calculate the vibrational frequencies for atoms in a '
                        'transition state'),
    },
    'GEO-OK': {
        'description': 'Override some safety checks',
    },
    'GEO_DAT': {
        'description': 'Read in geometry from the file <text>',
        'takes values': 1,
        'default': '"file name"',
        'format': '{keyword}={value}'
    },
    'GEO_REF=<text>': {
        'description': 'Read in a second geometry from the file <text>',
        'takes values': 1,
        'default': '"SELF"',
        'format': '{keyword}={value}'
    },
    'GNORM': {
        'description': ('Exit when the gradient norm drops below n.nn '
                        'kcal/mol/Angstrom'),
        'takes values': 1,
        'default': '10.0',
        'format': '{keyword}={value}'
    },
    'GRADIENTS': {
        'description': 'Print all gradients',
    },
    'GRAPH': {
        'description': 'Generate unformatted file for graphics',
    },
    'GRAPHF': {
        'description': ('Generate a formatted file for graphics suitable for '
                        'Jmol and MOPETE.'),
    },
    'HCORE': {
        'description': ('Print all parameters used, the one-electron matrix, '
                        'and two-electron integrals'),
    },
    'HESSIAN': {
        'description': 'Print Hessian from geometry optimization',
    },
    'HESS': {
        'description': 'Options for calculating Hessian matrices in EF',
        'takes values': 1,
        'default': '1',
        'format': '{keyword}={value}',
        'allowed values': (0, 1, 2),
    },
    'H-PRIORITY': {
        'description': ('Heat of formation takes priority in DRC. Print '
                        'whenever the energy changes by this many kcal/mol'),
        'takes values': 1,
        'default': '0.1',
        'format': '{keyword}={value}'
    },
    'HTML': {
        'description': 'Write a web-page for displaying and editing a protein',
    },
    'HYPERFINE': {
        'description': 'Hyperfine coupling constants to be calculated',
    },
    'INT': {
        'description': 'Make all coordinates internal coordinates',
    },
    'INVERT': {
        'description': 'Reverse all optimization flags',
    },
    'IRC': {
        'description': 'Intrinsic reaction coordinate calculation',
        'takes values': [0, 1],
        'default': '',
        'format': ['{keyword}', '{keyword}={value}']
    },
    'ISOTOPE': {
        'description': 'Force matrix written to disk (channel 9 )',
    },
    'ITER': {
        'description': 'Print details of working in ITER',
    },
    'ITRY': {
        'description': 'Set limit of number of SCF iterations to n',
        'takes values': 1,
        'default': '2000',
        'format': '{keyword}={value}'
    },
    'IUPD': {
        'description': ('Mode of Hessian update in eigenvector following: '
                        '0: skip, 1: Powell, 2: BFGS'),
        'takes values': 1,
        'default': '2',
        'format': '{keyword}={value}',
        'allowed values': (0, 1, 2)
    },
    'KINETIC': {
        'description': 'Excess kinetic energy added to DRC calculation',
        'takes values': 1,
        'default': 20,
        'format': '{keyword}={value}',
    },
    'KING': {
        'description': 'Use Camp-King converger for SCF',
    },
    'LARGE': {
        'description': 'Print expanded output',
    },
    'LBFGS': {
        'description': 'Use the low-memory version of the BFGS optimizer',
    },
    'LET': {
        'description': 'Override certain safety checks',
    },
    'LEWIS': {
        'description': 'Print the Lewis structure',
    },
    'LINMIN': {
        'description': 'Print details of line minimization',
    },
    'LOCALIZE': {
        'description': ('Print the localized orbitals. These are also called '
                        'Natural Bond Orbitals or NBO'),
    },
    'LOCATE-TS': {
        'description': ('Given reactants and products, locate the transition '
                        'state connecting them'),
    },
    'LOG': {
        'description': 'Generate a log file',
    },
    'MECI': {
        'description': 'Print details of MECI calculation',
    },
    'MERS=(n1,n2,n3)': {
        'description': 'Keyword generated by MAKPOL for use with program BZ',
        'takes values': [1, 2, 3],
        'default': 'n1[,n2[,n3]]',
        'format': '{keyword}=({value})',
    },
    'METAL': {
        'description': 'Make specified atoms 100% ionic',
        'takes values': '0+',
        'default': '(Au(+3),Fe)',
        'format': '{keyword}=({value})',
    },
    'MICROS': {
        'description': 'Use specific microstates in the C.I.',
        'takes values': 1,
        'default': '0000',
        'format': '{keyword}\n{value}',
    },
    'MINI': {
        'description': ('Reduce the size of the output by only printing '
                        'specified atoms'),
    },
    'MINMEP': {
        'description': 'Minimize MEP minima in the plane defined',
    },
    'MMOK': {
        'description': 'Use molecular mechanics correction to CONH bonds',
    },
    'MNDO': {
        'description': 'Use the MNDO hamiltonian',
    },
    'MNDOD': {
        'description': 'Use the MNDO-d hamiltonian'
    },
    'MODE': {
        'description': 'In EF, follow Hessian mode no. n',
        'takes values': 1,
        'default': 1,
        'format': '{keyword}={value}',
    },
    'MOL_QMMM': {
        'description': ('Incorporate environmental effects in the QM/MM '
                        'approach'),
    },
    'MOLDAT': {
        'description': 'Print details of working in MOLDAT',
    },
    'MOLSYM': {
        'description': 'Print details of working in MOLSYM',
    },
    'MOPAC': {
        'description': 'Use old MOPAC definition for 2nd and 3rd atoms',
    },
    'MOZYME': {
        'description': ('Use the Localized Molecular Orbital method to speed '
                        'up the SCF'),
    },
    'MS': {
        'description': 'In MECI, magnetic component of spin',
        'takes values': 1,
        'default': '1.5',
        'format': '{keyword}={value}',
        'allowed value test': '2*value',
    },
    'MULLIK': {
        'description': 'Print the Mulliken population analysis',
    },
    'N**2': {
        'description': ('In excited state COSMO calculations, set the value '
                        'of N**2'),
        'takes values': 1,
        'default': 2,
        'format': '{keyword}={value}',
    },
    'NLLSQ': {
        'description': 'Minimize gradients using NLLSQ',
    },
    'NOANCI': {
        'description': 'Do not use analytical C.I. derivatives',
    },
    'NOCOMMENTS': {
        'description': ('Ignore all lines except ATOM, HETATM, and TER in PDB '
                        'files'),
    },
    'NOGPU': {
        'description': 'Do not use GPU acceleration',
    },
    'NOLOG': {
        'description': 'Suppress log file trail, where possible',
    },
    'NOMM': {
        'description': ('Do not use molecular mechanics correction to CONH '
                        'bonds'),
    },
    'NONET': {
        'description': 'NONET state required',
    },
    'NONR': {
        'description': 'Do not use Newton-Raphson method in EF',
    },
    'NOOPT': {
        'description': ('Do not optimize the coordinates of all atoms '
                        '(see OPT-X)'),
    },
    'NOOPT-X': {
        'description': ('Do not optimize the coordinates of all atoms of type '
                        'X'),
    },
    'NOREOR': {
        'description': 'In symmetry work, use supplied orientation',
    },
    'NORESEQ': {
        'description': ('Suppress the default re-sequencing of atoms to the '
                        'PDB sequence'),
    },
    'NOSWAP': {
        'description': 'Do not allow atom swapping when GEO_REF is used',
    },
    'NOSYM': {
        'description': 'Point-group symmetry set to C1',
    },
    'NOTER': {
        'description': 'Do not put "TER"s in PDB files',
    },
    'NOTHIEL': {
        'description': "Do not use Thiel's FSTMIN technique",
    },
    'NOTXT': {
        'description': 'Remove any text from atom symbols',
    },
    'NOXYZ': {
        'description': 'Do not print Cartesian coordinates',
    },
    'NSPA': {
        'description': ('Sets number of geometric segments in COSMO '
                        'use 42, 92, 122 or 162'),
        'takes values': 1,
        'default': 42,
        'format': '{keyword}={value}',
    },
    'NSURF': {
        'description': 'Number of surfaces in an ESP calculation',
    },
    'OCTET': {
        'description': 'Octet state required',
    },
    'OLDCAV': {
        'description': ('In COSMO, use the old Solvent Accessible Surface '
                        'calculation'),
    },
    'OLDENS': {
        'description': 'Read initial density matrix off disk',
    },
    'OLDFPC': {
        'description': 'Use the old fundamental physical constants',
    },
    'OLDGEO': {
        'description': 'Previous geometry to be used',
    },
    'OMIN=n.nn': {
        'description': 'In TS, minimum allowed overlap of eigenvectors',
        'takes values': 1,
        'default': 0.8,
        'format': '{keyword}={value}',
    },
    'OPEN': {
        'description': 'Open-shell UHF or RHF calculation requested',
        'takes values': 2,
        'default': '2,2',
        'format': '{keyword}({value})',
    },
    'OPT': {
        'description': (
            'OPT: Optimize coordinates of all atoms -- or --'
            'OPT(text=n.nn): Optimize the coordinates of all atoms within'
            'n.nn Ångstroms of atoms labeled "text" -- or --'
            'OPT("Label1"[,"Label1"[,"Label1"...]]) where labels are residues'
        ),
        'takes values': [0, 1],
        'default': '',
        'format': 'OPT({value})',
    },
    'OPT-X': {
        'description': 'Optimize the coordinates of all atoms of type X',
        'takes values': 1,
        'default': 'H',
        'format': 'OPT-X={value}',
    },
    'OUTPUT': {
        'description': ('Reduce the amount of output (useful for large '
                        'systems)'),
    },
    'P': {
        'description': ('An applied pressure of n.nn Newtons/m2 to be used'
                        ' A suffix of GPa may be used to indicate GPa=10^9 '
                        'N/m^2'),
        'takes values': 1,
        'default': '10.0GPa',
        'format': '{keyword}={value}',
    },
    'PDB': {
        'description': ('Input geometry is in protein data bank format. '
                        'Arguments give nonstandard element name:atno, e.g. '
                        'D:1 or LP:0'),
        'takes values': 1,
        'default': 'D:1,LP:0',
        'format': '{keyword}({value})',
    },
    'PDBOUT	': {
        'description': 'Output geometry in pdb format',
    },
    'PECI': {
        'description': 'C.I. involves paired excitations only',
    },
    'PI': {
        'description': 'Resolve density matrix into σ, π, and δ components',
    },
    'pKa': {
        'description': ('Print the pKa for ionizable hydrogen atoms attached '
                        'to oxygen atoms'),
    },
    'PL': {
        'description': 'Monitor convergence of density matrix in ITER',
    },
    'PM3': {
        'description': 'Use the MNDO-PM3 Hamiltonian',
    },
    'PM6': {
        'description': 'Use the PM6 Hamiltonian'
    },
    'PM6-D3': {
        'description': ("Use the PM6 Hamiltonian with Grimme's corrections "
                        "for dispersion"),
    },
    'PM6-DH+': {
        'description': ('Use the PM6 Hamiltonian with corrections for '
                        'dispersion and hydrogen-bonding'),
    },
    'PM6-DH2': {
        'description': ('Use the PM6 Hamiltonian with corrections for '
                        'dispersion and hydrogen-bonding'),
    },
    'PM6-DH2X': {
        'description': ('Use PM6 with corrections for dispersion and hydrogen '
                        'and halogen bonding'),
    },
    'PM6-D3H4': {
        'description': "Use PM6 with Řezáč and Hobza's D3H4 correction",
    },
    'PM6-D3H4X': {
        'description': ("Use PM6 with Brahmkshatriya, et al.'s D3H4X "
                        "correction"),
    },
    'PMEP': {
        'description': 'Complete semiempirical MEP calculation',
    },
    'PM7': {
        'description': 'Use the PM7 Hamiltonian',
    },
    'PM7-TS': {
        'description': 'Use the PM7-TS Hamiltonian (only for barrier heights)',
    },
    'PMEPR': {
        'description': 'Complete semiempirical MEP in a plane to be defined',
    },
    'POINT': {
        'description': 'Number of points in reaction path',
        'takes values': 1,
        'default': '40',
        'format': '{keyword}={value}',
    },
    'POINT1': {
        'description': ('Number of points in first direction in grid '
                        'calculation'),
        'takes values': 1,
        'default': '11',
        'format': '{keyword}={value}',
    },
    'POINT2': {
        'description': ('Number of points in second direction in grid '
                        'calculation'),
        'takes values': 1,
        'default': '11',
        'format': '{keyword}={value}',
    },
    'POLAR': {
        'description': ('Calculate first, second and third order '
                        'polarizabilities'),
    },
    'POTWRT': {
        'description': 'In ESP, write out electrostatic potential to unit 21',
    },
    'POWSQ': {
        'description': 'Print details of working in POWSQ',
    },
    'PRECISE': {
        'description': 'Criteria to be increased by 100 times',
    },
    'PRESSURE': {
        'description': 'Apply pressure or tension to a solid or polymer',
    },
    'PRNT': {
        'description': ('Print details of geometry optimization in EF, 1 = '
                        'most, 5=least'),
        'takes values': 1,
        'default': 1,
        'format': '{keyword}={value}',
        'allowed values': (0, 1, 2, 3, 4, 5)
    },
    'PRTCHAR': {
        'description': 'Print charges in ARC file',
    },
    'PRTINT': {
        'description': 'Print interatomic distances',
    },
    'PRTMEP': {
        'description': 'MEP contour data output to <filename>.mep',
    },
    'PRTXYZ': {
        'description': 'Print Cartesian coordinates',
    },
    'PULAY': {
        'description': "Use Pulay's converger to obtain a SCF",
    },
    'QMMM': {
        'description': ('Incorporate environmental effects in the QM/MM '
                        'approach'),
    },
    'QPMEP': {
        'description': 'Charges derived from Wang-Ford type AM1 MEP',
    },
    'QUARTET': {
        'description': 'Quartet state required',
    },
    'QUINTET': {
        'description': 'Quintet state required',
    },
    'RAPID': {
        'description': ('In MOZYME geometry optimizations, only use atoms '
                        'being optimized in the SCF'),
    },
    'RECALC': {
        'description': 'In EF, recalculate Hessian every n steps',
        'takes values': 1,
        'default': 10,
        'format': '{keyword}={value}',
    },
    'RE-LOCAL': {
        'description': ('During and at end of a MOZYME calculation, '
                        're-localize the LMOs. Default is just at end.'),
        'takes values': [0, 1],
        'default': 1,
        'format': '{keyword}={value}',
    },
    'RELSCF': {
        'description': 'Default SCF criterion multiplied by n',
    },
    'REORTHOG': {
        'description': ("In MOZYME, re-orthogonalize LMO's each 10 SCF "
                        "calculations."),
    },
    'RESEQ': {
        'description': 'Re-arrange the atoms to match the PDB convention',
    },
    'RESIDUES': {
        'description': ('Label each atom in a polypeptide with the amino acid '
                        'residue.'),
    },
    'RESTART': {
        'description': 'Calculation restarted',
    },
    'RHF': {
        'description': 'Use Restricted Hartree-Fock methods',
    },
    'RM1': {
        'description': 'Use the RM1 Hamiltonian',
    },
    'RMAX': {
        'description': 'In TS, maximum allowed ratio for energy change',
        'takes values': 1,
        'default': 4.0,
        'format': '{keyword}={value}',
    },
    'RMIN': {
        'description': 'In TS, minimum allowed ratio for energy change',
        'takes values': 1,
        'default': 0.0,
        'format': '{keyword}={value}',
    },
    'ROOT': {
        'description': ('Root n to be optimized in a C.I. calculation. '
                        'Either an integer or with a symmetry label, e.g.'
                        '2T2g'),
        'takes values': 1,
        'default': "1",
        'format': '{keyword}={value}',
    },
    'RSCAL': {
        'description': 'In EF, scale p-RFO to trust radius',
    },
    'RSOLV=n.nn': {
        'description': 'Effective radius of solvent in COSMO',
    },
    'SADDLE': {
        'description': 'Optimize transition state',
    },
    'SCALE': {
        'description': 'Scaling factor for van der waals distance in ESP',
    },
    'SCFCRT=n.nn': {
        'description': 'Default SCF criterion replaced by the value supplied',
    },
    'SCINCR=n.nn': {
        'description': 'Increment between layers in ESP',
    },
    'SEPTET': {
        'description': 'Septet state required',
    },
    'SETPI': {
        'description': ('In MOZYME, some π bonds are explicitly set by the '
                        'user'),
    },
    'SETUP': {
        'description': 'Extra keywords to be read from setup file',
    },
    'SEXTET': {
        'description': 'Sextet state required',
    },
    'SHIFT=n.nn': {
        'description': 'a damping factor of n defined to start SCF',
    },
    # 'SHUT <file>': {
    #     'description': ('Send a command to MOPAC to make a restart and '
    #                     'density file, then stop.'),
    # },
    'SIGMA': {
        'description': 'Minimize gradients using SIGMA',
    },
    'SINGLET': {
        'description': 'Singlet state required',
    },
    'SITE=(text)': {
        'description': 'Define ionization state of residues in proteins',
    },
    'SLOG=n.nn': {
        'description': ('In L-BFGS optimization, use fixed step of length '
                        'n .nn'),
    },
    'SLOPE': {
        'description': 'Multiplier used to scale MNDO charges',
    },
    'SMOOTH': {
        'description': ('In a GRID calculation, remove artifacts caused by '
                        'the order in which points are calculated'),
    },
    'SNAP': {
        'description': 'Increase precision of symmetry angles',
    },
    'SPARKLE': {
        'description': 'Use sparkles instead of atoms with basis sets',
    },
    'SPIN': {
        'description': 'Print final UHF spin matrix',
    },
    'START_RES(text)': {
        'description': ('Define starting residue numbers in a protein, if '
                        'different from the default'),
    },
    'STATIC': {
        'description': 'Calculate Polarizability using electric fields',
    },
    'STEP': {
        'description': 'Step size in path',
    },
    'STEP1=n.nnn': {
        'description': 'Step size n for first coordinate in grid calculation',
    },
    'STEP2=n.nnn': {
        'description': 'Step size n for second coordinate in grid calculation',
    },
    'STO3G': {
        'description': 'Deorthogonalize orbitals in STO-3G basis',
    },
    'SUPER': {
        'description': 'Print superdelocalizabilities',
    },
    'SYBYL': {
        'description': "Output a file for use by Tripos's SYBYL program",
    },
    'SYMAVG': {
        'description': 'Average symmetry equivalent ESP charges',
    },
    'SYMOIR': {
        'description': ('Print characters of eigenvectors and print number of '
                        'I.R.s'),
    },
    'SYMTRZ': {
        'description': 'Print details of working in subroutine SYMTRZ.',
    },
    'SYMMETRY': {
        'description': 'Impose symmetry conditions',
    },
    'T=n[M,H,D]': {
        'description': 'A time of n seconds requested',
    },
    'THERMO(nnn,mmm,lll)': {
        'description': 'Perform a thermodynamics calculation',
    },
    'THREADS=n': {
        'description': ('Set the number of threads to be used in '
                        'parallelization to n'),
    },
    'TIMES': {
        'description': 'Print times of various stages',
    },
    'T-PRIORITY=n.nn': {
        'description': 'Time takes priority in DRC',
    },
    'TRANS=n': {
        'description': ('The system is a transition state (used in '
                        'thermodynamics calculation)'),
    },
    'TRIPLET': {
        'description': 'Triplet state required',
    },
    'TS': {
        'description': 'Using EF routine for TS search',
    },
    'UHF': {
        'description': 'Use the Unrestricted Hartree-Fock method',
    },
    'VDW(text)': {
        'description': ('Van der waals radius for atoms in COSMO defined by '
                        'user'),
    },
    'VDWM(text)': {
        'description': ('Van der waals radius for atoms in MOZYME defined by '
                        'user'),
    },
    'VECTORS': {
        'description': 'Print final eigenvectors',
    },
    'VELOCITY': {
        'description': ('Supply the initial velocity vector in a DRC '
                        'calculation'),
    },
    'WILLIAMS': {
        'description': 'Use Williams surface',
    },
    'X-PRIORITY=n.nn': {
        'description': 'Geometry changes take priority in DRC',
    },
    'XENO': {
        'description': ('Allow non-standard residues in proteins to be '
                        'labeled.'),
    },
    'XYZ': {
        'description': 'Do all geometric operations in Cartesian coordinates',
    },
    'Z=n': {
        'description': 'Number of mers in a cluster',
    },
}

properties = {
    "AO_ATOMINDEX": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "atom for AO",
        "dimensionality": [
            "n_aos"
        ],
        "type": "integer"
    },
    "AO_ZETA": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "Slater exponent",
        "dimensionality": [
            "n_aos"
        ],
        "type": "float"
    },
    "AREA": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "surface area",
        "dimensionality": "scalar",
        "type": "float",
        "units": "Å^2"
    },
    "ATOM_CHARGES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "atom charges",
        "dimensionality": [
            "n_atoms"
        ],
        "type": "float"
    },
    "ATOM_CORE": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "number of valence electrons",
        "dimensionality": [
            "n_atoms"
        ],
        "type": "integer"
    },
    "ATOM_EL": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "atomic symbol",
        "dimensionality": [
            "n_atoms"
        ],
        "type": "string"
    },
    "ATOM_PQN": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "principal quantum number",
        "dimensionality": [
            "n_aos"
        ],
        "type": "integer"
    },
    "ATOM_SYMTYPE": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "atomic orbital angular shape",
        "dimensionality": [
            "n_aos"
        ],
        "type": "string"
    },
    "ATOM_X": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "x, y, z coordinates",
        "dimensionality": [
            3,
            "n_atoms"
        ],
        "type": "float",
        "units": "Å"
    },
    "ATOM_X_FORCE": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "reoriented coordinates",
        "dimensionality": [
            3,
            "n_atoms"
        ],
        "type": "float",
        "units": "Å"
    },
    "ATOM_X_OPT": {
        "calculation": [
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "optimized x, y, z coordinates",
        "dimensionality": [
            3,
            "n_atoms"
        ],
        "type": "float",
        "units": "Å"
    },
    "ATOM_X_UPDATED": {
        "calculation": [
            "optimization"
        ],
        "description": "trajectory coordinates",
        "dimensionality": [
            "nsteps", [
                3,
                "n_atoms"
            ]
        ],
        "type": "float",
        "units": "Å"
    },
    "COMMENTS": {
        "calculation": [
        ],
        "description": "User comment line",
        "dimensionality": "scalar",
        "type": "string"
    },
    "CPU_TIME": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "cpu time for calculation",
        "dimensionality": "scalar",
        "type": "float",
        "units": "s"
    },
    "DATE": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "date and time of calculation",
        "dimensionality": "scalar",
        "type": "date_time"
    },
    "DENSITY": {
        "calculation": [
            "energy",
            "optimization",
        ],
        "description": "density",
        "dimensionality": "scalar",
        "type": "float",
        "units": "g/mL"
    },
    "DIPOLE": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "dipole moment",
        "dimensionality": "scalar",
        "type": "float",
        "units": "debye"
    },
    "DIP_VEC": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "dipole vector",
        "dimensionality": [
            3
        ],
        "type": "float",
        "units": "debye"
    },
    "EIGENVALUES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital energies",
        "dimensionality": [
            "n_aos"
        ],
        "type": "float",
        "units": "eV"
    },
    "ALPHA_EIGENVALUES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital energies",
        "dimensionality": [
            "n_aos"
        ],
        "type": "float",
        "units": "eV"
    },
    "BETA_EIGENVALUES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital energies",
        "dimensionality": [
            "n_aos"
        ],
        "type": "float",
        "units": "eV"
    },
    "EIGENVECTORS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital coefficients",
        "dimensionality": [
            "n_aos"
        ],
        "type": "float"
    },
    "ALPHA_EIGENVECTORS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital coefficients",
        "dimensionality": [
            "n_aos"
        ],
        "type": "float"
    },
    "BETA_EIGENVECTORS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital coefficients",
        "dimensionality": [
            "n_aos"
        ],
        "type": "float"
    },
    "EMPIRICAL_FORMULA": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "empirical formula",
        "dimensionality": "scalar",
        "type": "string"
    },
    "ENERGY_ELECTRONIC": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "electronic energy",
        "dimensionality": "scalar",
        "type": "float",
        "units": "eV"
    },
    "ENERGY_NUCLEAR": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "nuclear repulsion energy",
        "dimensionality": "scalar",
        "type": "float",
        "units": "eV"
    },
    "ENTHALPY_TOT": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "enthalpy",
        "dimensionality": [
            "n_temps",
        ],
        "type": "float",
        "units": "cal/mol"
    },
    "ENTROPY_TOT": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "entropy",
        "dimensionality": [
            "n_temps",
        ],
        "type": "float",
        "units": "cal/K/mol"
    },
    "GRADIENTS": {
        "calculation": [
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            3,
            "n_atoms"
        ],
        "type": "float",
        "units": "kcal/mol/Å"
    },
    "GRADIENT_NORM": {
        "calculation": [
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "final norm of the gradient",
        "dimensionality": "scalar",
        "type": "float",
        "units": "kcal/mol/Å"
    },
    "GRADIENT_UPDATED": {
        "calculation": [
            "optimization"
        ],
        "description": "forces in trajectory",
        "dimensionality": [
            "nsteps", [
                3,
                "n_atoms"
            ]
        ],
        "type": "float",
        "units": "kcal/mol/Å"
    },
    "HEAT_CAPACITY_TOT": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "heat capacity",
        "dimensionality": [
            "n_temps",
        ],
        "type": "float",
        "units": "cal/K/mol"
    },
    "HEAT_OF_FORMATION": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "heat of formation",
        "dimensionality": "scalar",
        "type": "float",
        "units": "kcal/mol"
    },
    "HEAT_OF_FORM_UPDATED": {
        "calculation": [
            "optimization"
        ],
        "description": "heat of formation in trajectory",
        "dimensionality": [
            "nsteps"
        ],
        "type": "float",
        "units": "kcal/mol"
    },
    "HESSIAN_MATRIX": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof",
            "n_dof"
        ],
        "type": "float",
        "units": "mdynes/Å/Da"
    },
    "H_O_F(T)": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_temps"
        ],
        "type": "float",
        "units": "kcal/mol"
    },
    "INT_FORCE_CONSTS": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "force constants for internals",
        "dimensionality": ["n_dofs"],
        "type": "float",
        "units": "mdyne/Å"
    },
    "INITIAL_TRANS_VECTS": {
        "calculation": [
            "energy",
            "optimization",
        ],
        "description": "initial translation vectors",
        "dimensionality": [9],
        "type": "float",
        "units": "Å"
    },
    "IONIZATION_POTENTIAL": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "ionization potential (IP)",
        "dimensionality": "scalar",
        "type": "float",
        "units": "eV"
    },
    "ISOTOPIC_MASSES": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_atoms"
        ],
        "type": "float",
        "units": "Da"
    },
    "KEYWORDS": {
        "calculation": [
        ],
        "description": "",
        "dimensionality": "scalar",
        "type": "string"
    },
    "M.O.SYMMETRY_LABELS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "molecular orbital symmetries",
        "dimensionality": [
            "n_mos"
        ],
        "type": "string"
    },
    "ALPHA_M.O.SYMMETRY_LABELS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "molecular orbital symmetries",
        "dimensionality": [
            "n_mos"
        ],
        "type": "string"
    },
    "BETA_M.O.SYMMETRY_LABELS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "molecular orbital symmetries",
        "dimensionality": [
            "n_mos"
        ],
        "type": "string"
    },
    "METHOD": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "hamiltonian",
        "dimensionality": "scalar",
        "type": "string"
    },
    "MOLECULAR_ORBITAL_OCCUPANCIES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital occupancies",
        "dimensionality": [
            "n_mos"
        ],
        "type": "float"
    },
    "ALPHA_MOLECULAR_ORBITAL_OCCUPANCIES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital occupancies",
        "dimensionality": [
            "n_mos"
        ],
        "type": "float"
    },
    "BETA_MOLECULAR_ORBITAL_OCCUPANCIES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "orbital occupancies",
        "dimensionality": [
            "n_mos"
        ],
        "type": "float"
    },
    "MOLECULAR_WEIGHT": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "molecular weight",
        "dimensionality": "scalar",
        "type": "float",
        "units": "Da"
    },
    "MOPAC_VERSION": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "MOPAC version",
        "dimensionality": "scalar",
        "type": "string"
    },
    "NORMAL_MODES": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof",
            "n_dof"
        ],
        "type": "float"
    },
    "NORMAL_MODE_SYMMETRY_LABELS": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof"
        ],
        "type": "string"
    },
    "NUMBER_SCF_CYCLES": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "number of scf's",
        "dimensionality": "scalar",
        "type": "integer"
    },
    "NUM_ALPHA_ELECTRONS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "number of spin-up electrons",
        "dimensionality": "scalar",
        "type": "integer"
    },
    "NUM_BETA_ELECTRONS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "number of spin-down electrons",
        "dimensionality": "scalar",
        "type": "integer"
    },
    "NUM_ELECTRONS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "number of electrons",
        "dimensionality": "scalar",
        "type": "integer"
    },
    "ORIENTATION_ATOM_X": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            3,
            "n_atoms"
        ],
        "type": "float",
        "units": "Å"
    },
    "OVERLAP_MATRIX": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "the AO overlap matrix",
        "dimensionality": [
            "triangular",
            "n_aos",
            "n_aos"
        ],
        "type": "float"
    },
    "POINT_GROUP": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "the molecular symmetry",
        "dimensionality": "scalar",
        "type": "string"
    },
    "PRI_MOM_OF_I": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            3
        ],
        "type": "float",
        "units": "10^-40*g*cm^2"
    },
    "RESTRAINING_PRESSURE": {
        "calculation": [
            "energy",
            "optimization",
        ],
        "description": "the pressure in the three lattice directions",
        "dimensionality": [
            3
        ],
        "type": "float",
        "units": "GPa"
    },
    "ROTAT_CONSTS": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            3
        ],
        "type": "float",
        "units": "1/cm"
    },
    "SET_OF_MOS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "set of MOs",
        "dimensionality": [
            2
        ],
        "type": "string"
    },
    "SET_OF_ALPHA_MOS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "set of MOs",
        "dimensionality": [
            2
        ],
        "type": "string"
    },
    "SET_OF_BETA_MOS": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "set of MOs",
        "dimensionality": [
            2
        ],
        "type": "string"
    },
    "SIZE_OF_ACTIVE_SPACE": {
        "calculation": [
            "optimization",
        ],
        "description": "size of active space",
        "dimensionality": [
            1
        ],
        "type": "string"
    },
    "NUMBER_MICROSTATES": {
        "calculation": [
            "optimization",
        ],
        "description": "number of microstates",
        "dimensionality": [
            1
        ],
        "type": "string"
    },
    "MICROSTATE_CONFIGURATIONS": {
        "calculation": [
            "optimization",
        ],
        "description": "microstate configurations",
        "dimensionality": [
           "n_microstates",
        ],
        "type": "integer"
    },
    "STATE_REQUESTED": {
        "calculation": [
            "optimization",
        ],
        "description": "state requested",
        "dimensionality": [
            1
        ],
        "type": "integer"
    },
    "STATE_DEGENERACY": {
        "calculation": [
            "optimization",
        ],
        "description": "number of microstates",
        "dimensionality": [
            1
        ],
        "type": "string"
    },
    "STATE_VECTOR": {
        "calculation": [
            "optimization",
        ],
        "description": "state vector",
        "dimensionality": [
            1
        ],
        "type": "float"
    },
    "STATE": {
        "calculation": [
            "optimization",
        ],
        "description": "state",
        "dimensionality": [
            1
        ],
        "type": "string"
    },
    "STATE_ENERGY_ABSOLUTE": {
        "calculation": [
            "optimization",
        ],
        "description": "state energy absolute",
        "dimensionality": [
            1
        ],
        "type": "string"
    },
    "STATE_ENERGY_RELATIVE": {
        "calculation": [
            "optimization",
        ],
        "description": "state",
        "dimensionality": [
            1
        ],
        "type": "string"
    },
    "SPIN_COMPONENT":  {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "spin component",
        "dimensionality": [3],
        "type": "float"
    },
    "THERMODYNAMIC_PROPERTIES_TEMPS": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_temps"
        ],
        "type": "float",
        "units": "K"
    },
    "TITLE": {
        "calculation": [
        ],
        "description": "title of calculation",
        "dimensionality": "scalar",
        "type": "string"
    },
    "TOTAL_DENSITY_MATRIX": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "density matrix",
        "dimensionality": [
            "n_mos",
            "n_mos"
        ],
        "shape": "triangular",
        "type": "float"
    },
    "ALPHA_DENSITY_MATRIX": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "density matrix",
        "dimensionality": [
            "n_mos",
            "n_mos"
        ],
        "shape": "triangular",
        "type": "float"
    },
    "BETA_DENSITY_MATRIX": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "density matrix",
        "dimensionality": [
            "n_mos",
            "n_mos"
        ],
        "shape": "triangular",
        "type": "float"
    },
    "TOTAL_ENERGY": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "total energy",
        "dimensionality": "scalar",
        "type": "float",
        "units": "eV"
    },
    "TOTAL_SPIN": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "spin",
        "dimensionality": "scalar",
        "type": "float"
    },
    "TRANS_VECTS": {
        "calculation": [
            "energy",
            "optimization",
        ],
        "description": "initial translation vectors",
        "dimensionality": [9],
        "type": "float",
        "units": "Å"
    },
    "TRANS_VECTS_UPDATED": {
        "calculation": [
            "energy",
            "optimization",
        ],
        "description": "initial translation vectors",
        "dimensionality": [9],
        "type": "float",
        "units": "Å"
    },
    "VIB._EFF_MASS": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof"
        ],
        "type": "float",
        "units": "Da"
    },
    "VIB._FREQ": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof"
        ],
        "type": "float",
        "units": "1/cm"
    },
    "VIB._RED_MASS": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof"
        ],
        "type": "float",
        "units": "Da"
    },
    "VIB._TRAVEL": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof"
        ],
        "type": "float",
        "units": "Å"
    },
    "VIB._T_DIP": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "",
        "dimensionality": [
            "n_dof"
        ],
        "type": "float",
        "units": "electrons"
    },
    "VOLUME": {
        "calculation": [
            "energy",
            "optimization",
            "thermodynamics",
            "vibrations"
        ],
        "description": "volume",
        "dimensionality": "scalar",
        "type": "float",
        "units": "Å^3"
    },
    "ZERO_POINT_ENERGY": {
        "calculation": [
            "thermodynamics",
            "vibrations"
        ],
        "description": "zero point energy",
        "dimensionality": "scalar",
        "type": "float",
        "units": "kcal/mol"
    }
}
