File indexing completed on 2018-03-02 18:44:37 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6d54cf9ca1 Ed H*0001 #include "TIMEAVE_OPTIONS.h"
5f2402791d Jean*0002
9a31010562 Jean*0003
0004
0005
0006
5f2402791d Jean*0007 SUBROUTINE TIMEAVE_STATVARS(
9a31010562 Jean*0008 I myTime, myIter, bi, bj, myThid )
0009
0010
0011
0012
0013
0014
0015
5f2402791d Jean*0016
9a31010562 Jean*0017
0018 IMPLICIT NONE
5f2402791d Jean*0019
0020 #include "SIZE.h"
0021 #include "EEPARAMS.h"
0022 #include "PARAMS.h"
0023 #include "DYNVARS.h"
aa7db3783b Jean*0024 #include "GRID.h"
5f2402791d Jean*0025 #include "TIMEAVE_STATV.h"
0026
9a31010562 Jean*0027
5f2402791d Jean*0028
9a31010562 Jean*0029
0030
0031
5f2402791d Jean*0032 _RL myTime
9a31010562 Jean*0033 INTEGER myIter, bi, bj
0034 INTEGER myThid
0035
5f2402791d Jean*0036
aa7db3783b Jean*0037 #ifdef ALLOW_TIMEAVE
9a31010562 Jean*0038
0039 LOGICAL DIFFERENT_MULTIPLE
0040 EXTERNAL DIFFERENT_MULTIPLE
aa7db3783b Jean*0041
9a31010562 Jean*0042
742cf4499c Jean*0043 LOGICAL dumpFiles
5f2402791d Jean*0044 _RL DDTT
742cf4499c Jean*0045
9a31010562 Jean*0046
0047
5f2402791d Jean*0048
0049 IF ( myIter .EQ. nIter0 ) THEN
9d36aec500 Dimi*0050 CALL TIMEAVE_RESET(uFluxtave, 1, bi, bj, myThid)
0051 CALL TIMEAVE_RESET(vFluxtave, 1, bi, bj, myThid)
0052 CALL TIMEAVE_RESET(tFluxtave, 1, bi, bj, myThid)
0053 CALL TIMEAVE_RESET(sFluxtave, 1, bi, bj, myThid)
aa7db3783b Jean*0054 CALL TIMEAVE_RESET(etatave, 1, bi, bj, myThid)
5f2402791d Jean*0055 CALL TIMEAVE_RESET(thetatave, Nr, bi, bj, myThid)
0056 CALL TIMEAVE_RESET(salttave, Nr, bi, bj, myThid)
0057 CALL TIMEAVE_RESET(uVeltave, Nr, bi, bj, myThid)
0058 CALL TIMEAVE_RESET(vVeltave, Nr, bi, bj, myThid)
0059 CALL TIMEAVE_RESET(wVeltave, Nr, bi, bj, myThid)
52dd3ef4ea Dimi*0060 CALL TIMEAVE_RESET(phiHydLowtave,1, bi, bj, myThid)
e7f0a9dbe1 Dimi*0061 CALL TIMEAVE_RESET(UTtave, Nr, bi, bj, myThid)
0062 CALL TIMEAVE_RESET(VTtave, Nr, bi, bj, myThid)
0063 CALL TIMEAVE_RESET(WTtave, Nr, bi, bj, myThid)
03afacb44c Alis*0064 CALL TIMEAVE_RESET(UStave, Nr, bi, bj, myThid)
0065 CALL TIMEAVE_RESET(VStave, Nr, bi, bj, myThid)
1a4a1e8371 Alis*0066 CALL TIMEAVE_RESET(WStave, Nr, bi, bj, myThid)
aa7db3783b Jean*0067 CALL TIMEAVE_RESET(Eta2tave, 1, bi, bj, myThid)
aea29c8517 Alis*0068 CALL TIMEAVE_RESET(TTtave, Nr, bi, bj, myThid)
0069 CALL TIMEAVE_RESET(UUtave, Nr, bi, bj, myThid)
0070 CALL TIMEAVE_RESET(VVtave, Nr, bi, bj, myThid)
4237a8e6b2 Jean*0071 CALL TIMEAVE_RESET(UVtave, Nr, bi, bj, myThid)
aa7db3783b Jean*0072
4237a8e6b2 Jean*0073 CALL TIMEAVE_RESET(TdiffRtave,Nr, bi, bj, myThid)
99bc607d7a Ed H*0074 #ifdef ALLOW_MOM_VECINV
6add245ab0 Jean*0075 CALL TIMEAVE_RESET(uZetatave, Nr, bi, bj, myThid)
0076 CALL TIMEAVE_RESET(vZetatave, Nr, bi, bj, myThid)
0077 #endif
aa7db3783b Jean*0078 CALL TIMEAVE_RESET(phiHydtave,Nr, bi, bj, myThid)
60c223928f Mart*0079 CALL TIMEAVE_RESET(phiHydLow2Tave,1, bi, bj, myThid)
5f2402791d Jean*0080 CALL TIMEAVE_RESET(ConvectCountTave,Nr,bi,bj,myThid)
aa7db3783b Jean*0081 #ifdef NONLIN_FRSURF
0082 CALL TIMEAVE_RESET(hUtave, Nr, bi, bj, myThid)
0083 CALL TIMEAVE_RESET(hVtave, Nr, bi, bj, myThid)
0084
0085
0086
0087 #endif /* NONLIN_FRSURF */
9a31010562 Jean*0088 timeAve_half(bi,bj) = 0. _d 0
0089 timeAve_full(bi,bj) = 0. _d 0
5f2402791d Jean*0090 ENDIF
742cf4499c Jean*0091
0092
f829564431 Jean*0093 IF ( myIter .EQ. nIter0 ) THEN
0094 DDTT = deltaTclock*(1. _d 0 - tave_lastIter)
742cf4499c Jean*0095 ELSE
0096 DDTT = deltaTclock
0097 dumpFiles = DIFFERENT_MULTIPLE(taveFreq,myTime,deltaTClock)
fc64655a31 Dimi*0098 #ifdef ALLOW_CAL
742cf4499c Jean*0099 IF ( useCAL ) THEN
7a31080eb8 Jean*0100 CALL CAL_TIME2DUMP( zeroRL, taveFreq, deltaTClock,
742cf4499c Jean*0101 U dumpFiles,
0102 I myTime, myIter, myThid )
0103 ENDIF
0104 #endif /* ALLOW_CAL */
0105 IF ( dumpFiles ) DDTT = deltaTclock*tave_lastIter
5f2402791d Jean*0106 ENDIF
0107
f829564431 Jean*0108 IF ( DDTT .NE. 0. _d 0) THEN
0109
aa7db3783b Jean*0110
0111 CALL TIMEAVE_CUMULATE(etatave, etaN, 1 , DDTT, bi, bj, myThid)
5f2402791d Jean*0112 CALL TIMEAVE_CUMULATE(thetatave,theta, Nr, DDTT, bi, bj, myThid)
0113 CALL TIMEAVE_CUMULATE(salttave, salt, Nr, DDTT, bi, bj, myThid)
0114 CALL TIMEAVE_CUMULATE(uVeltave, uVel, Nr, DDTT, bi, bj, myThid)
0115 CALL TIMEAVE_CUMULATE(vVeltave, vVel, Nr, DDTT, bi, bj, myThid)
4237a8e6b2 Jean*0116 CALL TIMEAVE_CUMULATE(wVeltave, wVel, Nr, DDTT, bi, bj, myThid)
5f2402791d Jean*0117
aa7db3783b Jean*0118
0119 CALL TIMEAVE_CUMUL_2V(Eta2tave, etaN,etaN, 1, 0,
0120 & DDTT, bi, bj, myThid)
0121 CALL TIMEAVE_CUMUL_2V(TTtave, theta,theta, Nr, 0,
0122 & DDTT, bi, bj, myThid)
0123 CALL TIMEAVE_CUMUL_2V(UUtave, uVel, uVel, Nr, 0,
0124 & DDTT, bi, bj, myThid)
0125 CALL TIMEAVE_CUMUL_2V(VVtave, vVel, vVel, Nr, 0,
0126 & DDTT, bi, bj, myThid)
4237a8e6b2 Jean*0127 CALL TIMEAVE_CUMUL_2V(UVtave, uVel, vVel, Nr, 12,
0128 & DDTT, bi, bj, myThid)
aa7db3783b Jean*0129
0130
f829564431 Jean*0131 CALL TIMEAVE_CUMUL_2V(WTtave, theta, wVel, Nr, 3,
0132 & DDTT, bi, bj, myThid)
1a4a1e8371 Alis*0133 CALL TIMEAVE_CUMUL_2V(WStave, salt, wVel, Nr, 3,
0134 & DDTT, bi, bj, myThid)
aa7db3783b Jean*0135
0136 #ifdef NONLIN_FRSURF
0137
0138
0139
0140
0141
0142
0143 CALL TIMEAVE_CUMUL_1VFC(hUtave, uVel, hFacW, Nr,
0144 & DDTT, bi, bj, myThid)
0145 CALL TIMEAVE_CUMUL_1VFC(hVtave, vVel, hFacS, Nr,
0146 & DDTT, bi, bj, myThid)
0147
0148 #endif /* NONLIN_FRSURF */
0149
0150
0151 CALL TIMEAVE_CUMUL_2VFC(UTtave, theta, uVel, hFacW, Nr, 1,
0152 & DDTT, bi, bj, myThid)
0153 CALL TIMEAVE_CUMUL_2VFC(VTtave, theta, vVel, hFacS, Nr, 2,
0154 & DDTT, bi, bj, myThid)
03afacb44c Alis*0155 CALL TIMEAVE_CUMUL_2VFC(UStave, salt, uVel, hFacW, Nr, 1,
0156 & DDTT, bi, bj, myThid)
0157 CALL TIMEAVE_CUMUL_2VFC(VStave, salt, vVel, hFacS, Nr, 2,
0158 & DDTT, bi, bj, myThid)
aa7db3783b Jean*0159
0160
0161
0162
0163
0164
03afacb44c Alis*0165
0166
0167
0168
5f2402791d Jean*0169
0170
9a31010562 Jean*0171 timeAve_half(bi,bj) = timeAve_half(bi,bj)+DDTT
5f2402791d Jean*0172
f829564431 Jean*0173
0174 ENDIF
aa7db3783b Jean*0175
0176
5f2402791d Jean*0177 IF ( myIter .NE. nIter0 ) THEN
742cf4499c Jean*0178
9d36aec500 Dimi*0179
1ce64188ac Jean*0180
9d36aec500 Dimi*0181
52a99445be Jean*0182 CALL TIMEAVE_CUMULATE(phiHydLowtave, phiHydLow, 1,
0183 & deltaTclock, bi, bj, myThid)
742cf4499c Jean*0184 CALL TIMEAVE_CUMULATE(phiHydtave, totPhihyd, Nr,
52dd3ef4ea Dimi*0185 & deltaTclock, bi, bj, myThid)
742cf4499c Jean*0186 CALL TIMEAVE_CUMUL_2V(phiHydLow2Tave,
60c223928f Mart*0187 & phiHydLow,phiHydLow, 1, 0, deltaTclock, bi, bj, myThid)
9a31010562 Jean*0188 timeAve_full(bi,bj) = timeAve_full(bi,bj)+deltaTclock
5f2402791d Jean*0189 ENDIF
0190
742cf4499c Jean*0191 #endif /* ALLOW_TIMEAVE */
aa7db3783b Jean*0192
5f2402791d Jean*0193 RETURN
0194 END