/[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.2 - (hide annotations) (download)
Wed Jul 15 22:02:50 1998 UTC (25 years, 10 months ago) by adcroft
Branch: MAIN
CVS Tags: branch-point-rdot
Branch point for: branch-rdot
Changes since 1.1: +1 -1 lines
Fixed two bugs in time-averaging:
 o Every other level of K23 was zero.
 o No meta files were generated with the "intermediate" variable
   data files.

1 adcroft 1.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,
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 wVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
31     _RL K13 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nz)
32     _RL K23 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nz)
33    
34     C == Local variables ==
35     REAL DDTT
36    
37     C Initialize fields for the first call ever
38     IF ( myIter .EQ. nIter0 ) THEN
39     CALL TIMEAVER_INI_XYZ(thetatave, bi, bj, K, myThid)
40     CALL TIMEAVER_INI_XYZ(salttave, bi, bj, K, myThid)
41     CALL TIMEAVER_INI_XYZ(uVeltave, bi, bj, K, myThid)
42     CALL TIMEAVER_INI_XYZ(vVeltave, bi, bj, K, myThid)
43     CALL TIMEAVER_INI_XYZ(uttave, bi, bj, K, myThid)
44     CALL TIMEAVER_INI_XYZ(vttave, bi, bj, K, myThid)
45     CALL TIMEAVER_INI_XYZ(k13tave, bi, bj, K, myThid)
46     CALL TIMEAVER_INI_XYZ(k23tave, bi, bj, K, myThid)
47     CALL TIMEAVER_INI_XYZ(wVeltave, bi, bj, K, myThid)
48     TimeAve(k,bi,bj)=0.
49     InterTimeAve(k,bi,bj)=0.
50     ENDIF
51    
52     IF ( myIter .EQ. nIter0 .OR.
53     & DIFFERENT_MULTIPLE
54     & (taveFreq,myCurrentTime,myCurrentTime-deltaTClock) )
55     & THEN
56     DDTT=0.5*deltaTclock
57     ELSE
58     DDTT=deltaTclock
59     ENDIF
60    
61     C Time Averages of single fields
62     CALL TIMEAVER_1FLD_XYZ(theta, thetatave, DDTT, bi, bj, K, myThid)
63     CALL TIMEAVER_1FLD_XYZ(salt, salttave, DDTT, bi, bj, K, myThid)
64     CALL TIMEAVER_1FLD_XYZ(uVel, uVeltave, DDTT, bi, bj, K, myThid)
65     CALL TIMEAVER_1FLD_XYZ(vVel, vVeltave, DDTT, bi, bj, K, myThid)
66    
67     C Time Averages of "double" fields
68     CALL TIMEAVER_2FLD_XYZ(theta, uVel, uttave, 1, DDTT, bi, bj, K, myThid)
69     CALL TIMEAVER_2FLD_XYZ(theta, vVel, vttave, 2, DDTT, bi, bj, K, myThid)
70    
71     C Keep record of how much time has been integrated over
72     TimeAve(k,bi,bj)=TimeAve(k,bi,bj)+DDTT
73    
74     C Time Averages of "intermediate" fields
75     DDTT=deltaTclock
76     CALL TIMEAVER_INTER_XYZ(Nz, K13, k13tave, DDTT, bi, bj, K, K, myThid)
77 adcroft 1.2 CALL TIMEAVER_INTER_XYZ(Nz, K23, k23tave, DDTT, bi, bj, K, K, myThid)
78 adcroft 1.1 CALL TIMEAVER_INTER_XYZ(2, wVel, wVeltave, DDTT, bi, bj, K, kUp, myThid)
79     InterTimeAve(k,bi,bj)=InterTimeAve(k,bi,bj)+DDTT
80    
81    
82     RETURN
83     END

  ViewVC Help
Powered by ViewVC 1.1.22