anchor.diff:  ! operator.  This is only done if no restart file is used *and* |D_0> is not
   ! a closed shell determinant.
   logical :: init_spin_inv_D0 = .false.
  -
  -! Type for storing parallel information: see calc for description.
  -! [review] - JSS: not an input option.
  -type(parallel_t) :: par_info
  +! Factor by which the population on a determinant must exceed the reference
  +! determinant's population in order to be accepted as the new reference
  +! determinant.
  +real(p) :: ref_det_factor = 1.50_p
   
   ! Are we doing a timestep search
   logical :: tau_search = .false.
   
   ! [review] - FDM: End of suggestions for move to calc.
   
  +! Restart data.
  +! [todo] - return from read_restart_hdf5.
  +integer :: mc_cycles_done = 0
  +
  +! Type for storing parallel information: see calc for description.
  +! [review] - JSS: is calc the best place for parallel_t?
  +! [review] - JSS: should go in a qmc_state_t object (which currently doesn't exist)?
  +type(parallel_t) :: par_info
  +
   !--- Reference determinant ---
  +
   type reference_t
       ! Bit string of reference determinant.
       integer(i0), allocatable, target :: f0(:)
  
positive.code:     integer(i0), allocatable :: end1(:), end2(:)
  end type rdm_t
  
  ! [review] - NSB: This is actually constant, so I've moved here (for now) and
  ! [review] - NSB: changed it to a parameter. This can probably be global data
  ! [review] - NSB: since it is constant.
  ! [review] - JSS: Applicable only to Heisenberg model?  If so, please can it have a more specific name?
  ! [review] - NSB: I don't think so, its a matrix used in calculating concurrence
  ! [review] - NSB: which is more general (in theory at least)
  ! This will store the 4x4 flip spin matrix \sigma_y \otimes \sigma_y if
  ! concurrence is to be calculated.
  real(p), parameter :: flip_spin_matrix(4,4) = (\ 0.0_p,  0.0_p, 0.0_p, -1.0_p,  &
  
negative.code:     real(p), allocatable, target :: walker_data(:,:) ! (sampling_size+info_size,walker_length)
      ! 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
  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
      ! store the main walker and spawned walker data respectively.
      integer :: spawned_walker_length
      ! The minimum amplitude of a spawning event which can be added to
      ! the spawned list.
      ! If real amplitudes are not used then the following default will be
      ! overwritten by 0.0_p. In this case it will effectively not be used and all
      ! spawnings events will be integers.
      ! [review] - JSS: do we need this?  It's repeated in spawn_t as well...
      ! [review] - JSS: really an input parameter
      real(p) :: spawn_cutoff = 0.01_p
      ! Walker information: spawned list.
      type(spawn_t) :: qmc_spawn
      ! Walker information: received list for non-blocking communications.
      type(spawn_t) :: received_list
      ! Rate of spawning.  This is a running total over MC cycles on each processor
      ! until it is summed over processors and averaged over cycles in
      ! update_energy_estimators.
  