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

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

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


Revision 1.1 - (hide 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 jmc 1.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