type subspace_in
! Just the Hartree-Fock determinant.
logical :: tHF = .false.
! Use the most populated states in CurrentDets.
logical :: tPops = .false.
! This logical variable has been introduced to prevent inconsistency
! of POPS-CORE-... keywords.
logical :: tPopsCore = .false.
! Automatically choosing 10% of the total initiator space, if this number
! is larger than 50000, then use npops = 50000
logical :: tPopsAuto = .false.
! Use a given proportion of initiator determinants as core space.
logical :: tPopsProportion = .false.
! Read states from a file.
logical :: tRead = .false.
! Use the space of all single and double (+triple) excitations from the
! Hartree-Fock determinant (and also include the HF determinant).
logical :: tDoubles = .false.
logical :: tTriples = .false.
! Use all connections to the Hartree-Fock.
logical :: tHFConn = .false.
! Use a CAS space.
logical :: tCAS = .false.
! Use a RAS space.
logical :: tRAS = .false.
! Use the determinants with the largest amplitudes in the MP1
! wave function.
logical :: tMP1 = .false.
! Use the iterative approach described by Petruzielo et. al. (PRL 109, 230201).
logical :: tOptimised = .false.
! Like the optimised space, but instead of diagonalising the space
! each iteration to find which states to keep, we keep the states
! with the lowest energies.
logical :: tLowE = .false.
! Actually use the space of all connections to the chosen space
logical :: tAllConnCore = .false.
! Use the entire FCI space.
logical :: tFCI = .false.
! Use the entire FCI space in Heisenberg model calculations.
logical :: tHeisenbergFCI = .false.
! When using a CAS deterministic space, these integers store the number of orbitals above and below the Fermi energy to
! include in the CAS active space (the occupied and virtual orbitals).
integer :: occ_cas
integer :: virt_cas
! Optimised space data for generating a semi-stohastic space.
type(opt_space_data) :: opt_data
! Paremeters for RAS space calculations.
type(ras_parameters) :: ras
! If this is true then set a limit on the maximum deterministic space size.
logical :: tLimitSpace = .false.
! This is maximum number of elements in the deterministic space, if tLimitDetermSpace is true.
integer :: max_size = 0
! The number of states to use from a POPSFILE for the core space.
integer :: npops = 0
! This proportion is multiplied by the number of initiator determinants to obtain npops.
real(dp) :: npops_proportion
! If true then the space generated from the pops-core option may be very
! slightly unoptimal, but should be very good, and sometimes exactly the
! same as when this logical is false. Only applies to the pops-* options.
logical :: tApproxSpace = .false.
! if tApproxSpace is true, then nApproxSpace times target pops-core space is the size of the array
! kept on each processor, 1 =< nApproxSpace =< nProcessors. The larger nApproxSpace, the more
! memory is consumed and the slower (but more accurate) is the semi-stochastic initialisation
! (see subroutine generate_space_most_populated).
integer :: nApproxSpace = 10
! When using the tMP1Core option, this specifies how many determinants to keep.
integer :: mp1_ndets = 0
character(255) :: read_filename
end type subspace_in