11 |
O gloBuff, |
O gloBuff, |
12 |
I myField, |
I myField, |
13 |
I xSize, ySize, |
I xSize, ySize, |
14 |
I keepBlankTileIO, |
I useExch2GlobLayOut, |
15 |
I zeroBuff, |
I zeroBuff, |
16 |
I myThid ) |
I myThid ) |
17 |
C !DESCRIPTION: |
C !DESCRIPTION: |
32 |
C myField ( _RX ) :: tiled, local (i.e. my Proc. tiles) 2D array (Input) |
C myField ( _RX ) :: tiled, local (i.e. my Proc. tiles) 2D array (Input) |
33 |
C xSize (integer):: global buffer 1rst dim (x) |
C xSize (integer):: global buffer 1rst dim (x) |
34 |
C ySize (integer):: global buffer 2nd dim (y) |
C ySize (integer):: global buffer 2nd dim (y) |
35 |
C keepBlankTileIO :: =T: keep blank-tiles in global IO (only with EXCH2) |
C useExch2GlobLayOut:: =T: Use Exch2 global-map layout (only with EXCH2) |
36 |
C zeroBuff (logical):: =T: initialise the buffer to zero before copy |
C zeroBuff (logical):: =T: initialise the buffer to zero before copy |
37 |
C myThid (integer):: my Thread Id number |
C myThid (integer):: my Thread Id number |
38 |
|
|
39 |
INTEGER xSize, ySize |
INTEGER xSize, ySize |
40 |
_RX gloBuff(xSize,ySize) |
_RX gloBuff(xSize,ySize) |
41 |
_RX myField(1:sNx,1:sNy,nSx,nSy) |
_RX myField(1:sNx,1:sNy,nSx,nSy) |
42 |
LOGICAL keepBlankTileIO |
LOGICAL useExch2GlobLayOut |
43 |
LOGICAL zeroBuff |
LOGICAL zeroBuff |
44 |
INTEGER myThid |
INTEGER myThid |
45 |
CEOP |
CEOP |
67 |
C-- Process 0 fills-in its local data |
C-- Process 0 fills-in its local data |
68 |
|
|
69 |
#ifdef ALLOW_EXCH2 |
#ifdef ALLOW_EXCH2 |
70 |
IF ( keepBlankTileIO ) THEN |
IF ( useExch2GlobLayOut ) THEN |
71 |
C-- If using blank-tiles, buffer will not be completely filled; |
C-- If using blank-tiles, buffer will not be completely filled; |
72 |
C safer to reset to zero to avoid unknown values in output file |
C safer to reset to zero to avoid unknown values in output file |
73 |
IF ( zeroBuff ) THEN |
IF ( zeroBuff ) THEN |
135 |
ENDDO |
ENDDO |
136 |
ENDDO |
ENDDO |
137 |
|
|
138 |
C end if-else keepBlankTileIO |
C end if-else useExch2GlobLayOut |
139 |
ENDIF |
ENDIF |
140 |
|
|
141 |
C- end if myProcId = 0 |
C- end if myProcId = 0 |
162 |
|
|
163 |
C-- Process 0 gathers the local arrays into the global buffer. |
C-- Process 0 gathers the local arrays into the global buffer. |
164 |
#ifdef ALLOW_EXCH2 |
#ifdef ALLOW_EXCH2 |
165 |
IF ( keepBlankTileIO ) THEN |
IF ( useExch2GlobLayOut ) THEN |
166 |
|
|
167 |
c DO bj=1,nSy |
c DO bj=1,nSy |
168 |
bj=1 |
bj=1 |
223 |
ENDDO |
ENDDO |
224 |
ENDDO |
ENDDO |
225 |
|
|
226 |
C end if-else keepBlankTileIO |
C end if-else useExch2GlobLayOut |
227 |
ENDIF |
ENDIF |
228 |
|
|
229 |
C- end loop on np |
C- end loop on np |