/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_out.F
ViewVC logotype

Diff of /MITgcm/pkg/diagnostics/diagnostics_out.F

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

revision 1.39 by mlosch, Tue May 27 08:37:19 2008 UTC revision 1.46 by jmc, Fri Jan 8 19:19:44 2010 UTC
# Line 38  C     myThid  :: my Thread Id number Line 38  C     myThid  :: my Thread Id number
38        INTEGER listId, myIter, myThid        INTEGER listId, myIter, myThid
39  CEOP  CEOP
40    
41    C     !FUNCTIONS:
42          INTEGER ILNBLNK
43          EXTERNAL ILNBLNK
44    #ifdef ALLOW_FIZHI
45          _RL   getcon
46          EXTERNAL getcon
47    #endif
48    
49  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
50  C     i,j,k :: loop indices  C     i,j,k :: loop indices
51  C     lm    :: loop index (averageCycle)  C     lm    :: loop index (averageCycle)
# Line 54  C              diagnostic storage qdiag Line 62  C              diagnostic storage qdiag
62        COMMON /LOCAL_DIAGNOSTICS_OUT/ qtmp1        COMMON /LOCAL_DIAGNOSTICS_OUT/ qtmp1
63        _RL qtmp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,NrMax,nSx,nSy)        _RL qtmp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,NrMax,nSx,nSy)
64    
65        INTEGER i, j, k, lm, klev        INTEGER i, j, k, lm
66        INTEGER bi, bj        INTEGER bi, bj
67        INTEGER md, ndId, ip, im        INTEGER md, ndId, ip, im
68        INTEGER mate, mVec        INTEGER mate, mVec
69        CHARACTER*10 gcode        CHARACTER*10 gcode
70        _RL undef, getcon        _RL undef
71        _RL tmpLev        _RL tmpLev
       EXTERNAL getcon  
       INTEGER ILNBLNK  
       EXTERNAL ILNBLNK  
