type en_pert_t
! The number of integers available to store signs, for each
! RDM entry in the elements array.
integer :: sign_length = 0
! Array which holds the RDM elements.
integer(n_int), allocatable :: dets(:, :)
! Hash table to the rdm array.
type(ll_node), pointer :: hash_table(:)
! The allocated size of the elements array.
integer :: max_ndets = 0
! The number of determinants contributing to the perturbation
! currently stored in the dets array.
integer :: ndets = 0
! The number of determinants contributing to the perturbation
! currently stored in the dets array, across all processors.
integer :: ndets_all = 0
! Maximum number of unique hashes available in hash_table (not the
! number of currently unused ones, but the total number, i.e. the
! length of the hash_table array).
integer :: nhashes = 0
end type en_pert_t