anchor.diff:          ! MPI TODO: incorporate determinants moving processor...
           D0_proc = assign_particle_processor(f0, basis_length, qmc_spawn%hash_seed, nprocs)
   
  +        ! Initialise D0_pos to be somewhere (anywhere) in the list.
  +        D0_pos = 1
  +
           ! Main fciqmc loop.
           if (parent) call write_fciqmc_report_header()
           call initial_fciqmc_status(sys)
  
positive.code: 
              do icycle = 1, ncycles
  
                  ! Population on reference determinant.
                  ! As we might select the reference determinant multiple times in
                  ! a cycle, the running total of D0_population is incorrect (by
                  ! a factor of the number of times it was selected).
                  ! TODO: use previous position as starting guess and go higher or
                  ! lower...
                  ! MPI TODO: set to be -1 if not on D0_proc.
                  call binary_search(walker_dets, f0, 1, tot_walkers, hit, D0_pos)
  
                  ! MPI TODO: broadcast from D0_proc.
                  D0_normalisation = walker_population(1,D0_pos)
  
                  ! Note that 'death' in CCMC creates particles in the spawned
                  ! list, so the number of deaths not in the spawned list is
                  ! always 0.
                  call init_mc_cycle(nattempts, ndeath)
  
                  ! Maximum possible cluster size that we can generate.
                  ! Usually this is either the number of electrons or the
                  ! truncation level + 2 but we must handle the case where we are
                  ! growing the initial population from a single/small number of
                  ! excitors.
                  max_cluster_size = min(min(sys%nel, truncation_level+2), tot_walkers-1)
  
                  ! Find cumulative population...
                  call cumulative_population(walker_population, tot_walkers, D0_proc, D0_pos, cumulative_abs_pops, tot_abs_pop)
  
negative.code:                                  accumulate_bloom_stats, write_bloom_report
          use calc, only: seed, truncation_level, truncate_space, initiator_approximation
          use ccmc_data, only: cluster_t
          use determinants, only: det_info, alloc_det_info, dealloc_det_info, det_compare
          use excitations, only: excit, get_excitation_level
          use fciqmc_data, only: sampling_size, nreport, ncycles, walker_dets, walker_population,      &
                                 walker_data, proj_energy, proj_energy_cycle, f0, D0_population_cycle, &
  