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

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

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

revision 1.1 by adcroft, Wed Jul 1 19:49:36 1998 UTC revision 1.13 by jmc, Wed Feb 14 22:15:04 2001 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
4    
5        SUBROUTINE DO_TIME_AVERAGES(        SUBROUTINE DO_TIME_AVERAGES(
6       I     myCurrentTime, myIter, bi, bj, K, kUp, kDown,       I     myTime, myIter, bi, bj, myThid)
      I     K13,K23,wVel,  
      I     myThid)  
7  C     /==========================================================\  C     /==========================================================\
8  C     | SUBROUTINE DO_TIME_AVERAGES                              |  C     | SUBROUTINE DO_TIME_AVERAGES                              |
9  C     | o Time averaging routine for U, V, T, S, UT, VT in model |  C     | o Time averaging routine for U, V, T, S, UT, VT in model |
10  C     |   main time-stepping                                     |  C     |   main time-stepping                                     |
11  C     \==========================================================/  C     \==========================================================/
12          IMPLICIT NONE
13    
14  C     == Global variables ===  C     == Global variables ===
15  #include "SIZE.h"  #include "SIZE.h"
# Line 23  C     == Global variables === Line 24  C     == Global variables ===
24  C     == Routine arguments ==  C     == Routine arguments ==
25  C     myThid - Thread number for this instance of the routine.  C     myThid - Thread number for this instance of the routine.
26  C     myIter - Iteration number  C     myIter - Iteration number
27  C     myCurrentTime - Current time of simulation ( s )  C     myTime - Current time of simulation ( s )
28        INTEGER myThid        INTEGER myThid
29        INTEGER myIter, bi, bj, K, kUp, kDown        INTEGER myIter, bi, bj
30        REAL    myCurrentTime        _RL     myTime
       _RL wVel  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)  
       _RL K13   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nz)  
       _RL K23   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nz)  
31    
32  C     == Local variables ==  C     == Local variables ==
33        REAL DDTT        INTEGER K
34          _RL DDTT
35    
36  C     Initialize fields for the first call ever  C     Initialize fields for the first call ever
37        IF ( myIter .EQ. nIter0 ) THEN        IF ( myIter .EQ. nIter0 ) THEN
38           DO K=1,Nr
39           CALL TIMEAVER_INI_XYZ(thetatave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(thetatave, bi, bj, K, myThid)
40           CALL TIMEAVER_INI_XYZ(salttave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(salttave, bi, bj, K, myThid)
41           CALL TIMEAVER_INI_XYZ(uVeltave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(uVeltave, bi, bj, K, myThid)
42           CALL TIMEAVER_INI_XYZ(vVeltave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(vVeltave, bi, bj, K, myThid)
43             CALL TIMEAVER_INI_XYZ(wVeltave, bi, bj, K, myThid)
44           CALL TIMEAVER_INI_XYZ(uttave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(uttave, bi, bj, K, myThid)
45           CALL TIMEAVER_INI_XYZ(vttave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(vttave, bi, bj, K, myThid)
46           CALL TIMEAVER_INI_XYZ(k13tave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(phiHydtave, bi, bj, K, myThid)
47           CALL TIMEAVER_INI_XYZ(k23tave, bi, bj, K, myThid)           CALL TIMEAVER_INI_XYZ(ConvectCountTave, bi, bj, K, myThid)
48           CALL TIMEAVER_INI_XYZ(wVeltave, bi, bj, K, myThid)           TimeAve_half(k,bi,bj)=0.
49           TimeAve(k,bi,bj)=0.           TimeAve_full(k,bi,bj)=0.
50           InterTimeAve(k,bi,bj)=0.         ENDDO
51        ENDIF        ENDIF
52                
53        IF ( myIter .EQ. nIter0 .OR.        IF ( myIter .EQ. nIter0 .OR.
54       & DIFFERENT_MULTIPLE       &  DIFFERENT_MULTIPLE(taveFreq, myTime, myTime-deltaTClock)) THEN
      &     (taveFreq,myCurrentTime,myCurrentTime-deltaTClock) )  
      &   THEN  
55         DDTT=0.5*deltaTclock         DDTT=0.5*deltaTclock
56        ELSE        ELSE
57         DDTT=deltaTclock         DDTT=deltaTclock
58        ENDIF        ENDIF
59    
60          DO K=1,Nr
61    
62  C     Time Averages of single fields  C     Time Averages of single fields
63        CALL TIMEAVER_1FLD_XYZ(theta, thetatave, DDTT, bi, bj, K, myThid)        CALL TIMEAVER_1FLD_XYZ(theta, thetatave, DDTT, bi, bj, K, myThid)
64        CALL TIMEAVER_1FLD_XYZ(salt,  salttave,  DDTT, bi, bj, K, myThid)        CALL TIMEAVER_1FLD_XYZ(salt,  salttave,  DDTT, bi, bj, K, myThid)
# Line 65  C     Time Averages of single fields Line 66  C     Time Averages of single fields
66        CALL TIMEAVER_1FLD_XYZ(vVel,  vVeltave,  DDTT, bi, bj, K, myThid)        CALL TIMEAVER_1FLD_XYZ(vVel,  vVeltave,  DDTT, bi, bj, K, myThid)
67    
68  C     Time Averages of "double" fields  C     Time Averages of "double" fields
69        CALL TIMEAVER_2FLD_XYZ(theta, uVel, uttave, 1, DDTT, bi, bj, K, myThid)        CALL TIMEAVER_2FLD_XYZ(theta, uVel, uttave, 1, DDTT,
70        CALL TIMEAVER_2FLD_XYZ(theta, vVel, vttave, 2, DDTT, bi, bj, K, myThid)       & bi, bj, K, myThid)
71          CALL TIMEAVER_2FLD_XYZ(theta, vVel, vttave, 2, DDTT,
72         & bi, bj, K, myThid)
73    
74  C     Keep record of how much time has been integrated over  C     Keep record of how much time has been integrated over
75        TimeAve(k,bi,bj)=TimeAve(k,bi,bj)+DDTT        TimeAve_half(k,bi,bj)=TimeAve_half(k,bi,bj)+DDTT
76    
77  C     Time Averages of "intermediate" fields  C     Time Averages of "intermediate" fields
78        DDTT=deltaTclock        IF ( myIter .NE. 0 ) THEN
79        CALL TIMEAVER_INTER_XYZ(Nz, K13, k13tave, DDTT, bi, bj, K, K, myThid)           CALL TIMEAVER_1FLD_XYZ(wVel,  wVeltave,  deltaTclock,
80        CALL TIMEAVER_INTER_XYZ(Nz, K23, k23tave, DDTT, bi, bj, K, kUp, myThid)       &                          bi, bj, K, myThid)
81        CALL TIMEAVER_INTER_XYZ(2, wVel, wVeltave, DDTT, bi, bj, K, kUp, myThid)           TimeAve_full(k,bi,bj)=TimeAve_full(k,bi,bj)+deltaTclock
82        InterTimeAve(k,bi,bj)=InterTimeAve(k,bi,bj)+DDTT        ENDIF
83    
84    C--   End DO K=1,Nr
85          ENDDO
86    
87        RETURN        RETURN
88        END        END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22