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

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

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

revision 1.10 by dimitri, Thu Oct 23 07:14:49 2003 UTC revision 1.17 by adcroft, Thu Apr 29 16:02:21 2004 UTC
# Line 17  C     == Global variables === Line 17  C     == Global variables ===
17  #include "PARAMS.h"  #include "PARAMS.h"
18  #include "DYNVARS.h"  #include "DYNVARS.h"
19  #include "GRID.h"  #include "GRID.h"
 #include "FFIELDS.h"  
20  #include "TIMEAVE_STATV.h"  #include "TIMEAVE_STATV.h"
21    
22        LOGICAL  DIFFERENT_MULTIPLE        LOGICAL  DIFFERENT_MULTIPLE
# Line 50  C-    Initialize fields for the first ca Line 49  C-    Initialize fields for the first ca
49          CALL TIMEAVE_RESET(uVeltave,  Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(uVeltave,  Nr, bi, bj, myThid)
50          CALL TIMEAVE_RESET(vVeltave,  Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(vVeltave,  Nr, bi, bj, myThid)
51          CALL TIMEAVE_RESET(wVeltave,  Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(wVeltave,  Nr, bi, bj, myThid)
52            CALL TIMEAVE_RESET(UTtave,    Nr, bi, bj, myThid)
53            CALL TIMEAVE_RESET(VTtave,    Nr, bi, bj, myThid)
54            CALL TIMEAVE_RESET(WTtave,    Nr, bi, bj, myThid)
55            CALL TIMEAVE_RESET(UStave,    Nr, bi, bj, myThid)
56            CALL TIMEAVE_RESET(VStave,    Nr, bi, bj, myThid)
57            CALL TIMEAVE_RESET(WStave,    Nr, bi, bj, myThid)
58    #ifndef HRCUBE
59          CALL TIMEAVE_RESET(Eta2tave,  1,  bi, bj, myThid)          CALL TIMEAVE_RESET(Eta2tave,  1,  bi, bj, myThid)
60          CALL TIMEAVE_RESET(TTtave,    Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(TTtave,    Nr, bi, bj, myThid)
61          CALL TIMEAVE_RESET(UUtave,    Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(UUtave,    Nr, bi, bj, myThid)
62          CALL TIMEAVE_RESET(VVtave,    Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(VVtave,    Nr, bi, bj, myThid)
63          CALL TIMEAVE_RESET(UVtave,    Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(UVtave,    Nr, bi, bj, myThid)
64  c       CALL TIMEAVE_RESET(KEtave,    Nr, bi, bj, myThid)  c       CALL TIMEAVE_RESET(KEtave,    Nr, bi, bj, myThid)
         CALL TIMEAVE_RESET(UTtave,    Nr, bi, bj, myThid)  
         CALL TIMEAVE_RESET(VTtave,    Nr, bi, bj, myThid)  
         CALL TIMEAVE_RESET(WTtave,    Nr, bi, bj, myThid)  
65          CALL TIMEAVE_RESET(TdiffRtave,Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(TdiffRtave,Nr, bi, bj, myThid)
66  #ifndef DISABLE_MOM_VECINV  #ifdef ALLOW_MOM_VECINV
67          CALL TIMEAVE_RESET(uZetatave, Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(uZetatave, Nr, bi, bj, myThid)
68          CALL TIMEAVE_RESET(vZetatave, Nr, bi, bj, myThid)          CALL TIMEAVE_RESET(vZetatave, Nr, bi, bj, myThid)
69  #endif  #endif
# Line 76  c       CALL TIMEAVE_RESET(hFacCtave, Nr Line 78  c       CALL TIMEAVE_RESET(hFacCtave, Nr
78  c       CALL TIMEAVE_RESET(hFacWtave, Nr, bi, bj, myThid)  c       CALL TIMEAVE_RESET(hFacWtave, Nr, bi, bj, myThid)
79  c       CALL TIMEAVE_RESET(hFacStave, Nr, bi, bj, myThid)  c       CALL TIMEAVE_RESET(hFacStave, Nr, bi, bj, myThid)
80  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
81    #endif /* ndef HRCUBE */
82          DO K=1,Nr          DO K=1,Nr
83           TimeAve_half(k,bi,bj)=0.           TimeAve_half(k,bi,bj)=0.
84           TimeAve_full(k,bi,bj)=0.           TimeAve_full(k,bi,bj)=0.
# Line 94  C--   Cumulate state-variables with Half Line 97  C--   Cumulate state-variables with Half
97    
98        IF ( DDTT .NE. 0. _d 0) THEN        IF ( DDTT .NE. 0. _d 0) THEN
99    
 C-    Time Averages of surface fluxes  
       IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN  
        k=Nr  
       ELSE  
        k=1  
       ENDIF  
   
 C     uFlux  
       DO j=1,sNy  
        DO i=1,sNx  
         tempArray(i,j,bi,bj)=fu(i,j,bi,bj)*foFacMom*_maskW(i,j,k,bi,bj)  
        ENDDO  
       ENDDO  
       CALL TIMEAVE_CUMULATE(uFluxtave,tempArray,1,DDTT,bi,bj,myThid)  
   
 C     vFlux  
       DO j=1,sNy  
        DO i=1,sNx  
         tempArray(i,j,bi,bj)=fv(i,j,bi,bj)*foFacMom*_maskS(i,j,k,bi,bj)  
        ENDDO  
       ENDDO  
       CALL TIMEAVE_CUMULATE(vFluxtave,tempArray,1,DDTT,bi,bj,myThid)  
   
 C     tFlux  
       DO j=1,sNy  
        DO i=1,sNx  
         tempArray(i,j,bi,bj)=maskC(i,j,k,bi,bj)*(  
 #ifdef SHORTWAVE_HEATING  
      &   -Qsw(i,j,bi,bj)+  
 #endif  
      &   (surfaceTendencyT(i,j,bi,bj)+surfaceTendencyTice(I,J,bi,bj))*  
      &   HeatCapacity_Cp*  
      &   recip_horiVertRatio*rhoConst*drF(k)*hFacC(i,j,k,bi,bj))  
        ENDDO  
       ENDDO  
       CALL TIMEAVE_CUMULATE(tFluxtave,tempArray,1,DDTT,bi, bj, myThid)  
   
 C     sFlux  
       DO j=1,sNy  
        DO i=1,sNx  
         tempArray(i,j,bi,bj)=maskC(i,j,k,bi,bj)*  
      &   surfaceTendencyS(i,j,bi,bj)*  
      &   recip_horiVertRatio*rhoConst*drF(k)*hFacC(i,j,k,bi,bj)  
        ENDDO  
       ENDDO  
       CALL TIMEAVE_CUMULATE(sFluxtave,tempArray,1,DDTT,bi,bj,myThid)  
   
100  C-    Time Averages of single fields (no hFactor)  C-    Time Averages of single fields (no hFactor)
101        CALL TIMEAVE_CUMULATE(etatave,  etaN,  1 , DDTT, bi, bj, myThid)        CALL TIMEAVE_CUMULATE(etatave,  etaN,  1 , DDTT, bi, bj, myThid)
102        CALL TIMEAVE_CUMULATE(thetatave,theta, Nr, DDTT, bi, bj, myThid)        CALL TIMEAVE_CUMULATE(thetatave,theta, Nr, DDTT, bi, bj, myThid)
# Line 150  C-    Time Averages of single fields (no Line 106  C-    Time Averages of single fields (no
106        CALL TIMEAVE_CUMULATE(wVeltave, wVel,  Nr, DDTT, bi, bj, myThid)        CALL TIMEAVE_CUMULATE(wVeltave, wVel,  Nr, DDTT, bi, bj, myThid)
107    
108  C-    Time Averages of "double" fields (no hFactor)  C-    Time Averages of "double" fields (no hFactor)
109    #ifndef HRCUBE
110        CALL TIMEAVE_CUMUL_2V(Eta2tave, etaN,etaN, 1,  0,        CALL TIMEAVE_CUMUL_2V(Eta2tave, etaN,etaN, 1,  0,
111       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
112        CALL TIMEAVE_CUMUL_2V(TTtave, theta,theta, Nr, 0,        CALL TIMEAVE_CUMUL_2V(TTtave, theta,theta, Nr, 0,
# Line 160  C-    Time Averages of "double" fields ( Line 117  C-    Time Averages of "double" fields (
117       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
118        CALL TIMEAVE_CUMUL_2V(UVtave, uVel,  vVel, Nr, 12,        CALL TIMEAVE_CUMUL_2V(UVtave, uVel,  vVel, Nr, 12,
119       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
120    #endif /* ndef HRCUBE */
121  c     CALL TIMEAVE_CUMUL_KE(KEtave, uVel,  vVel, Nr,  c     CALL TIMEAVE_CUMUL_KE(KEtave, uVel,  vVel, Nr,
122  c    &     DDTT, bi, bj, myThid)  c    &     DDTT, bi, bj, myThid)
123        CALL TIMEAVE_CUMUL_2V(WTtave, theta, wVel, Nr, 3,        CALL TIMEAVE_CUMUL_2V(WTtave, theta, wVel, Nr, 3,
124       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
125          CALL TIMEAVE_CUMUL_2V(WStave, salt,  wVel, Nr, 3,
126         &     DDTT, bi, bj, myThid)
127    
128  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
129    
# Line 172  c     CALL TIMEAVE_CUMUL_FC(hFacWtave,hF Line 132  c     CALL TIMEAVE_CUMUL_FC(hFacWtave,hF
132  c     CALL TIMEAVE_CUMUL_FC(hFacStave,hFacS, Nr, DDTT, bi, bj, myThid)  c     CALL TIMEAVE_CUMUL_FC(hFacStave,hFacS, Nr, DDTT, bi, bj, myThid)
133    
134  C-    Time Averages of single fields (* hFactor)  C-    Time Averages of single fields (* hFactor)
135    #ifndef HRCUBE
136        CALL TIMEAVE_CUMUL_1VFC(hUtave,  uVel,  hFacW, Nr,        CALL TIMEAVE_CUMUL_1VFC(hUtave,  uVel,  hFacW, Nr,
137       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
138        CALL TIMEAVE_CUMUL_1VFC(hVtave,  vVel,  hFacS, Nr,        CALL TIMEAVE_CUMUL_1VFC(hVtave,  vVel,  hFacS, Nr,
139       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
140    #endif /* ndef HRCUBE */
141    
142  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
143    
# Line 184  C-    Time Averages of "double" fields ( Line 146  C-    Time Averages of "double" fields (
146       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
147        CALL TIMEAVE_CUMUL_2VFC(VTtave, theta, vVel,  hFacS, Nr, 2,        CALL TIMEAVE_CUMUL_2VFC(VTtave, theta, vVel,  hFacS, Nr, 2,
148       &     DDTT, bi, bj, myThid)       &     DDTT, bi, bj, myThid)
149          CALL TIMEAVE_CUMUL_2VFC(UStave, salt, uVel,  hFacW, Nr, 1,
150         &     DDTT, bi, bj, myThid)
151          CALL TIMEAVE_CUMUL_2VFC(VStave, salt, vVel,  hFacS, Nr, 2,
152         &     DDTT, bi, bj, myThid)
153    
154  C-    Time Averages of "double" fields (no hFactor)  C-    Time Averages of "double" fields (no hFactor)
155  c     CALL TIMEAVE_CUMUL_2V(UTtave, theta, uVel, Nr, 1,  c     CALL TIMEAVE_CUMUL_2V(UTtave, theta, uVel, Nr, 1,
156  c    &     DDTT, bi, bj, myThid)  c    &     DDTT, bi, bj, myThid)
157  c     CALL TIMEAVE_CUMUL_2V(VTtave, theta, vVel, Nr, 2,  c     CALL TIMEAVE_CUMUL_2V(VTtave, theta, vVel, Nr, 2,
158  c    &     DDTT, bi, bj, myThid)  c    &     DDTT, bi, bj, myThid)
159    c     CALL TIMEAVE_CUMUL_2V(UStave, salt, uVel, Nr, 1,
160    c    &     DDTT, bi, bj, myThid)
161    c     CALL TIMEAVE_CUMUL_2V(VStave, salt, vVel, Nr, 2,
162    c    &     DDTT, bi, bj, myThid)
163    
164    
165  C-    Keep record of how much time has been integrated over  C-    Keep record of how much time has been integrated over
# Line 202  C-- end if DDTT ... Line 172  C-- end if DDTT ...
172    
173  C-    Time Averages of "intermediate" fields (no hFactor)  C-    Time Averages of "intermediate" fields (no hFactor)
174        IF ( myIter .NE. nIter0 ) THEN        IF ( myIter .NE. nIter0 ) THEN
175    
176    C-    Time Averages of surface fluxes
177    C     <- moved to external_forcing_surf
178    
179    #ifndef HRCUBE
180          CALL TIMEAVE_CUMULATE(phiHydtave, totPhihyd,  Nr,          CALL TIMEAVE_CUMULATE(phiHydtave, totPhihyd,  Nr,
181       &                                   deltaTclock, bi, bj, myThid)       &                                   deltaTclock, bi, bj, myThid)
182          CALL TIMEAVE_CUMULATE(phiHydLowtave, phiHydLow, 1,          CALL TIMEAVE_CUMULATE(phiHydLowtave, phiHydLow, 1,
183       &                                   deltaTclock, bi, bj, myThid)       &                                   deltaTclock, bi, bj, myThid)
184          CALL TIMEAVE_CUMUL_2V(phiHydLow2Tave,          CALL TIMEAVE_CUMUL_2V(phiHydLow2Tave,
185       &       phiHydLow,phiHydLow, 1,  0, deltaTclock, bi, bj, myThid)       &       phiHydLow,phiHydLow, 1,  0, deltaTclock, bi, bj, myThid)
186    #endif /* ndef HRCUBE */
187          DO K=1,Nr          DO K=1,Nr
188           TimeAve_full(k,bi,bj)=TimeAve_full(k,bi,bj)+deltaTclock           TimeAve_full(k,bi,bj)=TimeAve_full(k,bi,bj)+deltaTclock
189          ENDDO          ENDDO

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.22