Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:42:48 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
071fa694ec Jean*0001 #include "OCN_CPL_OPTIONS.h"
e1a9393ebe Jean*0002 
963aacc62a Jean*0003 CBOP
                0004 C     !ROUTINE: OCN_CPL_DIAGS
                0005 C     !INTERFACE:
                0006       SUBROUTINE OCN_CPL_DIAGS( myTime, myIter, myThid )
                0007 
                0008 C     !DESCRIPTION: \bv
                0009 C     *==========================================================*
                0010 C     | S/R OCN_CPL_DIAGS
                0011 C     | o Calculate CPL time-average diagnostics
                0012 C     *==========================================================*
                0013 C     \ev
                0014 
                0015 C     !USES:
e1a9393ebe Jean*0016       IMPLICIT NONE
                0017 
                0018 C     === Global variables ===
                0019 #include "SIZE.h"
                0020 #include "EEPARAMS.h"
                0021 #include "PARAMS.h"
963aacc62a Jean*0022 #include "CPL_PARAMS.h"
e1a9393ebe Jean*0023 #include "OCNCPL.h"
963aacc62a Jean*0024 #include "CPL_TAVE.h"
e1a9393ebe Jean*0025 
963aacc62a Jean*0026 C     !INPUT/OUTPUT PARAMETERS:
                0027 C     myTime :: Current time in simulation (s)
                0028 C     myIter :: Current Iteration number
                0029 C     myThid :: my Thread Id number
e1a9393ebe Jean*0030       _RL     myTime
963aacc62a Jean*0031       INTEGER myIter
e1a9393ebe Jean*0032       INTEGER myThid
963aacc62a Jean*0033 CEOP
e1a9393ebe Jean*0034 
                0035 #ifdef COMPONENT_MODULE
963aacc62a Jean*0036 #ifdef ALLOW_TIMEAVE
e1a9393ebe Jean*0037 
963aacc62a Jean*0038 C     !LOCAL VARIABLES:
                0039 C     bi, bj :: Tile indices
                0040       INTEGER bi, bj
                0041       INTEGER i,j
e1a9393ebe Jean*0042       _RL DDTT
                0043 
963aacc62a Jean*0044 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
e1a9393ebe Jean*0045 
963aacc62a Jean*0046 c     IF ( cpl_taveFreq.GT.0. _d 0 ) THEN
                0047 C--   note: will activate this "if" (and remove the one in front of
                0048 C           OCN_CPL_DIAGS call) to do other diags than time-ave.
                0049 
                0050        DO bj=myByLo(myThid),myByHi(myThid)
                0051         DO bi=myBxLo(myThid),myBxHi(myThid)
                0052 
071fa694ec Jean*0053          DDTT = deltaTClock
963aacc62a Jean*0054          DO j=1,sNy
                0055           DO i=1,sNx
                0056             SLPtave(i,j,bi,bj)  = SLPtave(i,j,bi,bj)
                0057      &                   + DDTT * atmSLPr(i,j,bi,bj)
                0058             HFtave(i,j,bi,bj)   = HFtave(i,j,bi,bj)
                0059      &                   + DDTT * HeatFlux(i,j,bi,bj)
                0060             QSWtave(i,j,bi,bj)  = QSWtave(i,j,bi,bj)
                0061      &                   + DDTT * qShortWave(i,j,bi,bj)
                0062             TXtave(i,j,bi,bj)   = TXtave(i,j,bi,bj)
                0063      &                   + DDTT * tauX(i,j,bi,bj)
                0064             TYtave(i,j,bi,bj)   = TYtave(i,j,bi,bj)
                0065      &                   + DDTT * tauY(i,j,bi,bj)
                0066             FWtave(i,j,bi,bj)   = FWtave(i,j,bi,bj)
                0067      &                   + DDTT * FWFlux(i,j,bi,bj)
                0068             SFxtave(i,j,bi,bj)  = SFxtave(i,j,bi,bj)
                0069      &                   + DDTT * iceSaltFlx(i,j,bi,bj)
                0070             SICtave(i,j,bi,bj)  = SICtave(i,j,bi,bj)
                0071      &                   + DDTT * seaIceMass(i,j,bi,bj)
                0072             MXLtave(i,j,bi,bj)  = MXLtave(i,j,bi,bj)
                0073      &                   + DDTT * ocMxlD2cpl(i,j,bi,bj)
                0074             SSTtave(i,j,bi,bj)  = SSTtave(i,j,bi,bj)
                0075      &                   + DDTT * SSTocn2cpl(i,j,bi,bj)
                0076             SSStave(i,j,bi,bj)  = SSStave(i,j,bi,bj)
                0077      &                   + DDTT * SSSocn2cpl(i,j,bi,bj)
                0078             vSqtave(i,j,bi,bj)  = vSqtave(i,j,bi,bj)
                0079      &                   + DDTT * vSqocn2cpl(i,j,bi,bj)
644a2c3fdf Jean*0080 #ifdef ALLOW_DIC
071fa694ec Jean*0081            IF ( ocn_cplExch_DIC ) THEN
644a2c3fdf Jean*0082             iceftave(i,j,bi,bj)  = iceftave(i,j,bi,bj)
                0083      &                    + DDTT * sIceFrac_cpl(i,j,bi,bj)
963aacc62a Jean*0084             aCO2tave(i,j,bi,bj)  = aCO2tave(i,j,bi,bj)
                0085      &                    + DDTT * airCO2(i,j,bi,bj)
                0086             sWSpdtave(i,j,bi,bj) = sWSpdtave(i,j,bi,bj)
                0087      &                    + DDTT * surfWSpeed(i,j,bi,bj)
                0088             fCO2tave(i,j,bi,bj)  = fCO2tave(i,j,bi,bj)
                0089      &                    + DDTT * fluxCO2cpl(i,j,bi,bj)
                0090            ENDIF
644a2c3fdf Jean*0091 #endif /* ALLOW_DIC */
963aacc62a Jean*0092           ENDDO
                0093          ENDDO
e1a9393ebe Jean*0094 
                0095 C-    Keep record of how much time has been integrated over
963aacc62a Jean*0096          CPL_timeAve(bi,bj) = CPL_timeAve(bi,bj)+DDTT
e1a9393ebe Jean*0097 
963aacc62a Jean*0098 C--   end bi,bj loops
                0099         ENDDO
                0100        ENDDO
                0101 
                0102 C--   end if cpl_taveFreq > 0
                0103 c     ENDIF
                0104 #endif /* ALLOW_TIMEAVE */
e1a9393ebe Jean*0105 #endif /* COMPONENT_MODULE */
                0106 
                0107       RETURN
                0108       END