/[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.29 by jmc, Sun May 15 03:04:57 2005 UTC revision 1.35 by mlosch, Tue Feb 7 12:45:52 2006 UTC
# Line 44  C     suff         :: Hold suffix part o Line 44  C     suff         :: Hold suffix part o
44  C     TimeAve      :: total time over average  C     TimeAve      :: total time over average
45  C     useVariableK :: T when vertical diffusion is not constant  C     useVariableK :: T when vertical diffusion is not constant
46        LOGICAL useVariableK        LOGICAL useVariableK
       INTEGER prevPrec  
47        CHARACTER*(MAX_LEN_FNAM) suff        CHARACTER*(MAX_LEN_FNAM) suff
48        INTEGER bi,bj,k        INTEGER bi,bj
49        INTEGER beginIOErrCount        INTEGER beginIOErrCount
50        INTEGER endIOErrCount        INTEGER endIOErrCount
51        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
       INTEGER thisdate(4), prevdate(4)  
52        LOGICAL dumpFiles        LOGICAL dumpFiles
53    #ifdef ALLOW_MNC
54          CHARACTER*(1) pf
55    #endif
56    #ifdef ALLOW_CAL
57          INTEGER thisdate(4), prevdate(4)
58    #endif
59    
60  C     Final Time Averages and Dump Files if needed  C     Final Time Averages and Dump Files if needed
61        dumpFiles = .FALSE.        dumpFiles = .FALSE.
62        IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock) )        IF ( DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock) )
# Line 97  C         Normalize by integrated time Line 101  C         Normalize by integrated time
101            CALL TIMEAVE_NORMALIZ(wVeltave, TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(wVeltave, TimeAve_half,Nr,bi,bj,myThid)
102            CALL TIMEAVE_NORMALIZ(phiHydLowtave,TimeAve_full,1,            CALL TIMEAVE_NORMALIZ(phiHydLowtave,TimeAve_full,1,
103       &         bi,bj,myThid)       &         bi,bj,myThid)
 #ifndef MINIMAL_TAVE_OUTPUT  
104            CALL TIMEAVE_NORMALIZ(UTtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(UTtave,   TimeAve_half,Nr,bi,bj,myThid)
105            CALL TIMEAVE_NORMALIZ(VTtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(VTtave,   TimeAve_half,Nr,bi,bj,myThid)
106            CALL TIMEAVE_NORMALIZ(WTtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(WTtave,   TimeAve_half,Nr,bi,bj,myThid)
# Line 131  C         CALL TIMEAVE_NORMALIZ(hFacStav Line 134  C         CALL TIMEAVE_NORMALIZ(hFacStav
134       &         bi,bj,myThid)       &         bi,bj,myThid)
135            CALL TIMEAVE_NORMALIZ(ConvectCountTave,TimeAve_full,Nr,            CALL TIMEAVE_NORMALIZ(ConvectCountTave,TimeAve_full,Nr,
136       &         bi,bj,myThid)       &         bi,bj,myThid)
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
137          ENDDO          ENDDO
138          ENDDO          ENDDO
139    
140  C       Write to files  C       Write to files
141          _BARRIER          _BARRIER
142          _BEGIN_MASTER( myThid )  C       _BEGIN_MASTER( myThid )
143    
144          IF (timeave_mdsio) THEN          IF (timeave_mdsio) THEN
145                        
# Line 148  C         Set IO "context" for writing s Line 150  C         Set IO "context" for writing s
150  #endif  #endif
151  C         Read IO error counter  C         Read IO error counter
152            beginIOErrCount = IO_ERRCOUNT(myThid)            beginIOErrCount = IO_ERRCOUNT(myThid)
 c         prevPrec = writeBinaryPrec  
 c         writeBinaryPrec = precFloat32  
153            CALL WRITE_FLD_XY_RL('ETAtave.' ,suff,etatave  ,myIter,myThid)            CALL WRITE_FLD_XY_RL('ETAtave.' ,suff,etatave  ,myIter,myThid)
154            CALL WRITE_FLD_XYZ_RL('Ttave.',suff,thetatave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('Ttave.',suff,thetatave,myIter,myThid)
155            CALL WRITE_FLD_XYZ_RL('Stave.',suff,salttave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('Stave.',suff,salttave,myIter,myThid)
156            CALL WRITE_FLD_XYZ_RL('uVeltave.',suff,uVeltave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('uVeltave.',suff,uVeltave,myIter,myThid)
157            CALL WRITE_FLD_XYZ_RL('vVeltave.',suff,vVeltave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('vVeltave.',suff,vVeltave,myIter,myThid)
158            CALL WRITE_FLD_XYZ_RL('wVeltave.',suff,wVeltave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('wVeltave.',suff,wVeltave,myIter,myThid)
 #ifndef MINIMAL_TAVE_OUTPUT  
159            CALL WRITE_FLD_XY_RL('Eta2tave.',suff,Eta2tave ,myIter,myThid)            CALL WRITE_FLD_XY_RL('Eta2tave.',suff,Eta2tave ,myIter,myThid)
160            CALL WRITE_FLD_XYZ_RL('UTtave.',suff,UTtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('UTtave.',suff,UTtave,myIter,myThid)
161            CALL WRITE_FLD_XYZ_RL('VTtave.',suff,VTtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('VTtave.',suff,VTtave,myIter,myThid)
# Line 183  C         CALL WRITE_FLD_XYZ_RL('KEtave. Line 182  C         CALL WRITE_FLD_XYZ_RL('KEtave.
182  #endif /* ALLOW_MOM_VECINV */  #endif /* ALLOW_MOM_VECINV */
183            CALL WRITE_FLD_XYZ_RL('PhHytave.',suff,phiHydtave,            CALL WRITE_FLD_XYZ_RL('PhHytave.',suff,phiHydtave,
184       &         myIter,myThid)       &         myIter,myThid)
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
185            IF ( fluidIsWater ) THEN            IF ( fluidIsWater ) THEN
186              CALL WRITE_FLD_XY_RL('PHLtave.',suff,phiHydLowtave,              CALL WRITE_FLD_XY_RL('PHLtave.',suff,phiHydLowtave,
187       &           myIter,myThid)       &           myIter,myThid)
# Line 195  C         CALL WRITE_FLD_XYZ_RL('KEtave. Line 193  C         CALL WRITE_FLD_XYZ_RL('KEtave.
193       &           myIter,myThid)       &           myIter,myThid)
194              CALL WRITE_FLD_XY_RL('sFluxtave.',suff,sFluxtave,              CALL WRITE_FLD_XY_RL('sFluxtave.',suff,sFluxtave,
195       &           myIter,myThid)       &           myIter,myThid)
 #ifndef MINIMAL_TAVE_OUTPUT  
196              CALL WRITE_FLD_XY_RL('PHL2tave.',suff,phiHydLow2tave,              CALL WRITE_FLD_XY_RL('PHL2tave.',suff,phiHydLow2tave,
197       &           myIter,myThid)       &           myIter,myThid)
198              CALL WRITE_FLD_XYZ_RL('Convtave.',suff,ConvectCountTave,              CALL WRITE_FLD_XYZ_RL('Convtave.',suff,ConvectCountTave,
199       &           myIter,myThid)       &           myIter,myThid)
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
200            ENDIF            ENDIF
201                        
 #ifndef MINIMAL_TAVE_OUTPUT  
202  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
203            CALL WRITE_FLD_XYZ_RL('hUtave.',suff,hUtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('hUtave.',suff,hUtave,myIter,myThid)
204            CALL WRITE_FLD_XYZ_RL('hVtave.',suff,hVtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('hVtave.',suff,hVtave,myIter,myThid)
# Line 211  C         CALL WRITE_FLD_XYZ_RL('hFacCta Line 206  C         CALL WRITE_FLD_XYZ_RL('hFacCta
206  C         CALL WRITE_FLD_XYZ_RL('hFacWtave.',suff,hFacWtave,myIter,myThid)  C         CALL WRITE_FLD_XYZ_RL('hFacWtave.',suff,hFacWtave,myIter,myThid)
207  C         CALL WRITE_FLD_XYZ_RL('hFacStave.',suff,hFacStave,myIter,myThid)  C         CALL WRITE_FLD_XYZ_RL('hFacStave.',suff,hFacStave,myIter,myThid)
208  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
 #endif /* ndef MINIMAL_TAVE_OUTPUT */  
209                        
 C         writeBinaryPrec = prevPrec  
210  C         Reread IO error counter  C         Reread IO error counter
211            endIOErrCount = IO_ERRCOUNT(myThid)            endIOErrCount = IO_ERRCOUNT(myThid)
212    
# Line 240  C         Check for IO errors Line 233  C         Check for IO errors
233  #ifdef ALLOW_MNC          #ifdef ALLOW_MNC        
234          IF (useMNC .AND. timeave_mnc) THEN          IF (useMNC .AND. timeave_mnc) THEN
235                        
236              IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
237                pf(1:1) = 'D'
238              ELSE
239                pf(1:1) = 'R'
240              ENDIF
241    
242            CALL MNC_CW_SET_UDIM('tave', -1, myThid)            CALL MNC_CW_SET_UDIM('tave', -1, myThid)
243            CALL MNC_CW_I_W_S('I','tave',0,0,'T', myIter, myThid)            CALL MNC_CW_RL_W_S('D','tave',0,0,'T', myTime, myThid)
244            CALL MNC_CW_SET_UDIM('tave', 0, myThid)            CALL MNC_CW_SET_UDIM('tave', 0, myThid)
245            CALL MNC_CW_RL_W_S('D','tave',0,0,'model_time',myTime,myThid)            CALL MNC_CW_I_W_S('I','tave',0,0,'iter', myIter, myThid)
246            CALL MNC_CW_RL_W('D','tave',0,0,'ETAtave',etatave,myThid)  C         CALL MNC_CW_RL_W_S('D','tave',0,0,'model_time',myTime,myThid)
247              CALL MNC_CW_RL_W(pf,'tave',0,0,'ETAtave',etatave,myThid)
248  C         EH3: something is wrong here...  C         EH3: something is wrong here...
249  C         CALL MNC_CW_RL_W('D','tave',0,0,'Eta2tave',Eta2tave,myThid)  C         CALL MNC_CW_RL_W(pf,'tave',0,0,'Eta2tave',Eta2tave,myThid)
250            CALL MNC_CW_RL_W('D','tave',0,0,'Ttave',thetatave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'Ttave',thetatave,myThid)
251            CALL MNC_CW_RL_W('D','tave',0,0,'Stave',salttave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'Stave',salttave,myThid)
252            CALL MNC_CW_RL_W('D','tave',0,0,'uVeltave',uVeltave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'uVeltave',uVeltave,myThid)
253            CALL MNC_CW_RL_W('D','tave',0,0,'vVeltave',vVeltave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'vVeltave',vVeltave,myThid)
254            CALL MNC_CW_RL_W('D','tave',0,0,'wVeltave',wVeltave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'wVeltave',wVeltave,myThid)
255            CALL MNC_CW_RL_W('D','tave',0,0,'UTtave',UTtave,myThid)  #ifndef MINIMAL_TAVE_OUTPUT
256            CALL MNC_CW_RL_W('D','tave',0,0,'VTtave',VTtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'UTtave',UTtave,myThid)
257            CALL MNC_CW_RL_W('D','tave',0,0,'WTtave',WTtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'VTtave',VTtave,myThid)
258            CALL MNC_CW_RL_W('D','tave',0,0,'UStave',UStave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'WTtave',WTtave,myThid)
259            CALL MNC_CW_RL_W('D','tave',0,0,'VStave',VStave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'UStave',UStave,myThid)
260            CALL MNC_CW_RL_W('D','tave',0,0,'WStave',WStave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'VStave',VStave,myThid)
261            CALL MNC_CW_RL_W('D','tave',0,0,'TTtave',TTtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'WStave',WStave,myThid)
262            CALL MNC_CW_RL_W('D','tave',0,0,'UUtave',UUtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'TTtave',TTtave,myThid)
263            CALL MNC_CW_RL_W('D','tave',0,0,'VVtave',VVtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'UUtave',UUtave,myThid)
264            CALL MNC_CW_RL_W('D','tave',0,0,'UVtave',UVtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'VVtave',VVtave,myThid)
265  C         CALL MNC_CW_RL_W('D','tave',0,0,'KEtave',KEtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'UVtave',UVtave,myThid)
266    C         CALL MNC_CW_RL_W(pf,'tave',0,0,'KEtave',KEtave,myThid)
267            IF (useVariableK) THEN            IF (useVariableK) THEN
268              CALL MNC_CW_RL_W('D','tave',0,0,'Tdiftave',              CALL MNC_CW_RL_W(pf,'tave',0,0,'Tdiftave',
269       &           TdiffRtave,myThid)       &           TdiffRtave,myThid)
270            ENDIF            ENDIF
271  #ifdef ALLOW_MOM_VECINV  #ifdef ALLOW_MOM_VECINV
272            IF (vectorInvariantMomentum) THEN            IF (vectorInvariantMomentum) THEN
273              CALL MNC_CW_RL_W('D','tave',0,0,'uZtave',uZetatave,myThid)              CALL MNC_CW_RL_W(pf,'tave',0,0,'uZtave',uZetatave,myThid)
274              CALL MNC_CW_RL_W('D','tave',0,0,'vZtave',vZetatave,myThid)              CALL MNC_CW_RL_W(pf,'tave',0,0,'vZtave',vZetatave,myThid)
275            ENDIF            ENDIF
276  #endif /* ALLOW_MOM_VECINV */  #endif /* ALLOW_MOM_VECINV */
277            CALL MNC_CW_RL_W('D','tave',0,0,'PhHytave',            CALL MNC_CW_RL_W(pf,'tave',0,0,'PhHytave',
278       &         phiHydtave,myThid)       &         phiHydtave,myThid)
279    #endif /* not MINIMAL_TAVE_OUTPUT */
280            IF ( fluidIsWater ) THEN            IF ( fluidIsWater ) THEN
281              CALL MNC_CW_RL_W('D','tave',0,0,'PHLtave',              CALL MNC_CW_RL_W(pf,'tave',0,0,'PHLtave',
282       &           phiHydLowtave,myThid)       &           phiHydLowtave,myThid)
283              CALL MNC_CW_RL_W('D','tave',0,0,'PHL2tave',  #ifndef MINIMAL_TAVE_OUTPUT
284                CALL MNC_CW_RL_W(pf,'tave',0,0,'PHL2tave',
285       &           phiHydLow2tave,myThid)       &           phiHydLow2tave,myThid)
286              CALL MNC_CW_RL_W('D','tave',0,0,'Convtave',              CALL MNC_CW_RL_W(pf,'tave',0,0,'Convtave',
287       &           ConvectCountTave,myThid)       &           ConvectCountTave,myThid)
288              CALL MNC_CW_RL_W('D','tave',0,0,'uFluxtave',  #endif /* not MINIMAL_TAVE_OUTPUT */
289                CALL MNC_CW_RL_W(pf,'tave',0,0,'uFluxtave',
290       &           uFluxtave,myThid)       &           uFluxtave,myThid)
291              CALL MNC_CW_RL_W('D','tave',0,0,'vFluxtave',              CALL MNC_CW_RL_W(pf,'tave',0,0,'vFluxtave',
292       &           vFluxtave,myThid)       &           vFluxtave,myThid)
293              CALL MNC_CW_RL_W('D','tave',0,0,'tFluxtave',              CALL MNC_CW_RL_W(pf,'tave',0,0,'tFluxtave',
294       &           tFluxtave,myThid)       &           tFluxtave,myThid)
295              CALL MNC_CW_RL_W('D','tave',0,0,'sFluxtave',              CALL MNC_CW_RL_W(pf,'tave',0,0,'sFluxtave',
296       &           sFluxtave,myThid)       &           sFluxtave,myThid)
297            ENDIF            ENDIF
298    
299  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
300            CALL MNC_CW_RL_W('D','tave',0,0,'hUtave',hUtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'hUtave',hUtave,myThid)
301            CALL MNC_CW_RL_W('D','tave',0,0,'hVtave',hVtave,myThid)            CALL MNC_CW_RL_W(pf,'tave',0,0,'hVtave',hVtave,myThid)
302  C         CALL MNC_CW_RL_W('D','tave',0,0,'hFacCtave',hFacCtave,myThid)  C         CALL MNC_CW_RL_W(pf,'tave',0,0,'hFacCtave',hFacCtave,myThid)
303  C         CALL MNC_CW_RL_W('D','tave',0,0,'hFacWtave',hFacWtave,myThid)  C         CALL MNC_CW_RL_W(pf,'tave',0,0,'hFacWtave',hFacWtave,myThid)
304  C         CALL MNC_CW_RL_W('D','tave',0,0,'hFacStave',hFacStave,myThid)  C         CALL MNC_CW_RL_W(pf,'tave',0,0,'hFacStave',hFacStave,myThid)
305  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
306    
307          ENDIF          ENDIF
308  #endif /* ALLOW_MNC */  #endif /* ALLOW_MNC */
309    
310          _END_MASTER( myThid )  C       _END_MASTER( myThid )
311          _BARRIER          _BARRIER
312                    
313          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.35

  ViewVC Help
Powered by ViewVC 1.1.22