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 subroutine simple_death
  
      subroutine simple_annihilation()
  
          ! Annihilation: merge main and spawned lists.
  
          ! This is especially easy as we store the walker populations for all
          ! determinants for both the main and spawned lists so it just amounts to
          ! adding the two arrays together,
  
          use qmc_data, only: walker_global
  
          walker_global%walker_population = walker_global%walker_population + int(qmc_spawn%sdata, int_p)
  
      end subroutine simple_annihilation
  
  
negative.code:                 ! total.
                  rspawn = rspawn + real(sum(abs(qmc_spawn%sdata(1,:))))/nattempts
  
                  call simple_annihilation(qmc_spawn, psip_list%walker_population)
  
              end do
  
              ! Update the shift
              psip_list%nparticles = real(sum(abs(psip_list%walker_population(1,:))),p)
              if (vary_shift(1)) then
                  call update_shift(qmc_in, shift(1), nparticles_old, nparticles, qmc_in%ncycles)
              end if
  