/[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.5 - (show annotations) (download)
Wed Oct 28 03:11:33 1998 UTC (25 years, 6 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint17, checkpoint22, checkpoint19, checkpoint18, checkpoint16, checkpoint20, checkpoint21
Changes since 1.4: +10 -5 lines
Changes to support
 - g77 compilation under Linux
 - LR(1) form of 64-bit is D or E for constants
 - Modified adjoint of exch with adjoint variables
   acuumulated.

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

  ViewVC Help
Powered by ViewVC 1.1.22