--- /dev/null
+
+c---------------------------------------------------------------------
+c---------------------------------------------------------------------
+
+ subroutine exchange_1( g,k,iex )
+
+c---------------------------------------------------------------------
+c---------------------------------------------------------------------
+
+
+ implicit none
+
+ include 'mpinpb.h'
+ include 'applu.incl'
+
+ double precision g(5,-1:isiz1+2,-1:isiz2+2,isiz3)
+ integer k
+ integer iex
+ integer i, j
+ double precision dum(5,isiz1+isiz2), dum1(5,isiz1+isiz2)
+
+ integer STATUS(MPI_STATUS_SIZE)
+ integer IERROR
+
+
+
+ if( iex .eq. 0 ) then
+
+ if( north .ne. -1 ) then
+ call MPI_RECV( dum1(1,jst),
+ > 5*(jend-jst+1),
+ > dp_type,
+ > north,
+ > from_n,
+ > MPI_COMM_WORLD,
+ > status,
+ > IERROR )
+ do j=jst,jend
+ g(1,0,j,k) = dum1(1,j)
+ g(2,0,j,k) = dum1(2,j)
+ g(3,0,j,k) = dum1(3,j)
+ g(4,0,j,k) = dum1(4,j)
+ g(5,0,j,k) = dum1(5,j)
+ enddo
+ endif
+
+ if( west .ne. -1 ) then
+ call MPI_RECV( dum1(1,ist),
+ > 5*(iend-ist+1),
+ > dp_type,
+ > west,
+ > from_w,
+ > MPI_COMM_WORLD,
+ > status,
+ > IERROR )
+ do i=ist,iend
+ g(1,i,0,k) = dum1(1,i)
+ g(2,i,0,k) = dum1(2,i)
+ g(3,i,0,k) = dum1(3,i)
+ g(4,i,0,k) = dum1(4,i)
+ g(5,i,0,k) = dum1(5,i)
+ enddo
+ endif
+
+ else if( iex .eq. 1 ) then
+
+ if( south .ne. -1 ) then
+ call MPI_RECV( dum1(1,jst),
+ > 5*(jend-jst+1),
+ > dp_type,
+ > south,
+ > from_s,
+ > MPI_COMM_WORLD,
+ > status,
+ > IERROR )
+ do j=jst,jend
+ g(1,nx+1,j,k) = dum1(1,j)
+ g(2,nx+1,j,k) = dum1(2,j)
+ g(3,nx+1,j,k) = dum1(3,j)
+ g(4,nx+1,j,k) = dum1(4,j)
+ g(5,nx+1,j,k) = dum1(5,j)
+ enddo
+ endif
+
+ if( east .ne. -1 ) then
+ call MPI_RECV( dum1(1,ist),
+ > 5*(iend-ist+1),
+ > dp_type,
+ > east,
+ > from_e,
+ > MPI_COMM_WORLD,
+ > status,
+ > IERROR )
+ do i=ist,iend
+ g(1,i,ny+1,k) = dum1(1,i)
+ g(2,i,ny+1,k) = dum1(2,i)
+ g(3,i,ny+1,k) = dum1(3,i)
+ g(4,i,ny+1,k) = dum1(4,i)
+ g(5,i,ny+1,k) = dum1(5,i)
+ enddo
+ endif
+
+ else if( iex .eq. 2 ) then
+
+ if( south .ne. -1 ) then
+ do j=jst,jend
+ dum(1,j) = g(1,nx,j,k)
+ dum(2,j) = g(2,nx,j,k)
+ dum(3,j) = g(3,nx,j,k)
+ dum(4,j) = g(4,nx,j,k)
+ dum(5,j) = g(5,nx,j,k)
+ enddo
+ call MPI_SEND( dum(1,jst),
+ > 5*(jend-jst+1),
+ > dp_type,
+ > south,
+ > from_n,
+ > MPI_COMM_WORLD,
+ > IERROR )
+ endif
+
+ if( east .ne. -1 ) then
+ do i=ist,iend
+ dum(1,i) = g(1,i,ny,k)
+ dum(2,i) = g(2,i,ny,k)
+ dum(3,i) = g(3,i,ny,k)
+ dum(4,i) = g(4,i,ny,k)
+ dum(5,i) = g(5,i,ny,k)
+ enddo
+ call MPI_SEND( dum(1,ist),
+ > 5*(iend-ist+1),
+ > dp_type,
+ > east,
+ > from_w,
+ > MPI_COMM_WORLD,
+ > IERROR )
+ endif
+
+ else
+
+ if( north .ne. -1 ) then
+ do j=jst,jend
+ dum(1,j) = g(1,1,j,k)
+ dum(2,j) = g(2,1,j,k)
+ dum(3,j) = g(3,1,j,k)
+ dum(4,j) = g(4,1,j,k)
+ dum(5,j) = g(5,1,j,k)
+ enddo
+ call MPI_SEND( dum(1,jst),
+ > 5*(jend-jst+1),
+ > dp_type,
+ > north,
+ > from_s,
+ > MPI_COMM_WORLD,
+ > IERROR )
+ endif
+
+ if( west .ne. -1 ) then
+ do i=ist,iend
+ dum(1,i) = g(1,i,1,k)
+ dum(2,i) = g(2,i,1,k)
+ dum(3,i) = g(3,i,1,k)
+ dum(4,i) = g(4,i,1,k)
+ dum(5,i) = g(5,i,1,k)
+ enddo
+ call MPI_SEND( dum(1,ist),
+ > 5*(iend-ist+1),
+ > dp_type,
+ > west,
+ > from_e,
+ > MPI_COMM_WORLD,
+ > IERROR )
+ endif
+
+ endif
+
+ end
+
+
+