anchor.diff:  type(restart_in_t) :: restart_in
   type(load_bal_in_t) :: load_bal_in
   
  +! [todo] - move to sys_heisenberg_t
  +! When using the Neel singlet trial wavefunction, it is convenient
  +! to store all possible amplitudes in the wavefunction, since
  +! there are relativley few of them and they are expensive to calculate
  +real(dp), allocatable :: neel_singlet_amp(:) ! (nsites/2) + 1
  +
  +! Real amplitudes can be any multiple of 2**(-real_bit_shift). They are
  +! encoded as integers by multiplying them by 2**(real_bit_shift).
  +! [todo] - compile-time parameter
  +integer :: real_bit_shift
  +! real_factor = 2**(real_bit_shift)
  +! [todo] - compile-time parameter
  +integer(int_p) :: real_factor
  +! [todo] - procedures for encoding and decoding the populations.
  +
   end module qmc_data
  
positive.code:     ! Energy of reference determinant.
      real(p) :: H00
  end type reference_t
  
  ! [todo] - move to sys_heisenberg_t
  ! When using the Neel singlet trial wavefunction, it is convenient
  ! to store all possible amplitudes in the wavefunction, since
  ! there are relativley few of them and they are expensive to calculate
  real(dp), allocatable :: neel_singlet_amp(:) ! (nsites/2) + 1
  
  ! --- semi-stochastic ---
  
  
negative.code:     real(p), allocatable :: walker_data(:,:) ! (sampling_size+info_size,walker_length)
  end type walker_t
  
  type spawned_walker_t
      ! Array sizes
      ! If these are < 0, then the values represent the number of MB to be used to
  