anchor.diff:              deallocate(r_i)
               deallocate(r_np_i)
               deallocate(r_right)
  -
  -         case(2)
  +            deallocate(m_i)
  +            deallocate(m_np_i)
  +            deallocate(m_right)
  +
  +         case(2) !FIXME: Does not work with different masses
               allocate(a_comm_i(3, N))
               allocate(r_i(3, N))
               ! Iterate over each proc. sending each time the local position
  
positive.code: 
        real(xp), allocatable :: a_comm_i(:, :), a_comm_np_i(:, :), a_right(:, :)
        real(xp), allocatable :: r_i(:, :), r_np_i(:, :), r_right(:, :)
        real(xp), allocatable :: a_reduced(:, :)
  
        integer :: err = 0
  
negative.code: 
     end subroutine compute_force
  
     subroutine compute_force_mpi (m1, r1, istart, iend, m2, r2, jstart, jend, a1, a2)
        implicit none
  
        real(xp), intent(in) :: m1(:), m2(:)
        real(xp), intent(in) :: r1(:, :), r2(:, :)
        integer,  intent(in) :: istart, iend, jstart, jend
  
  