anchor.diff:    call h5gclose_f(params_group, error)
     call PTkill(config)
   
  -  call solvent_cells%init(L, 1.d0)
  -
  +  call solvent_cells%init(L, 1.d0, &
  +       has_walls= ( (trim(fluid_wall) == 'SPECULAR') &
  +       .or. (trim(fluid_wall) == 'BOUNCE_BACK')) )
  +
  +  wall_v = 0
     solvent_cells%bc = PERIODIC_BC
     if (trim(fluid_wall) == 'PERIODIC') then
  -     solvent_cells%bc(2) = PERIODIC_BC
  +     solvent_cells%bc(3) = PERIODIC_BC
     else if (trim(fluid_wall) == 'SPECULAR') then
  -     solvent_cells%bc(2) = SPECULAR_BC
  +     solvent_cells%bc(3) = SPECULAR_BC
     else if (trim(fluid_wall) == 'BOUNCE_BACK') then
  -     solvent_cells%bc(2) = BOUNCE_BACK_BC
  +     solvent_cells%bc(3) = BOUNCE_BACK_BC
     else
        error stop 'unknown value for parameter fluid_wall'
     end if
  
positive.code:      end do
       colloids% pos_old = colloids% pos
  
       call simple_mpcd_step(solvent, solvent_cells, state, alpha=mpcd_alpha)
       call compute_cell_wise_max_v
  
       call bulk_reac_timer%tic()
  
negative.code:         co_max = colloids% maximum_displacement()
  
          if ( (co_max >= skin*0.1d0) .or. (so_max >= skin*0.9d0) ) then
             if ((do_ywall) .and. (solvent_cells%bc(3)/=PERIODIC_BC)) then
                call cell_md_pos_zwall(solvent_cells, solvent, (N_MD_steps*i+j - loop_i_last_sort)*dt, md_flag=.false.)
             else
                call cell_md_pos(solvent_cells, solvent, (N_MD_steps*i+j - loop_i_last_sort)*dt, md_flag=.false.)
             end if
  