/[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.45 by jmc, Thu Jan 7 23:48:01 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. ) i = i - 1
139            timeRec(1) = phase(listId) + freq(listId)*FLOAT(i)
140    c       if ( listId.eq.2 ) write(0,*) 'f',i,timeRec(1)/deltaTClock
141            timeRec(1) = MAX( timeRec(1), startTime )
142    
143    C     b) round off to nearest multiple of time-step:
144            timeRec(1) = (timeRec(1)-baseTime)/deltaTClock
145            i = NINT( timeRec(1) )
146    C     if just half way, NINT will return the next time-step: correct this
147            tmpLev = FLOAT(i) - 0.5 _d 0
148            IF ( timeRec(1).EQ.tmpLev ) i = i - 1
149            timeRec(1) = baseTime + deltaTClock*FLOAT(i)
150    c       if ( listId.eq.2 ) write(0,*) i,timeRec(1)/deltaTClock
151          ENDIF
152    
153  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
154    C-- this is a trick to reverse the order of the loops on md (= field)
155    C   and lm (= averagePeriod): binary output: lm loop inside md loop ;
156    C                                 mnc ouput: md loop inside lm loop.
157        IF (useMNC .AND. diag_mnc) THEN        IF (useMNC .AND. diag_mnc) THEN
158            jjMx = averageCycle(listId)
159            llMx = 1
160          ELSE
161            jjMx = 1
162            llMx = averageCycle(listId)
163          ENDIF
164          DO jj=1,jjMx
165    
166           IF (useMNC .AND. diag_mnc) THEN
167  C     Handle missing value attribute (land points)  C     Handle missing value attribute (land points)
168         useMissingValue = .FALSE.           useMissingValue = .FALSE.
169  #ifdef DIAGNOSTICS_MISSING_VALUE  #ifdef DIAGNOSTICS_MISSING_VALUE
170         useMissingValue = .TRUE.           useMissingValue = .TRUE.
171  #endif /* DIAGNOSTICS_MISSING_VALUE */  #endif /* DIAGNOSTICS_MISSING_VALUE */
172         IF ( misvalFlt(listId) .NE. UNSET_RL ) THEN           IF ( misvalFlt(listId) .NE. UNSET_RL ) THEN
173          misvalLoc = misvalFlt(listId)            misvalLoc = misvalFlt(listId)
174         ELSE           ELSE
175          misvalLoc = undef            misvalLoc = undef
176         ENDIF           ENDIF
177  C     Defaults to UNSET_I  C     Defaults to UNSET_I
178         misvalIntLoc = misvalInt(listId)           misvalIntLoc = misvalInt(listId)
179         DO ii=1,2           DO ii=1,2
180  C       misval_r4(ii)  = UNSET_FLOAT4  C         misval_r4(ii)  = UNSET_FLOAT4
181  C       misval_r8(ii)  = UNSET_FLOAT8  C         misval_r8(ii)  = UNSET_FLOAT8
182          misval_r4(ii)  = misvalLoc            misval_r4(ii)  = misvalLoc
183          misval_r8(ii)  = misvalLoc            misval_r8(ii)  = misvalLoc
184          misval_int(ii) = UNSET_I            misval_int(ii) = UNSET_I
185         ENDDO           ENDDO
186          DO i = 1,MAX_LEN_FNAM           DO i = 1,MAX_LEN_FNAM
187            diag_mnc_bn(i:i) = ' '             diag_mnc_bn(i:i) = ' '
188          ENDDO           ENDDO
189          DO i = 1,NLEN           DO i = 1,NLEN
190            dn_blnk(i:i) = ' '             dn_blnk(i:i) = ' '
191          ENDDO           ENDDO
192          WRITE( diag_mnc_bn, '(A)' ) fnames(listId)(1:ilen)           WRITE( diag_mnc_bn, '(A)' ) fnames(listId)(1:ilen)
193    
194  C       Update the record dimension by writing the iteration number  C       Update the record dimension by writing the iteration number
195          CALL MNC_CW_SET_UDIM(diag_mnc_bn, -1, myThid)           klev = myIter + jj - jjMx
196          CALL MNC_CW_RL_W_S('D',diag_mnc_bn,0,0,'T',myTime,myThid)           tmpLev = myTime + deltaTClock*(jj -jjMx)
197          CALL MNC_CW_SET_UDIM(diag_mnc_bn, 0, myThid)           CALL MNC_CW_SET_UDIM(diag_mnc_bn, -1, myThid)
198          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)
199             CALL MNC_CW_SET_UDIM(diag_mnc_bn, 0, myThid)
200             CALL MNC_CW_I_W_S('I',diag_mnc_bn,0,0,'iter',klev,myThid)
201    
202  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
203  C       variable that has dimension (2,T) and clearly denotes the  C       variable that has dimension (2,T) and clearly denotes the
204  C       beginning and ending times for each diagnostics period  C       beginning and ending times for each diagnostics period
205    
206          dn(1)(1:NLEN) = dn_blnk(1:NLEN)           dn(1)(1:NLEN) = dn_blnk(1:NLEN)
207          WRITE(dn(1),'(a,i6.6)') 'Zmd', nlevels(listId)           WRITE(dn(1),'(a,i6.6)') 'Zmd', nlevels(listId)
208          dim(1) = nlevels(listId)           dim(1) = nlevels(listId)
209          ib(1)  = 1           ib(1)  = 1
210          ie(1)  = nlevels(listId)           ie(1)  = nlevels(listId)
211    
212          CALL MNC_CW_ADD_GNAME('diag_levels', 1,           CALL MNC_CW_ADD_GNAME('diag_levels', 1,
213       &       dim, dn, ib, ie, myThid)       &        dim, dn, ib, ie, myThid)
214          CALL MNC_CW_ADD_VNAME('diag_levels', 'diag_levels',           CALL MNC_CW_ADD_VNAME('diag_levels', 'diag_levels',
215       &       0,0, myThid)       &        0,0, myThid)
216          CALL MNC_CW_ADD_VATTR_TEXT('diag_levels','description',           CALL MNC_CW_ADD_VATTR_TEXT('diag_levels','description',
217       &       'Idicies of vertical levels within the source arrays',       &        'Idicies of vertical levels within the source arrays',
218       &       myThid)       &        myThid)
219  C     suppress the missing value attribute (iflag = 0)  C     suppress the missing value attribute (iflag = 0)
220          IF (useMissingValue)           IF (useMissingValue)
221       &       CALL MNC_CW_VATTR_MISSING('diag_levels', 0,       &       CALL MNC_CW_VATTR_MISSING('diag_levels', 0,
222       I       misval_r8, misval_r4, misval_int,       I       misval_r8, misval_r4, misval_int,
223       I       myThid )       I       myThid )
224    
225          CALL MNC_CW_RL_W('D',diag_mnc_bn,0,0,           CALL MNC_CW_RL_W('D',diag_mnc_bn,0,0,
226       &       'diag_levels', levs(1,listId), myThid)       &        'diag_levels', levs(1,listId), myThid)
227    
228          CALL MNC_CW_DEL_VNAME('diag_levels', myThid)           CALL MNC_CW_DEL_VNAME('diag_levels', myThid)
229          CALL MNC_CW_DEL_GNAME('diag_levels', myThid)           CALL MNC_CW_DEL_GNAME('diag_levels', myThid)
230    
231  #ifdef DIAG_MNC_COORD_NEEDSWORK  #ifdef DIAG_MNC_COORD_NEEDSWORK
232  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 242  C       as: Z[uml]td000000 where the 't'
242  C       gdiag(10)  C       gdiag(10)
243    
244  C       Now define:  Zmdxxxxxx, Zudxxxxxx, Zldxxxxxx  C       Now define:  Zmdxxxxxx, Zudxxxxxx, Zldxxxxxx
245          ctmp(1:5) = 'mul  '           ctmp(1:5) = 'mul  '
246          DO i = 1,3           DO i = 1,3
247            dn(1)(1:NLEN) = dn_blnk(1:NLEN)             dn(1)(1:NLEN) = dn_blnk(1:NLEN)
248            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)
249            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)
250            CALL MNC_CW_ADD_VNAME(dn(1), dn(1), 0,0, myThid)             CALL MNC_CW_ADD_VNAME(dn(1), dn(1), 0,0, myThid)
251    
252  C         The following three ztmp() loops should eventually be modified  C         The following three ztmp() loops should eventually be modified
253  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 257  C                      + ( rC(INT(FLOOR(
257  C                          + rC(INT(CEIL(levs(j,l)))) )  C                          + rC(INT(CEIL(levs(j,l)))) )
258  C                        / ( levs(j,l) - FLOOR(levs(j,l)) )  C                        / ( levs(j,l) - FLOOR(levs(j,l)) )
259  C         for averaged levels.  C         for averaged levels.
260            IF (i .EQ. 1) THEN             IF (i .EQ. 1) THEN
261              DO j = 1,nlevels(listId)               DO j = 1,nlevels(listId)
262                ztmp(j) = rC(NINT(levs(j,listId)))                 ztmp(j) = rC(NINT(levs(j,listId)))
263              ENDDO               ENDDO
264              CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',               CALL MNC_CW_ADD_VATTR_TEXT(dn(1),'description',
265       &           'Dimensional coordinate value at the mid point',       &            'Dimensional coordinate value at the mid point',
266       &           myThid)       &            myThid)
267            ELSEIF (i .EQ. 2) THEN             ELSEIF (i .EQ. 2) THEN
268              DO j = 1,nlevels(listId)               DO j = 1,nlevels(listId)
269                ztmp(j) = rF(NINT(levs(j,listId)) + 1)                 ztmp(j) = rF(NINT(levs(j,listId)) + 1)
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 upper point',       &            'Dimensional coordinate value at the upper point',
273       &           myThid)       &            myThid)
274            ELSEIF (i .EQ. 3) THEN             ELSEIF (i .EQ. 3) THEN
275              DO j = 1,nlevels(listId)               DO j = 1,nlevels(listId)
276                ztmp(j) = rF(NINT(levs(j,listId)))                 ztmp(j) = rF(NINT(levs(j,listId)))
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 lower point',       &            'Dimensional coordinate value at the lower point',
280       &           myThid)       &            myThid)
281            ENDIF             ENDIF
282  C     suppress the missing value attribute (iflag = 0)  C     suppress the missing value attribute (iflag = 0)
283            IF (useMissingValue)             IF (useMissingValue)
284       &         CALL MNC_CW_VATTR_MISSING(dn(1), 0,       &          CALL MNC_CW_VATTR_MISSING(dn(1), 0,
285       I         misval_r8, misval_r4, misval_int,       I          misval_r8, misval_r4, misval_int,
286       I         myThid )       I          myThid )
287            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)
288            CALL MNC_CW_DEL_VNAME(dn(1), myThid)             CALL MNC_CW_DEL_VNAME(dn(1), myThid)
289            CALL MNC_CW_DEL_GNAME(dn(1), myThid)             CALL MNC_CW_DEL_GNAME(dn(1), myThid)
290          ENDDO           ENDDO
291  #endif /*  DIAG_MNC_COORD_NEEDSWORK  */  #endif /*  DIAG_MNC_COORD_NEEDSWORK  */
292    
293        ENDIF         ENDIF
294  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
295    
296  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
297    
298        DO md = 1,nfields(listId)         DO md = 1,nfields(listId)
299          ndId = jdiag(md,listId)          ndId = jdiag(md,listId)
300          gcode = gdiag(ndId)(1:10)          gcode = gdiag(ndId)(1:10)
301          mate = 0          mate = 0
# Line 248  C-      Check for Mate of a Vector Diagn Line 309  C-      Check for Mate of a Vector Diagn
309          ENDIF          ENDIF
310          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
311  C--     Start processing 1 Fld :  C--     Start processing 1 Fld :
312    #ifdef ALLOW_MNC
313             DO ll=1,llMx
314              lm = jj+ll-1
315    #else
316           DO lm=1,averageCycle(listId)           DO lm=1,averageCycle(listId)
317    #endif
318    
319            ip = ABS(idiag(md,listId)) + kdiag(ndId)*(lm-1)            ip = ABS(idiag(md,listId)) + kdiag(ndId)*(lm-1)
320            im = mdiag(md,listId)            im = mdiag(md,listId)
# Line 473  C     Missing values only for scalar dia Line 539  C     Missing values only for scalar dia
539              IF ( useMisValForThisDiag ) THEN              IF ( useMisValForThisDiag ) THEN
540  C     assign missing values and set flag for adding the netCDF atttibute  C     assign missing values and set flag for adding the netCDF atttibute
541               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 2,               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 2,
542       I            misval_r8, misval_r4, misval_int,       I            misval_r8, misval_r4, misval_int,
543       I            myThid )       I            myThid )
544  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
545               DO bj = myByLo(myThid), myByHi(myThid)               DO bj = myByLo(myThid), myByHi(myThid)
# Line 482  C     and now use the missing values for Line 548  C     and now use the missing values for
548                  klev = NINT(levs(k,listId))                  klev = NINT(levs(k,listId))
549                  DO j = 1-OLy,sNy+OLy                  DO j = 1-OLy,sNy+OLy
550                   DO i = 1-OLx,sNx+OLx                   DO i = 1-OLx,sNx+OLx
551                    IF ( _hFacC(I,J,klev,bi,bj) .EQ. 0. )                    IF ( maskC(i,j,klev,bi,bj) .EQ. 0. )
552       &                 qtmp1(i,j,k,bi,bj) = misvalLoc       &                 qtmp1(i,j,k,bi,bj) = misvalLoc
553                   ENDDO                   ENDDO
554                  ENDDO                  ENDDO
# Line 494  C     suppress the missing value attribu Line 560  C     suppress the missing value attribu
560  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
561  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
562  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
563  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
564  C     each of these variables  C     each of these variables
565               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 0,               CALL MNC_CW_VATTR_MISSING(cdiag(ndId), 0,
566       I            misval_r8, misval_r4, misval_int,       I            misval_r8, misval_r4, misval_int,
567       I            myThid )       I            myThid )
568              ENDIF              ENDIF
569    
570              IF ( ( (writeBinaryPrec .EQ. precFloat32)              IF (  ((writeBinaryPrec .EQ. precFloat32)
571       &           .AND. (fflags(listId)(1:1) .NE. 'D')       &            .AND. (fflags(listId)(1:1) .NE. 'D'))
572       &           .AND. (fflags(listId)(1:1) .NE. 'R') )       &             .OR. (fflags(listId)(1:1) .EQ. 'R') ) THEN
      &           .OR. (fflags(listId)(1:1) .EQ. 'R')) THEN  
