/[MITgcm]/MITgcm/pkg/ocn_compon_interf/ocn_cpl_diags.F
ViewVC logotype

Diff of /MITgcm/pkg/ocn_compon_interf/ocn_cpl_diags.F

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

revision 1.3 by jscott, Thu May 10 21:15:52 2007 UTC revision 1.4 by jmc, Sun Jan 3 19:26:54 2010 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "PACKAGES_CONFIG.h"  #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7  CStartOfInterFace  CBOP
8        SUBROUTINE OCN_CPL_DIAGS( bi, bj, myTime, myThid )  C     !ROUTINE: OCN_CPL_DIAGS
9  C     /==========================================================\  C     !INTERFACE:
10  C     | SUBROUTINE OCN_CPL_DIAGS                                 |        SUBROUTINE OCN_CPL_DIAGS( myTime, myIter, myThid )
11  C     | o Calculate CPL diagnostics                              |  
12  C     \==========================================================/  C     !DESCRIPTION: \bv
13    C     *==========================================================*
14    C     | S/R OCN_CPL_DIAGS
15    C     | o Calculate CPL time-average diagnostics
16    C     *==========================================================*
17    C     \ev
18    
19    C     !USES:
20        IMPLICIT NONE        IMPLICIT NONE
21    
22  C     === Global variables ===  C     === Global variables ===
23  #include "SIZE.h"  #include "SIZE.h"
24  #include "EEPARAMS.h"  #include "EEPARAMS.h"
25  #include "PARAMS.h"  #include "PARAMS.h"
26    #include "CPL_PARAMS.h"
27  #include "OCNIDS.h"  #include "OCNIDS.h"
28  #include "OCNCPL.h"  #include "OCNCPL.h"
29  #include "CPL_DIAGS.h"  #include "CPL_TAVE.h"
30    
31  C     == Routine arguments ==  C     !INPUT/OUTPUT PARAMETERS:
32  C     bi,bj  - Tile index  C     myTime :: Current time in simulation (s)
33  C     myTime - Current time of simulation ( s )  C     myIter :: Current Iteration number
34  C     myThid - Number of this instance of the routine  C     myThid :: my Thread Id number
       INTEGER bi, bj  
