/[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.19 by edhill, Mon Sep 13 18:42:11 2004 UTC revision 1.31 by jmc, Wed Aug 24 23:17:22 2005 UTC
# Line 18  C     !USES: Line 18  C     !USES:
18  #include "SIZE.h"  #include "SIZE.h"
19  #include "EEPARAMS.h"  #include "EEPARAMS.h"
20  #include "PARAMS.h"  #include "PARAMS.h"
21  #ifdef ALLOW_MNC          #ifdef ALLOW_MNC
22  #include "MNC_PARAMS.h"  #include "MNC_PARAMS.h"
23  #endif  #endif
24  #include "DYNVARS.h"  #include "DYNVARS.h"
# 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          useVariableK = useKPP .OR. useGMredi .OR. ivdc_kappa.NE.0.        IF (dumpFiles) THEN
80            useVariableK = useKPP .OR. usePP81 .OR. useMY82 .OR. useGGL90
81         &      .OR. useGMredi .OR. ivdc_kappa.NE.0.
82          WRITE(suff,'(I10.10)') myIter          WRITE(suff,'(I10.10)') myIter
83    
84          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
# Line 71  C         Normalize by integrated time Line 95  C         Normalize by integrated time
95            CALL TIMEAVE_NORMALIZ(uVeltave, TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(uVeltave, TimeAve_half,Nr,bi,bj,myThid)
96            CALL TIMEAVE_NORMALIZ(vVeltave, TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(vVeltave, TimeAve_half,Nr,bi,bj,myThid)
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,
99         &         bi,bj,myThid)
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)
103            CALL TIMEAVE_NORMALIZ(UStave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(UStave,   TimeAve_half,Nr,bi,bj,myThid)
104            CALL TIMEAVE_NORMALIZ(VStave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(VStave,   TimeAve_half,Nr,bi,bj,myThid)
105            CALL TIMEAVE_NORMALIZ(WStave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(WStave,   TimeAve_half,Nr,bi,bj,myThid)
 #ifndef HRCUBE  
106            CALL TIMEAVE_NORMALIZ(Eta2tave, TimeAve_half,1 ,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(Eta2tave, TimeAve_half,1 ,bi,bj,myThid)
107            CALL TIMEAVE_NORMALIZ(TTtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(TTtave,   TimeAve_half,Nr,bi,bj,myThid)
108            CALL TIMEAVE_NORMALIZ(UUtave,   TimeAve_half,Nr,bi,bj,myThid)            CALL TIMEAVE_NORMALIZ(UUtave,   TimeAve_half,Nr,bi,bj,myThid)
# Line 101  C         CALL TIMEAVE_NORMALIZ(hFacStav Line 126  C         CALL TIMEAVE_NORMALIZ(hFacStav
126  #endif  #endif
127            CALL TIMEAVE_NORMALIZ(phiHydtave,TimeAve_full,Nr,            CALL TIMEAVE_NORMALIZ(phiHydtave,TimeAve_full,Nr,
128       &         bi,bj,myThid)       &         bi,bj,myThid)
           CALL TIMEAVE_NORMALIZ(phiHydLowtave,TimeAve_full,1,  
      &         bi,bj,myThid)  
129            CALL TIMEAVE_NORMALIZ(phiHydLow2Tave,TimeAve_full,1,            CALL TIMEAVE_NORMALIZ(phiHydLow2Tave,TimeAve_full,1,
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 HRCUBE */  
133          ENDDO          ENDDO
134          ENDDO          ENDDO
135    
# Line 127  C         Read IO error counter Line 149  C         Read IO error counter
149  c         prevPrec = writeBinaryPrec  c         prevPrec = writeBinaryPrec
150  c         writeBinaryPrec = precFloat32  c         writeBinaryPrec = precFloat32
151            CALL WRITE_FLD_XY_RL('ETAtave.' ,suff,etatave  ,myIter,myThid)            CALL WRITE_FLD_XY_RL('ETAtave.' ,suff,etatave  ,myIter,myThid)
 #ifndef HRCUBE  
           CALL WRITE_FLD_XY_RL('Eta2tave.',suff,Eta2tave ,myIter,myThid)  
 #endif /* ndef HRCUBE */  
   
152            CALL WRITE_FLD_XYZ_RL('Ttave.',suff,thetatave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('Ttave.',suff,thetatave,myIter,myThid)
153            CALL WRITE_FLD_XYZ_RL('Stave.',suff,salttave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('Stave.',suff,salttave,myIter,myThid)
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)
157              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)
160            CALL WRITE_FLD_XYZ_RL('WTtave.',suff,WTtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('WTtave.',suff,WTtave,myIter,myThid)
161            CALL WRITE_FLD_XYZ_RL('UStave.',suff,UStave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('UStave.',suff,UStave,myIter,myThid)
162            CALL WRITE_FLD_XYZ_RL('VStave.',suff,VStave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('VStave.',suff,VStave,myIter,myThid)
163            CALL WRITE_FLD_XYZ_RL('WStave.',suff,WStave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('WStave.',suff,WStave,myIter,myThid)
 #ifndef HRCUBE  
164            CALL WRITE_FLD_XYZ_RL('TTtave.',suff,TTtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('TTtave.',suff,TTtave,myIter,myThid)
165            CALL WRITE_FLD_XYZ_RL('UUtave.',suff,UUtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('UUtave.',suff,UUtave,myIter,myThid)
166            CALL WRITE_FLD_XYZ_RL('VVtave.',suff,VVtave,myIter,myThid)            CALL WRITE_FLD_XYZ_RL('VVtave.',suff,VVtave,myIter,myThid)
# Line 162  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)
183  #endif /* ndef HRCUBE */            IF ( fluidIsWater ) THEN
           IF ( buoyancyRelation(1:7) .EQ. 'OCEANIC' ) THEN  
 #ifndef HRCUBE  
184              CALL WRITE_FLD_XY_RL('PHLtave.',suff,phiHydLowtave,              CALL WRITE_FLD_XY_RL('PHLtave.',suff,phiHydLowtave,
185       &           myIter,myThid)       &           myIter,myThid)
             CALL WRITE_FLD_XY_RL('PHL2tave.',suff,phiHydLow2tave,  
      &           myIter,myThid)  
             CALL WRITE_FLD_XYZ_RL('Convtave.',suff,ConvectCountTave,  
      &           myIter,myThid)  
 #endif /* ndef HRCUBE */  
186              CALL WRITE_FLD_XY_RL('uFluxtave.',suff,uFluxtave,              CALL WRITE_FLD_XY_RL('uFluxtave.',suff,uFluxtave,
187       &           myIter,myThid)       &           myIter,myThid)
188              CALL WRITE_FLD_XY_RL('vFluxtave.',suff,vFluxtave,              CALL WRITE_FLD_XY_RL('vFluxtave.',suff,vFluxtave,
# Line 180  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)
194                CALL WRITE_FLD_XY_RL('PHL2tave.',suff,phiHydLow2tave,
195         &           myIter,myThid)
196                CALL WRITE_FLD_XYZ_RL('Convtave.',suff,ConvectCountTave,
197         &           myIter,myThid)
198            ENDIF            ENDIF
199                        
 #ifndef HRCUBE  
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 190  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 HRCUBE */  
207                        
208  C         writeBinaryPrec = prevPrec  C         writeBinaryPrec = prevPrec
209  C         Reread IO error counter  C         Reread IO error counter
# Line 220  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('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_RL_W('D','tave',0,0,'model_time',myTime,myThid)            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)
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  #ifndef HRCUBE  C         EH3: something is wrong here...
 C         EH3: something is wriong here...  
242  C         CALL MNC_CW_RL_W('D','tave',0,0,'Eta2tave',Eta2tave,myThid)  C         CALL MNC_CW_RL_W('D','tave',0,0,'Eta2tave',Eta2tave,myThid)
 #endif /* ndef HRCUBE */  
243            CALL MNC_CW_RL_W('D','tave',0,0,'Ttave',thetatave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'Ttave',thetatave,myThid)
244            CALL MNC_CW_RL_W('D','tave',0,0,'Stave',salttave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'Stave',salttave,myThid)
245            CALL MNC_CW_RL_W('D','tave',0,0,'uVeltave',uVeltave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'uVeltave',uVeltave,myThid)
# Line 240  C         CALL MNC_CW_RL_W('D','tave',0, Line 251  C         CALL MNC_CW_RL_W('D','tave',0,
251            CALL MNC_CW_RL_W('D','tave',0,0,'UStave',UStave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'UStave',UStave,myThid)
252            CALL MNC_CW_RL_W('D','tave',0,0,'VStave',VStave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'VStave',VStave,myThid)
253            CALL MNC_CW_RL_W('D','tave',0,0,'WStave',WStave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'WStave',WStave,myThid)
 #ifndef HRCUBE  
254            CALL MNC_CW_RL_W('D','tave',0,0,'TTtave',TTtave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'TTtave',TTtave,myThid)
255            CALL MNC_CW_RL_W('D','tave',0,0,'UUtave',UUtave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'UUtave',UUtave,myThid)
256            CALL MNC_CW_RL_W('D','tave',0,0,'VVtave',VVtave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'VVtave',VVtave,myThid)
# Line 258  C         CALL MNC_CW_RL_W('D','tave',0, Line 268  C         CALL MNC_CW_RL_W('D','tave',0,
268  #endif /* ALLOW_MOM_VECINV */  #endif /* ALLOW_MOM_VECINV */
269            CALL MNC_CW_RL_W('D','tave',0,0,'PhHytave',            CALL MNC_CW_RL_W('D','tave',0,0,'PhHytave',
270       &         phiHydtave,myThid)       &         phiHydtave,myThid)
271  #endif /* ndef HRCUBE */            IF ( fluidIsWater ) THEN
           IF ( buoyancyRelation(1:7) .EQ. 'OCEANIC' ) THEN  
 #ifndef HRCUBE  
272              CALL MNC_CW_RL_W('D','tave',0,0,'PHLtave',              CALL MNC_CW_RL_W('D','tave',0,0,'PHLtave',
273       &           phiHydLowtave,myThid)       &           phiHydLowtave,myThid)
274              CALL MNC_CW_RL_W('D','tave',0,0,'PHL2tave',              CALL MNC_CW_RL_W('D','tave',0,0,'PHL2tave',
275       &           phiHydLow2tave,myThid)       &           phiHydLow2tave,myThid)
276              CALL MNC_CW_RL_W('D','tave',0,0,'Convtave',              CALL MNC_CW_RL_W('D','tave',0,0,'Convtave',
277       &           ConvectCountTave,myThid)       &           ConvectCountTave,myThid)
 #endif /* ndef HRCUBE */  
278              CALL MNC_CW_RL_W('D','tave',0,0,'uFluxtave',              CALL MNC_CW_RL_W('D','tave',0,0,'uFluxtave',
279       &           uFluxtave,myThid)       &           uFluxtave,myThid)
280              CALL MNC_CW_RL_W('D','tave',0,0,'vFluxtave',              CALL MNC_CW_RL_W('D','tave',0,0,'vFluxtave',
# Line 278  C         CALL MNC_CW_RL_W('D','tave',0, Line 285  C         CALL MNC_CW_RL_W('D','tave',0,
285       &           sFluxtave,myThid)       &           sFluxtave,myThid)
286            ENDIF            ENDIF
287    
 #ifndef HRCUBE  
288  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
289            CALL MNC_CW_RL_W('D','tave',0,0,'hUtave',hUtave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'hUtave',hUtave,myThid)
290            CALL MNC_CW_RL_W('D','tave',0,0,'hVtave',hVtave,myThid)            CALL MNC_CW_RL_W('D','tave',0,0,'hVtave',hVtave,myThid)
# Line 286  C         CALL MNC_CW_RL_W('D','tave',0, Line 292  C         CALL MNC_CW_RL_W('D','tave',0,
292  C         CALL MNC_CW_RL_W('D','tave',0,0,'hFacWtave',hFacWtave,myThid)  C         CALL MNC_CW_RL_W('D','tave',0,0,'hFacWtave',hFacWtave,myThid)
293  C         CALL MNC_CW_RL_W('D','tave',0,0,'hFacStave',hFacStave,myThid)  C         CALL MNC_CW_RL_W('D','tave',0,0,'hFacStave',hFacStave,myThid)
294  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
 #endif /* ndef HRCUBE */  
295    
296          ENDIF          ENDIF
297  #endif /* ALLOW_MNC */  #endif /* ALLOW_MNC */

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

  ViewVC Help
Powered by ViewVC 1.1.22