KF output files
***************


Accessing KF files
==================

KF files are Direct Access binary files. KF stands for Keyed File: KF
files are keyword oriented, which makes them easy to process by simple
procedures. Internally all the data on KF files is organized into
sections containing variables, so each datum on the file can be
identified by the combination of section and variable.

All KF files can be opened using the KFbrowser GUI program:

   $AMSBIN/kfbrowser path/to/ams.rkf

By default KFbrowser shows a just a curated summary of the results on
the file, but you can make it show the raw section and variable
structure by switching it to expert mode. To do this, click on **File
→ Expert Mode** or press **ctrl/cmd + e**.

KF files can be opened and read with Command line tools.

For working with the data from KF files, it is often useful to be able
to read them from Python. Using the AMS Python Stack, this can easily
be done with the AKFReader class:

   >>> from scm.akfreader import AKFReader
   >>> kf = AKFReader("path/to/ams.rkf")
   >>> "Molecule%Coords" in kf
   True
   >>> kf.description("Molecule%Coords")
   {
       '_type': 'float_array',
       '_shape': [3, 'nAtoms'],
       '_comment': 'Coordinates of the nuclei (x,y,z)',
       '_unit': 'Bohr'
   }
   >>> kf.read("Molecule%Coords")
   array([[-11.7770694 ,  -4.19739597,   0.04934546],
          [ -9.37471321,  -2.63234227,  -0.13448698],
           ...
          [ 10.09508738,  -1.06191208,   1.45286913],
          [ 10.11689333,  -1.5080196 ,  -1.87916127]])

Tip:

  For a full overview of the available methods in AKFReader, see the
  AKFReader API documentation.


Sections and variables on dftb.rkf
==================================


AMSResults
----------