573                CALL MNC_CW_RL_W('R',diag_mnc_bn,0,0,                CALL MNC_CW_RL_W('R',diag_mnc_bn,0,0,
574       &             cdiag(ndId), qtmp1, myThid)       &             cdiag(ndId), qtmp1, myThid)
575              ELSEIF ( (writeBinaryPrec .EQ. precFloat64)              ELSEIF ( (writeBinaryPrec .EQ. precFloat64)
# Line 521  C     each of these variables Line 586  C     each of these variables
586            ENDIF            ENDIF
587  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
588    
589    C--      end loop on lm (or ll if ALLOW_MNC) counter
590           ENDDO           ENDDO
591  C--     end of Processing Fld # md  C--     end of Processing Fld # md
592          ENDIF          ENDIF
593           ENDDO
594    
595    #ifdef ALLOW_MNC
596    C--   end loop on jj counter
597        ENDDO        ENDDO
598    #endif
599    
600  #ifdef ALLOW_MDSIO  #ifdef ALLOW_MDSIO
601        IF (diag_mdsio) THEN        IF (diag_mdsio) THEN
# Line 535  C     meta files but with more informati Line 606  C     meta files but with more informati
606              nRec = nfields(listId)*averageCycle(listId)              nRec = nfields(listId)*averageCycle(listId)
607              CALL MDS_WR_METAFILES(fn, prec, glf, .FALSE.,              CALL MDS_WR_METAFILES(fn, prec, glf, .FALSE.,
608       &              0, 0, nlevels(listId), ' ',       &              0, 0, nlevels(listId), ' ',
609       &              nfields(listId), flds(1,listId), 1, myTime,       &              nfields(listId), flds(1,listId), nTimRec, timeRec,
610       &              nRec, myIter, myThid)       &              nRec, myIter, myThid)
611        ENDIF        ENDIF
612  #endif /*  ALLOW_MDSIO  */  #endif /*  ALLOW_MDSIO  */

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

  ViewVC Help
Powered by ViewVC 1.1.22