/[MITgcm]/MITgcm/pkg/timeave/timeave_statv_write.F
ViewVC logotype

Diff of /MITgcm/pkg/timeave/timeave_statv_write.F

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

revision 1.25 by dimitri, Sat Dec 4 05:59:50 2004 UTC revision 1.31 by jmc, Wed Aug 24 23:17:22 2005 UTC
# Line 50  C     useVariableK :: T when vertical di Line 50  C     useVariableK :: T when vertical di
50        INTEGER beginIOErrCount        INTEGER beginIOErrCount
51        INTEGER endIOErrCount        INTEGER endIOErrCount
52        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
53          INTEGER thisdate(4), prevdate(4)
54          LOGICAL dumpFiles
55    
56  C     Final Time Averages and Dump Files if needed  C     Final Time Averages and Dump Files if needed
57        IF (DIFFERENT_MULTIPLE(taveFreq,myTime,myTime-deltaTClock)) THEN        dumpFiles = .FALSE.
58          IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock) )
59         &     dumpFiles = .TRUE.
60    #ifdef ALLOW_CAL
61          IF ( calendarDumps .AND. (
62         &       ( taveFreq.GE. 2592000 .AND. taveFreq.LE. 2678400 ) .OR.
63         &       ( taveFreq.GE.31104000 .AND. taveFreq.LE.31968000 ))) THEN
64    C--   Convert approximate months (30-31 days) and years (360-372 days)
65    C     to exact calendar months and years.
66    C-    First determine calendar dates for this and previous time step.
67             call cal_GetDate( myiter  ,mytime            ,thisdate,mythid )
68             call cal_GetDate( myiter-1,mytime-deltaTClock,prevdate,mythid )
69             dumpFiles = .FALSE.
70    C-    Monthly taveFreq:
71             IF( taveFreq.GE. 2592000 .AND. taveFreq.LE. 2678400 .AND.
72         &        (thisdate(1)-prevdate(1)).GT.50   ) dumpFiles = .TRUE.
73    C-    Yearly  taveFreq:
74             IF( taveFreq.GE.31104000 .AND. taveFreq.LE.31968000 .AND.
75         &        (thisdate(1)-prevdate(1)).GT.5000 ) dumpFiles = .TRUE.
76          ENDIF
77    #endif
78    
79          IF (dumpFiles) THEN
80          useVariableK = useKPP .OR. usePP81 .OR. useMY82 .OR. useGGL90          useVariableK = useKPP .OR. usePP81 .OR. useMY82 .OR. useGGL90
81       &      .OR. useGMredi .OR. ivdc_kappa.NE.0.       &      .OR. useGMredi .OR. ivdc_kappa.NE.0.
82          WRITE(suff,'(I10.10)') myIter          WRITE(suff,'(I10.10)') myIter
# Line 74  C         Normalize by integrated time Line 97  C         Normalize by integrated time
97            CALL TIMEAVE_NORMALIZ(wVeltave, TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(wVeltave, TimeAve_half,Nr,bi,bj,myThid)
98            CALL TIMEAVE_NORMALIZ(phiHydLowtave,TimeAve_full,1,            CALL TIMEAVE_NORMALIZ(phiHydLowtave,TimeAve_full,1,
99       &         bi,bj,myThid)       &         bi,bj,myThid)
 #ifndef MINIMAL_TAVE_OUTPUT  
100            CALL TIMEAVE_NORMALIZ(UTtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(UTtave,   TimeAve_half,Nr,bi,bj,myThid)
101            CALL TIMEAVE_NORMALIZ(VTtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(VTtave,   TimeAve_half,Nr,bi,bj,myThid)
102            CALL TIMEAVE_NORMALIZ(WTtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(WTtave,   TimeAve_half,Nr,bi,bj,myThid)
# Line 108  C         CALL TIMEAVE_NORMALIZ(hFacStav Line 130  C         CALL TIMEAVE_NORMALIZ(hFacStav
130       &         bi,bj,myThid)       &         bi,bj,myThid)
131            CALL TIMEAVE_NORMALIZ(ConvectCountTave,TimeAve_full,Nr,            CALL TIMEAVE_NORMALIZ(ConvectCountTave,TimeAve_full,Nr,
132       &         bi,bj,myThid)       &         bi,bj,myThid)
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
133          ENDDO          ENDDO
134          ENDDO          ENDDO
135    
# Line 133  c         writeBinaryPrec = precFloat32 Line 154  c         writeBinaryPrec = precFloat32
154            CALL WRITE_FLD_XYZ_RL('uVeltave.',suff,uVeltave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('uVeltave.',suff,uVeltave,myIter,myThid)
155            CALL WRITE_FLD_XYZ_RL('vVeltave.',suff,vVeltave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('vVeltave.',suff,vVeltave,myIter,myThid)
156            CALL WRITE_FLD_XYZ_RL('wVeltave.',suff,wVeltave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('wVeltave.',suff,wVeltave,myIter,myThid)
 #ifndef MINIMAL_TAVE_OUTPUT  
157            CALL WRITE_FLD_XY_RL('Eta2tave.',suff,Eta2tave ,myIter,myThid)            CALL WRITE_FLD_XY_RL('Eta2tave.',suff,Eta2tave ,myIter,myThid)
158            CALL WRITE_FLD_XYZ_RL('UTtave.',suff,UTtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('UTtave.',suff,UTtave,myIter,myThid)
159            CALL WRITE_FLD_XYZ_RL('VTtave.',suff,VTtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('VTtave.',suff,VTtave,myIter,myThid)
# Line 160  C         CALL WRITE_FLD_XYZ_RL('KEtave. Line 180  C         CALL WRITE_FLD_XYZ_RL('KEtave.
180  #endif /* ALLOW_MOM_VECINV */  #endif /* ALLOW_MOM_VECINV */
181            CALL WRITE_FLD_XYZ_RL('PhHytave.',suff,phiHydtave,            CALL WRITE_FLD_XYZ_RL('PhHytave.',suff,phiHydtave,
182       &         myIter,myThid)       &         myIter,myThid)
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
183            IF ( fluidIsWater ) THEN            IF ( fluidIsWater ) THEN
184              CALL WRITE_FLD_XY_RL('PHLtave.',suff,phiHydLowtave,              CALL WRITE_FLD_XY_RL('PHLtave.',suff,phiHydLowtave,
185       &           myIter,myThid)       &           myIter,myThid)
# Line 172  C         CALL WRITE_FLD_XYZ_RL('KEtave. Line 191  C         CALL WRITE_FLD_XYZ_RL('KEtave.
191       &           myIter,myThid)       &           myIter,myThid)
192              CALL WRITE_FLD_XY_RL('sFluxtave.',suff,sFluxtave,              CALL WRITE_FLD_XY_RL('sFluxtave.',suff,sFluxtave,
193       &           myIter,myThid)       &           myIter,myThid)
 #ifndef MINIMAL_TAVE_OUTPUT  
194              CALL WRITE_FLD_XY_RL('PHL2tave.',suff,phiHydLow2tave,              CALL WRITE_FLD_XY_RL('PHL2tave.',suff,phiHydLow2tave,
195       &           myIter,myThid)       &           myIter,myThid)
196              CALL WRITE_FLD_XYZ_RL('Convtave.',suff,ConvectCountTave,              CALL WRITE_FLD_XYZ_RL('Convtave.',suff,ConvectCountTave,
197       &           myIter,myThid)       &           myIter,myThid)
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
198            ENDIF            ENDIF
199                        
 #ifndef MINIMAL_TAVE_OUTPUT  
200  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
201            CALL WRITE_FLD_XYZ_RL('hUtave.',suff,hUtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('hUtave.',suff,hUtave,myIter,myThid)
202            CALL WRITE_FLD_XYZ_RL('hVtave.',suff,hVtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('hVtave.',suff,hVtave,myIter,myThid)
# Line 188  C         CALL WRITE_FLD_XYZ_RL('hFacCta Line 204  C         CALL WRITE_FLD_XYZ_RL('hFacCta
204  C         CALL WRITE_FLD_XYZ_RL('hFacWtave.',suff,hFacWtave,myIter,myThid)  C         CALL WRITE_FLD_XYZ_RL('hFacWtave.',suff,hFacWtave,myIter,myThid)
205  C         CALL WRITE_FLD_XYZ_RL('hFacStave.',suff,hFacStave,myIter,myThid)  C         CALL WRITE_FLD_XYZ_RL('hFacStave.',suff,hFacStave,myIter,myThid)
206  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
207                        
208  C         writeBinaryPrec = prevPrec  C         writeBinaryPrec = prevPrec
209  C         Reread IO error counter  C         Reread IO error counter
# Line 218  C         Check for IO errors Line 233  C         Check for IO errors
233          IF (useMNC .AND. timeave_mnc) THEN          IF (useMNC .AND. timeave_mnc) THEN
234                        
235            CALL MNC_CW_SET_UDIM('tave', -1, myThid)            CALL MNC_CW_SET_UDIM('tave', -1, myThid)
236            CALL MNC_CW_I_W_S('I','tave',0,0,'iter', myIter, myThid)            CALL MNC_CW_RL_W_S('D','tave',0,0,'T', myTime, myThid)
237            CALL MNC_CW_SET_UDIM('tave', 0, myThid)            CALL MNC_CW_SET_UDIM('tave', 0, myThid)
238              CALL MNC_CW_I_W_S('I','tave',0,0,'iter', myIter, myThid)
239            CALL MNC_CW_RL_W_S('D','tave',0,0,'model_time',myTime,myThid)            CALL MNC_CW_RL_W_S('D','tave',0,0,'model_time',myTime,myThid)
240            CALL MNC_CW_RL_W('D','tave',0,0,'ETAtave',etatave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'ETAtave',etatave,myThid)
241  C         EH3: something is wrong here...  C         EH3: something is wrong here...

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.31

  ViewVC Help
Powered by ViewVC 1.1.22