anchor.diff:  real(8) omega
   ! any vector with length less than epslat is considered zero
   real(8) epslat
  -
  -!--------------------------!
  -!     atomic variables     !
  -!--------------------------!
  -! maximum allowed species
  -integer, parameter :: maxspecies=8
  -! maximum allowed atoms per species
  -integer, parameter :: maxatoms=200
  -! number of species
  -integer nspecies
  -! number of atoms for each species
  -integer natoms(maxspecies)
  -! maximum number of atoms over all the species
  -integer natmmax
  -! total number of atoms
  -integer natmtot
  -! index to atoms and species
  -integer idxas(maxatoms,maxspecies)
  -! molecule is .true. is the system is an isolated molecule
  -logical molecule
  -! primcell is .true. if primitive unit cell is to be found automatically
  -logical primcell
  -! atomic positions in lattice coordinates
  -real(8) atposl(3,maxatoms,maxspecies)
  -! atomic positions in Cartesian coordinates
  -real(8) atposc(3,maxatoms,maxspecies)
  -
  -!----------------------------------!
  -!     atomic species variables     !
  -!----------------------------------!
  -! species files path
  -character(256) sppath
  -! species filenames
  -character(256) spfname(maxspecies)
  -! species name
  -character(256) spname(maxspecies)
  -! species symbol
  -character(256) spsymb(maxspecies)
  -! species nuclear charge
  -real(8) spzn(maxspecies)
  -! ptnucl is .true. if the nuclei are to be treated as point charges, if .false.
  -! the nuclei have a finite spherical distribution
  -logical ptnucl
  -! species electronic charge
  -real(8) spze(maxspecies)
  -! species mass
  -real(8) spmass(maxspecies)
  -! smallest radial point for each species
  -real(8) sprmin(maxspecies)
  -! effective infinity for species
  -real(8) sprmax(maxspecies)
  -! number of radial points to effective infinity for each species
  -integer spnr(maxspecies)
  -! maximum spnr over all the species
  -integer spnrmax
  -! maximum allowed states for each species
  -integer, parameter :: maxspst=40
  -! number of states for each species
  -integer spnst(maxspecies)
  -! maximum spnst over all the species
  -integer spnstmax
  -! state principle quantum number for each species
  -integer spn(maxspst,maxspecies)
  -! state l value for each species
  -integer spl(maxspst,maxspecies)
  -! state k value for each species
  -integer spk(maxspst,maxspecies)
  -! spcore is .true. if species state is core
  -logical spcore(maxspst,maxspecies)
  -! state eigenvalue for each species
  -real(8) speval(maxspst,maxspecies)
  -! state occupancy for each species
  -real(8) spocc(maxspst,maxspecies)
  -! species radial mesh
  -real(8), allocatable :: spr(:,:)
  -! species charge density
  -real(8), allocatable :: sprho(:,:)
  -! species self-consistent potential
  -real(8), allocatable :: spvr(:,:)
  -
  +end module
  +module mod_muffin_tin
   !---------------------------------------------------------------!
   !     muffin-tin radial mesh and angular momentum variables     !
   !---------------------------------------------------------------!
   ! radial function integration and differentiation polynomial order
   integer nprad
   ! number of muffin-tin radial points for each species
  -integer nrmt(maxspecies)
  +integer nrmt(_MAXSPECIES_)
   ! maximum nrmt over all the species
   integer nrmtmax
   ! autormt is .true. for automatic determination of muffin-tin radii
  
positive.code: complex(8), allocatable :: zvxir(:)
  complex(8), allocatable :: zbxmt(:,:,:,:)
  complex(8), allocatable :: zbxir(:,:)
  
  !-------------------------!
  !     LDA+U variables     !
  !-------------------------!
  
negative.code: ! maximum allowable local-orbital order
  integer, parameter :: maxlorbord=4
  ! number of local-orbitals
  integer nlorb(_MAXSPECIES_)
  ! maximum nlorb over all species
  integer nlomax
  ! total number of local-orbitals
  integer nlotot
  ! local-orbital order
  integer lorbord(maxlorb,_MAXSPECIES_)
  ! local-orbital angular momentum
  integer lorbl(maxlorb,_MAXSPECIES_)
  ! maximum lorbl over all species
  integer lolmax
  ! (lolmax+1)^2
  integer lolmmax
  ! local-orbital initial energies
  real(8) lorbe0(maxlorbord,maxlorb,_MAXSPECIES_)
  ! local-orbital energies
  real(8), allocatable :: lorbe(:,:,:)
  ! local-orbital derivative order
  integer lorbdm(maxlorbord,maxlorb,_MAXSPECIES_)
  ! lorbve is .true. if the linearisation energies are allowed to vary
  logical lorbve(maxlorbord,maxlorb,_MAXSPECIES_)
  ! local-orbital radial functions
  real(8), allocatable :: lofr(:,:,:,:)
  ! energy step size for locating the band energy
  real(8) deband
  end module
  module mod_eigensystem
  !-------------------------------------------!
  !     overlap and Hamiltonian variables     !
  !-------------------------------------------!
  