/[MITgcm]/MITgcm/diags/src/do_time_averages.F
ViewVC logotype

Contents of /MITgcm/diags/src/do_time_averages.F

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


Revision 1.11 - (show annotations) (download)
Fri Feb 2 21:04:47 2001 UTC (23 years, 4 months ago) by adcroft
Branch: MAIN
Changes since 1.10: +3 -5 lines
Merged changes from branch "branch-atmos-merge" into MAIN (checkpoint34)
 - substantial modifications to algorithm sequence (dynamics.F)
 - packaged OBCS, Shapiro filter, Zonal filter, Atmospheric Physics

1 #include "CPP_EEOPTIONS.h"
2
3 SUBROUTINE DO_TIME_AVERAGES(
4 I myCurrentTime, myIter, bi, bj, K, kUp, kDown,
5 I K13,K23,KapGM,ConvectCount,
6 I myThid)
7 C /==========================================================\
8 C | SUBROUTINE DO_TIME_AVERAGES |
9 C | o Time averaging routine for U, V, T, S, UT, VT in model |
10 C | main time-stepping |
11 C \==========================================================/
12 IMPLICIT NONE
13
14 C == Global variables ===
15 #include "SIZE.h"
16 #include "EEPARAMS.h"
17 #include "PARAMS.h"
18 #include "DYNVARS.h"
19 #include "AVER.h"
20
21 LOGICAL DIFFERENT_MULTIPLE
22 EXTERNAL DIFFERENT_MULTIPLE
23
24 C == Routine arguments ==
25 C myThid - Thread number for this instance of the routine.
26 C myIter - Iteration number
27 C myCurrentTime - Current time of simulation ( s )
28 INTEGER myThid
29 INTEGER myIter, bi, bj, K, kUp, kDown
30 _RL myCurrentTime
31 _RL K13 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
32 _RL K23 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
33 _RL KapGM (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
34 _RL ConvectCount (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
35
36 C == Local variables ==
37 _RL DDTT
38 LOGICAL TOP_LEVEL
39
40 TOP_LEVEL=K.EQ.1
41
42 C Initialize fields for the first call ever
43 IF ( myIter .EQ. nIter0 ) THEN
44 CALL TIMEAVER_INI_XYZ(thetatave, bi, bj, K, myThid)
45 CALL TIMEAVER_INI_XYZ(salttave, bi, bj, K, myThid)
46 CALL TIMEAVER_INI_XYZ(uVeltave, bi, bj, K, myThid)
47 CALL TIMEAVER_INI_XYZ(vVeltave, bi, bj, K, myThid)
48 CALL TIMEAVER_INI_XYZ(wVeltave, bi, bj, K, myThid)
49 CALL TIMEAVER_INI_XYZ(uttave, bi, bj, K, myThid)
50 CALL TIMEAVER_INI_XYZ(vttave, bi, bj, K, myThid)
51 CALL TIMEAVER_INI_XYZ(k13tave, bi, bj, K, myThid)
52 CALL TIMEAVER_INI_XYZ(k23tave, bi, bj, K, myThid)
53 IF (TOP_LEVEL) CALL TIMEAVER_INI_XY(KapGMtave, bi, bj, myThid)
54 CALL TIMEAVER_INI_XYZ(ConvectCountTave, bi, bj, K, myThid)
55 TimeAve(k,bi,bj)=0.
56 InterTimeAve(k,bi,bj)=0.
57 ENDIF
58
59 IF ( myIter .EQ. nIter0 .OR.
60 & DIFFERENT_MULTIPLE
61 & (taveFreq,myCurrentTime,myCurrentTime-deltaTClock) )
62 & THEN
63 DDTT=0.5*deltaTclock
64 ELSE
65 DDTT=deltaTclock
66 ENDIF
67
68 C Time Averages of single fields
69 CALL TIMEAVER_1FLD_XYZ(theta, thetatave, DDTT, bi, bj, K, myThid)
70 CALL TIMEAVER_1FLD_XYZ(salt, salttave, DDTT, bi, bj, K, myThid)
71 CALL TIMEAVER_1FLD_XYZ(uVel, uVeltave, DDTT, bi, bj, K, myThid)
72 CALL TIMEAVER_1FLD_XYZ(vVel, vVeltave, DDTT, bi, bj, K, myThid)
73 CALL TIMEAVER_1FLD_XYZ(wVel, wVeltave, DDTT, bi, bj, K, myThid)
74
75 C Time Averages of "double" fields
76 CALL TIMEAVER_2FLD_XYZ(theta, uVel, uttave, 1, DDTT,
77 & bi, bj, K, myThid)
78 CALL TIMEAVER_2FLD_XYZ(theta, vVel, vttave, 2, DDTT,
79 & bi, bj, K, myThid)
80
81 C Keep record of how much time has been integrated over
82 TimeAve(k,bi,bj)=TimeAve(k,bi,bj)+DDTT
83
84 C Time Averages of "intermediate" fields
85 DDTT=deltaTclock
86 CALL TIMEAVER_INTER_XYZ(Nr, K13, k13tave, DDTT,
87 & bi, bj, K, K, myThid)
88 CALL TIMEAVER_INTER_XYZ(Nr, K23, k23tave, DDTT,
89 & bi, bj, K, K, myThid)
90 IF (TOP_LEVEL)
91 & CALL TIMEAVER_INTER_XY(KapGM, KapGMtave, DDTT, bi, bj, myThid)
92 InterTimeAve(k,bi,bj)=InterTimeAve(k,bi,bj)+DDTT
93 CALL TIMEAVER_INTER_XYZ(Nr, ConvectCount, ConvectCountTave, DDTT,
94 & bi, bj, K, K, myThid)
95
96 RETURN
97 END

  ViewVC Help
Powered by ViewVC 1.1.22