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

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

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

revision 1.12 by cnh, Sun Feb 4 14:38:41 2001 UTC revision 1.13 by jmc, Wed Feb 14 22:15:04 2001 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3  #include "CPP_EEOPTIONS.h"  #include "CPP_EEOPTIONS.h"
4    
5        SUBROUTINE WRITE_TIME_AVERAGES(myCurrentTime, myIter, myThid)        SUBROUTINE WRITE_TIME_AVERAGES(myTime, myIter, myThid)
6  C     /==========================================================\  C     /==========================================================\
7  C     | SUBROUTINE WRITE_TIME_AVERAGES                           |  C     | SUBROUTINE WRITE_TIME_AVERAGES                           |
8  C     |                                                          |  C     |                                                          |
# Line 24  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        INTEGER myIter
30        _RL     myCurrentTime        _RL     myTime
       INTEGER prevPrec  
31    
32  C     == Local variables ==  C     == Local variables ==
33  C     suff - Hold suffix part of a filename  C     suff - Hold suffix part of a filename
34  C     TimeAve - total time over average  C     TimeAve - total time over average
35          INTEGER prevPrec
36        CHARACTER*(MAX_LEN_FNAM) suff        CHARACTER*(MAX_LEN_FNAM) suff
37        _RL DDTT        _RL DDTT
38        INTEGER bi,bj,k        INTEGER bi,bj,k
# Line 42  C     TimeAve - total time over average Line 42  C     TimeAve - total time over average
42    
43  C     Final Time Averages and Dump Files if needed  C     Final Time Averages and Dump Files if needed
44        IF ( myIter.NE.nIter0 .AND.        IF ( myIter.NE.nIter0 .AND.
45       & DIFFERENT_MULTIPLE(taveFreq,myCurrentTime,       &  DIFFERENT_MULTIPLE(taveFreq,myTime,myTime-deltaTClock) ) THEN
      &                    myCurrentTime-deltaTClock)  
      &   ) THEN  
