anchor.diff:  
           ! Allocate main and spawned lists to hold population of walkers.
           ! Don't need to hold determinants, so can just set spawned_size to be 1.
  -        allocate(walker_global%walker_population(1,ndets), stat=ierr)
  -        call check_allocate('walker_global%walker_population',ndets,ierr)
  +        allocate(psip_list%walker_population(1,ndets), stat=ierr)
  +        call check_allocate('psip_list%walker_population',ndets,ierr)
           allocate(qmc_spawn%sdata(1,ndets), stat=ierr)
           call check_allocate('qmc_spawn%sdata',ndets,ierr)
           ! Zero these.
  -        walker_global%walker_population = 0_int_p
  +        psip_list%walker_population = 0_int_p
           qmc_spawn%sdata = 0_int_s
   
           allocate(shift(1), stat=ierr)
  
positive.code:             end if
              reference%f0 = dets(:,ref_det)
              call decode_det(sys%basis, reference%f0, reference%occ_list0)
              walker_global%walker_population(1,ref_det) = nint(qmc_in%D0_population)
          end if
  
          write (6,'(1X,a29,1X)',advance='no') 'Reference determinant, |D0> ='
  
negative.code: 
  contains
  
      subroutine init_simple_fciqmc(sys, qmc_in, reference, restart, ndets, dets, ref_det, psip_list)
  
          ! Initialisation for the simple fciqmc algorithm.
          ! Setup the list of determinants in the space, calculate the relevant
  