blob: c50cd63a39569c6214a8abf46fb73b355b701751 [file] [log] [blame]
c---------------------------------------------------------------------
c---------------------------------------------------------------------
subroutine exchange_6(g,jbeg,jfin1)
c---------------------------------------------------------------------
c---------------------------------------------------------------------
c---------------------------------------------------------------------
c compute the right hand side based on exact solution
c---------------------------------------------------------------------
implicit none
include 'mpinpb.h'
include 'applu.incl'
c---------------------------------------------------------------------
c input parameters
c---------------------------------------------------------------------
double precision g(0:isiz2+1,0:isiz3+1)
integer jbeg, jfin1
c---------------------------------------------------------------------
c local parameters
c---------------------------------------------------------------------
integer k
double precision dum(1024)
integer msgid3
integer STATUS(MPI_STATUS_SIZE)
integer IERROR
c---------------------------------------------------------------------
c communicate in the east and west directions
c---------------------------------------------------------------------
c---------------------------------------------------------------------
c receive from east
c---------------------------------------------------------------------
if (jfin1.eq.ny) then
call MPI_IRECV( dum,
> nz,
> dp_type,
> east,
> from_e,
> MPI_COMM_WORLD,
> msgid3,
> IERROR )
call MPI_WAIT( msgid3, STATUS, IERROR )
do k = 1,nz
g(ny+1,k) = dum(k)
end do
end if
c---------------------------------------------------------------------
c send west
c---------------------------------------------------------------------
if (jbeg.eq.1) then
do k = 1,nz
dum(k) = g(1,k)
end do
call MPI_SEND( dum,
> nz,
> dp_type,
> west,
> from_e,
> MPI_COMM_WORLD,
> IERROR )
end if
return
end