/[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.54 by jmc, Tue Jun 21 18:00:48 2011 UTC revision 1.55 by jmc, Wed Jun 22 19:09:40 2011 UTC
# Line 85  c     COMMON /LOCAL_DIAGNOSTICS_OUT/ qtm Line 85  c     COMMON /LOCAL_DIAGNOSTICS_OUT/ qtm
85        LOGICAL glf        LOGICAL glf
86  #endif  #endif
87  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
       INTEGER ll, llMx, jj, jjMx  
88        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn        CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn
89        LOGICAL useMissingValue        LOGICAL useMissingValue
90        REAL*8 misValLoc        REAL*8 misValLoc
# Line 148  c     DO i=1,nTimRec Line 147  c     DO i=1,nTimRec
147  c       timeRec(i) = timeRec(i)/deltaTClock  c       timeRec(i) = timeRec(i)/deltaTClock
148  c     ENDDO  c     ENDDO
149    
150  #ifdef ALLOW_MNC  C--   Place the loop on lm (= averagePeriod) outside the loop on md (= field):
151  C-- this is a trick to reverse the order of the loops on md (= field)        DO lm=1,averageCycle(listId)
 C   and lm (= averagePeriod): binary output: lm loop inside md loop ;  
 C                                 mnc ouput: md loop inside lm loop.  
       IF (useMNC .AND. diag_mnc) THEN  
         jjMx = averageCycle(listId)  
         llMx = 1  
       ELSE  
         jjMx = 1  
         llMx = averageCycle(listId)  
       ENDIF  
       DO jj=1,jjMx  
152    
153    #ifdef ALLOW_MNC
154         IF (useMNC .AND. diag_mnc) THEN         IF (useMNC .AND. diag_mnc) THEN
155           misValLoc = undefRL           misValLoc = undefRL
156           IF ( misvalFlt(listId).NE.UNSET_RL )           IF ( misvalFlt(listId).NE.UNSET_RL )
157       &        misValLoc = misvalFlt(listId)       &        misValLoc = misvalFlt(listId)
158           CALL DIAGNOSTICS_MNC_SET(           CALL DIAGNOSTICS_MNC_SET(
159       I                    nLevOutp, listId, jj,       I                    nLevOutp, listId, lm,
160       O                    diag_mnc_bn, useMissingValue,       O                    diag_mnc_bn, useMissingValue,
161       I                    misValLoc, myTime, myIter, myThid )       I                    misValLoc, myTime, myIter, myThid )
162         ENDIF         ENDIF
# Line 196  C-      Check for Mate of a Vector Diagn Line 186  C-      Check for Mate of a Vector Diagn
186          ENDIF          ENDIF
187          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
188  C--     Start processing 1 Fld :  C--     Start processing 1 Fld :
 #ifdef ALLOW_MNC  
          DO ll=1,llMx  
           lm = jj+ll-1  
 #else  
          DO lm=1,averageCycle(listId)  
 #endif  
189    
190            ip = ABS(idiag(md,listId)) + kdiag(ndId)*(lm-1)            ip = ABS(idiag(md,listId)) + kdiag(ndId)*(lm-1)
191            im = mdiag(md,listId)            im = mdiag(md,listId)
# Line 390  C--     Ready to write field "md", eleme Line 374  C--     Ready to write field "md", eleme
374    
375  C-        write to binary file, using MDSIO pkg:  C-        write to binary file, using MDSIO pkg:
376            IF ( diag_mdsio ) THEN            IF ( diag_mdsio ) THEN
377              nRec = lm + (md-1)*averageCycle(listId)  c           nRec = lm + (md-1)*averageCycle(listId)
378                nRec = md + (lm-1)*nfields(listId)
379  C           default precision for output files  C           default precision for output files
380              prec = writeBinaryPrec              prec = writeBinaryPrec
381  C           fFlag(1)=R(or D): force it to be 32-bit(or 64) precision  C           fFlag(1)=R(or D): force it to be 32-bit(or 64) precision
# Line 414  C         a hack not to write meta files Line 399  C         a hack not to write meta files
399            ENDIF            ENDIF
400  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
401    
 C--      end loop on lm (or ll if ALLOW_MNC) counter  
          ENDDO  
402  C--     end of Processing Fld # md  C--     end of Processing Fld # md
403          ENDIF          ENDIF
404         ENDDO         ENDDO
405    
406  #ifdef ALLOW_MNC  C--   end loop on lm counter (= averagePeriod)
 C--   end loop on jj counter  
407        ENDDO        ENDDO
 #endif  
408    
409  #ifdef ALLOW_MDSIO  #ifdef ALLOW_MDSIO
410        IF (diag_mdsio) THEN        IF (diag_mdsio) THEN
# Line 431  C-    Note: temporary: since it is a pai Line 412  C-    Note: temporary: since it is a pai
412  C     all MDSIO S/R, uses instead this specific S/R to write only  C     all MDSIO S/R, uses instead this specific S/R to write only
413  C     meta files but with more informations in it.  C     meta files but with more informations in it.
414              glf = globalFiles              glf = globalFiles
415              nRec = nfields(listId)*averageCycle(listId)              nRec = averageCycle(listId)*nfields(listId)
416              CALL MDS_WR_METAFILES(fn, prec, glf, .FALSE.,              CALL MDS_WR_METAFILES(fn, prec, glf, .FALSE.,
417       &              0, 0, nLevOutp, ' ',       &              0, 0, nLevOutp, ' ',
418       &              nfields(listId), flds(1,listId), nTimRec, timeRec,       &              nfields(listId), flds(1,listId), nTimRec, timeRec,

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.55

  ViewVC Help
Powered by ViewVC 1.1.22