anchor.diff:        real(kind = xp), intent(in)  :: r(:,:)
         real(kind = xp), intent(out) :: v(:,:)
   
  -      real(kind = xp) :: omega
  -
  -      omega = 0.5_xp / pi
  -      v(1, :) =   omega * r(2, :)
  -      v(2, :) = - omega * r(1, :)
  +      v(1, :) =   r(2, :)
  +      v(2, :) = - r(1, :)
         v(3, :) = 0._xp
   
      end subroutine initial_speeds
  
positive.code:      a = 0._xp
  
       !$OMP PARALLEL PRIVATE(j, vec, tmp)
       !$OMP DO SCHEDULE(GUIDED)
       do i = istart, iend
  
          do j = 1, npoints
  
negative.code: 
       real(kind=xp), intent(out) :: Ec, Ep, E
  
       integer :: i, j, k
  
       Ec = 0._xp
       Ep = 0._xp
  
       !$OMP PARALLEL REDUCTION(+:Ec,Ep) PRIVATE(j,k)
       !$OMP DO SCHEDULE(RUNTIME)
       do i = 1, npoints/2
  
          Ec = Ec + 0.5_xp * m(i) * norm2(v(:,i))**2
  
          do j = 1, i-1
  
             Ep = Ep -  G * m(j) * m(i) / sqrt(norm2(r(:, i) - r(:, j))**2 + epsilon2)
  
          end do
  
          k = npoints + 1 - i
          Ec = Ec + 0.5_xp * m(k) * norm2(v(:,k))**2
  
          do j = 1, k-1
  
             Ep = Ep -  G * m(j) * m(k) / sqrt(norm2(r(:, k) - r(:, j))**2 + epsilon2)
  
          end do
  
  