/[MITgcm]/MITgcm/pkg/timeave/timeave_statvars.F
ViewVC logotype

Contents of /MITgcm/pkg/timeave/timeave_statvars.F

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


Revision 1.1 - (show annotations) (download)
Tue Mar 6 15:58:19 2001 UTC (23 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint38, pre38tag1, c37_adj, checkpoint39, checkpoint37
Branch point for: pre38
in the new package "timeave", replaces old diags/src/do_time_averages.F
    add time-averaged ETA diagnostic

1 C $Header: /u/gcmpack/models/MITgcmUV/diags/src/do_time_averages.F,v 1.14 2001/02/15 19:01:39 jmc Exp $
2 C $Name: $
3 #include "CPP_OPTIONS.h"
4
5 SUBROUTINE TIMEAVE_STATVARS(
6 I myTime, myIter, bi, bj, myThid)
7 C /==========================================================\
8 C | SUBROUTINE TIMEAVE_STATVARS |
9 C | o Time averaging routine for eta, U, V, W, T, S, UT, VT |
10 C | in model 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 "TIMEAVE_STATV.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 myTime - Current time of simulation ( s )
28 INTEGER myThid
29 INTEGER myIter, bi, bj
30 _RL myTime
31
32 C == Local variables ==
33 INTEGER K
34 _RL DDTT
35
36 C- Initialize fields for the first call ever
37 IF ( myIter .EQ. nIter0 ) THEN
38 CALL TIMEAVE_RESET(etaTave, 1, bi, bj, myThid)
39 CALL TIMEAVE_RESET(thetatave, Nr, bi, bj, myThid)
40 CALL TIMEAVE_RESET(salttave, Nr, bi, bj, myThid)
41 CALL TIMEAVE_RESET(uVeltave, Nr, bi, bj, myThid)
42 CALL TIMEAVE_RESET(vVeltave, Nr, bi, bj, myThid)
43 CALL TIMEAVE_RESET(wVeltave, Nr, bi, bj, myThid)
44 CALL TIMEAVE_RESET(uttave, Nr, bi, bj, myThid)
45 CALL TIMEAVE_RESET(vttave, Nr, bi, bj, myThid)
46 CALL TIMEAVE_RESET(phiHydtave,Nr,bi, bj, myThid)
47 CALL TIMEAVE_RESET(ConvectCountTave,Nr,bi,bj,myThid)
48 DO K=1,Nr
49 TimeAve_half(k,bi,bj)=0.
50 TimeAve_full(k,bi,bj)=0.
51 ENDDO
52 ENDIF
53
54 C-- Cumulate state-variables with Half or Full time step :
55 IF ( myIter .EQ. nIter0 .OR.
56 & DIFFERENT_MULTIPLE(taveFreq, myTime, myTime-deltaTClock)) THEN
57 DDTT=0.5*deltaTclock
58 ELSE
59 DDTT=deltaTclock
60 ENDIF
61
62 C- Time Averages of single fields
63 CALL TIMEAVE_CUMULATE(etaTave, etaN, 1 , DDTT, bi, bj, myThid)
64 CALL TIMEAVE_CUMULATE(thetatave,theta, Nr, DDTT, bi, bj, myThid)
65 CALL TIMEAVE_CUMULATE(salttave, salt, Nr, DDTT, bi, bj, myThid)
66 CALL TIMEAVE_CUMULATE(uVeltave, uVel, Nr, DDTT, bi, bj, myThid)
67 CALL TIMEAVE_CUMULATE(vVeltave, vVel, Nr, DDTT, bi, bj, myThid)
68
69 C- Time Averages of "double" fields
70 CALL TIMEAVE_CUMUL_2V(uttave, theta, uVel, Nr, 1, DDTT,
71 & bi, bj, myThid)
72 CALL TIMEAVE_CUMUL_2V(vttave, theta, vVel, Nr, 2, DDTT,
73 & bi, bj, myThid)
74
75 C- Keep record of how much time has been integrated over
76 DO K=1,Nr
77 TimeAve_half(k,bi,bj)=TimeAve_half(k,bi,bj)+DDTT
78 ENDDO
79
80 C- Time Averages of "intermediate" fields
81 IF ( myIter .NE. nIter0 ) THEN
82 CALL TIMEAVE_CUMULATE(wVeltave, wVel, Nr, deltaTclock,
83 & bi, bj, myThid)
84 DO K=1,Nr
85 TimeAve_full(k,bi,bj)=TimeAve_full(k,bi,bj)+deltaTclock
86 ENDDO
87 ENDIF
88
89 RETURN
90 END

  ViewVC Help
Powered by ViewVC 1.1.22