/[MITgcm]/MITgcm/pkg/mdsio/mdsio_read_field.F
ViewVC logotype

Diff of /MITgcm/pkg/mdsio/mdsio_read_field.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.5 by jmc, Wed May 6 02:42:49 2009 UTC revision 1.6 by jmc, Mon May 11 02:20:48 2009 UTC
# Line 89  C !LOCAL VARIABLES: Line 89  C !LOCAL VARIABLES:
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
# Line 107  C---+----1----+----2----+----3----+----4 Line 108  C---+----1----+----2----+----3----+----4
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
# Line 244  C master thread of process 0, only, read Line 247  C master thread of process 0, only, read
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

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22