72        INTEGER ilen        INTEGER ilen
73    
74        INTEGER ioUnit        INTEGER ioUnit
75        CHARACTER*(MAX_LEN_FNAM) fn        CHARACTER*(MAX_LEN_FNAM) fn
76        CHARACTER*(MAX_LEN_MBUF) suff        CHARACTER*(MAX_LEN_MBUF) suff
77        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
78        INTEGER prec, nRec        INTEGER prec, nRec, nTimRec
79          _RL     timeRec(2)
80  #ifdef ALLOW_MDSIO  #ifdef ALLOW_MDSIO
81        LOGICAL glf        LOGICAL glf
82  #endif  #endif
83  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
84        INTEGER ii        INTEGER ll, llMx, jj, jjMx
85          INTEGER ii, klev
86        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn
87        INTEGER CW_DIMS, NLEN        INTEGER CW_DIMS, NLEN
88        PARAMETER ( CW_DIMS = 10 )        PARAMETER ( CW_DIMS = 10 )
# Line 97  C              diagnostic storage qdiag Line 104  C              diagnostic storage qdiag
104    
105  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
106    
107    C---  set file properties
108        ioUnit= standardMessageUnit        ioUnit= standardMessageUnit
109          undef = UNSET_RL
110    #ifdef ALLOW_FIZHI
111    c     IF ( useFIZHI ) undef = getcon('UNDEF')
112        undef = getcon('UNDEF')        undef = getcon('UNDEF')
113    #endif
114        WRITE(suff,'(I10.10)') myIter        WRITE(suff,'(I10.10)') myIter
115        ilen = ILNBLNK(fnames(listId))        ilen = ILNBLNK(fnames(listId))
116        WRITE( fn, '(A,A,A)' ) fnames(listId)(1:ilen),'.',suff(1:10)        WRITE( fn, '(A,A,A)' ) fnames(listId)(1:ilen),'.',suff(1:10)
117    
118    C--   Set time information:
119          IF ( freq(listId).LT.0. ) THEN
120    C-    Snap-shot: store a unique time (which is consistent with State-Var timing)
121            nTimRec = 1
122            timeRec(1) = myTime
123          ELSE
124    C-    Time-average: store the 2 edges of the time-averaging interval.
125    C      this time is consitent with intermediate Var (i.e., non-state, e.g, flux,
126    C      tendencies) timing. For State-Var, this is shifted by + halt time-step.
127            nTimRec = 2
128    
129    C-    end of time-averaging interval:
130            timeRec(2) = myTime
131    
132    C-    begining of time-averaging interval:
133    c       timeRec(1) = myTime - freq(listId)
134    C     a) find the time of the previous multiple of output freq:
135            timeRec(1) = myTime-deltaTClock*0.5 _d 0
136            timeRec(1) = (timeRec(1)-phase(listId))/freq(listId)
137            i = INT( timeRec(1) )
138            IF ( timeRec(1).LT.0. ) THEN
139              tmpLev = FLOAT(i)
140              IF ( timeRec(1).NE.tmpLev ) i = i - 1
141            ENDIF
142            timeRec(1) = phase(listId) + freq(listId)*FLOAT(i)
143    c       if ( listId.eq.2 ) write(0,*) 'f',i,timeRec(1)/deltaTClock
144            timeRec(1) = MAX( timeRec(1), startTime )
145    
146    C     b) round off to nearest multiple of time-step:
147            timeRec(1) = (timeRec(1)-baseTime)/deltaTClock
148            i = NINT( timeRec(1) )
149    C     if just half way, NINT will return the next time-step: correct this
150            tmpLev = FLOAT(i) - 0.5 _d 0
151            IF ( timeRec(1).EQ.tmpLev ) i = i - 1
152            timeRec(1) = baseTime + deltaTClock*FLOAT(i)
153    c       if ( listId.eq.2 ) write(0,*) i,timeRec(1)/deltaTClock
154          ENDIF
155    C--   Convert time to iteration number (debug)
156    c     DO i=1,nTimRec
157    c       timeRec(i) = timeRec(i)/deltaTClock
158    c     ENDDO
159    
160  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
161    C-- this is a trick to reverse the order of the loops on md (= field)
162    C   and lm (= averagePeriod): binary output: lm loop inside md loop ;
163    C                                 mnc ouput: md loop inside lm loop.
164        IF (useMNC .AND. diag_mnc) THEN        IF (useMNC .AND. diag_mnc) THEN
165            jjMx = averageCycle(listId)
166            llMx = 1
167          ELSE
168            jjMx = 1
169            llMx = averageCycle(listId)
170          ENDIF
171          DO jj=1,jjMx
172    
173           IF (useMNC .AND. diag_mnc) THEN
174  C     Handle missing value attribute (land points)  C     Handle missing value attribute (land points)
175         useMissingValue = .FALSE.           useMissingValue = .FALSE.
176  #ifdef DIAGNOSTICS_MISSING_VALUE  #ifdef DIAGNOSTICS_MISSING_VALUE
177         useMissingValue = .TRUE.           useMissingValue = .TRUE.
178  #endif /* DIAGNOSTICS_MISSING_VALUE */  #endif /* DIAGNOSTICS_MISSING_VALUE */
179         IF ( misvalFlt(listId) .NE. UNSET_RL ) THEN           IF ( misvalFlt(listId) .NE. UNSET_RL ) THEN
180          misvalLoc = misvalFlt(listId)            misvalLoc = misvalFlt(listId)
181         ELSE           ELSE
182          misvalLoc = undef            misvalLoc = undef
183         ENDIF           ENDIF
184  C     Defaults to UNSET_I  C     Defaults to UNSET_I
185         misvalIntLoc = misvalInt(listId)           misvalIntLoc = misvalInt(listId)
186         DO ii=1,2           DO ii=1,2
187  C       misval_r4(ii)  = UNSET_FLOAT4  C         misval_r4(ii)  = UNSET_FLOAT4
188  C       misval_r8(ii)  = UNSET_FLOAT8  C         misval_r8(ii)  = UNSET_FLOAT8
189          misval_r4(ii)  = misvalLoc            misval_r4(ii)  = misvalLoc
190          misval_r8(ii)  = misvalLoc            misval_r8(ii)  = misvalLoc
191          misval_int(ii) = UNSET_I            misval_int(ii) = UNSET_I
192         ENDDO           ENDDO
193          DO i = 1,MAX_LEN_FNAM           DO i = 1,MAX_LEN_FNAM
194            diag_mnc_bn(i:i) = ' '             diag_mnc_bn(i:i) = ' '
195          ENDDO           ENDDO
196          DO i = 1,NLEN           DO i = 1,NLEN
197            dn_blnk(i:i) = ' '             dn_blnk(i:i) = ' '
198          ENDDO           ENDDO
199          WRITE( diag_mnc_bn, '(A)' ) fnames(listId)(1:ilen)           WRITE( diag_mnc_bn, '(A)' ) fnames(listId)(1:ilen)
200    
201  C       Update the record dimension by writing the iteration number  C       Update the record dimension by writing the iteration number
202          CALL MNC_CW_SET_UDIM(diag_mnc_bn, -1, myThid)           klev = myIter + jj - jjMx
203          CALL MNC_CW_RL_W_S('D',diag_mnc_bn,0,0,'T',myTime,myThid)           tmpLev = myTime + deltaTClock*(jj -jjMx)
204          CALL MNC_CW_SET_UDIM(diag_mnc_bn, 0, myThid)           CALL MNC_CW_SET_UDIM(diag_mnc_bn, -1, myThid)
205          CALL MNC_CW_I_W_S('I',diag_mnc_bn,0,0,'iter',myIter,myThid)           CALL MNC_CW_RL_W_S('D',diag_mnc_bn,0,0,'T',tmpLev,myThid)
206             CALL MNC_CW_SET_UDIM(diag_mnc_bn, 0, myThid)
207             CALL MNC_CW_I_W_S('I',diag_mnc_bn,0,0,'iter',klev,myThid)
208    
209  C       NOTE: at some point it would be a good idea to add a time_bounds  C       NOTE: at some point it would be a good idea to add a time_bounds
210  C       variable that has dimension (2,T) and clearly denotes the  C       variable that has dimension (2,T) and clearly denotes the
211  C       beginning and ending times for each diagnostics period  C       beginning and ending times for each diagnostics period
212    
213          dn(1)(1:NLEN) = dn_blnk(1:NLEN)           dn(1)(1:NLEN) = dn_blnk(1:NLEN)
214          WRITE(dn(1),'(a,i6.6)') 'Zmd', nlevels(listId)           WRITE(dn(1),'(a,i6.6)') 'Zmd', nlevels(listId)
215          dim(1) = nlevels(listId)           dim(1) = nlevels(listId)
216          ib(1)  = 1           ib(1)  = 1
217          ie(1)  = nlevels(listId)           ie(1)  = nlevels(listId)
218    
219          CALL MNC_CW_ADD_GNAME('diag_levels', 1,           CALL MNC_CW_ADD_GNAME('diag_levels', 1,
220       &       dim, dn, ib, ie, myThid)       &        dim, dn, ib, ie, myThid)
221          CALL MNC_CW_ADD_VNAME('diag_levels', 'diag_levels',           CALL MNC_CW_ADD_VNAME('diag_levels', 'diag_levels',
222       &       0,0, myThid)       &        0,0, myThid)
223          CALL MNC_CW_ADD_VATTR_TEXT('diag_levels','description',           CALL MNC_CW_ADD_VATTR_TEXT('diag_levels','description',
224       &       'Idicies of vertical levels within the source arrays',       &        'Idicies of vertical levels within the source arrays',
225       &       myThid)       &        myThid)
226  C     suppress the missing value attribute (iflag = 0)  C     suppress the missing value attribute (iflag = 0)
227          IF (useMissingValue)           IF (useMissingValue)
228       &       CALL MNC_CW_VATTR_MISSING('diag_levels', 0,       &       CALL MNC_CW_VATTR_MISSING('diag_levels', 0,
229       I       misval_r8, misval_r4, misval_int,       I       misval_r8, misval_r4, misval_int,
230       I       myThid )       I       myThid )
231    
232          CALL MNC_CW_RL_W('D',diag_mnc_bn,0,0,           CALL MNC_CW_RL_W('D',diag_mnc_bn,0,0,
233       &       'diag_levels', levs(1,listId), myThid)       &        'diag_levels', levs(1,listId), myThid)
234    
235          CALL MNC_CW_DEL_VNAME('diag_levels', myThid)           CALL MNC_CW_DEL_VNAME('diag_levels', myThid)
236          CALL MNC_CW_DEL_GNAME('diag_levels', myThid)           CALL MNC_CW_DEL_GNAME('diag_levels', myThid)
237    
238  #ifdef DIAG_MNC_COORD_NEEDSWORK  #ifdef DIAG_MNC_COORD_NEEDSWORK
239  C       This part has been placed in an #ifdef because, as its currently  C       This part has been placed in an #ifdef because, as its currently
# Line 181  C       as: Z[uml]td000000 where the 't' Line 249  C       as: Z[uml]td000000 where the 't'
249  C       gdiag(10)  C       gdiag(10)
250    
251  C       Now define:  Zmdxxxxxx, Zudxxxxxx, Zldxxxxxx  C       Now define:  Zmdxxxxxx, Zudxxxxxx, Zldxxxxxx
252          ctmp(1:5) = 'mul  '           ctmp(1:5) = 'mul  '
253          DO i = 1,3           DO i = 1,3
254            dn(1)(1:NLEN) = dn_blnk(1:NLEN)             dn(1)(1:NLEN) = dn_blnk(1:NLEN)
255            WRITE(dn(1),'(3a,i6.6)') 'Z',ctmp(i:i),'d',nlevels(listId)             WRITE(dn(1),'(3a,i6.6)') 'Z',ctmp(i:i),'d',nlevels(listId)
256            CALL MNC_CW_ADD_GNAME(dn(1), 1, dim, dn, ib, ie, myThid)             CALL MNC_CW_ADD_GNAME(dn(1), 1, dim, dn, ib, ie, myThid)
257            CALL MNC_CW_ADD_VNAME(dn(1), dn(1), 0,0, myThid)             CALL MNC_CW_ADD_VNAME(dn(1), dn(1), 0,0, myThid)
258    
259  C         The following three ztmp() loops should eventually be modified  C         The following three ztmp() loops should eventually be modified
260  C         to reflect the fractional nature of levs(j,l) -- they should  C         to reflect the fractional nature of levs(j,l) -- they should
# Line 196  C                      + ( rC(INT(FLOOR( Line 264  C                      + ( rC(INT(FLOOR(
264  C                          + rC(INT(CEIL(levs(j,l)))) )  C                          + rC(INT(CEIL(levs(j,l)))) )
265  C                        / ( levs(j,l) - FLOOR(levs(j,l)) )  C                        / ( levs(j,l) - FLOOR(levs(j,l)) )
266  C         for averaged levels.  C         for averaged levels.
267            IF (i .EQ. 1) THEN             IF (i .EQ. 1) THEN
268              DO j = 1,nlevels(listId)               DO j = 1,nlevels(listId)
269                ztmp(j) = rC(NINT(levs(j,listId)))                 ztmp(j) = rC(NINT(levs(j,listId)))
270              ENDDO               ENDDO
271              CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',               CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',
272       &           'Dimensional coordinate value at the mid point',       &            'Dimensional coordinate value at the mid point',
273       &           myThid)       &            myThid)
274            ELSEIF (i .EQ. 2) THEN             ELSEIF (i .EQ. 2) THEN
275              DO j = 1,nlevels(listId)               DO j = 1,nlevels(listId)
276                ztmp(j) = rF(NINT(levs(j,listId)) + 1)                 ztmp(j) = rF(NINT(levs(j,listId)) + 1)
277              ENDDO               ENDDO
278              CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',               CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',
279       &           'Dimensional coordinate value at the upper point',       &            'Dimensional coordinate value at the upper point',
280       &           myThid)       &            myThid)
281            ELSEIF (i .EQ. 3) THEN             ELSEIF (i .EQ. 3) THEN
282              DO j = 1,nlevels(listId)               DO j = 1,nlevels(listId)
283                ztmp(j) = rF(NINT(levs(j,listId)))                 ztmp(j) = rF(NINT(levs(j,listId)))
284              ENDDO               ENDDO
285              CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',               CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',
286       &           'Dimensional coordinate value at the lower point',       &            'Dimensional coordinate value at the lower point',
287       &           myThid)       &            myThid)
288            ENDIF             ENDIF
289  C     suppress the missing value attribute (iflag = 0)  C     suppress the missing value attribute (iflag = 0)
290            IF (useMissingValue)             IF (useMissingValue)
291       &         CALL MNC_CW_VATTR_MISSING(dn(1), 0,       &          CALL MNC_CW_VATTR_MISSING(dn(1), 0,
292       I         misval_r8, misval_r4, misval_int,       I          misval_r8, misval_r4, misval_int,
293       I         myThid )       I          myThid )
294            CALL MNC_CW_RS_W('D',diag_mnc_bn,0,0, dn(1), ztmp, myThid)             CALL MNC_CW_RS_W('D',diag_mnc_bn,0,0, dn(1), ztmp, myThid)
295            CALL MNC_CW_DEL_VNAME(dn(1), myThid)             CALL MNC_CW_DEL_VNAME(dn(1), myThid)
296            CALL MNC_CW_DEL_GNAME(dn(1), myThid)             CALL MNC_CW_DEL_GNAME(dn(1), myThid)
297          ENDDO           ENDDO
298  #endif /*  DIAG_MNC_COORD_NEEDSWORK  */  #endif /*  DIAG_MNC_COORD_NEEDSWORK  */
299    
300        ENDIF         ENDIF
301  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
302    
303  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
304    
305        DO md = 1,nfields(listId)         DO md = 1,nfields(listId)
306          ndId = jdiag(md,listId)          ndId = jdiag(md,listId)
307          gcode = gdiag(ndId)(1:10)          gcode = gdiag(ndId)(1:10)
308          mate = 0          mate = 0
# Line 248  C-      Check for Mate of a Vector Diagn Line 316  C-      Check for Mate of a Vector Diagn
316          ENDIF          ENDIF
317          IF ( idiag(md,listId).NE.0 .AND. gcode(5:5).NE.'D' ) THEN          IF ( idiag(md,listId).NE.0 .AND. gcode(5:5).NE.'D' ) THEN
318  C--     Start processing 1 Fld :  C--     Start processing 1 Fld :
319    #ifdef ALLOW_MNC
320             DO ll=1,llMx
321              lm = jj+ll-1
322    #else
323           DO lm=1,averageCycle(listId)           DO lm=1,averageCycle(listId)
324    #endif
325    
326            ip = ABS(idiag(md,listId)) + kdiag(ndId)*(lm-1)            ip = ABS(idiag(md,listId)) + kdiag(ndId)*(lm-1)
327            im = mdiag(md,listId)            im = mdiag(md,listId)
# Line 473  C     Missing values only for scalar dia Line 546  C     Missing values only for scalar dia
546              IF ( useMisValForThisDiag ) THEN              IF ( useMisValForThisDiag ) THEN
547  C     assign missing values and set flag for adding the netCDF atttibute  C     assign missing values and set flag for adding the netCDF atttibute
548               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 2,               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 2,
549       I            misval_r8, misval_r4, misval_int,       I            misval_r8, misval_r4, misval_int,
550       I            myThid )       I            myThid )
551  C     and now use the missing values for masking out the land points  C     and now use the missing values for masking out the land points
552               DO bj = myByLo(myThid), myByHi(myThid)               DO bj = myByLo(myThid), myByHi(myThid)
# Line 482  C     and now use the missing values for Line 555  C     and now use the missing values for
555                  klev = NINT(levs(k,listId))                  klev = NINT(levs(k,listId))
556                  DO j = 1-OLy,sNy+OLy                  DO j = 1-OLy,sNy+OLy
557                   DO i = 1-OLx,sNx+OLx                   DO i = 1-OLx,sNx+OLx
558                    IF ( _hFacC(I,J,klev,bi,bj) .EQ. 0. )                    IF ( maskC(i,j,klev,bi,bj) .EQ. 0. )
559       &                 qtmp1(i,j,k,bi,bj) = misvalLoc       &                 qtmp1(i,j,k,bi,bj) = misvalLoc
560                   ENDDO                   ENDDO
561                  ENDDO                  ENDDO
# Line 494  C     suppress the missing value attribu Line 567  C     suppress the missing value attribu
567  C     Note: We have to call the following subroutine for each mnc that has  C     Note: We have to call the following subroutine for each mnc that has
568  C     been created "on the fly" by mnc_cw_add_vname and will be deleted  C     been created "on the fly" by mnc_cw_add_vname and will be deleted
569  C     by mnc_cw_del_vname, because all of these variables use the same  C     by mnc_cw_del_vname, because all of these variables use the same
570  C     identifier so that mnc_cw_vfmv(indv) needs to be overwritten for  C     identifier so that mnc_cw_vfmv(indv) needs to be overwritten for
571  C     each of these variables  C     each of these variables
572               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 0,               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 0,
573       I            misval_r8, misval_r4, misval_int,       I            misval_r8, misval_r4, misval_int,
574       I            myThid )       I            myThid )
575              ENDIF              ENDIF
576    
577              IF ( ( (writeBinaryPrec .EQ. precFloat32)              IF (  ((writeBinaryPrec .EQ. precFloat32)
578       &           .AND. (fflags(listId)(1:1) .NE. 'D')       &            .AND. (fflags(listId)(1:1) .NE. 'D'))
579       &           .AND. (fflags(listId)(1:1) .NE. 'R') )       &             .OR. (fflags(listId)(1:1) .EQ. 'R') ) THEN
      &           .OR. (fflags(listId)(1:1) .EQ. 'R')) THEN  
