anchor.diff:          end if
   
           call buffer_timer%tic()
  -        call buffer_particles(solvent,solvent_cells% edges(:), bufferlength)
  +        call buffer_particles(solvent,solvent_cells% edges(:), bufferlength+randomisation_length)
  +        call randomize_particles(solvent, solvent_cells% edges(:), randomisation_length, max_speed, T)
           call buffer_timer%tac()
   
           call switch(solvent% force, solvent% force_old)
  
positive.code:   colloids% species(2) = 2
    colloids% vel = 0
  
    do i=1, solvent% Nmax
       solvent% vel(1,i) = threefry_normal(state(1))
       solvent% vel(2,i) = threefry_normal(state(1))
       solvent% vel(3,i) = threefry_normal(state(1))
    end do
    solvent%vel = solvent%vel*sqrt(T)
    v_com = sum(solvent% vel, dim=2) / size(solvent% vel, dim=2)
    solvent% vel = solvent% vel - spread(v_com, dim=2, ncopies=size(solvent% vel, dim=2))
  
    solvent% force = 0
    solvent% species = 1
  
negative.code:         end if  
     
          if (on_track) then 
                if ((colloids% pos(1,1) > (bufferlength+randomisation_length+sigma_C)) &
                .and. (colloids% pos(1,2) > (bufferlength+randomisation_length+sigma_N))) then
                   on_track = .false.
                   write(*,*) 'on_track', on_track
                end if
  