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

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

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

revision 1.1 by jmc, Mon Oct 22 13:16:29 2007 UTC revision 1.2 by jmc, Wed Oct 24 22:07:47 2007 UTC
# Line 73  c     INTEGER map2gl(2) Line 73  c     INTEGER map2gl(2)
73  CEOP  CEOP
74    
75  C     !FUNCTIONS  C     !FUNCTIONS
76        INTEGER  ILNBLNK        INTEGER  IFNBLNK, ILNBLNK
77        EXTERNAL ILNBLNK        EXTERNAL IFNBLNK, ILNBLNK
78    
79  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
80  C     i,ii,iG,jG  :: loop indices  C     i,j,ii      :: loop indices
81    C     iG,jG       :: global tile indices
82  C     iL,pL,iLm   :: length of character strings (temp. variables)  C     iL,pL,iLm   :: length of character strings (temp. variables)
83  C     nDimFil     :: number of dimensions (in meta file)  C     nDimFil     :: number of dimensions (in meta file)
84  C     nFldFil     :: number of fields in "fldList" (in meta file)  C     nFldFil     :: number of fields in "fldList" (in meta file)
85  C     nTimFil     :: number of time-specification in "timList" (meta file)  C     nTimFil     :: number of time-specification in "timList" (meta file)
86        INTEGER i,ii,iL,pL,iLm, iG,jG        INTEGER i,j,ii
87          INTEGER iG,jG
88          INTEGER iL,pL,iLm
89        INTEGER mUnit, errIO        INTEGER mUnit, errIO
90        INTEGER nDimFil, nFldFil, nTimFil        INTEGER nDimFil, nFldFil, nTimFil
91        LOGICAL fileExist, globalFile        LOGICAL fileExist, globalFile
# Line 100  C--   Initialise output arguments Line 103  C--   Initialise output arguments
103        fileIter  = 0        fileIter  = 0
104  c     map2gl(1) = 0  c     map2gl(1) = 0
105  c     map2gl(2) = 1  c     map2gl(2) = 1
106        DO i=1,nDims        DO j=1,nDims
107         DO ii=1,3         DO i=1,3
108          dimList(ii,i) = 0          dimList(i,j) = 0
109         ENDDO         ENDDO
110        ENDDO        ENDDO
111        DO i=1,nFlds        DO i=1,nFlds
# Line 234  C-    For each dimension, read the follo Line 237  C-    For each dimension, read the follo
237  C     1  global size  (ie. the size of the global dimension of all files)  C     1  global size  (ie. the size of the global dimension of all files)
238  C     2  global start (ie. the global position of the start of this file)  C     2  global start (ie. the global position of the start of this file)
239  C     3  global end   (ie. the global position of the end   of this file)  C     3  global end   (ie. the global position of the end   of this file)
240            DO ii=1,nDimFil            DO j=1,nDimFil
241             READ( mUnit, FMT='(3(1X,I5))', ERR=1002, END=1002 )  c          READ( mUnit, FMT='(3(1X,I5))', ERR=1002, END=1002 )
242       &                 (dimList(i,ii),i=1,3)  c    &                 (dimList(i,j),i=1,3)
243    C-    This is to accomodate with the 2 versions of meta file:
244               READ( mUnit, FMT='(A)', END=1001 ) lineBuf
245               ii = IFNBLNK(lineBuf)
246               IF ( ii.GT.6 ) THEN
247    C     Old version (S/R MDSWRITEMETA, file mdsio_writemeta.F):
248    C          start each line with 10 blanks.
249                READ(lineBuf, FMT='(9X,3(1X,I5))', ERR=1002, END=1002 )
250         &                  (dimList(i,j),i=1,3)
251               ELSE
252    C     New version (S/R MDS_WRITE_META, file mdsio_write_meta.F):
253    C          without starting blanks.
254                READ(lineBuf, FMT='(3(1X,I5))',    ERR=1002, END=1002 )
255         &                  (dimList(i,j),i=1,3)
256               ENDIF
257            ENDDO            ENDDO
258            READ(  mUnit, FMT='(A)', END=1001 ) lineBuf            READ(  mUnit, FMT='(A)', END=1001 ) lineBuf
259            iL = 0            iL = 0
# Line 337  C-    Read number of Fields Line 354  C-    Read number of Fields
354  C-    Read list of Fields  C-    Read list of Fields
355           IF ( nFldFil.GE.1 .AND. nFlds.GE.1 .AND.           IF ( nFldFil.GE.1 .AND. nFlds.GE.1 .AND.
356       &        iL.GE.11 .AND. lineBuf(1:11).EQ.' fldList = ' ) THEN       &        iL.GE.11 .AND. lineBuf(1:11).EQ.' fldList = ' ) THEN
357            DO ii=1,nFldFil,20            DO j=1,nFldFil,20
358             READ( mUnit, FMT='(20(2X,A8,1X))', ERR=1004, END=1004 )             READ( mUnit, FMT='(20(2X,A8,1X))', ERR=1004, END=1004 )
359       &          (fldList(i),i=ii,MIN(nFldFil,ii+19))       &          (fldList(i),i=j,MIN(nFldFil,j+19))
360            ENDDO            ENDDO
361            READ(  mUnit, FMT='(A)', END=1001 ) lineBuf            READ(  mUnit, FMT='(A)', END=1001 ) lineBuf
362            iL = 0            iL = 0
# Line 350  C--   End of reading file line per line Line 367  C--   End of reading file line per line
367   1004   CONTINUE   1004   CONTINUE
368          WRITE(msgBuf,'(2(A,I4),A)')          WRITE(msgBuf,'(2(A,I4),A)')
369       &    ' MDS_READ_META: error reading Fields: nFlds=',       &    ' MDS_READ_META: error reading Fields: nFlds=',
370       &     nFldFil, ' , ii=', ii       &     nFldFil, ' , j=', j
371          CALL PRINT_ERROR( msgBuf, myThid )          CALL PRINT_ERROR( msgBuf, myThid )
372          STOP 'ABNORMAL END: S/R MDS_READ_META'          STOP 'ABNORMAL END: S/R MDS_READ_META'
373   1003   CONTINUE   1003   CONTINUE
# Line 361  C--   End of reading file line per line Line 378  C--   End of reading file line per line
378          CALL PRINT_ERROR(lineBuf, myThid )          CALL PRINT_ERROR(lineBuf, myThid )
379          STOP 'ABNORMAL END: S/R MDS_READ_META'          STOP 'ABNORMAL END: S/R MDS_READ_META'
380   1002   CONTINUE   1002   CONTINUE
381          WRITE(msgBuf,'(2(A,I3),A)')          WRITE(msgBuf,'(3(A,I3),A)')
382       &    ' MDS_READ_META: error reading Dim-List: nDims=',       &    ' MDS_READ_META: error reading Dim-List: nDims=',
383       &     nDimFil, ' , ii=', ii       &     nDimFil, ' , j=', j, ' , ii=', ii
384          CALL PRINT_ERROR( msgBuf, myThid )          CALL PRINT_ERROR( msgBuf, myThid )
385            CALL PRINT_ERROR(lineBuf, myThid )
386          STOP 'ABNORMAL END: S/R MDS_READ_META'          STOP 'ABNORMAL END: S/R MDS_READ_META'
387   1001   CONTINUE   1001   CONTINUE
388    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22