89 |
LOGICAL exst |
LOGICAL exst |
90 |
LOGICAL globalFile, fileIsOpen |
LOGICAL globalFile, fileIsOpen |
91 |
LOGICAL iAmDoingIO |
LOGICAL iAmDoingIO |
92 |
|
LOGICAL keepBlankTileIO |
93 |
INTEGER xSize, ySize |
INTEGER xSize, ySize |
94 |
INTEGER iG,jG,bi,bj,i,j,k,nNz |
INTEGER iG,jG,bi,bj,i,j,k,nNz |
95 |
INTEGER irec,dUnit,IL,pIL |
INTEGER irec,dUnit,IL,pIL |
108 |
C Set dimensions: |
C Set dimensions: |
109 |
xSize = Nx |
xSize = Nx |
110 |
ySize = Ny |
ySize = Ny |
111 |
|
keepBlankTileIO = .FALSE. |
112 |
#if defined(ALLOW_EXCH2) && !defined(MISSING_TILE_IO) |
#if defined(ALLOW_EXCH2) && !defined(MISSING_TILE_IO) |
113 |
xSize = exch2_global_Nx |
xSize = exch2_global_Nx |
114 |
ySize = exch2_global_Ny |
ySize = exch2_global_Ny |
115 |
|
keepBlankTileIO = .TRUE. |
116 |
#endif |
#endif |
117 |
|
|
118 |
C Assume nothing |
C Assume nothing |
247 |
CALL PRINT_ERROR( msgBuf, myThid ) |
CALL PRINT_ERROR( msgBuf, myThid ) |
248 |
STOP 'ABNORMAL END: S/R MDS_READ_FIELD' |
STOP 'ABNORMAL END: S/R MDS_READ_FIELD' |
249 |
ENDIF |
ENDIF |
|
C Map the appropriate global io-buffer to global model (real*8) array |
|
|
CALL MDS_MAP_GLOBAL( |
|
|
U xy_buffer_r4, xy_buffer_r8, |
|
|
U globalBuf, |
|
|
I xSize, ySize, filePrec, |
|
|
I .TRUE., .FALSE. ) |
|
250 |
C- endif iAmDoingIO |
C- endif iAmDoingIO |
251 |
ENDIF |
ENDIF |
252 |
CALL SCATTER_2D(globalBuf,sharedLocalBuf,myThid) |
|
253 |
IF (arrType .EQ. 'RS') THEN |
IF ( filePrec.EQ.precFloat32 ) THEN |
254 |
CALL MDS_PASStoRS( sharedLocalBuf,arr,k,kSize,.TRUE.,myThid ) |
CALL SCATTER_2D_R4( |
255 |
ELSEIF (arrType .EQ. 'RL') THEN |
U xy_buffer_r4, |
256 |
CALL MDS_PASStoRL( sharedLocalBuf,arr,k,kSize,.TRUE.,myThid ) |
O sharedLocBuf_r4, |
257 |
|
I xSize, ySize, |
258 |
|
I keepBlankTileIO, .FALSE., myThid ) |
259 |
|
IF ( arrType.EQ.'RS' ) THEN |
260 |
|
CALL MDS_PASS_R4toRS( sharedLocBuf_r4, |
261 |
|
& arr, k, kSize, .TRUE., myThid ) |
262 |
|
ELSEIF ( arrType.EQ.'RL' ) THEN |
263 |
|
CALL MDS_PASS_R4toRL( sharedLocBuf_r4, |
264 |
|
& arr, k, kSize, .TRUE., myThid ) |
265 |
|
ELSE |
266 |
|
WRITE(msgBuf,'(A)') |
267 |
|
& ' MDS_READ_FIELD: illegal value for arrType' |
268 |
|
CALL PRINT_ERROR( msgBuf, myThid ) |
269 |
|
STOP 'ABNORMAL END: S/R MDS_READ_FIELD' |
270 |
|
ENDIF |
271 |
ELSE |
ELSE |
272 |
WRITE(msgBuf,'(A)') |
CALL SCATTER_2D_R8( |
273 |
|
U xy_buffer_r8, |
274 |
|
O sharedLocBuf_r8, |
275 |
|
I xSize, ySize, |
276 |
|
I keepBlankTileIO, .FALSE., myThid ) |
277 |
|
IF ( arrType.EQ.'RS' ) THEN |
278 |
|
CALL MDS_PASS_R8toRS( sharedLocBuf_r8, |
279 |
|
& arr, k, kSize, .TRUE., myThid ) |
280 |
|
ELSEIF ( arrType.EQ.'RL' ) THEN |
281 |
|
CALL MDS_PASS_R8toRL( sharedLocBuf_r8, |
282 |
|
& arr, k, kSize, .TRUE., myThid ) |
283 |
|
ELSE |
284 |
|
WRITE(msgBuf,'(A)') |
285 |
& ' MDS_READ_FIELD: illegal value for arrType' |
& ' MDS_READ_FIELD: illegal value for arrType' |
286 |
CALL PRINT_ERROR( msgBuf, myThid ) |
CALL PRINT_ERROR( msgBuf, myThid ) |
287 |
STOP 'ABNORMAL END: S/R MDS_READ_FIELD' |
STOP 'ABNORMAL END: S/R MDS_READ_FIELD' |
288 |
|
ENDIF |
289 |
ENDIF |
ENDIF |
290 |
|
|
291 |
ENDDO |
ENDDO |