17 |
#include "PARAMS.h" |
#include "PARAMS.h" |
18 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
19 |
#include "GRID.h" |
#include "GRID.h" |
20 |
|
#include "FFIELDS.h" |
21 |
#include "TIMEAVE_STATV.h" |
#include "TIMEAVE_STATV.h" |
22 |
|
|
23 |
LOGICAL DIFFERENT_MULTIPLE |
LOGICAL DIFFERENT_MULTIPLE |
34 |
#ifdef ALLOW_TIMEAVE |
#ifdef ALLOW_TIMEAVE |
35 |
|
|
36 |
C == Local variables == |
C == Local variables == |
37 |
INTEGER K |
INTEGER I, J, K |
38 |
_RL DDTT |
_RL DDTT |
39 |
|
_RL tempArray (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
40 |
|
|
41 |
C- Initialize fields for the first call ever |
C- Initialize fields for the first call ever |
42 |
IF ( myIter .EQ. nIter0 ) THEN |
IF ( myIter .EQ. nIter0 ) THEN |
43 |
|
CALL TIMEAVE_RESET(uFluxtave, 1, bi, bj, myThid) |
44 |
|
CALL TIMEAVE_RESET(vFluxtave, 1, bi, bj, myThid) |
45 |
|
CALL TIMEAVE_RESET(tFluxtave, 1, bi, bj, myThid) |
46 |
|
CALL TIMEAVE_RESET(sFluxtave, 1, bi, bj, myThid) |
47 |
CALL TIMEAVE_RESET(etatave, 1, bi, bj, myThid) |
CALL TIMEAVE_RESET(etatave, 1, bi, bj, myThid) |
48 |
CALL TIMEAVE_RESET(thetatave, Nr, bi, bj, myThid) |
CALL TIMEAVE_RESET(thetatave, Nr, bi, bj, myThid) |
49 |
CALL TIMEAVE_RESET(salttave, Nr, bi, bj, myThid) |
CALL TIMEAVE_RESET(salttave, Nr, bi, bj, myThid) |
94 |
|
|
95 |
IF ( DDTT .NE. 0. _d 0) THEN |
IF ( DDTT .NE. 0. _d 0) THEN |
96 |
|
|
97 |
|
C- Time Averages of surface fluxes |
98 |
|
IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN |
99 |
|
k=Nr |
100 |
|
ELSE |
101 |
|
k=1 |
102 |
|
ENDIF |
103 |
|
|
104 |
|
C uFlux |
105 |
|
DO j=1,sNy |
106 |
|
DO i=1,sNx |
107 |
|
tempArray(i,j,bi,bj)=fu(i,j,bi,bj)*foFacMom*_maskW(i,j,k,bi,bj) |
108 |
|
ENDDO |
109 |
|
ENDDO |
110 |
|
CALL TIMEAVE_CUMULATE(uFluxtave,tempArray,1,DDTT,bi,bj,myThid) |
111 |
|
|
112 |
|
C vFlux |
113 |
|
DO j=1,sNy |
114 |
|
DO i=1,sNx |
115 |
|
tempArray(i,j,bi,bj)=fv(i,j,bi,bj)*foFacMom*_maskS(i,j,k,bi,bj) |
116 |
|
ENDDO |
117 |
|
ENDDO |
118 |
|
CALL TIMEAVE_CUMULATE(vFluxtave,tempArray,1,DDTT,bi,bj,myThid) |
119 |
|
|
120 |
|
C tFlux |
121 |
|
DO j=1,sNy |
122 |
|
DO i=1,sNx |
123 |
|
tempArray(i,j,bi,bj)=maskC(i,j,k,bi,bj)*( |
124 |
|
#ifdef SHORTWAVE_HEATING |
125 |
|
& -Qsw(i,j,bi,bj)+ |
126 |
|
#endif |
127 |
|
& (surfaceTendencyT(i,j,bi,bj)+surfaceTendencyTice(I,J,bi,bj))* |
128 |
|
& HeatCapacity_Cp* |
129 |
|
& recip_horiVertRatio*rhoConst*drF(k)*hFacC(i,j,k,bi,bj)) |
130 |
|
ENDDO |
131 |
|
ENDDO |
132 |
|
CALL TIMEAVE_CUMULATE(tFluxtave,tempArray,1,DDTT,bi, bj, myThid) |
133 |
|
|
134 |
|
C sFlux |
135 |
|
DO j=1,sNy |
136 |
|
DO i=1,sNx |
137 |
|
tempArray(i,j,bi,bj)=maskC(i,j,k,bi,bj)* |
138 |
|
& surfaceTendencyS(i,j,bi,bj)* |
139 |
|
& recip_horiVertRatio*rhoConst*drF(k)*hFacC(i,j,k,bi,bj) |
140 |
|
ENDDO |
141 |
|
ENDDO |
142 |
|
CALL TIMEAVE_CUMULATE(sFluxtave,tempArray,1,DDTT,bi,bj,myThid) |
143 |
|
|
144 |
C- Time Averages of single fields (no hFactor) |
C- Time Averages of single fields (no hFactor) |
145 |
CALL TIMEAVE_CUMULATE(etatave, etaN, 1 , DDTT, bi, bj, myThid) |
CALL TIMEAVE_CUMULATE(etatave, etaN, 1 , DDTT, bi, bj, myThid) |
146 |
CALL TIMEAVE_CUMULATE(thetatave,theta, Nr, DDTT, bi, bj, myThid) |
CALL TIMEAVE_CUMULATE(thetatave,theta, Nr, DDTT, bi, bj, myThid) |