anchor.diff:          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(2)/=PERIODIC_BC)) then
  -              call cell_md_pos_ywall(solvent_cells, solvent, (N_MD_steps*i+j - loop_i_last_sort)*dt, md_flag=.false.)
  +           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
  
positive.code:   type(thermo_t) :: thermo_data
    double precision :: temperature, kin_e
    double precision :: v_com(3), x(3)
    double precision :: tmp_mass
    type(particle_system_io_t) :: janus_io
    type(particle_system_io_t) :: solvent_io
  
negative.code:   do_ywall = PTread_l(config, 'do_ywall', loc=params_group)
    fluid_wall = 'PERIODIC'
    if (do_ywall) then
       wall_sigma(3,:) = PTread_d(config, 'wall_sigma', loc=params_group)
       wall_shift(3) = PTread_d(config, 'wall_shift', loc=params_group)
       wall_epsilon = PTread_d(config, 'wall_epsilon', loc=params_group)
       call walls_colloid_lj% init(wall_epsilon, &
            wall_sigma, 3.d0**(1.d0/6.d0)*wall_sigma, wall_shift)
  