46    
47         WRITE(suff,'(I10.10)') myIter         WRITE(suff,'(I10.10)') myIter
48    
# Line 52  C      Normalize by integrated time Line 50  C      Normalize by integrated time
50         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
51          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
52           DO k=1,Nr           DO k=1,Nr
53            CALL TIMEAVER_FINAL_XYZ(thetatave,timeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(thetatave,TimeAve_half,bi,bj,K,myThid)
54            CALL TIMEAVER_FINAL_XYZ(salttave,timeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(salttave,TimeAve_half,bi,bj,K,myThid)
55            CALL TIMEAVER_FINAL_XYZ(uVeltave,timeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(uVeltave,TimeAve_half,bi,bj,K,myThid)
56            CALL TIMEAVER_FINAL_XYZ(vVeltave,timeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(vVeltave,TimeAve_half,bi,bj,K,myThid)
57            CALL TIMEAVER_FINAL_XYZ(uttave,timeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(uttave,TimeAve_half,bi,bj,K,myThid)
58            CALL TIMEAVER_FINAL_XYZ(vttave,timeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(vttave,TimeAve_half,bi,bj,K,myThid)
59            CALL TIMEAVER_FINAL_XYZ(k13tave,intertimeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(wVeltave,TimeAve_full,bi,bj,K,myThid)
60            CALL TIMEAVER_FINAL_XYZ(k23tave,intertimeave,bi,bj,K,myThid)            CALL TIMEAVER_FINAL_XYZ(phiHydtave,TimeAve_full,
61            CALL TIMEAVER_FINAL_XYZ(wVeltave,intertimeave,bi,bj,K,myThid)       &                            bi,bj,K,myThid)
62            CALL TIMEAVER_FINAL_XYZ(ConvectCountTave,intertimeave,            CALL TIMEAVER_FINAL_XYZ(ConvectCountTave,TimeAve_full,
63       &                            bi,bj,K,myThid)       &                            bi,bj,K,myThid)
64           ENDDO           ENDDO
          CALL TIMEAVER_FINAL_XY(KapGMtave,intertimeave,bi,bj,myThid)  
65          ENDDO          ENDDO
66         ENDDO         ENDDO
67    
# Line 87  C--     Read IO error counter Line 84  C--     Read IO error counter
84          CALL WRITE_FLD_XYZ_RL('vVeltave.',suff,vVeltave,myIter,myThid)          CALL WRITE_FLD_XYZ_RL('vVeltave.',suff,vVeltave,myIter,myThid)
85          CALL WRITE_FLD_XYZ_RL('UTtave.',suff,uttave,myIter,myThid)          CALL WRITE_FLD_XYZ_RL('UTtave.',suff,uttave,myIter,myThid)
86          CALL WRITE_FLD_XYZ_RL('VTtave.',suff,vttave,myIter,myThid)          CALL WRITE_FLD_XYZ_RL('VTtave.',suff,vttave,myIter,myThid)
87          CALL WRITE_FLD_XYZ_RL('K13tave.',suff,k13tave,myIter,myThid)          CALL WRITE_FLD_XYZ_RL('wVeltave.',suff,wVeltave,myIter,myThid)
88          CALL WRITE_FLD_XYZ_RL('K23tave.',suff,k23tave,myIter,myThid)          CALL WRITE_FLD_XYZ_RL('PhHytave.',suff,phiHydtave,myIter,myThid)
89          CALL WRITE_FLD_XYZ_RL('WTtave.',suff,wVeltave,myIter,myThid)          CALL WRITE_FLD_XYZ_RL('Convtave.',suff,ConvectCountTave,
         CALL WRITE_FLD_XY_RL('KapGMtave.',suff,KapGMtave,myIter,myThid)  
         CALL WRITE_FLD_XYZ_RL('ConvectCntTave.',suff,ConvectCountTave,  
90       &                        myIter,myThid)       &                        myIter,myThid)
91          writeBinaryPrec = prevPrec          writeBinaryPrec = prevPrec
92  C--     Reread IO error counter  C--     Reread IO error counter
# Line 127  C      Reset the averages to zero Line 122  C      Reset the averages to zero
122            CALL TIMEAVER_INI_XYZ(salttave, bi,bj,K,myThid)            CALL TIMEAVER_INI_XYZ(salttave, bi,bj,K,myThid)
123            CALL TIMEAVER_INI_XYZ(uVeltave, bi,bj,K,myThid)            CALL TIMEAVER_INI_XYZ(uVeltave, bi,bj,K,myThid)
124            CALL TIMEAVER_INI_XYZ(vVeltave, bi,bj,K,myThid)            CALL TIMEAVER_INI_XYZ(vVeltave, bi,bj,K,myThid)
125              CALL TIMEAVER_INI_XYZ(wVeltave, bi,bj,K,myThid)
126            CALL TIMEAVER_INI_XYZ(uttave, bi,bj,K,myThid)            CALL TIMEAVER_INI_XYZ(uttave, bi,bj,K,myThid)
127            CALL TIMEAVER_INI_XYZ(vttave, bi,bj,K,myThid)            CALL TIMEAVER_INI_XYZ(vttave, bi,bj,K,myThid)
128            CALL TIMEAVER_INI_XYZ(k13tave, bi,bj,K,myThid)            CALL TIMEAVER_INI_XYZ(phiHydtave, bi,bj,K,myThid)
           CALL TIMEAVER_INI_XYZ(k23tave, bi,bj,K,myThid)  
           CALL TIMEAVER_INI_XYZ(wVeltave, bi,bj,K,myThid)  
           IF (K.EQ.1) CALL TIMEAVER_INI_XY(KapGMtave, bi,bj,myThid)  
129            CALL TIMEAVER_INI_XYZ(ConvectCountTave, bi,bj,K,myThid)            CALL TIMEAVER_INI_XYZ(ConvectCountTave, bi,bj,K,myThid)
130            TimeAve(k,bi,bj)=0.            TimeAve_half(k,bi,bj)=0.
131            InterTimeAve(k,bi,bj)=0.            TimeAve_full(k,bi,bj)=0.
132    
133  C      Time Averages of single fields  C      Time Averages of single fields
134            DDTT=0.5*deltaTclock            DDTT=0.5*deltaTclock
135            CALL TIMEAVER_1FLD_XYZ(theta, thetatave, DDTT, bi,bj,K,myThid)            CALL TIMEAVER_1FLD_XYZ(theta,thetatave,DDTT, bi,bj,K,myThid)
136            CALL TIMEAVER_1FLD_XYZ(salt,  salttave,  DDTT, bi,bj,K,myThid)            CALL TIMEAVER_1FLD_XYZ(salt, salttave, DDTT, bi,bj,K,myThid)
137            CALL TIMEAVER_1FLD_XYZ(uVel,  uVeltave,  DDTT, bi,bj,K,myThid)            CALL TIMEAVER_1FLD_XYZ(uVel, uVeltave, DDTT, bi,bj,K,myThid)
138            CALL TIMEAVER_1FLD_XYZ(vVel,  vVeltave,  DDTT, bi,bj,K,myThid)            CALL TIMEAVER_1FLD_XYZ(vVel, vVeltave, DDTT, bi,bj,K,myThid)
139    
140  C      Time Averages of "double" fields  C      Time Averages of "double" fields
141            CALL TIMEAVER_2FLD_XYZ(theta, uVel, uttave, 1, DDTT,            CALL TIMEAVER_2FLD_XYZ(theta, uVel, uttave, 1, DDTT,
# Line 151  C      Time Averages of "double" fields Line 144  C      Time Averages of "double" fields
144       &         bi,bj,K,myThid)       &         bi,bj,K,myThid)
145    
146  C      Keep record of how much time has been integrated over  C      Keep record of how much time has been integrated over
147            TimeAve(k,bi,bj)=TimeAve(k,bi,bj)+DDTT            TimeAve_half(k,bi,bj)=TimeAve_half(k,bi,bj)+DDTT
148    
149           ENDDO           ENDDO
150          ENDDO          ENDDO

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

  ViewVC Help
Powered by ViewVC 1.1.22