type rdm_estimates_t
! How many RDMs are being sampled.
integer :: nrdms
integer :: nrdms_standard
integer :: nrdms_transition
! Unit of the separate file to which RDM estimates (such as energy and
! spin^2) are output.
integer :: write_unit
! The following arrays have length nrdms - one estimate is held for
! each RDM.
! Arrays used to hold estimates from the *total* RDM (i.e. the array
! averaged over the whole RDM sampling period).
real(dp), allocatable :: trace(:)
real(dp), allocatable :: norm(:)
real(dp), allocatable :: energy_1_num(:)
real(dp), allocatable :: energy_2_num(:)
real(dp), allocatable :: energy_num(:)
real(dp), allocatable :: spin_num(:)
real(dp), allocatable :: property(:, :)
real(dp), allocatable :: energy_pert(:)
real(dp), allocatable :: energy_pert_hf(:)
! Arrays used to hold estimates from the RDM over the *previous
! sampling block only*.
real(dp), allocatable :: trace_inst(:)
real(dp), allocatable :: norm_inst(:)
real(dp), allocatable :: energy_1_num_inst(:)
real(dp), allocatable :: energy_2_num_inst(:)
real(dp), allocatable :: energy_num_inst(:)
real(dp), allocatable :: spin_num_inst(:)
real(dp), allocatable :: property_inst(:, :)
real(dp), allocatable :: energy_pert_inst(:)
real(dp), allocatable :: energy_pert_hf_inst(:)
! Hermiticity errors, i.e. \Gamma_{ij,kl} - \Gamma_{kl,ij}^*.
! The max_* array holds the maximum such error.
! The sum_* array holds the sum of all such errors.
real(dp), allocatable :: max_error_herm(:)
real(dp), allocatable :: sum_error_herm(:)
end type rdm_estimates_t