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

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

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


Revision 1.7 - (hide annotations) (download)
Fri Jul 30 15:42:54 1999 UTC (24 years, 11 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint24
Changes since 1.6: +2 -2 lines
Changed some erroneous declarations of myCurrentTime (sometimes myTime)
from REAL to _RL. This probably was caught before because most people
are using -r8 compile option in conjuction with REAL4_IS_SLOW which
converts everything to real*8.  Spotted by C.E.

1 adcroft 1.1 #include "CPP_EEOPTIONS.h"
2    
3     SUBROUTINE DO_TIME_AVERAGES(
4     I myCurrentTime, myIter, bi, bj, K, kUp, kDown,
5 adcroft 1.3 I K13,K23,wVel,KapGM,
6 adcroft 1.1 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 adcroft 1.6 IMPLICIT NONE
13 adcroft 1.1
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 adcroft 1.7 _RL myCurrentTime
31 cnh 1.4 _RL K13 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
32     _RL K23 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
33 adcroft 1.3 _RL wVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
34     _RL KapGM (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
35 adcroft 1.1
36     C == Local variables ==
37 adcroft 1.7 _RL DDTT
38 adcroft 1.3 LOGICAL TOP_LEVEL
39 adcroft 1.1
40 adcroft 1.3 TOP_LEVEL=K.EQ.1
41    
42 adcroft 1.1 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(uttave, bi, bj, K, myThid)
49     CALL TIMEAVER_INI_XYZ(vttave, bi, bj, K, myThid)
50     CALL TIMEAVER_INI_XYZ(k13tave, bi, bj, K, myThid)
51     CALL TIMEAVER_INI_XYZ(k23tave, bi, bj, K, myThid)
52     CALL TIMEAVER_INI_XYZ(wVeltave, bi, bj, K, myThid)
53 adcroft 1.3 IF (TOP_LEVEL) CALL TIMEAVER_INI_XY(KapGMtave, bi, bj, myThid)
54 adcroft 1.1 TimeAve(k,bi,bj)=0.
55     InterTimeAve(k,bi,bj)=0.
56     ENDIF
57    
58     IF ( myIter .EQ. nIter0 .OR.
59     & DIFFERENT_MULTIPLE
60     & (taveFreq,myCurrentTime,myCurrentTime-deltaTClock) )
61     & THEN
62     DDTT=0.5*deltaTclock
63     ELSE
64     DDTT=deltaTclock
65     ENDIF
66    
67     C Time Averages of single fields
68     CALL TIMEAVER_1FLD_XYZ(theta, thetatave, DDTT, bi, bj, K, myThid)
69     CALL TIMEAVER_1FLD_XYZ(salt, salttave, DDTT, bi, bj, K, myThid)
70     CALL TIMEAVER_1FLD_XYZ(uVel, uVeltave, DDTT, bi, bj, K, myThid)
71     CALL TIMEAVER_1FLD_XYZ(vVel, vVeltave, DDTT, bi, bj, K, myThid)
72    
73     C Time Averages of "double" fields
74 cnh 1.5 CALL TIMEAVER_2FLD_XYZ(theta, uVel, uttave, 1, DDTT,
75     & bi, bj, K, myThid)
76     CALL TIMEAVER_2FLD_XYZ(theta, vVel, vttave, 2, DDTT,
77     & bi, bj, K, myThid)
78 adcroft 1.1
79     C Keep record of how much time has been integrated over
80     TimeAve(k,bi,bj)=TimeAve(k,bi,bj)+DDTT
81    
82     C Time Averages of "intermediate" fields
83     DDTT=deltaTclock
84 cnh 1.5 CALL TIMEAVER_INTER_XYZ(Nr, K13, k13tave, DDTT,
85     & bi, bj, K, K, myThid)
86     CALL TIMEAVER_INTER_XYZ(Nr, K23, k23tave, DDTT,
87     & bi, bj, K, K, myThid)
88     CALL TIMEAVER_INTER_XYZ(2, wVel, wVeltave, DDTT,
89     & bi, bj, K, kUp, myThid)
90 adcroft 1.3 IF (TOP_LEVEL)
91     & CALL TIMEAVER_INTER_XY(KapGM, KapGMtave, DDTT, bi, bj, myThid)
92 adcroft 1.1 InterTimeAve(k,bi,bj)=InterTimeAve(k,bi,bj)+DDTT
93    
94    
95     RETURN
96     END

  ViewVC Help
Powered by ViewVC 1.1.22