anchor.diff:       ! halo regions
   
        ! x-direction
  +
        sxl(1:jm) = state(1,  1:jm, nc)
        sxr(1:jm) = state(im, 1:jm, nc)
  -     call mpi_irecv(rxl, jm, MPI_LOGICAL, my_left, my_tag, comm, req(1), ifail)
  -     call mpi_irecv(rxr, jm, MPI_LOGICAL, my_right, my_tag, comm, req(2), ifail)
  -     call mpi_issend(sxl, jm, MPI_LOGICAL, my_left, my_tag, comm, req(3), ifail)
  -     call mpi_issend(sxr, jm, MPI_LOGICAL, my_right, my_tag, comm, req(4), ifail)
  +
  +     call mpi_irecv(rxr, jm, MPI_LOGICAL, my_right, my_tagl, comm, req(1), ifail)
  +     call mpi_irecv(rxl, jm, MPI_LOGICAL, my_left, my_tagr, comm, req(2), ifail)
  +
  +     call mpi_issend(sxl, jm, MPI_LOGICAL, my_left, my_tagl, comm, req(3), ifail)
  +     call mpi_issend(sxr, jm, MPI_LOGICAL, my_right, my_tagr, comm, req(4), ifail)
        call mpi_waitall(4, req, status, ifail)
   
  -     state(0,  1:jm, nc) = rxl(1:jm)
  -     state(im, 1:jm, nc) = rxr(1:jm)
  +     state(0,    1:jm, nc) = rxl(1:jm)
  +     state(imp1, 1:jm, nc) = rxr(1:jm)
   
        ! y-direction
        state(0:imp1, 0,    nc) = state(0:imp1, jm, nc)
  
positive.code: 
       call mpi_reduce(lcount, ncount, 1, MPI_INTEGER, MPI_SUM, 0, comm)
  
       if (rank == 0) then
          write (unit = *, fmt = '(a,i3,i3)') "Step, count: ", n, ncount 
          write (unit = *, fmt = *)
       end if
  
       ! swap time level pointers
  
negative.code:   logical, dimension(ndims) :: periods
  
    ! MPI messages
    integer, parameter :: my_tagl = 9999
    integer, parameter :: my_tagr = 9998
    integer, dimension(4) :: req
    integer, dimension(MPI_STATUS_SIZE, 4) :: status
  
  