anchor.diff:        integer :: i_to_translate(1), i_translated(1)
   
         integer :: istart, iend
  -
  -!      integer :: jstart, jend
   
         a = 0._xp
   
  
positive.code:             allocate(a_comm_i(3, N))
              allocate(r_i(3, N))
              ! Iterate over each proc. sending each time the local position
              ! if (rank == MASTER) then
              !    print*, ''
              !    print*, ''
              !    print*, ''
              !    print*, ''
              !    print*, ''
              !    print*, ''
              ! end if
              do i = 0, nprocs - 1
  
                 if (i == rank) then
  
negative.code:             allocate(r_i(3, s))
              allocate(m_i(s))
  
              do i = 0, nprocs-1
  
                 do j = 1, memory_factor
  
                    if (i == rank) then
                       r_i(:, 1:s) = r(:, (j-1)*s+1:j*s)
                    end if
  
                    call mpi_bcast(r_i, 3*s, MPI_REAL_XP, i, MPI_COMM_WORLD, err)
                    a_comm_i = 0._xp
                    do k = 1, memory_factor
  
  