anchor.diff:  
     end subroutine compute_rho_xy
   
  +  subroutine write_correlator_block(loc, name, c, step, time)
  +    integer(HID_T), intent(inout) :: loc
  +    character(len=*), intent(in) :: name
  +    type(correlator_t), intent(in) :: c
  +    integer, intent(in) :: step
  +    double precision, intent(in) :: time
  +
  +    integer(HID_T) :: group
  +    integer :: error
  +
  +    call h5gcreate_f(loc, name, group, error)
  +    call h5md_write_dataset(group, 'value', c%correlation)
  +    call h5md_write_dataset(group, 'count', c%count)
  +    call h5md_write_dataset(group, 'step', step)
  +    call h5md_write_dataset(group, 'time', time)
  +    call h5gclose_f(group, error)
  +
  +  end subroutine write_correlator_block
  +
   end program chemotactic_cell
  
positive.code: 
    call h5gcreate_f(hfile%id, 'block_correlators', correlator_group, error)
  
    call h5gcreate_f(correlator_group, 'mean_square_displacement', group, error)
    call h5md_write_dataset(group, 'value', msd%correlation)
    call h5md_write_dataset(group, 'count', msd%count)
    call h5md_write_dataset(group, 'step', colloid_sampling)
    call h5md_write_dataset(group, 'time', colloid_sampling*dt)
    call h5gclose_f(group, error)
  
    call h5gcreate_f(correlator_group, 'orientation_autocorrelation', group, error)
    call h5md_write_dataset(group, 'value', oacf%correlation)
    call h5md_write_dataset(group, 'count', oacf%count)
    call h5md_write_dataset(group, 'step', colloid_sampling)
    call h5md_write_dataset(group, 'time', colloid_sampling*dt)
    call h5gclose_f(group, error)
  
    call h5gcreate_f(correlator_group, 'planar_angular_velocity', group, error)
    call h5md_write_dataset(group, 'value', omega_acf%correlation)
    call h5md_write_dataset(group, 'count', omega_acf%count)
    call h5md_write_dataset(group, 'step', colloid_sampling)
    call h5md_write_dataset(group, 'time', colloid_sampling*dt)
    call h5gclose_f(group, error)
  
    call h5gcreate_f(correlator_group, 'velocity_autocorrelation', group, error)
    call h5md_write_dataset(group, 'value', vacf%correlation)
    call h5md_write_dataset(group, 'count', vacf%count)
    call h5md_write_dataset(group, 'step', 1)
    call h5md_write_dataset(group, 'time', dt)
    call h5gclose_f(group, error)
  
    call h5gclose_f(correlator_group, error)
  
  
negative.code:              colloids%pos(:,2)+colloids%image(:,2)*solvent_cells%edges)
          unit_r = rel_pos(colloids%pos(:,1), colloids%pos(:,2), solvent_cells%edges)
          norm_xy = norm2(unit_r(1:2))
          unit_r = unit_r / norm2(unit_r)
          rel_v = colloids%vel(:,1)-colloids%vel(:,2)
          omega = cross(unit_r, rel_v) / norm_xy**2
  
          if (sampling) then
             v_com = sum(colloids%vel, dim=2)/2
             parallel_v = dot_product(v_com, unit_r) * unit_r
             transverse_v = v_com - parallel_v
             call vacf%add((i-i_release)*N_MD_steps+j-1, correlate_block_dot, &
                  xvec=v_com)
             call parallel_vacf%add((i-i_release)*N_MD_steps+j-1, correlate_block_dot, &
                  xvec=parallel_v)
             call transverse_vacf%add((i-i_release)*N_MD_steps+j-1, correlate_block_dot, &
                  xvec=transverse_v)
             call omega_el%append(omega(3))
          end if
  
  