anchor.diff:  
      end subroutine integrate_omp
   
  -   subroutine compute_force (m, r, a)
  -      implicit none
  -
  -      real(kind=xp), intent(in)  :: m(:)
  -      real(kind=xp), intent(in)  :: r(:,:)
  +   subroutine compute_force (m, r, istart, iend, a)
  +      implicit none
  +
  +      real(kind=xp), intent(in) :: m(:)
  +      real(kind=xp), intent(in) :: r(:,:)
  +      integer,       intent(in) :: istart, iend
   
         real(kind=xp), intent(out) :: a(:,:)
   
  
positive.code:    end subroutine compute_force
  
     subroutine compute_force_omp (m, r, istart, iend, a)
       use omp_lib
  
       implicit none
  
       real(kind=xp), dimension(:),    intent(in)  :: m
       real(kind=xp), dimension(:, :), intent(in)  :: r
       integer,                        intent(in)  :: istart, iend
  
       real(kind=xp), dimension(:, :), intent(out) :: a
  
       real(kind=xp), dimension(3) :: vec, tmp
       integer :: i, j
  
       a = 0._xp
  
       !$OMP PARALLEL PRIVATE(j, vec, tmp)
       !$OMP DO SCHEDULE(RUNTIME)
       do i = istart, iend
  
          do j = 1, npoints
  
             if (i /= j) then
                vec = r(:, i) - r(:, j)
                tmp = G / (norm2(vec)**2 + epsilon2)**1.5_xp
  
                a(:, i) = a(:, i) - tmp*m(j)*vec
             end if
  
          end do
  
  
negative.code:      !$OMP END DO
       !$OMP END PARALLEL
  
       E = Ec + Ep
  
     end subroutine compute_energy_omp_nn_1
  