anchor.diff:         comm(12)=12
       endif
   
  -    if (southwest.ne.MPI_PROC_NULL) then
  -       sendSW(1,:,:) = a2D(1:nh,1:nh)  
  -       call MPI_ISend(                                      &
  -            sendSW,nz*nh*nh,MPI_DOUBLE_PRECISION,southwest, &
  -            swnetag,MPI_COMM_WORLD,req(13),ierr)
  -       comm(13)=13
  -    endif
  -
  -    if (southeast.ne.MPI_PROC_NULL) then
  -       sendSE(1,:,:) = a2D(1:nh,nx-nh+1:nx)  
  -       call MPI_ISend(                                      &
  -            sendSE,nz*nh*nh,MPI_DOUBLE_PRECISION,southeast, &
  -            senwtag,MPI_COMM_WORLD,req(14),ierr)
  -       comm(14)=14
  -    endif
  -
  -    if (northeast.ne.MPI_PROC_NULL) then
  -       sendNE(1,:,:) = a2D(ny-nh+1:ny,nx-nh+1:nx) 
  -       call MPI_ISend(                                      &
  -            sendNE,nz*nh*nh,MPI_DOUBLE_PRECISION,northeast, &
  -            neswtag,MPI_COMM_WORLD,req(15),ierr)
  -       comm(15)=15
  -    endif
  -
  -    if (northwest.ne.MPI_PROC_NULL) then
  -       sendNW(1,:,:) = a2D(ny-nh+1:ny,1:nh)
  -       call MPI_ISend(                                      &
  -            sendNW,nz*nh*nh,MPI_DOUBLE_PRECISION,northwest, &
  -            nwsetag,MPI_COMM_WORLD,req(16),ierr)
  -       comm(16)=16
  -    endif
  +!!$    if (southwest.ne.MPI_PROC_NULL) then
  +!!$       sendSW(1,:,:) = a2D(1:nh,1:nh)  
  +!!$       call MPI_ISend(                                      &
  +!!$            sendSW,nz*nh*nh,MPI_DOUBLE_PRECISION,southwest, &
  +!!$            swnetag,MPI_COMM_WORLD,req(13),ierr)
  +!!$       comm(13)=13
  +!!$    endif
  +!!$
  +!!$    if (southeast.ne.MPI_PROC_NULL) then
  +!!$       sendSE(1,:,:) = a2D(1:nh,nx-nh+1:nx)  
  +!!$       call MPI_ISend(                                      &
  +!!$            sendSE,nz*nh*nh,MPI_DOUBLE_PRECISION,southeast, &
  +!!$            senwtag,MPI_COMM_WORLD,req(14),ierr)
  +!!$       comm(14)=14
  +!!$    endif
  +!!$
  +!!$    if (northeast.ne.MPI_PROC_NULL) then
  +!!$       sendNE(1,:,:) = a2D(ny-nh+1:ny,nx-nh+1:nx) 
  +!!$       call MPI_ISend(                                      &
  +!!$            sendNE,nz*nh*nh,MPI_DOUBLE_PRECISION,northeast, &
  +!!$            neswtag,MPI_COMM_WORLD,req(15),ierr)
  +!!$       comm(15)=15
  +!!$    endif
  +!!$
  +!!$    if (northwest.ne.MPI_PROC_NULL) then
  +!!$       sendNW(1,:,:) = a2D(ny-nh+1:ny,1:nh)
  +!!$       call MPI_ISend(                                      &
  +!!$            sendNW,nz*nh*nh,MPI_DOUBLE_PRECISION,northwest, &
  +!!$            nwsetag,MPI_COMM_WORLD,req(16),ierr)
  +!!$       comm(16)=16
  +!!$    endif
   
       !- Wait for completion of receive and fill ghost points
   
  
positive.code: 
      real(kind=rp), dimension(:,:,:), pointer :: sendN,recvN,sendS,recvS
      real(kind=rp), dimension(:,:,:), pointer :: sendE,recvE,sendW,recvW
      real(kind=rp), dimension(:,:,:), pointer :: sendSW,recvSW,sendSE,recvSE
      real(kind=rp), dimension(:,:,:), pointer :: sendNW,recvNW,sendNE,recvNE
  
      call tic(lev,'fill_halo_2D_nb')
  
  
negative.code:        elseif (indx.eq.4) then ! west
            a2D(1:ny,1-nh:0) = recvW(1,:,:)
  
  !!$       elseif (indx.eq.5) then ! southwest
  !!$          a2D(1-nh:0,1-nh:0) = recvSW(1,:,:)
  !!$
  !!$       elseif (indx.eq.6) then ! southeast
  !!$          a2D(1-nh:0,nx+1:nx+nh) = recvSE(1,:,:)
  !!$
  !!$       elseif (indx.eq.7) then ! northeast
  !!$          a2D(ny+1:ny+nh,nx+1:nx+nh) = recvNE(1,:,:)
  !!$
  !!$       elseif (indx.eq.8) then ! northwest
  !!$          a2D(ny+1:ny+nh,1-nh:0) = recvNW(1,:,:)
         endif
  
      enddo      !<-- while  
  