35        _RL     myTime        _RL     myTime
36          INTEGER myIter
37        INTEGER myThid        INTEGER myThid
38  CEndOfInterface  CEOP
39    
40  #ifdef COMPONENT_MODULE  #ifdef COMPONENT_MODULE
41    #ifdef ALLOW_TIMEAVE
42    
43  C     == Local variables ==  C     !LOCAL VARIABLES:
44        INTEGER I,J,K  C     bi, bj :: Tile indices
45          INTEGER bi, bj
46          INTEGER i,j
47        _RL DDTT        _RL DDTT
48    
49  #ifdef ALLOW_TIMEAVE  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
50    
51        DDTT = deltaTclock  c     IF ( cpl_taveFreq.GT.0. _d 0 ) THEN
52    C--   note: will activate this "if" (and remove the one in front of
53    C           OCN_CPL_DIAGS call) to do other diags than time-ave.
54    
55           DO bj=myByLo(myThid),myByHi(myThid)
56            DO bi=myBxLo(myThid),myBxHi(myThid)
57    
58             DDTT = deltaTclock
59             DO j=1,sNy
60              DO i=1,sNx
61                SLPtave(i,j,bi,bj)  = SLPtave(i,j,bi,bj)
62         &                   + DDTT * atmSLPr(i,j,bi,bj)
63                HFtave(i,j,bi,bj)   = HFtave(i,j,bi,bj)
64         &                   + DDTT * HeatFlux(i,j,bi,bj)
65                QSWtave(i,j,bi,bj)  = QSWtave(i,j,bi,bj)
66         &                   + DDTT * qShortWave(i,j,bi,bj)
67    c           QLTtave(i,j,bi,bj)  = QLTtave(i,j,bi,bj)
68    c    &                   + DDTT * qLatent(i,j,bi,bj)
69    c           QSNtave(i,j,bi,bj)  = QSNtave(i,j,bi,bj)
70    c    &                   + DDTT * qSensible(i,j,bi,bj)
71    c           QLWtave(i,j,bi,bj)  = QLWtave(i,j,bi,bj)
72    c    &                   + DDTT * qLongWave(i,j,bi,bj)
73    c           UGtave(i,j,bi,bj)   = UGtave(i,j,bi,bj)
74    c    &                   + DDTT * uVelGround(i,j,bi,bj)
75    c           VGtave(i,j,bi,bj)   = VGtave(i,j,bi,bj)
76    c    &                   + DDTT * vVelGround(i,j,bi,bj)
77                TXtave(i,j,bi,bj)   = TXtave(i,j,bi,bj)
78         &                   + DDTT * tauX(i,j,bi,bj)
79                TYtave(i,j,bi,bj)   = TYtave(i,j,bi,bj)
80         &                   + DDTT * tauY(i,j,bi,bj)
81                FWtave(i,j,bi,bj)   = FWtave(i,j,bi,bj)
82         &                   + DDTT * FWFlux(i,j,bi,bj)
83                SFxtave(i,j,bi,bj)  = SFxtave(i,j,bi,bj)
84         &                   + DDTT * iceSaltFlx(i,j,bi,bj)
85                SICtave(i,j,bi,bj)  = SICtave(i,j,bi,bj)
86         &                   + DDTT * seaIceMass(i,j,bi,bj)
87                MXLtave(i,j,bi,bj)  = MXLtave(i,j,bi,bj)
88         &                   + DDTT * ocMxlD2cpl(i,j,bi,bj)
89                SSTtave(i,j,bi,bj)  = SSTtave(i,j,bi,bj)
90         &                   + DDTT * SSTocn2cpl(i,j,bi,bj)
91                SSStave(i,j,bi,bj)  = SSStave(i,j,bi,bj)
92         &                   + DDTT * SSSocn2cpl(i,j,bi,bj)
93                vSqtave(i,j,bi,bj)  = vSqtave(i,j,bi,bj)
94         &                   + DDTT * vSqocn2cpl(i,j,bi,bj)
95               IF ( ocnCpl_exchange_DIC ) THEN
96                aCO2tave(i,j,bi,bj)  = aCO2tave(i,j,bi,bj)
97         &                    + DDTT * airCO2(i,j,bi,bj)
98                sWSpdtave(i,j,bi,bj) = sWSpdtave(i,j,bi,bj)
99         &                    + DDTT * surfWSpeed(i,j,bi,bj)
100                iceftave(i,j,bi,bj)  = iceftave(i,j,bi,bj)
101         &                    + DDTT * fracIce(i,j,bi,bj)
102                fCO2tave(i,j,bi,bj)  = fCO2tave(i,j,bi,bj)
103         &                    + DDTT * fluxCO2cpl(i,j,bi,bj)
104               ENDIF
105              ENDDO
106             ENDDO
107    
108        DO J=1,sNy  C-    Keep record of how much time has been integrated over
109         DO I=1,sNx           CPL_timeAve(bi,bj) = CPL_timeAve(bi,bj)+DDTT
110          SLPtave(i,j,bi,bj)  = SLPtave(i,j,bi,bj)  
111       &               + DDTT * atmSLPr(i,j,bi,bj)  C--   end bi,bj loops
112          HFtave(i,j,bi,bj)   = HFtave(i,j,bi,bj)          ENDDO
      &               + DDTT * HeatFlux(i,j,bi,bj)  
         QSWtave(i,j,bi,bj)  = QSWtave(i,j,bi,bj)  
      &               + DDTT * qShortWave(i,j,bi,bj)  
 c       QLTtave(i,j,bi,bj)  = QLTtave(i,j,bi,bj)  
 c    &               + DDTT * qLatent(i,j,bi,bj)  
 c       QSNtave(i,j,bi,bj)  = QSNtave(i,j,bi,bj)  
 c    &               + DDTT * qSensible(i,j,bi,bj)  
 c       QLWtave(i,j,bi,bj)  = QLWtave(i,j,bi,bj)  
 c    &               + DDTT * qLongWave(i,j,bi,bj)  
 c       UGtave(i,j,bi,bj)   = UGtave(i,j,bi,bj)  
 c    &               + DDTT * uVelGround(i,j,bi,bj)  
 c       VGtave(i,j,bi,bj)   = VGtave(i,j,bi,bj)  
 c    &               + DDTT * vVelGround(i,j,bi,bj)  
         TXtave(i,j,bi,bj)   = TXtave(i,j,bi,bj)  
      &               + DDTT * tauX(i,j,bi,bj)  
         TYtave(i,j,bi,bj)   = TYtave(i,j,bi,bj)  
      &               + DDTT * tauY(i,j,bi,bj)  
         FWtave(i,j,bi,bj)   = FWtave(i,j,bi,bj)  
      &               + DDTT * FWFlux(i,j,bi,bj)  
         SFxtave(i,j,bi,bj)  = SFxtave(i,j,bi,bj)  
      &               + DDTT * iceSaltFlx(i,j,bi,bj)  
         SICtave(i,j,bi,bj)  = SICtave(i,j,bi,bj)  
      &               + DDTT * seaIceMass(i,j,bi,bj)  
         MXLtave(i,j,bi,bj)  = MXLtave(i,j,bi,bj)  
      &               + DDTT * ocMxlD2cpl(i,j,bi,bj)  
         SSTtave(i,j,bi,bj)  = SSTtave(i,j,bi,bj)  
      &               + DDTT * SSTocn2cpl(i,j,bi,bj)  
         SSStave(i,j,bi,bj)  = SSStave(i,j,bi,bj)  
      &               + DDTT * SSSocn2cpl(i,j,bi,bj)  
         vSqtave(i,j,bi,bj)  = vSqtave(i,j,bi,bj)  
      &               + DDTT * vSqocn2cpl(i,j,bi,bj)  
         IF ( ocnCpl_exchange_DIC ) THEN  
           aCO2tave(i,j,bi,bj)  = aCO2tave(i,j,bi,bj)  
      &               + DDTT * airCO2(i,j,bi,bj)  
           sWSpdtave(i,j,bi,bj) = sWSpdtave(i,j,bi,bj)  
      &               + DDTT * surfWSpeed(i,j,bi,bj)  
           iceftave(i,j,bi,bj)  = iceftave(i,j,bi,bj)  
      &               + DDTT * fracIce(i,j,bi,bj)  
           fCO2tave(i,j,bi,bj)  = fCO2tave(i,j,bi,bj)  
      &               + DDTT * fluxCO2cpl(i,j,bi,bj)  
         ENDIF  
113         ENDDO         ENDDO
       ENDDO  
114    
115  C-    Keep record of how much time has been integrated over  C--   end if cpl_taveFreq > 0
116        DO K=1,1  c     ENDIF
        CPL_TimeAve(k,bi,bj)=CPL_TimeAve(k,bi,bj)+DDTT  
       ENDDO                                                                                      
117  #endif /* ALLOW_TIMEAVE */  #endif /* ALLOW_TIMEAVE */
   
118  #endif /* COMPONENT_MODULE */  #endif /* COMPONENT_MODULE */
119    
120        RETURN        RETURN

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22