anchor.diff:                                                  ccmc_in%even_selection)
                       call zero_ps_stats(ps_stats, qs%excit_gen_data%p_single_double%rep_accum%overflow_loc)
   
  +                    ! Initialise reduction variables outside the parallel region. (ndeath was initialised in init_mc_cycle above)
  +                    ! We need to count spawning attempts differently as there may be multiple spawns per cluster.
  +                    nattempts_spawn = 0
                       proj_energy_cycle = cmplx(0.0, 0.0, p)
                       D0_population_cycle = cmplx(0.0, 0.0, p)
  +                    ndeath_nc = 0
  +                    nparticles_change = 0.0_p
   
                       ! OpenMP chunk size determined completely empirically from a single
                       ! test.  Please feel free to improve...
  
positive.code:                             end if
  
                          ! For OpenMP scalability, have this test inside a single loop rather
                          ! than attempt to parallelise over three separate loops.
                          else if (iattempt <= selection_data%nsingle_excitors + selection_data%nstochastic_clusters) then
                              if (ccmc_in%even_selection) then
                                  call select_cluster_truncated(rng(it), sys, qs%psip_list, qs%ref%f0, &
                                                              ccmc_in%linked, selection_data%nstochastic_clusters, D0_normalisation, &
  
negative.code:                     !$omp shared(rng, cumulative_abs_real_pops, tot_abs_real_pop,  &
                      !$omp        max_cluster_size, contrib, D0_normalisation, D0_pos, rdm,    &
                      !$omp        qs, sys, bloom_stats, min_cluster_size, ref_det,             &
                      !$omp        selection_data, ex_lvl_dist, ccmc_in, nprocs, ms_stats, &
                      !$omp        ps_stats, qmc_in, load_bal_in, logging_info) &
                      !$omp reduction(+:D0_population_cycle,proj_energy_cycle,nattempts_spawn,ndeath,nparticles_change,ndeath_nc)
  
                      it = get_thread_id()
                      iexcip_pos = 0
                      seen_D0 = .false.
                      
                      !$omp do schedule(dynamic,200) 
                      do iattempt = 1, selection_data%nsingle_excitors + selection_data%nstochastic_clusters
                          if (iattempt <= selection_data%nsingle_excitors) then
                              ! As noncomposite clusters can't be above truncation level or linked-only all can accumulate +
                              ! propagate. Only need to check not selecting the reference as we treat it separately.
  