anchor.diff:              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
  
positive.code:             allocate(r_i(3, s))
              allocate(m_i(s))
  
  
              ! print*, rank, 'A'
              do i = 0, nprocs-1
  
                 ! print*, rank, 'B'
  
                 do j = 1, memory_factor
                    ! print*, rank, 'C', i, j, s
                    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
  
  
negative.code:       integer :: i_to_translate(1), i_translated(1)
  
        integer :: istart, iend
  
        a = 0._xp
  
  