anchor.diff:    double precision :: g(3) !gravity
     logical :: fixed, on_track, stopped, N_in_front, dimer, N_type
     logical :: store_rho_xy
  -  integer :: bufferlength
  +  integer :: buffer_length
     double precision :: max_speed, z, Lz
     integer :: steps_fixed
     type(args_t) :: args
  
positive.code: 
    g = 0
    g(1) = PTread_d(config, 'g', loc=params_group)
    bufferlength = PTread_i(config, 'buffer_length', loc=params_group)
    max_speed = PTread_d(config,'max_speed', loc=params_group)
    prob = PTread_d(config,'probability', loc=params_group)
    alpha = PTread_d(config,'alpha', loc=params_group)
  
negative.code:      do k = 1, particles% Nmax
          s = particles% species(k)
          if (s <= 0) continue
          if ((particles% pos(1,k) > 0) .and. (particles% pos(1,k) < buffer_length)) then
             if (particles% pos(2,k) < edges(2)/2.d0) then
                bulk_change(s) = bulk_change(s) - 1
                particles% species(k) = 1
  