2 c---------------------------------------------------------------------
3 c---------------------------------------------------------------------
5 subroutine exchange_1( g,k,iex )
7 c---------------------------------------------------------------------
8 c---------------------------------------------------------------------
16 double precision g(5,-1:isiz1+2,-1:isiz2+2,isiz3)
20 double precision dum(5,isiz1+isiz2), dum1(5,isiz1+isiz2)
22 integer STATUS(MPI_STATUS_SIZE)
29 if( north .ne. -1 ) then
30 call MPI_RECV( dum1(1,jst),
39 g(1,0,j,k) = dum1(1,j)
40 g(2,0,j,k) = dum1(2,j)
41 g(3,0,j,k) = dum1(3,j)
42 g(4,0,j,k) = dum1(4,j)
43 g(5,0,j,k) = dum1(5,j)
47 if( west .ne. -1 ) then
48 call MPI_RECV( dum1(1,ist),
57 g(1,i,0,k) = dum1(1,i)
58 g(2,i,0,k) = dum1(2,i)
59 g(3,i,0,k) = dum1(3,i)
60 g(4,i,0,k) = dum1(4,i)
61 g(5,i,0,k) = dum1(5,i)
65 else if( iex .eq. 1 ) then
67 if( south .ne. -1 ) then
68 call MPI_RECV( dum1(1,jst),
77 g(1,nx+1,j,k) = dum1(1,j)
78 g(2,nx+1,j,k) = dum1(2,j)
79 g(3,nx+1,j,k) = dum1(3,j)
80 g(4,nx+1,j,k) = dum1(4,j)
81 g(5,nx+1,j,k) = dum1(5,j)
85 if( east .ne. -1 ) then
86 call MPI_RECV( dum1(1,ist),
95 g(1,i,ny+1,k) = dum1(1,i)
96 g(2,i,ny+1,k) = dum1(2,i)
97 g(3,i,ny+1,k) = dum1(3,i)
98 g(4,i,ny+1,k) = dum1(4,i)
99 g(5,i,ny+1,k) = dum1(5,i)
103 else if( iex .eq. 2 ) then
105 if( south .ne. -1 ) then
107 dum(1,j) = g(1,nx,j,k)
108 dum(2,j) = g(2,nx,j,k)
109 dum(3,j) = g(3,nx,j,k)
110 dum(4,j) = g(4,nx,j,k)
111 dum(5,j) = g(5,nx,j,k)
113 call MPI_SEND( dum(1,jst),
122 if( east .ne. -1 ) then
124 dum(1,i) = g(1,i,ny,k)
125 dum(2,i) = g(2,i,ny,k)
126 dum(3,i) = g(3,i,ny,k)
127 dum(4,i) = g(4,i,ny,k)
128 dum(5,i) = g(5,i,ny,k)
130 call MPI_SEND( dum(1,ist),
141 if( north .ne. -1 ) then
143 dum(1,j) = g(1,1,j,k)
144 dum(2,j) = g(2,1,j,k)
145 dum(3,j) = g(3,1,j,k)
146 dum(4,j) = g(4,1,j,k)
147 dum(5,j) = g(5,1,j,k)
149 call MPI_SEND( dum(1,jst),
158 if( west .ne. -1 ) then
160 dum(1,i) = g(1,i,1,k)
161 dum(2,i) = g(2,i,1,k)
162 dum(3,i) = g(3,i,1,k)
163 dum(4,i) = g(4,i,1,k)
164 dum(5,i) = g(5,i,1,k)
166 call MPI_SEND( dum(1,ist),