580                CALL MNC_CW_RL_W('R',diag_mnc_bn,0,0,                CALL MNC_CW_RL_W('R',diag_mnc_bn,0,0,
581       &             cdiag(ndId), qtmp1, myThid)       &             cdiag(ndId), qtmp1, myThid)
582              ELSEIF ( (writeBinaryPrec .EQ. precFloat64)              ELSEIF ( (writeBinaryPrec .EQ. precFloat64)
# Line 521  C     each of these variables Line 593  C     each of these variables
593            ENDIF            ENDIF
594  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
595    
596    C--      end loop on lm (or ll if ALLOW_MNC) counter
597           ENDDO           ENDDO
598  C--     end of Processing Fld # md  C--     end of Processing Fld # md
599          ENDIF          ENDIF
600           ENDDO
601    
602    #ifdef ALLOW_MNC
603    C--   end loop on jj counter
604        ENDDO        ENDDO
605    #endif
606    
607  #ifdef ALLOW_MDSIO  #ifdef ALLOW_MDSIO
608        IF (diag_mdsio) THEN        IF (diag_mdsio) THEN
# Line 535  C     meta files but with more informati Line 613  C     meta files but with more informati
613              nRec = nfields(listId)*averageCycle(listId)              nRec = nfields(listId)*averageCycle(listId)
614              CALL MDS_WR_METAFILES(fn, prec, glf, .FALSE.,              CALL MDS_WR_METAFILES(fn, prec, glf, .FALSE.,
615       &              0, 0, nlevels(listId), ' ',       &              0, 0, nlevels(listId), ' ',
616       &              nfields(listId), flds(1,listId), 1, myTime,       &              nfields(listId), flds(1,listId), nTimRec, timeRec,
617       &              nRec, myIter, myThid)       &              nRec, myIter, myThid)
618        ENDIF        ENDIF
619  #endif /*  ALLOW_MDSIO  */  #endif /*  ALLOW_MDSIO  */

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.46

  ViewVC Help
Powered by ViewVC 1.1.22