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 |
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 |
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 |
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 |
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 |
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 |
|
|