anchor.diff:  
   !--- Type for a ground state RDM ---
   type dmqmc_ground_rdm_t
  +    ! [todo] - rename to 'rdm'.
       ! This stores the reduces matrix, which is slowly accumulated over time
       ! (on each processor).
       real(p), allocatable :: reduced_density_matrix(:,:)
  
positive.code:     ! [review] - JSS: would a better default be true? (Check works with Fionn's new code)
      logical :: half_density_matrix = .false.
  
  end type dmqmc_in_t
  
  type dmqmc_rdm_in_t
  
      ! If true then the reduced density matricies will be calulated for the 'A'
      ! subsystems specified by the user.
      logical :: doing_reduced_dm = .false.
  
negative.code:     real(p) :: trace
  end type dmqmc_ground_rdm_t
  
  !--- Type for weighted sampling parameters ---
  type dmqmc_weighted_sampling_t
      ! [todo] - remove dmqmc_ stem.
      ! This holds the factors by which the populations on each excitation level
      ! (from 0 to max_number_excitations) are reduced, relative to DMQMC
      ! without any importance sampling.
      real(p), allocatable :: dmqmc_accumulated_probs(:) ! (max_number_excitations + 1)
      ! The value of dmqmc_accumulated_probs on the last report cycle.
      real(p), allocatable :: dmqmc_accumulated_probs_old(:) ! (max_number_excitations + 1)
  
      ! If varying the weights then this array holds the factors by which the
      ! weights are changed each iteration.
      real(dp), allocatable :: weight_altering_factors(:)
  end type dmqmc_weighted_sampling_t
  
  