KF Section: AMSResults
   **Content:** Generic results of the DFTB evaluation.

   "AMSResults%AAT_Transpose"
      Type:
         float_array

      Description:
         VCD atomic axial tensors (AATs).

      Shape:
         [3, 3, Molecule%nAtoms]

   "AMSResults%Bonds"
      Type:
         subsection

      Description:
         Bond info

   "AMSResults%Bonds.Atoms"
      Type:
         archived_int_array

      Description:
         ?

   "AMSResults%Bonds.CellShifts"
      Type:
         archived_int_array

      Description:
         ?

   "AMSResults%Bonds.description"
      Type:
         string

      Description:
         A string containing a description of how the bond orders were
         calculated / where they come from

   "AMSResults%Bonds.hasCellShifts"
      Type:
         bool

      Description:
         Whether there are cell shifts (relevant only in case of
         periodic boundary conditions)

   "AMSResults%Bonds.Index"
      Type:
         archived_int_array

      Description:
         index(i) points to the first element of Atoms, Orders, and
         CellShifts belonging to bonds from atom 'i'. Index(1) is
         always 1, Index(nAtoms+1) is always nBonds + 1

   "AMSResults%Bonds.nLattVec"
      Type:
         int

      Description:
         Number of lattice vectors (0:molecule, 1:chain, 2:slab,
         3:bulk). This determines how the lattice displacements for
         bonds are interpreted.

   "AMSResults%Bonds.Orders"
      Type:
         archived_float_array

      Description:
         The bond orders.

   "AMSResults%BulkModulus"
      Type:
         float

      Description:
         The Bulk modulus (conversion factor from hartree/bohr^3 to
         GPa: 29421.026)

      Unit:
         hartree/bohr^3

   "AMSResults%Charges"
      Type:
         float_array

      Description:
         Net atomic charges as computed by the engine (for example,
         the Charges for a water molecule might be [-0.6, 0.3, 0.3]).
         The method used to compute these atomic charges depends on
         the engine.

      Unit:
         e

      Shape:
         [Molecule%nAtoms]

   "AMSResults%DipoleGradients"
      Type:
         float_array

      Description:
         Derivative of the dipole moment with respect to nuclear
         displacements.

      Shape:
         [3, 3, Molecule%nAtoms]

   "AMSResults%DipoleMoment"
      Type:
         float_array

      Description:
         Dipole moment vector (x,y,z)

      Unit:
         e*bohr

      Shape:
         [3]

   "AMSResults%ElasticTensor"
      Type:
         float_array

      Description:
         The elastic tensor in Voigt notation (6x6 matrix for 3D
         periodic systems, 3x3 matrix for 2D periodic systems, 1x1
         matrix for 1D periodic systems).

      Unit:
         hartree/bohr^nLatticeVectors

      Shape:
         [:, :]

   "AMSResults%Energy"
      Type:
         float

      Description:
         The energy computed by the engine.

      Unit:
         hartree

   "AMSResults%fractionalOccupation"
      Type:
         bool

      Description:
         Whether of not we have fractionally occupied orbitals (i.e.
         not all occupations are integer numbers).

   "AMSResults%Gradients"
      Type:
         float_array

      Description:
         The nuclear gradients.

      Unit:
         hartree/bohr

      Shape:
         [3, Molecule%nAtoms]

   "AMSResults%Hessian"
      Type:
         float_array

      Description:
         The Hessian matrix

      Unit:
         hartree/bohr^2

      Shape:
         [3*Molecule%nAtoms, 3*Molecule%nAtoms]

   "AMSResults%HOMOEnergy"
      Type:
         float_array

      Description:
         Molecular Orbital Info: energy of the HOMO.

      Unit:
         hartree

      Shape:
         [nSpin]

   "AMSResults%HOMOIndex"
      Type:
         int_array

      Description:
         Molecular Orbital Info: index in the arrays orbitalEnergies
         and orbitalOccupations corresponding to the HOMO.

      Shape:
         [nSpin]

   "AMSResults%HOMOLUMOGap"
      Type:
         float_array

      Description:
         Molecular Orbital Info: HOMO-LUMO gap per spin.

      Unit:
         hartree

      Shape:
         [nSpin]

   "AMSResults%LUMOEnergy"
      Type:
         float_array

      Description:
         Molecular Orbital Info: energy of the LUMO.

      Unit:
         hartree

      Shape:
         [nSpin]

   "AMSResults%LUMOIndex"
      Type:
         int_array

      Description:
         Molecular Orbital Info: index in the arrays orbitalEnergies
         and orbitalOccupations corresponding to the LUMO.

      Shape:
         [nSpin]

   "AMSResults%Molecules"
      Type:
         subsection

      Description:
         Molecules

   "AMSResults%Molecules.AtCount"
      Type:
         archived_int_array

      Description:
         shape=(nMolType), Summary: number of atoms per formula.

   "AMSResults%Molecules.Atoms"
      Type:
         archived_int_array

      Description:
         shape=(nAtoms), atoms(index(i):index(i+1)-1) = atom indices
         of molecule i

   "AMSResults%Molecules.Count"
      Type:
         archived_int_array

      Description:
         Mol count per formula.

   "AMSResults%Molecules.Formulas"
      Type:
         string

      Description:
         Summary: unique molecule formulas

   "AMSResults%Molecules.Index"
      Type:
         archived_int_array

      Description:
         shape=(nMol+1),   index(i) = index of the first atom of
         molecule i in array atoms(:)

   "AMSResults%Molecules.Type"
      Type:
         archived_int_array

      Description:
         shape=(nMol),  type of the molecule, reference to the summary
         arrays below

   "AMSResults%nOrbitals"
      Type:
         int

      Description:
         Molecular Orbital Info: number of orbitals.

   "AMSResults%nSpin"
      Type:
         int

      Description:
         Molecular Orbital Info: number spins (1: spin-restricted or
         spin-orbit coupling, 2: spin unrestricted).

   "AMSResults%orbitalEnergies"
      Type:
         float_array

      Description:
         Molecular Orbital Info: the orbital energies.

      Unit:
         hartree

      Shape:
         [nOrbitals, nSpin]

   "AMSResults%orbitalOccupations"
      Type:
         float_array

      Description:
         Molecular Orbital Info: the orbital occupation numbers. For
         spin restricted calculations, the value will be between 0 and
         2. For spin unrestricted or spin-orbit coupling the values
         will be between 0 and 1.

      Shape:
         [nOrbitals, nSpin]

   "AMSResults%PESPointCharacter"
      Type:
         string

      Description:
         The character of a PES point.

      Possible values:
         ['local minimum', 'transition state', 'stationary point with
         >1 negative frequencies', 'non-stationary point']

   "AMSResults%PoissonRatio"
      Type:
         float

      Description:
         The Poisson ratio

   "AMSResults%ShearModulus"
      Type:
         float

      Description:
         The Shear modulus (conversion factor from hartree/bohr^3 to
         GPa: 29421.026)

      Unit:
         hartree/bohr^3

   "AMSResults%SmallestHOMOLUMOGap"
      Type:
         float

      Description:
         Molecular Orbital Info: the smallest HOMO-LUMO gap
         irrespective of spin (i.e. min(LUMO) - max(HOMO)).

      Unit:
         hartree

   "AMSResults%StressTensor"
      Type:
         float_array

      Description:
         The clamped-ion stress tensor in Cartesian notation.

      Unit:
         hartree/bohr^nLatticeVectors

      Shape:
         [:, :]

   "AMSResults%YoungModulus"
      Type:
         float

      Description:
         The Young modulus (conversion factor from hartree/bohr^3 to
         GPa: 29421.026)

      Unit:
         hartree/bohr^3


band_curves
-----------

KF Section: band_curves
   **Content:** Band dispersion curves.

   "band_curves%brav_type"
      Type:
         string

      Description:
         Type of the lattice.

   "band_curves%Edge_#_bands"
      Type:
         float_array

      Description:
         The band energies

      Shape:
         [nBands, nSpin, :]

   "band_curves%Edge_#_direction"
      Type:
         float_array

      Description:
         Direction vector.

      Shape:
         [nDimK]

   "band_curves%Edge_#_fatBands"
      Type:
         float_array

      Description:
         Fat band split up of the bands

      Shape:
         [nBas, nBands, nSpin, :]

   "band_curves%Edge_#_kPoints"
      Type:
         float_array

      Description:
         Coordinates for points along the edge.

      Shape:
         [nDimK, :]

   "band_curves%Edge_#_labels"
      Type:
         lchar_string_array

      Description:
         Labels for begin and end point of the edge.

      Shape:
         [2]

   "band_curves%Edge_#_lGamma"
      Type:
         bool

      Description:
         Is gamma point?

   "band_curves%Edge_#_nKPoints"
      Type:
         int

      Description:
         The nr. of k points along the edge.

   "band_curves%Edge_#_vertices"
      Type:
         float_array

      Description:
         Begin and end point of the edge.

      Shape:
         [nDimK, 2]

   "band_curves%Edge_#_xFor1DPlotting"
      Type:
         float_array

      Description:
         x Coordinate for points along the edge.

      Shape:
         [:]

   "band_curves%indexLowestBand"
      Type:
         int

      Description:
         ?

   "band_curves%nBands"
      Type:
         int

      Description:
         Number of bands.

   "band_curves%nBas"
      Type:
         int

      Description:
         Number of basis functions.

   "band_curves%nDimK"
      Type:
         int

      Description:
         Dimension of the reciprocal space.

   "band_curves%nEdges"
      Type:
         int

      Description:
         The number of edges. An edge is a line-segment through
         k-space. It has a begin and end point and possibly points in
         between.

   "band_curves%nEdgesInPath"
      Type:
         int

      Description:
         A path is built up from a number of edges.

   "band_curves%nSpin"
      Type:
         int

      Description:
         Number of spin components.

      Possible values:
         [1, 2]

   "band_curves%path"
      Type:
         int_array

      Description:
         If the (edge) index is negative it means that the vertices of
         the edge abs(index) are swapped e.g. path =
         (1,2,3,0,-3,-2,-1) goes though edges 1,2,3, then there's a
         jump, and then it goes back.

      Shape:
         [nEdgesInPath]

   "band_curves%path_source"
      Type:
         string

      Description:
         Source or program used to generate the path.

      Possible values:
         ['input', 'kpath', 'seekpath']

   "band_curves%path_type"
      Type:
         string

      Description:
         ?


BandStructure
-------------

KF Section: BandStructure
   **Content:** Info regarding the band structure.

   "BandStructure%BandGap"
      Type:
         float

      Description:
         The band gap. For molecules this is the HOMO-LUMO gap.

      Unit:
         hartree

   "BandStructure%bandsEnergyRange"
      Type:
         float_array

      Description:
         The energy ranges (min/max) of the bands

      Unit:
         hartree

      Shape:
         [2, nBand, nSpin]

   "BandStructure%BottomConductionBand"
      Type:
         float

      Description:
         The bottom of the conduction band

      Unit:
         hartree

   "BandStructure%CoordsBottomConductionBand"
      Type:
         float_array

      Description:
         The coordinates in k-space of the bottom of the conduction
         band

      Unit:
         1/bohr

      Shape:
         [nDimK]

   "BandStructure%CoordsTopValenceBand"
      Type:
         float_array

      Description:
         The coordinates in k-space of the top of the valence band

      Unit:
         1/bohr

      Shape:
         [nDimK]

   "BandStructure%DerivativeDiscontinuity"
      Type:
         float

      Description:
         Correction to be added to the band gap to get the fundamental
         gap. (band only)

      Unit:
         hartree

   "BandStructure%FermiEnergy"
      Type:
         float

      Description:
         Fermi level

      Unit:
         hartree

   "BandStructure%HasGap"
      Type:
         bool

      Description:
         Whether the system has a gap.

   "BandStructure%HomoBandIndex"
      Type:
         int

      Description:
         The index of the highest occupied band

   "BandStructure%HomoDegeneracy"
      Type:
         int

      Description:
         How many states are exactly at the HOMO level

   "BandStructure%HomoSpinIndex"
      Type:
         int

      Description:
         In case of an unrestricted calculation: which of the two
         spins has the HOMO?

   "BandStructure%LumoBandIndex"
      Type:
         int

      Description:
         The index of the lowest unoccupied band

   "BandStructure%LumoDegeneracy"
      Type:
         int

      Description:
         How many states are exactly at the LUMO level

   "BandStructure%LumoSpinIndex"
      Type:
         int

      Description:
         In case of an unrestricted calculation: which of the two
         spins has the LUMO?

   "BandStructure%nBand"
      Type:
         int

      Description:
         The number of bands for which the band ranges are stored.

   "BandStructure%nDimK"
      Type:
         int

      Description:
         The number of dimensions for the k-coordinates for
         CoordsTopValenceBand and CoordsBottomConductionBand.

   "BandStructure%nSpin"
      Type:
         int

      Description:
         If 1: spin restricted calculation. For unrestricted results
         it has the value of 2.

      Possible values:
         [1, 2]

   "BandStructure%TopValenceBand"
      Type:
         float

      Description:
         The top of the valence band

      Unit:
         hartree


BandStructure(FromPath)
-----------------------

KF Section: BandStructure(FromPath)
   **Content:** Info regarding the band structure.

   "BandStructure(FromPath)%BandGap"
      Type:
         float

      Description:
         The band gap. For molecules this is the HOMO-LUMO gap.

      Unit:
         hartree

   "BandStructure(FromPath)%bandsEnergyRange"
      Type:
         float_array

      Description:
         The energy ranges (min/max) of the bands

      Unit:
         hartree

      Shape:
         [2, nBand, nSpin]

   "BandStructure(FromPath)%BottomConductionBand"
      Type:
         float

      Description:
         The bottom of the conduction band

      Unit:
         hartree

   "BandStructure(FromPath)%CoordsBottomConductionBand"
      Type:
         float_array

      Description:
         The coordinates in k-space of the bottom of the conduction
         band

      Unit:
         1/bohr

      Shape:
         [nDimK]

   "BandStructure(FromPath)%CoordsTopValenceBand"
      Type:
         float_array

      Description:
         The coordinates in k-space of the top of the valence band

      Unit:
         1/bohr

      Shape:
         [nDimK]

   "BandStructure(FromPath)%DerivativeDiscontinuity"
      Type:
         float

      Description:
         Correction to be added to the band gap to get the fundamental
         gap. (band only)

      Unit:
         hartree

   "BandStructure(FromPath)%FermiEnergy"
      Type:
         float

      Description:
         Fermi level

      Unit:
         hartree

   "BandStructure(FromPath)%HasGap"
      Type:
         bool

      Description:
         Whether the system has a gap.

   "BandStructure(FromPath)%HomoBandIndex"
      Type:
         int

      Description:
         The index of the highest occupied band

   "BandStructure(FromPath)%HomoDegeneracy"
      Type:
         int

      Description:
         How many states are exactly at the HOMO level

   "BandStructure(FromPath)%HomoSpinIndex"
      Type:
         int

      Description:
         In case of an unrestricted calculation: which of the two
         spins has the HOMO?

   "BandStructure(FromPath)%LumoBandIndex"
      Type:
         int

      Description:
         The index of the lowest unoccupied band

   "BandStructure(FromPath)%LumoDegeneracy"
      Type:
         int

      Description:
         How many states are exactly at the LUMO level

   "BandStructure(FromPath)%LumoSpinIndex"
      Type:
         int

      Description:
         In case of an unrestricted calculation: which of the two
         spins has the LUMO?

   "BandStructure(FromPath)%nBand"
      Type:
         int

      Description:
         The number of bands for which the band ranges are stored.

   "BandStructure(FromPath)%nDimK"
      Type:
         int

      Description:
         The number of dimensions for the k-coordinates for
         CoordsTopValenceBand and CoordsBottomConductionBand.

   "BandStructure(FromPath)%nSpin"
      Type:
         int

      Description:
         If 1: spin restricted calculation. For unrestricted results
         it has the value of 2.

      Possible values:
         [1, 2]

   "BandStructure(FromPath)%TopValenceBand"
      Type:
         float

      Description:
         The top of the valence band

      Unit:
         hartree


BZcell(primitive cell)
----------------------

KF Section: BZcell(primitive cell)
   **Content:** The Brillouin zone of the primitive cell.

   "BZcell(primitive cell)%boundaries"
      Type:
         float_array

      Description:
         Normal vectors for the boundaries.

      Shape:
         [ndim, nboundaries]

   "BZcell(primitive cell)%distances"
      Type:
         float_array

      Description:
         Distance to the boundaries.

      Shape:
         [nboundaries]

   "BZcell(primitive cell)%idVerticesPerBound"
      Type:
         int_array

      Description:
         The indices of the vertices per bound.

      Shape:
         [nvertices, nboundaries]

   "BZcell(primitive cell)%latticeVectors"
      Type:
         float_array

      Description:
         The lattice vectors.

      Shape:
         [3, :]

   "BZcell(primitive cell)%nboundaries"
      Type:
         int

      Description:
         The nr. of boundaries for the cell.

   "BZcell(primitive cell)%ndim"
      Type:
         int

      Description:
         The nr. of lattice vectors spanning the Wigner-Seitz cell.

   "BZcell(primitive cell)%numVerticesPerBound"
      Type:
         int_array

      Description:
         The nr. of vertices per bound.

      Shape:
         [nboundaries]

   "BZcell(primitive cell)%nvertices"
      Type:
         int

      Description:
         The nr. of vertices of the cell.

   "BZcell(primitive cell)%vertices"
      Type:
         float_array

      Description:
         The vertices of the bounds.

      Unit:
         a.u.

      Shape:
         [ndim, nvertices]


DFTBEngineRestart
-----------------

KF Section: DFTBEngineRestart
   **Content:** Stuff needed for restarting the DFTB engine


DOS
---

KF Section: DOS
   **Content:** Info regarding the DOS

   "DOS%Atom per basis function"
      Type:
         int_array

      Description:
         Atom index per basis function.

   "DOS%COOP per basis pair"
      Type:
         float_array

      Description:
         COOP per basis pair.

      Shape:
         [nEnergies, nSpin, :, :]

   "DOS%DeltaE"
      Type:
         float

      Description:
         The energy difference between sampled DOS energies. When
         there is no DOS at all a certain energy range can be skipped.

      Unit:
         hartree

   "DOS%DOS per basis function"
      Type:
         float_array

      Description:
         DOS contributions per basis function, based on Mulliken
         analysis.

      Shape:
         [nEnergies, nSpin, :]

   "DOS%Energies"
      Type:
         float_array

      Description:
         The energies at which the DOS is sampled.

      Unit:
         hartree

      Shape:
         [nEnergies]

   "DOS%Fermi Energy"
      Type:
         float

      Description:
         The fermi energy.

      Unit:
         hartree

   "DOS%IntegrateDeltaE"
      Type:
         bool

      Description:
         If enabled it means that the DOS is integrated over intervals
         of DeltaE. Sharp delta function like peaks cannot be missed
         this way.

   "DOS%L-value per basis function"
      Type:
         int_array

      Description:
         quantum number l for all basis functions.

   "DOS%M-value per basis function"
      Type:
         int_array

      Description:
         quantum number m for all basis functions.

   "DOS%nEnergies"
      Type:
         int

      Description:
         The nr. of energies to use to sample the DOS.

   "DOS%nSpin"
      Type:
         int

      Description:
         The number of spin components for the DOS.

      Possible values:
         [1, 2]

   "DOS%Overlap population per basis pai"
      Type:
         float_array

      Description:
         ? note that the word 'pair' is cut of due to the finite
         length of the kf variables name...

   "DOS%Population per basis function"
      Type:
         float_array

      Description:
         ?

   "DOS%Symmetry per basis function"
      Type:
         int_array

      Description:
         ?

   "DOS%Total DOS"
      Type:
         float_array

      Description:
         The total DOS.

      Shape:
         [nEnergies, nSpin]


DOS_Phonons
-----------

KF Section: DOS_Phonons
   **Content:** Phonon Density of States

   "DOS_Phonons%DeltaE"
      Type:
         float

      Description:
         The energy difference between sampled DOS energies. When
         there is no DOS at all a certain energy range can be skipped.

      Unit:
         hartree

   "DOS_Phonons%Energies"
      Type:
         float_array

      Description:
         The energies at which the DOS is sampled.

      Unit:
         hartree

      Shape:
         [nEnergies]

   "DOS_Phonons%Fermi Energy"
      Type:
         float

      Description:
         The fermi energy.

      Unit:
         hartree

   "DOS_Phonons%IntegrateDeltaE"
      Type:
         bool

      Description:
         If enabled it means that the DOS is integrated over intervals
         of DeltaE. Sharp delta function like peaks cannot be missed
         this way.

   "DOS_Phonons%nEnergies"
      Type:
         int

      Description:
         The nr. of energies to use to sample the DOS.

   "DOS_Phonons%nSpin"
      Type:
         int

      Description:
         The number of spin components for the DOS.

      Possible values:
         [1, 2]

   "DOS_Phonons%Total DOS"
      Type:
         float_array

      Description:
         The total DOS.

      Shape:
         [nEnergies, nSpin]


Dynamical Polarizability
------------------------

KF Section: Dynamical Polarizability
   **Content:** ?

   "Dynamical Polarizability%frequency #"
      Type:
         float

      Description:
         ?

   "Dynamical Polarizability%imagPolar #"
      Type:
         float_array

      Description:
         ?

   "Dynamical Polarizability%nr of frequencies"
      Type:
         int

      Description:
         ?

   "Dynamical Polarizability%realPolar #"
      Type:
         float_array

      Description:
         ?


EffectiveMass
-------------

KF Section: EffectiveMass
   **Content:** In the effective mass approximation the curvature of
   the bands is a measure of the charge mobility. The curvature is
   obtained by numerical differentiation. The mass is the inverse of
   the curvature.

   "EffectiveMass%EffectiveMasses"
      Type:
         float_array

      Description:
         Inverse curvatures at the extrema. Several bands may be
         sampled at once.

      Unit:
         a.u.

      Shape:
         [Molecule%nLatticeVectors, MaxNBands, nKPoints, nSpin]

   "EffectiveMass%ErrorEffectiveMasses"
      Type:
         float_array

      Description:
         Estimated errors from using two different step sizes for
         finite difference calculations.

      Unit:
         a.u.

      Shape:
         [Molecule%nLatticeVectors, MaxNBands, nKPoints, nSpin]

   "EffectiveMass%iBandHigh"
      Type:
         int_array

      Description:
         See comment for iBandLow.

      Shape:
         [nKPoints]

   "EffectiveMass%iBandLow"
      Type:
         int_array

      Description:
         For point k bands iBandLo(k) to iBandHi(k) are considered

      Shape:
         [nKPoints]

   "EffectiveMass%kCoordinates"
      Type:
         float_array

      Description:
         The coordinates in k-space of the top of the valence band(s)
         or bottom of conduction band(s).

      Unit:
         1/bohr

      Shape:
         [Molecule%nLatticeVectors, nKPoints]

   "EffectiveMass%MaxNBands"
      Type:
         int

      Description:
         Maximum number of curvatures calculated for all k points.

   "EffectiveMass%nKPoints"
      Type:
         int

      Description:
         The number of k points for which the effective mass is
         calculated. These should always be extrema (minimum or
         maximum) of the bands.

   "EffectiveMass%nSpin"
      Type:
         int

      Description:
         If 1: spin restricted calculation. For unrestricted results
         it has the value of 2.

      Possible values:
         [1, 2]


Excitations SOT A
-----------------

KF Section: Excitations SOT A
   **Content:** Single oribtal transitions. Ask Robert about this.

   "Excitations SOT A%contr #"
      Type:
         float_array

      Description:
         Contributions to excitation #.

      Shape:
         [:]

   "Excitations SOT A%contr index #"
      Type:
         int_array

      Description:
         Indices (org/new) for contributions to excitation #.

      Shape:
         [:, 2]

   "Excitations SOT A%contr irep index #"
      Type:
         int_array

      Description:
         Irrep indices (org/new) for contributions to excitation #.

      Shape:
         [:, 2]

   "Excitations SOT A%contr transdip #"
      Type:
         float_array

      Description:
         Contributions to transition dipole #.

      Shape:
         [3, :]

   "Excitations SOT A%eigenvec #"
      Type:
         float_array

      Description:
         Eigenvectors for excitation #.

      Shape:
         [:]

   "Excitations SOT A%excenergies"
      Type:
         float_array

      Description:
         Excitation energies.

      Shape:
         [:]

   "Excitations SOT A%gradient #"
      Type:
         float_array

      Description:
         Gradient for excitation #.

      Shape:
         [3, Molecule%nAtoms]

   "Excitations SOT A%nr of contributions #"
      Type:
         int

      Description:
         Number of contributions for excitation #.

   "Excitations SOT A%nr of excenergies"
      Type:
         int

      Description:
         Number of excitation energies.

   "Excitations SOT A%oscillator strengths"
      Type:
         float_array

      Description:
         Oscillator strengths.

      Shape:
         [nr of excenergies]

   "Excitations SOT A%transition dipole moments"
      Type:
         float_array

      Description:
         Transition dipole moments.

      Shape:
         [3, nr of excenergies]


Excitations SS A
----------------

KF Section: Excitations SS A
   **Content:** Singlet-singlet.

   "Excitations SS A%contr #"
      Type:
         float_array

      Description:
         Contributions to excitation #.

      Shape:
         [:]

   "Excitations SS A%contr index #"
      Type:
         int_array

      Description:
         Indices (org/new) for contributions to excitation #.

      Shape:
         [:, 2]

   "Excitations SS A%contr irep index #"
      Type:
         int_array

      Description:
         Irrep indices (org/new) for contributions to excitation #.

      Shape:
         [:, 2]

   "Excitations SS A%contr transdip #"
      Type:
         float_array

      Description:
         Contributions to transition dipole #.

      Shape:
         [3, :]

   "Excitations SS A%eigenvec #"
      Type:
         float_array

      Description:
         Eigenvectors for excitation #.

      Shape:
         [nTransUse]

   "Excitations SS A%excenergies"
      Type:
         float_array

      Description:
         Excitation energies.

      Shape:
         [nr of excenergies]

   "Excitations SS A%gradient #"
      Type:
         float_array

      Description:
         Gradient for excitation #.

      Shape:
         [3, Molecule%nAtoms]

   "Excitations SS A%nr of contributions #"
      Type:
         int

      Description:
         Number of contributions for excitation #.

   "Excitations SS A%nr of excenergies"
      Type:
         int

      Description:
         Number of excitation energies.

   "Excitations SS A%nTransUse"
      Type:
         int

      Description:
         Number of single orbital transitions.

   "Excitations SS A%oscillator strengths"
      Type:
         float_array

      Description:
         Oscillator strengths.

      Shape:
         [nr of excenergies]

   "Excitations SS A%transition dipole moments"
      Type:
         float_array

      Description:
         Transition dipole moments.

      Shape:
         [3, nr of excenergies]


Excitations ST A
----------------

KF Section: Excitations ST A
   **Content:** Singlet-triplet.

   "Excitations ST A%contr #"
      Type:
         float_array

      Description:
         Contributions to excitation #.

      Shape:
         [:]

   "Excitations ST A%contr index #"
      Type:
         int_array

      Description:
         Indices (org/new) for contributions to excitation #.

      Shape:
         [:, 2]

   "Excitations ST A%contr irep index #"
      Type:
         int_array

      Description:
         Irrep indices (org/new) for contributions to excitation #.

      Shape:
         [:, 2]

   "Excitations ST A%contr transdip #"
      Type:
         float_array

      Description:
         Contributions to transition dipole #.

      Shape:
         [3, :]

   "Excitations ST A%eigenvec #"
      Type:
         float_array

      Description:
         Eigenvectors for excitation #.

      Shape:
         [nTransUse]

   "Excitations ST A%excenergies"
      Type:
         float_array

      Description:
         Excitation energies.

      Shape:
         [nr of excenergies]

   "Excitations ST A%gradient #"
      Type:
         float_array

      Description:
         Gradient for excitation #.

      Shape:
         [3, Molecule%nAtoms]

   "Excitations ST A%nr of contributions #"
      Type:
         int

      Description:
         Number of contributions for excitation #.

   "Excitations ST A%nr of excenergies"
      Type:
         int

      Description:
         Number of excitation energies.

   "Excitations ST A%nTransUse"
      Type:
         int

      Description:
         Number of single orbital transitions.

   "Excitations ST A%oscillator strengths"
      Type:
         float_array

      Description:
         Oscillator strengths.

      Shape:
         [nr of excenergies]

   "Excitations ST A%transition dipole moments"
      Type:
         float_array

      Description:
         Transition dipole moments.

      Shape:
         [3, nr of excenergies]


FOPopulations
-------------

KF Section: FOPopulations
   **Content:** ?

   "FOPopulations%fo_grosspop(#)"
      Type:
         float_array

      Description:
         Gross population of fragment orbitals in full system.

      Shape:
         [FragmentOrbitals%nOrbitals]

   "FOPopulations%fo_index(#)"
      Type:
         int_array

      Description:
         Fragment orbital number for each stored fragment orbital
         contribution per molecular orbital.

   "FOPopulations%fo_pop(#)"
      Type:
         float_array

      Description:
         Stored fragment orbital contribution per molecular orbital.

   "FOPopulations%nEntries"
      Type:
         int

      Description:
         The number of sets. At the moment it should be 1, only
         nSpin=1 and nKpoints=1 supported.

   "FOPopulations%number of contributions(#)"
      Type:
         int_array

      Description:
         Number of stored fragment orbital contributions per molecular
         orbital

      Shape:
         [FragmentOrbitals%nOrbitals]


FragmentOrbitals
----------------

KF Section: FragmentOrbitals
   **Content:** ?

   "FragmentOrbitals%AtomicFragmentOrbitals"
      Type:
         bool

      Description:
         Whether atomic fragment orbitals are used.

   "FragmentOrbitals%BaseNameFragFile"
      Type:
         lchar_string_array

      Description:
         Not used if AtomicFragmentOrbitals is true. Guess for
         reasonable fragment names in case of the AMS-GUI.

      Shape:
         [nFragments]

   "FragmentOrbitals%Coefficients(#)"
      Type:
         float_array

      Description:
         Fragment orbital coefficients in the basis of all fragment
         basis functions.

      Shape:
         [nBasisFunctions, nOrbitals]

   "FragmentOrbitals%Energies(#)"
      Type:
         float_array

      Description:
         Fragment orbital energies.

      Shape:
         [nOrbitals]

   "FragmentOrbitals%Fragment"
      Type:
         int_array

      Description:
         On which fragment is a fragment orbital.

      Shape:
         [nOrbitals]

   "FragmentOrbitals%FragmentSymbols"
      Type:
         lchar_string_array

      Description:
         Unique name of the fragments, typically name includes the
         chemical formula and a number.

      Shape:
         [nFragments]

   "FragmentOrbitals%iFO"
      Type:
         int_array

      Description:
         Orbital number of the fragment orbital in the fragment on
         which the fragment orbital is located.

      Shape:
         [nOrbitals]

   "FragmentOrbitals%MOinFO(#)"
      Type:
         float_array

      Description:
         Molecular orbital (MO) coefficients in the basis of fragment
         orbitals (FO).

      Shape:
         [nOrbitals, nOrbitals]

   "FragmentOrbitals%nBasisFunctions"
      Type:
         int

      Description:
         Total number of basis functions (summed over fragments). At
         the moment nBasisFunctions equals nOrbitals.

   "FragmentOrbitals%nEntries"
      Type:
         int

      Description:
         The number of sets. At the moment it should be 1, only
         nSpin=1 and nKpoints=1 supported.

   "FragmentOrbitals%nFragments"
      Type:
         int

      Description:
         Number of fragments

   "FragmentOrbitals%nOrbitals"
      Type:
         int

      Description:
         Total number of orbitals (summed over fragments).

   "FragmentOrbitals%Occupations(#)"
      Type:
         float_array

      Description:
         Fragment orbital occupation numbers.

      Shape:
         [nOrbitals]

   "FragmentOrbitals%Overlaps(#)"
      Type:
         float_array

      Description:
         Overlap fragment orbitals

      Shape:
         [nOrbitals, nOrbitals]

   "FragmentOrbitals%SiteEnergies(#)"
      Type:
         float_array

      Description:
         The Site energy of a fragment orbital (FO) is defined as the
         diagonal Fock matrix element of the Fock matrix of the full
         system in FO representation.

      Shape:
         [nOrbitals]

   "FragmentOrbitals%SubSpecies"
      Type:
         lchar_string_array

      Description:
         Symmetry labels of fragment orbitals. In case of
         AtomicFragmentOrbitals the subspecies are atomic like S, P:x,
         etcetera. Otherwise symmetry NOSYM is used and the subspecies
         are all A.

      Shape:
         [nOrbitals]


General
-------

KF Section: General
   **Content:** General information about the DFTB calculation.

   "General%account"
      Type:
         string

      Description:
         Name of the account from the license

   "General%engine input"
      Type:
         string

      Description:
         The text input of the engine.

   "General%engine messages"
      Type:
         string

      Description:
         Message from the engine. In case the engine fails to solves,
         this may contains extra information on why.

   "General%file-ident"
      Type:
         string

      Description:
         The file type identifier, e.g. RKF, RUNKF, TAPE21...

   "General%jobid"
      Type:
         int

      Description:
         Unique identifier for the job.

   "General%program"
      Type:
         string

      Description:
         The name of the program/engine that generated this kf file.

   "General%release"
      Type:
         string

      Description:
         The version of the program that generated this kf file
         (including svn revision number and date).

   "General%termination status"
      Type:
         string

      Description:
         The termination status. Possible values: 'NORMAL
         TERMINATION', 'NORMAL TERMINATION with warnings',  'NORMAL
         TERMINATION with errors', 'ERROR', 'IN PROGRESS'.

   "General%title"
      Type:
         string

      Description:
         Title of the calculation.

   "General%uid"
      Type:
         string

      Description:
         SCM User ID

   "General%version"
      Type:
         int

      Description:
         Version number?


KFDefinitions
-------------

KF Section: KFDefinitions
   **Content:** The definitions of the data on this file

   "KFDefinitions%json"
      Type:
         string

      Description:
         The definitions of the data on this file in json.


kspace
------

KF Section: kspace
   **Content:** Info regarding the k-space integration...

   "kspace%avec"
      Type:
         float_array

      Description:
         The lattice stored as a 3xnLatticeVectors matrix. Only the
         ndimk,ndimk part has meaning.

      Unit:
         bohr

      Shape:
         [3, :]

   "kspace%bvec"
      Type:
         float_array

      Description:
         The inverse lattice stored as a 3x3 matrix. Only the
         ndimk,ndimk part has meaning.

      Unit:
         1/bohr

      Shape:
         [ndim, ndim]

   "kspace%bzvol"
      Type:
         float

      Description:
         The volume of the BZ zone. In 2D it is the surface and in 1D
         it is the length. The unit is bohr raised to the power ndim.

   "kspace%iDimkEffective"
      Type:
         int_array

      Description:
         Which latttice vectors are really used for the k-space
         integration.

      Shape:
         [nDimkEffective]

   "kspace%isKunComplex"
      Type:
         bool_array

      Description:
         Whether or not the Hamiltonian matrix is complex for a unique
         k-point.

      Shape:
         [kuniqu]

   "kspace%kequiv"
      Type:
         int_array

      Description:
         When kequiv(i)=i the k-point is unique.

      Shape:
         [kt]

   "kspace%kequn"
      Type:
         int_array

      Description:
         When looping over all k-points, the unique index is
         kun=kequn(k).

      Shape:
         [kt]

   "kspace%kinteg"
      Type:
         int

      Description:
         In case a symmetric grid is used this is the parameter used
         to create it.

   "kspace%klbl"
      Type:
         lchar_string_array

      Description:
         labels describing the k-points

      Shape:
         [kt]

   "kspace%klblun"
      Type:
         lchar_string_array

      Description:
         labels describing the unique k-points

      Shape:
         [kuniqu]

   "kspace%klnear"
      Type:
         bool

      Description:
         Whether or not linear k-space integration is used (symmetric
         method with even kinteg).

   "kspace%ksimpl"
      Type:
         int_array

      Description:
         Index array defining the simplices, referring to the xyzpt
         array.

      Shape:
         [nvertk, nsimpl]

   "kspace%kt"
      Type:
         int

      Description:
         The total number of k-points used by the k-space to sample
         the unique wedge of the Brillouin zone.

   "kspace%ktBoltz"
      Type:
         float

      Description:
         band only?.

   "kspace%kuniqu"
      Type:
         int

      Description:
         The number of symmetry unique k-points where an explicit
         diagonalization is needed. Smaller or equal to kt.

   "kspace%ndim"
      Type:
         int

      Description:
         The nr. of lattice vectors.

   "kspace%ndimk"
      Type:
         int

      Description:
         The nr. of dimensions used in the k-space integration.

   "kspace%nDimkEffective"
      Type:
         int

      Description:
         Normally ndimk is equal to the number of lattice vectors. For
         very large lattice vectors the k-space dispersion is ignored,
         leading to a lower dimensional band structure.

   "kspace%noperk"
      Type:
         int

      Description:
         The nr. of operators in k-space. band only?

   "kspace%nsimpl"
      Type:
         int

      Description:
         The number of simplices constructed from the k-points to span
         the IBZ.

   "kspace%numBoltz"
      Type:
         int

      Description:
         Number of energies to sample around the fermi energy. band
         only?

   "kspace%numEquivSimplices"
      Type:
         int_array

      Description:
         Simplices may be equivalent due to symmetry operations..

      Shape:
         [nsimpl]

   "kspace%nvertk"
      Type:
         int

      Description:
         The number of vertices that each simplex has.

   "kspace%operk"
      Type:
         float_array

      Description:
         Symmetry operators in k-space. band only?

      Unit:
         bohr

      Shape:
         [ndim, ndim, noperk]

   "kspace%xyzpt"
      Type:
         float_array

      Description:
         The coordinates of the k-points.

      Unit:
         1/bohr

      Shape:
         [ndimk, kt]


kspace(primitive cell)
----------------------

KF Section: kspace(primitive cell)
   **Content:** should not be here!!!

   "kspace(primitive cell)%avec"
      Type:
         float_array

      Description:
         The lattice stored as a 3xnLatticeVectors matrix. Only the
         ndimk,ndimk part has meaning.

      Unit:
         bohr

      Shape:
         [3, :]

   "kspace(primitive cell)%bvec"
      Type:
         float_array

      Description:
         The inverse lattice stored as a 3x3 matrix. Only the
         ndimk,ndimk part has meaning.

      Unit:
         1/bohr

      Shape:
         [ndim, ndim]

   "kspace(primitive cell)%kt"
      Type:
         int

      Description:
         The total number of k-points used by the k-space to sample
         the unique wedge of the Brillouin zone.

   "kspace(primitive cell)%kuniqu"
      Type:
         int

      Description:
         The number of symmetry unique k-points where an explicit
         diagonalization is needed. Smaller or equal to kt.

   "kspace(primitive cell)%ndim"
      Type:
         int

      Description:
         The nr. of lattice vectors.

   "kspace(primitive cell)%ndimk"
      Type:
         int

      Description:
         The nr. of dimensions used in the k-space integration.

   "kspace(primitive cell)%xyzpt"
      Type:
         float_array

      Description:
         The coordinates of the k-points.

      Unit:
         1/bohr

      Shape:
         [ndimk, kt]


Low Frequency Correction
------------------------

KF Section: Low Frequency Correction
   **Content:** Configuration for the Head-Gordon Dampener-powered
   Free Rotor Interpolation.

   "Low Frequency Correction%Alpha"
      Type:
         float

      Description:
         Exponent term for the Head-Gordon dampener.

   "Low Frequency Correction%Frequency"
      Type:
         float

      Description:
         Frequency around which interpolation happens, in 1/cm.

   "Low Frequency Correction%Moment of Inertia"
      Type:
         float

      Description:
         Used to make sure frequencies of less than ca. 1 1/cm don't
         overestimate entropy, in kg m^2.


Matrices
--------

KF Section: Matrices
   **Content:** Section that can contain any number of real matrices

   "Matrices%Data(#)"
      Type:
         float_array

      Description:
         The array, rank and dimensions as specified by Dimensions.

   "Matrices%Dimensions(#)"
      Type:
         int_array

      Description:
         The dimensions of the array

   "Matrices%Name(#)"
      Type:
         string

      Description:
         The name of the matrix.

   "Matrices%nEntries"
      Type:
         int

      Description:
         The number of matrices

   "Matrices%Type(#)"
      Type:
         string

      Description:
         The type such as Real, and perhaps Complex?


Mobile Block Hessian
--------------------

KF Section: Mobile Block Hessian
   **Content:** Mobile Block Hessian.

   "Mobile Block Hessian%Coordinates Internal"
      Type:
         float_array

      Description:
         ?

   "Mobile Block Hessian%Free Atom Indexes Input"
      Type:
         int_array

      Description:
         ?

   "Mobile Block Hessian%Frequencies in atomic units"
      Type:
         float_array

      Description:
         ?

   "Mobile Block Hessian%Frequencies in wavenumbers"
      Type:
         float_array

      Description:
         ?

   "Mobile Block Hessian%Input Cartesian Normal Modes"
      Type:
         float_array

      Description:
         ?

   "Mobile Block Hessian%Input Indexes of Block #"
      Type:
         int_array

      Description:
         ?

   "Mobile Block Hessian%Intensities in km/mol"
      Type:
         float_array

      Description:
         ?

   "Mobile Block Hessian%MBH Curvatures"
      Type:
         float_array

      Description:
         ?

   "Mobile Block Hessian%Number of Blocks"
      Type:
         int

      Description:
         Number of blocks.

   "Mobile Block Hessian%Sizes of Blocks"
      Type:
         int_array

      Description:
         Sizes of the blocks.

      Shape:
         [Number of Blocks]


Molecule
--------

KF Section: Molecule
   **Content:** The input molecule of the calculation.

   "Molecule%AtomicNumbers"
      Type:
         int_array

      Description:
         Atomic number 'Z' of the atoms in the system

      Shape:
         [nAtoms]

   "Molecule%AtomMasses"
      Type:
         float_array

      Description:
         Masses of the atoms

      Unit:
         a.u.

      Values range:
         [0, '\infinity']

      Shape:
         [nAtoms]

   "Molecule%AtomSymbols"
      Type:
         string

      Description:
         The atom's symbols (e.g. 'C' for carbon)

      Shape:
         [nAtoms]

   "Molecule%bondOrders"
      Type:
         float_array

      Description:
         The bond orders for the bonds in the system. The indices of
         the two atoms participating in the bond are defined in the
         arrays 'fromAtoms' and 'toAtoms'. e.g. bondOrders[1]=2,
         fromAtoms[1]=4 and toAtoms[1]=7 means that there is a double
         bond between atom number 4 and atom number 7

   "Molecule%Charge"
      Type:
         float

      Description:
         Net charge of the system

      Unit:
         e

   "Molecule%Coords"
      Type:
         float_array

      Description:
         Coordinates of the nuclei (x,y,z)

      Unit:
         bohr

      Shape:
         [3, nAtoms]

   "Molecule%eeAttachTo"
      Type:
         int_array

      Description:
         UNUSED IN AMS>=2026. A multipole may be attached to an atom.
         This influences the energy gradient.

   "Molecule%eeChargeWidth"
      Type:
         float

      Description:
         If charge broadening was used for external charges, this
         represents the width of the charge distribution.

   "Molecule%eeEField"
      Type:
         float_array

      Description:
         The external homogeneous electric field.

      Unit:
         hartree/(e*bohr)

      Shape:
         [3]

   "Molecule%eeLatticeVectors"
      Type:
         float_array

      Description:
         UNUSED IN AMS>=2026. The lattice vectors used for the
         external point- or multipole- charges.

      Unit:
         bohr

      Shape:
         [3, eeNLatticeVectors]

   "Molecule%eeMulti"
      Type:
         float_array

      Description:
         The values of the external point- or multipole- charges.

      Unit:
         a.u.

      Shape:
         [eeNZlm, eeNMulti]

   "Molecule%eeNLatticeVectors"
      Type:
         int

      Description:
         UNUSED IN AMS>=2026. The number of lattice vectors for the
         external point- or multipole- charges.

   "Molecule%eeNMulti"
      Type:
         int

      Description:
         The number of external point- or multipole- charges.

   "Molecule%eeNZlm"
      Type:
         int

      Description:
         When external point- or multipole- charges are used, this
         represents the number of spherical harmonic components. E.g.
         if only point charges were used, eeNZlm=1 (s-component only).
         If point charges and dipole moments were used, eeNZlm=4 (s,
         px, py and pz).

   "Molecule%eeUseChargeBroadening"
      Type:
         bool

      Description:
         Whether or not the external charges are point-like or
         broadened.

   "Molecule%eeXYZ"
      Type:
         float_array

      Description:
         The position of the external point- or multipole- charges.

      Unit:
         bohr

      Shape:
         [3, eeNMulti]

   "Molecule%EngineAtomicInfo"
      Type:
         string_fixed_length

      Description:
         Atom-wise info possibly used by the engine.

   "Molecule%fromAtoms"
      Type:
         int_array

      Description:
         Index of the first atom in a bond. See the bondOrders array

   "Molecule%latticeDisplacements"
      Type:
         int_array

      Description:
         The integer lattice translations for the bonds defined in the
         variables bondOrders, fromAtoms and toAtoms.

   "Molecule%LatticeVectors"
      Type:
         float_array

      Description:
         Lattice vectors

      Unit:
         bohr

      Shape:
         [3, nLatticeVectors]

   "Molecule%nAtoms"
      Type:
         int

      Description:
         The number of atoms in the system

   "Molecule%nAtomsTypes"
      Type:
         int

      Description:
         The number different of atoms types

   "Molecule%nLatticeVectors"
      Type:
         int

      Description:
         Number of lattice vectors (i.e. number of periodic boundary
         conditions)

      Possible values:
         [0, 1, 2, 3]

   "Molecule%toAtoms"
      Type:
         int_array

      Description:
         Index of the second atom in a bond. See the bondOrders array


MoleculeSuperCell
-----------------

KF Section: MoleculeSuperCell
   **Content:** The system used for the numerical phonon super cell
   calculation.

   "MoleculeSuperCell%AtomicNumbers"
      Type:
         int_array

      Description:
         Atomic number 'Z' of the atoms in the system

      Shape:
         [nAtoms]

   "MoleculeSuperCell%AtomMasses"
      Type:
         float_array

      Description:
         Masses of the atoms

      Unit:
         a.u.

      Values range:
         [0, '\infinity']

      Shape:
         [nAtoms]

   "MoleculeSuperCell%AtomSymbols"
      Type:
         string

      Description:
         The atom's symbols (e.g. 'C' for carbon)

      Shape:
         [nAtoms]

   "MoleculeSuperCell%bondOrders"
      Type:
         float_array

      Description:
         The bond orders for the bonds in the system. The indices of
         the two atoms participating in the bond are defined in the
         arrays 'fromAtoms' and 'toAtoms'. e.g. bondOrders[1]=2,
         fromAtoms[1]=4 and toAtoms[1]=7 means that there is a double
         bond between atom number 4 and atom number 7

   "MoleculeSuperCell%Charge"
      Type:
         float

      Description:
         Net charge of the system

      Unit:
         e

   "MoleculeSuperCell%Coords"
      Type:
         float_array

      Description:
         Coordinates of the nuclei (x,y,z)

      Unit:
         bohr

      Shape:
         [3, nAtoms]

   "MoleculeSuperCell%eeAttachTo"
      Type:
         int_array

      Description:
         UNUSED IN AMS>=2026. A multipole may be attached to an atom.
         This influences the energy gradient.

   "MoleculeSuperCell%eeChargeWidth"
      Type:
         float

      Description:
         If charge broadening was used for external charges, this
         represents the width of the charge distribution.

   "MoleculeSuperCell%eeEField"
      Type:
         float_array

      Description:
         The external homogeneous electric field.

      Unit:
         hartree/(e*bohr)

      Shape:
         [3]

   "MoleculeSuperCell%eeLatticeVectors"
      Type:
         float_array

      Description:
         UNUSED IN AMS>=2026. The lattice vectors used for the
         external point- or multipole- charges.

      Unit:
         bohr

      Shape:
         [3, eeNLatticeVectors]

   "MoleculeSuperCell%eeMulti"
      Type:
         float_array

      Description:
         The values of the external point- or multipole- charges.

      Unit:
         a.u.

      Shape:
         [eeNZlm, eeNMulti]

   "MoleculeSuperCell%eeNLatticeVectors"
      Type:
         int

      Description:
         UNUSED IN AMS>=2026. The number of lattice vectors for the
         external point- or multipole- charges.

   "MoleculeSuperCell%eeNMulti"
      Type:
         int

      Description:
         The number of external point- or multipole- charges.

   "MoleculeSuperCell%eeNZlm"
      Type:
         int

      Description:
         When external point- or multipole- charges are used, this
         represents the number of spherical harmonic components. E.g.
         if only point charges were used, eeNZlm=1 (s-component only).
         If point charges and dipole moments were used, eeNZlm=4 (s,
         px, py and pz).

   "MoleculeSuperCell%eeUseChargeBroadening"
      Type:
         bool

      Description:
         Whether or not the external charges are point-like or
         broadened.

   "MoleculeSuperCell%eeXYZ"
      Type:
         float_array

      Description:
         The position of the external point- or multipole- charges.

      Unit:
         bohr

      Shape:
         [3, eeNMulti]

   "MoleculeSuperCell%EngineAtomicInfo"
      Type:
         string_fixed_length

      Description:
         Atom-wise info possibly used by the engine.

   "MoleculeSuperCell%fromAtoms"
      Type:
         int_array

      Description:
         Index of the first atom in a bond. See the bondOrders array

   "MoleculeSuperCell%latticeDisplacements"
      Type:
         int_array

      Description:
         The integer lattice translations for the bonds defined in the
         variables bondOrders, fromAtoms and toAtoms.

   "MoleculeSuperCell%LatticeVectors"
      Type:
         float_array

      Description:
         Lattice vectors

      Unit:
         bohr

      Shape:
         [3, nLatticeVectors]

   "MoleculeSuperCell%nAtoms"
      Type:
         int

      Description:
         The number of atoms in the system

   "MoleculeSuperCell%nAtomsTypes"
      Type:
         int

      Description:
         The number different of atoms types

   "MoleculeSuperCell%nLatticeVectors"
      Type:
         int

      Description:
         Number of lattice vectors (i.e. number of periodic boundary
         conditions)

      Possible values:
         [0, 1, 2, 3]

   "MoleculeSuperCell%toAtoms"
      Type:
         int_array

      Description:
         Index of the second atom in a bond. See the bondOrders array


NAOSetCells
-----------

KF Section: NAOSetCells
   **Content:** For periodic systems neighboring cells need to be
   considered. More cells are needed for more diffuse basis sets.

   "NAOSetCells%Coords(#{entry})"
      Type:
         float_array

      Description:
         Cell coordinates for a basis set.

      Shape:
         [3, nCells(#{entry})]

   "NAOSetCells%Name(#{entry})"
      Type:
         string

      Description:
         The name of the basis set.

   "NAOSetCells%nAtoms(#{entry})"
      Type:
         int

      Description:
         Number of atoms for a basis set.

   "NAOSetCells%nCells(#{entry})"
      Type:
         int

      Description:
         Number of cells needed for a basis set.

   "NAOSetCells%nEntries"
      Type:
         int

      Description:
         The number of entries (basis sets), for basis sets like
         valence and core, fit, etc..

   "NAOSetCells%SkipAtom(#{entry})"
      Type:
         bool_array

      Description:
         Sometimes the functions of an atom do not require a cell at
         all.

      Shape:
         [nAtoms(#{entry}), nCells(#{entry})]


NumericalBasisSets
------------------

KF Section: NumericalBasisSets
   **Content:** Specification of numerical atomic basis sets,
   consisting of a numerical radial table and a spherical harmonic:
   R_{nl} Y_{lm}.

   "NumericalBasisSets%BasisType(#{set},#{type})"
      Type:
         string

      Description:
         Something like valence or core for (type,set). Will not
         depend on type.

   "NumericalBasisSets%bField for GIAO(#{set},#{type})"
      Type:
         float_array

      Description:
         Band only. Finite magnetic field strength for GIAOs.

      Shape:
         [3]

   "NumericalBasisSets%d2RadialFuncs(#{set},#{type})"
      Type:
         float_array

      Description:
         The second derivative of the radial functions  (for a
         type,set).

      Shape:
         [NumRad(#{type}), nRadialFuncs(#{set},#{type})]

   "NumericalBasisSets%dRadialFuncs(#{set},#{type})"
      Type:
         float_array

      Description:
         The derivative of the radial functions  (for a type,set).

      Shape:
         [NumRad(#{type}), nRadialFuncs(#{set},#{type})]

   "NumericalBasisSets%Element(#{type})"
      Type:
         string

      Description:
         The chemical element (H,He,Li) for a type.

   "NumericalBasisSets%GridType(#{type})"
      Type:
         string

      Description:
         What kind of radial grid is used. Currently this is always
         logarithmic.

   "NumericalBasisSets%ljValues(#{set},#{type})"
      Type:
         int_array

      Description:
         Normally for each radial function the l value. In case of
         spin-orbit there is also a j value  (for a type,set).

      Shape:
         [2, nRadialFuncs(#{set},#{type})]

   "NumericalBasisSets%MaxRad(#{type})"
      Type:
         float

      Description:
         Maximum value of the radial grid (for a type).

   "NumericalBasisSets%MinRad(#{type})"
      Type:
         float

      Description:
         Minimum value of the radial grid (for a type).

   "NumericalBasisSets%nRadialFuncs(#{set},#{type})"
      Type:
         int

      Description:
         The number of radial functions  (for a type,set).

   "NumericalBasisSets%nSets"
      Type:
         int

      Description:
         The number of basis sets stored for each type. For instance
         if you store core and the valence basis sets it is two.

   "NumericalBasisSets%nTypes"
      Type:
         int

      Description:
         The number of types: elements with a different basis set.
         Normally this is just the number of distinct elements in the
         system.

   "NumericalBasisSets%NumRad(#{type})"
      Type:
         int

      Description:
         The number of radial points (for a type).

   "NumericalBasisSets%RadialFuncs(#{set},#{type})"
      Type:
         float_array

      Description:
         The radial functions  (for a type,set).

      Shape:
         [NumRad(#{type}), nRadialFuncs(#{set},#{type})]

   "NumericalBasisSets%RadialMetaInfo(#{set},#{type})"
      Type:
         float_array

      Description:
         Info about the radial functions. Whether it is a NAO or STO.
         For instance for an STO the alpha value. All encoded in a
         real array of fixed size.

      Shape:
         [:, nRadialFuncs(#{set},#{type})]

   "NumericalBasisSets%SpherHarmonicType(#{set},#{type})"
      Type:
         string

      Description:
         Either zlm or spinor (type,set). Will not depend on type.


Orbitals
--------

KF Section: Orbitals
   **Content:** Info regarding the orbitals...

   "Orbitals%Coefficients(#)"
      Type:
         float_array

      Description:
         for each entry the orbital expansion coefficients.

      Shape:
         [nBasisFunctions, nOrbitals]

   "Orbitals%CoefficientsImag(#)"
      Type:
         float_array

      Description:
         for each entry the imaginary part of the orbital expansion
         coefficients.

      Shape:
         [nBasisFunctions, nOrbitals]

   "Orbitals%CoefficientsReal(#)"
      Type:
         float_array

      Description:
         for each entry the real part of the orbital expansion
         coefficients.

      Shape:
         [nBasisFunctions, nOrbitals]

   "Orbitals%Energies(#)"
      Type:
         float_array

      Description:
         for each entry the eigen values.

      Shape:
         [nOrbitals]

   "Orbitals%nBasisFunctions"
      Type:
         int

      Description:
         Total number of basis functions.

   "Orbitals%nEntries"
      Type:
         int

      Description:
         The number of sets. For a molecule this is nSpin, for a solid
         it is nKpoints*nSpin.

   "Orbitals%nOrbitals"
      Type:
         int

      Description:
         The number of orbitals stored for an entry. This can be equal
         or less than nBasisFunctions

   "Orbitals%Occupations(#)"
      Type:
         float_array

      Description:
         for each entry the Occupations.

      Shape:
         [nOrbitals]


phonon_curves
-------------

KF Section: phonon_curves
   **Content:** Phonon dispersion curves.

   "phonon_curves%brav_type"
      Type:
         string

      Description:
         Type of the lattice.

   "phonon_curves%Edge_#_bands"
      Type:
         float_array

      Description:
         The band energies

      Shape:
         [nBands, nSpin, :]

   "phonon_curves%Edge_#_direction"
      Type:
         float_array

      Description:
         Direction vector.

      Shape:
         [nDimK]

   "phonon_curves%Edge_#_kPoints"
      Type:
         float_array

      Description:
         Coordinates for points along the edge.

      Shape:
         [nDimK, :]

   "phonon_curves%Edge_#_labels"
      Type:
         lchar_string_array

      Description:
         Labels for begin and end point of the edge.

      Shape:
         [2]

   "phonon_curves%Edge_#_lGamma"
      Type:
         bool

      Description:
         Is gamma point?

   "phonon_curves%Edge_#_nKPoints"
      Type:
         int

      Description:
         The nr. of k points along the edge.

   "phonon_curves%Edge_#_vertices"
      Type:
         float_array

      Description:
         Begin and end point of the edge.

      Shape:
         [nDimK, 2]

   "phonon_curves%Edge_#_xFor1DPlotting"
      Type:
         float_array

      Description:
         x Coordinate for points along the edge.

      Shape:
         [:]

   "phonon_curves%indexLowestBand"
      Type:
         int

      Description:
         ?

   "phonon_curves%nBands"
      Type:
         int

      Description:
         Number of bands.

   "phonon_curves%nBas"
      Type:
         int

      Description:
         Number of basis functions.

   "phonon_curves%nDimK"
      Type:
         int

      Description:
         Dimension of the reciprocal space.

   "phonon_curves%nEdges"
      Type:
         int

      Description:
         The number of edges. An edge is a line-segment through
         k-space. It has a begin and end point and possibly points in
         between.

   "phonon_curves%nEdgesInPath"
      Type:
         int

      Description:
         A path is built up from a number of edges.

   "phonon_curves%nSpin"
      Type:
         int

      Description:
         Number of spin components.

      Possible values:
         [1, 2]

   "phonon_curves%path"
      Type:
         int_array

      Description:
         If the (edge) index is negative it means that the vertices of
         the edge abs(index) are swapped e.g. path =
         (1,2,3,0,-3,-2,-1) goes though edges 1,2,3, then there's a
         jump, and then it goes back.

      Shape:
         [nEdgesInPath]

   "phonon_curves%path_source"
      Type:
         string

      Description:
         Source or program used to generate the path.

      Possible values:
         ['input', 'kpath', 'seekpath']

   "phonon_curves%path_type"
      Type:
         string

      Description:
         ?


Phonons
-------

KF Section: Phonons
   **Content:** Information on the numerical phonons (super cell)
   setup. NB: the reciprocal cell of the super cell  is smaller than
   the reciprocal primitive cell.

   "Phonons%Modes"
      Type:
         float_array

      Description:
         The normal modes with the translational symmetry of the super
         cell.

      Shape:
         [3, nAtoms, 3, NumAtomsPrim, nK]

   "Phonons%nAtoms"
      Type:
         int

      Description:
         Number of atoms in the super cell.

   "Phonons%nK"
      Type:
         int

      Description:
         Number of gamma-points (of the super cell) that fit into the
         primitive reciprocal cell.

   "Phonons%NumAtomsPrim"
      Type:
         int

      Description:
         Number of atoms in the primitive cell.

   "Phonons%xyzKSuper"
      Type:
         float_array

      Description:
         The coordinates of the gamma  points that fit into the
         primitive reciprocal cell.

      Shape:
         [3, nK]


Plot
----

KF Section: Plot
   **Content:** Generic section to store x-y plots.

   "Plot%numPlots"
      Type:
         int

      Description:
         Number of plots.

   "Plot%NumPoints(#)"
      Type:
         int

      Description:
         Number of x points for plot #.

   "Plot%NumYSeries(#)"
      Type:
         int

      Description:
         Number of y series for plot #.

   "Plot%Title(#)"
      Type:
         string

      Description:
         Title of plot #

   "Plot%XLabel(#)"
      Type:
         string

      Description:
         X label for plot #.

   "Plot%XUnit(#)"
      Type:
         string

      Description:
         X unit for plot #.

   "Plot%XValues(#)"
      Type:
         float_array

      Description:
         X values for plot #.

      Shape:
         [:]

   "Plot%YLabel(#)"
      Type:
         string

      Description:
         Y label for plot #.

   "Plot%YUnit(#)"
      Type:
         string

      Description:
         Y unit for plot #.

   "Plot%YValues(#)"
      Type:
         float_array

      Description:
         Y values for plot #. Array has extra column NumYSeries.


Properties
----------

KF Section: Properties
   **Content:** Generic container for properties.


QMFQ
----

KF Section: QMFQ
   **Content:** Why is this in the ams.rkf file and not in the adf.rkf
   file?

   "QMFQ%atoms to index"
      Type:
         int_array

      Description:
         ?

   "QMFQ%atoms to mol label"
      Type:
         int_array

      Description:
         ?

   "QMFQ%charge constraints"
      Type:
         float_array

      Description:
         ?

   "QMFQ%external xyz"
      Type:
         float_array

      Description:
         ?

   "QMFQ%fde atoms to index"
      Type:
         int_array

      Description:
         ?

   "QMFQ%fde atoms to mol label"
      Type:
         int_array

      Description:
         ?

   "QMFQ%fde charge constraints"
      Type:
         float_array

      Description:
         ?

   "QMFQ%fde external xyz"
      Type:
         float_array

      Description:
         ?

   "QMFQ%fde index to mol label"
      Type:
         int_array

      Description:
         ?

   "QMFQ%fde type index"
      Type:
         int_array

      Description:
         ?

   "QMFQ%index to mol label"
      Type:
         int_array

      Description:
         ?

   "QMFQ%type alpha"
      Type:
         float_array

      Description:
         ?

   "QMFQ%type chi"
      Type:
         float_array

      Description:
         ?

   "QMFQ%type eta"
      Type:
         float_array

      Description:
         ?

   "QMFQ%type index"
      Type:
         int_array

      Description:
         ?

   "QMFQ%type name"
      Type:
         string

      Description:
         ?

   "QMFQ%type rmu"
      Type:
         float_array

      Description:
         ?

   "QMFQ%type rq"
      Type:
         float_array

      Description:
         ?


QTAIM
-----

KF Section: QTAIM
   **Content:** Bader analysis (Atoms In Molecule): critical points
   and bond paths.

   "QTAIM%CoordinatesAlongBPs"
      Type:
         float_array

      Description:
         The position of each step point. (bond path index, step
         index, 3)

      Unit:
         bohr

      Shape:
         [nBondPaths, :, 3]

   "QTAIM%CoordinatesCPs"
      Type:
         float_array

      Description:
         Coordinates of the critical points.

      Unit:
         bohr

      Shape:
         [nCriticalPoints, 3]

   "QTAIM%DensityAlongBPs"
      Type:
         float_array

      Description:
         The density at that point along the bond path. (bond path
         index, step index)

      Shape:
         [nBondPaths, :]

   "QTAIM%DensityAtCPs"
      Type:
         float_array

      Description:
         Density at the critical points.

      Shape:
         [nCriticalPoints]

   "QTAIM%GradientAlongBPs"
      Type:
         float_array

      Description:
         The gradient at that point along the bond path. (bond path
         index, step index, 3)

      Shape:
         [nBondPaths, :, 3]

   "QTAIM%GradientAtCPs"
      Type:
         float_array

      Description:
         Density gradients at the critical points.

      Shape:
         [nCriticalPoints, 3]

   "QTAIM%HessianAlongBPs"
      Type:
         float_array

      Description:
         The gradient at that point along the bond path. (bond path
         index, step index, 6)

      Shape:
         [nBondPaths, :, 6]

   "QTAIM%HessianAtCPs"
      Type:
         float_array

      Description:
         Density Hessian at the critical points (6 values, being the
         upper triangle of the Hessian).

      Shape:
         [nCriticalPoints, 6]

   "QTAIM%nBondPaths"
      Type:
         int

      Description:
         Number of bond paths.

   "QTAIM%nCriticalPoints"
      Type:
         int

      Description:
         Number of critical points.

   "QTAIM%nStepsBondPaths"
      Type:
         int_array

      Description:
         The number of steps each bond path is made of.

      Shape:
         [nBondPaths]

   "QTAIM%RankSignatureCPs"
      Type:
         lchar_string_array

      Description:
         Type of critical points. Possible values are: Atom, Cage,
         Bond, Ring.

      Shape:
         [nCriticalPoints]


RadialAtomicFunctions
---------------------

KF Section: RadialAtomicFunctions
   **Content:** Info regarding spherical atom centered functions.

   "RadialAtomicFunctions%d2RadialFunc(#{func},#{type})"
      Type:
         float_array

      Description:
         Second derivative of the radial function.

      Shape:
         [NumericalBasisSets%NumRad(#{type})]

   "RadialAtomicFunctions%dRadialFunc(#{func},#{type})"
      Type:
         float_array

      Description:
         Derivative of the radial function.

      Shape:
         [NumericalBasisSets%NumRad(#{type})]

   "RadialAtomicFunctions%FunctionType(#{func},#{type})"
      Type:
         string

      Description:
         FunctionType(a,b) gives the name of function a for type b. It
         could have a value like core density.

   "RadialAtomicFunctions%nFunctions"
      Type:
         int

      Description:
         The number of radial functions stored for each type. For
         instance if you store the core and the valence density it is
         two.

   "RadialAtomicFunctions%nTypes"
      Type:
         int

      Description:
         The number of types: elements with a different basis set.
         Normally this is just the number of distinct elements in the
         system.

   "RadialAtomicFunctions%RadialFunc(#{func},#{type})"
      Type:
         float_array

      Description:
         RadialFunc(a,b) gives the radial table for function a for
         type b

      Shape:
         [NumericalBasisSets%NumRad(#{type})]


SCCLogger
---------

KF Section: SCCLogger
   **Content:** Details on the SCC logger.


Symmetry
--------

KF Section: Symmetry
   **Content:** Info regarding the symmetry of the system.

   "Symmetry%nOperators"
      Type:
         int

      Description:
         The number of symmetry operations.

   "Symmetry%nsym excitations"
      Type:
         int

      Description:
         The number of symmetries for excitations..

   "Symmetry%PointGroupOperators"
      Type:
         float_array

      Description:
         The Point group part of the operators.

      Shape:
         [3, 3, nOperators]

   "Symmetry%symlab excitations"
      Type:
         lchar_string_array

      Description:
         labels.

      Shape:
         [nsym excitations]

   "Symmetry%Translations"
      Type:
         float_array

      Description:
         The (fractional lattice) translations part of the operators.

      Shape:
         [3, nOperators]


Thermodynamics
--------------

KF Section: Thermodynamics
   **Content:** Thermodynamic properties computed from normal modes.

   "Thermodynamics%Enthalpy"
      Type:
         float_array

      Description:
         Enthalpy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Entropy rotational"
      Type:
         float_array

      Description:
         Rotational contribution to the entropy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Entropy total"
      Type:
         float_array

      Description:
         Total entropy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Entropy translational"
      Type:
         float_array

      Description:
         Translational contribution to the entropy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Entropy vibrational"
      Type:
         float_array

      Description:
         Vibrational contribution to the entropy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Gibbs free Energy"
      Type:
         float_array

      Description:
         Gibbs free energy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Heat Capacity rotational"
      Type:
         float_array

      Description:
         Rotational contribution to the heat capacity.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Heat Capacity total"
      Type:
         float_array

      Description:
         Total heat capacity.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Heat Capacity translational"
      Type:
         float_array

      Description:
         Translational contribution to the heat capacity.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Heat Capacity vibrational"
      Type:
         float_array

      Description:
         Vibrational contribution to the heat capacity.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Inertia direction vectors"
      Type:
         float_array

      Description:
         Inertia direction vectors.

      Shape:
         [3, 3]

   "Thermodynamics%Internal Energy rotational"
      Type:
         float_array

      Description:
         Rotational contribution to the internal energy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Internal Energy total"
      Type:
         float_array

      Description:
         Total internal energy.

      Unit:
         a.u.

   "Thermodynamics%Internal Energy translational"
      Type:
         float_array

      Description:
         Translational contribution to the internal energy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Internal Energy vibrational"
      Type:
         float_array

      Description:
         Vibrational contribution to the internal energy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%lowFreqEntropy"
      Type:
         float_array

      Description:
         Entropy contributions from low frequencies (see
         'lowFrequencies').

      Unit:
         a.u.

      Shape:
         [nLowFrequencies]

   "Thermodynamics%lowFreqHeatCapacity"
      Type:
         float_array

      Description:
         Heat capacity contributions from low frequencies (see
         'lowFrequencies').

      Unit:
         a.u.

      Shape:
         [nLowFrequencies]

   "Thermodynamics%lowFreqInternalEnergy"
      Type:
         float_array

      Description:
         Internal energy contributions from low frequencies (see
         'lowFrequencies').

      Unit:
         a.u.

      Shape:
         [nLowFrequencies]

   "Thermodynamics%lowFrequencies"
      Type:
         float_array

      Description:
         Frequencies below 20 cm^-1 (contributions from frequencies
         below 20 cm^-1 are not included in vibrational sums, and are
         saved separately to 'lowFreqEntropy', 'lowFreqInternalEnergy'
         and 'lowFreqInternalEnergy'). Note: this does not apply to
         RRHO-corrected quantities.

      Unit:
         cm^-1

      Shape:
         [nLowFrequencies]

   "Thermodynamics%Moments of inertia"
      Type:
         float_array

      Description:
         Moments of inertia.

      Unit:
         a.u.

      Shape:
         [3]

   "Thermodynamics%nLowFrequencies"
      Type:
         int

      Description:
         Number of elements in the array lowFrequencies.

   "Thermodynamics%nTemperatures"
      Type:
         int

      Description:
         Number of temperatures.

   "Thermodynamics%Pressure"
      Type:
         float

      Description:
         Pressure used.

      Unit:
         atm

   "Thermodynamics%RRHOCorrectedHeatCapacity"
      Type:
         float_array

      Description:
         Heat capacity T*S corrected using the 'low vibrational
         frequency free rotor interpolation corrections'.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%RRHOCorrectedInternalEnergy"
      Type:
         float_array

      Description:
         Internal energy T*S corrected using the 'low vibrational
         frequency free rotor interpolation corrections'.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%RRHOCorrectedTS"
      Type:
         float_array

      Description:
         T*S corrected using the 'low vibrational frequency free rotor
         interpolation corrections'.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%Temperature"
      Type:
         float_array

      Description:
         List of temperatures at which properties are calculated.

      Unit:
         a.u.

      Shape:
         [nTemperatures]

   "Thermodynamics%TS"
      Type:
         float_array

      Description:
         T*S, i.e. temperature times entropy.

      Unit:
         a.u.

      Shape:
         [nTemperatures]


TransferIntegrals
-----------------

KF Section: TransferIntegrals
   **Content:** Charge transfer integrals relevant for hole or
   electron mobility calculations. Electronic coupling V (also known
   as effective (generalized) transfer integrals J_eff) V =
   (J-S(e1+e2)/2)/(1-S^2). For electron mobility calculations the
   fragment LUMOs are considered. For hole mobility calculations the
   fragment HOMOs are considered.

   "TransferIntegrals%Determinant"
      Type:
         float

      Description:
         Determinant related to overlap integrals used in ADF
         FOCDFT%electrontransfer.

   "TransferIntegrals%e1(electron)"
      Type:
         float

      Description:
         Site energy LUMO fragment 1.

      Unit:
         hartree

   "TransferIntegrals%e1(hole)"
      Type:
         float

      Description:
         Site energy HOMO fragment 1.

      Unit:
         hartree

   "TransferIntegrals%e2(electron)"
      Type:
         float

      Description:
         Site energy LUMO fragment 2.

      Unit:
         hartree

   "TransferIntegrals%e2(hole)"
      Type:
         float

      Description:
         Site energy HOMO fragment 2.

      Unit:
         hartree

   "TransferIntegrals%Electronic coupling"
      Type:
         float

      Description:
         Electronic coupling calculated by ADF
         FOCDFT%electrontransfer.

   "TransferIntegrals%J(charge recombination 12)"
      Type:
         float

      Description:
         Charge transfer integral HOMO fragment 1 - LUMO fragment 2
         for charge recombination 1-2.

      Unit:
         hartree

   "TransferIntegrals%J(charge recombination 21)"
      Type:
         float

      Description:
         Charge transfer integral LUMO fragment 1 - HOMO fragment 2
         for charge recombination 2-1.

      Unit:
         hartree

   "TransferIntegrals%J(electron)"
      Type:
         float

      Description:
         Charge transfer integral LUMO fragment 1 - LUMO fragment 2
         for electron transfer.

      Unit:
         hartree

   "TransferIntegrals%J(hole)"
      Type:
         float

      Description:
         Charge transfer integral HOMO fragment 1 - HOMO fragment 2
         for hole transfer.

      Unit:
         hartree

   "TransferIntegrals%S(charge recombination 12)"
      Type:
         float

      Description:
         Overlap integral HOMO fragment 1 - LUMO fragment 2 for charge
         recombination 1-2.

   "TransferIntegrals%S(charge recombination 21)"
      Type:
         float

      Description:
         Overlap integral LUMO fragment 1 - HOMO fragment 2 for charge
         recombination 2-1.

   "TransferIntegrals%S(electron)"
      Type:
         float

      Description:
         Overlap integral LUMO fragment 1 - LUMO fragment 2.

   "TransferIntegrals%S(hole)"
      Type:
         float

      Description:
         Overlap integral HOMO fragment 1 - HOMO fragment 2.

   "TransferIntegrals%V(charge recombination 12)"
      Type:
         float

      Description:
         Effective charge transfer integral HOMO fragment 1 - LUMO
         fragment 2 for charge recombination 1-2.

      Unit:
         hartree

   "TransferIntegrals%V(charge recombination 21)"
      Type:
         float

      Description:
         Effective charge transfer integral LUMO fragment 1 - HOMO
         fragment 2 for charge recombination 2-1.

      Unit:
         hartree

   "TransferIntegrals%V(electron)"
      Type:
         float

      Description:
         Effective transfer integral LUMO fragment 1 - LUMO fragment 2
         for electron transfer.

      Unit:
         hartree

   "TransferIntegrals%V(hole)"
      Type:
         float

      Description:
         Effective transfer integral HOMO fragment 1 - HOMO fragment 2
         for hole transfer.

      Unit:
         hartree

   "TransferIntegrals%Vtot(charge recombination 12)"
      Type:
         float

      Description:
         Total electronic coupling for charge recombination 1-2.

      Unit:
         hartree

   "TransferIntegrals%Vtot(charge recombination 21)"
      Type:
         float

      Description:
         Total electronic coupling for charge recombination 2-1.

      Unit:
         hartree

   "TransferIntegrals%Vtot(electron)"
      Type:
         float

      Description:
         Total electronic coupling for electron transfer.

      Unit:
         hartree

   "TransferIntegrals%Vtot(hole)"
      Type:
         float

      Description:
         Total electronic coupling for hole transfer.

      Unit:
         hartree


Vibrations
----------

KF Section: Vibrations
   **Content:** Information related to molecular vibrations.

   "Vibrations%ExcitedStateLifetime"
      Type:
         float

      Description:
         Raman excited state lifetime.

      Unit:
         hartree

   "Vibrations%ForceConstants"
      Type:
         float_array

      Description:
         The force constants of the vibrations.

      Unit:
         hartree/bohr^2

      Shape:
         [nNormalModes]

   "Vibrations%Frequencies[cm-1]"
      Type:
         float_array

      Description:
         The vibrational frequencies of the normal modes.

      Unit:
         cm^-1

      Shape:
         [nNormalModes]

   "Vibrations%Intensities[km/mol]"
      Type:
         float_array

      Description:
         The intensity of the normal modes.

      Unit:
         km/mol

      Shape:
         [nNormalModes]

   "Vibrations%IrReps"
      Type:
         lchar_string_array

      Description:
         Symmetry symbol of the normal mode.

      Shape:
         [nNormalModes]

   "Vibrations%ModesNorm2"
      Type:
         float_array

      Description:
         Norms of the rigid motions.

      Shape:
         [nNormalModes+nRigidModes]

   "Vibrations%ModesNorm2*"
      Type:
         float_array

      Description:
         Norms of the rigid motions (for a given irrep...?).

      Shape:
         [nNormalModes+nRigidModes]

   "Vibrations%nNormalModes"
      Type:
         int

      Description:
         Number of normal modes.

   "Vibrations%NoWeightNormalMode(#)"
      Type:
         float_array

      Description:
         ?.

      Shape:
         [3, Molecule%nAtoms]

   "Vibrations%NoWeightRigidMode(#)"
      Type:
         float_array

      Description:
         ?

      Shape:
         [3, Molecule%nAtoms]

   "Vibrations%nRigidModes"
      Type:
         int

      Description:
         Number of rigid modes.

   "Vibrations%nSemiRigidModes"
      Type:
         int

      Description:
         Number of semi-rigid modes.

   "Vibrations%PVDOS"
      Type:
         float_array

      Description:
         Partial vibrational density of states.

      Values range:
         [0.0, 1.0]

      Shape:
         [nNormalModes, Molecule%nAtoms]

   "Vibrations%RamanDepolRatioLin"
      Type:
         float_array

      Description:
         Raman depol ratio (lin).

      Shape:
         [nNormalModes]

   "Vibrations%RamanDepolRatioNat"
      Type:
         float_array

      Description:
         Raman depol ratio (nat).

      Shape:
         [nNormalModes]

   "Vibrations%RamanIncidentFreq"
      Type:
         float

      Description:
         Raman incident light frequency.

      Unit:
         hartree

   "Vibrations%RamanIntens[A^4/amu]"
      Type:
         float_array

      Description:
         Raman intensities

      Unit:
         A^4/amu

      Shape:
         [nNormalModes]

   "Vibrations%ReducedMasses"
      Type:
         float_array

      Description:
         The reduced masses of the normal modes.

      Unit:
         a.u.

      Values range:
         [0, '\infinity']

      Shape:
         [nNormalModes]

   "Vibrations%RotationalStrength"
      Type:
         float_array

      Description:
         The rotational strength of the normal modes.

      Shape:
         [nNormalModes]

   "Vibrations%TransformationMatrix"
      Type:
         float_array

      Description:
         ?

      Shape:
         [3, Molecule%nAtoms, nNormalModes]

   "Vibrations%VROACIDBackward"
      Type:
         float_array

      Description:
         VROA Circular Intensity Differential: Backward scattering.

      Unit:
         10⁻3

      Shape:
         [nNormalModes]

   "Vibrations%VROACIDDePolarized"
      Type:
         float_array

      Description:
         VROA Circular Intensity Differential: Depolarized scattering.

      Unit:
         10⁻3

      Shape:
         [nNormalModes]

   "Vibrations%VROACIDForward"
      Type:
         float_array

      Description:
         VROA Circular Intensity Differential: Forward scattering.

      Unit:
         10⁻3

      Shape:
         [nNormalModes]

   "Vibrations%VROACIDPolarized"
      Type:
         float_array

      Description:
         VROA Circular Intensity Differential: Polarized scattering.

      Unit:
         10⁻3

      Shape:
         [nNormalModes]

   "Vibrations%VROADeltaBackward"
      Type:
         float_array

      Description:
         VROA Intensity: Backward scattering.

      Unit:
         10⁻3 A^4/amu

      Shape:
         [nNormalModes]

   "Vibrations%VROADeltaDePolarized"
      Type:
         float_array

      Description:
         VROA Intensity: Depolarized scattering.

      Unit:
         10⁻3 A^4/amu

      Shape:
         [nNormalModes]

   "Vibrations%VROADeltaForward"
      Type:
         float_array

      Description:
         VROA Intensity: Forward scattering.

      Unit:
         10⁻3 A^4/amu

      Shape:
         [nNormalModes]

   "Vibrations%VROADeltaPolarized"
      Type:
         float_array

      Description:
         VROA Intensity: Polarized scattering.

      Unit:
         10⁻3 A^4/amu

      Shape:
         [nNormalModes]

   "Vibrations%ZeroPointEnergy"
      Type:
         float

      Description:
         Vibrational zero-point energy.

      Unit:
         hartree


WScell(reciprocal_space)
------------------------

KF Section: WScell(reciprocal_space)
   **Content:** The Wigner Seitz cell of reciprocal space, i.e. the
   Brillouin zone.

   "WScell(reciprocal_space)%boundaries"
      Type:
         float_array

      Description:
         Normal vectors for the boundaries.

      Shape:
         [ndim, nboundaries]

   "WScell(reciprocal_space)%distances"
      Type:
         float_array

      Description:
         Distance to the boundaries.

      Shape:
         [nboundaries]

   "WScell(reciprocal_space)%idVerticesPerBound"
      Type:
         int_array

      Description:
         The indices of the vertices per bound.

      Shape:
         [nvertices, nboundaries]

   "WScell(reciprocal_space)%latticeVectors"
      Type:
         float_array

      Description:
         The lattice vectors.

      Shape:
         [3, :]

   "WScell(reciprocal_space)%nboundaries"
      Type:
         int

      Description:
         The nr. of boundaries for the cell.

   "WScell(reciprocal_space)%ndim"
      Type:
         int

      Description:
         The nr. of lattice vectors spanning the Wigner-Seitz cell.

   "WScell(reciprocal_space)%numVerticesPerBound"
      Type:
         int_array

      Description:
         The nr. of vertices per bound.

      Shape:
         [nboundaries]

   "WScell(reciprocal_space)%nvertices"
      Type:
         int

      Description:
         The nr. of vertices of the cell.

   "WScell(reciprocal_space)%vertices"
      Type:
         float_array

      Description:
         The vertices of the bounds.

      Unit:
         a.u.

      Shape:
         [ndim, nvertices]
