/[MITgcm]/MITgcm/pkg/thsice/thsice_ave.F
ViewVC logotype

Diff of /MITgcm/pkg/thsice/thsice_ave.F

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

revision 1.13 by jmc, Tue Dec 29 23:07:43 2009 UTC revision 1.14 by jmc, Thu Apr 4 01:59:57 2013 UTC
# Line 7  CBOP Line 7  CBOP
7  C     !ROUTINE: THSICE_AVE  C     !ROUTINE: THSICE_AVE
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE THSICE_AVE(        SUBROUTINE THSICE_AVE(
10       I                      bi, bj, myTime, myIter, myThid )       I                       bi, bj, myTime, myIter, myThid )
11  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
12  C     *==========================================================*  C     *==========================================================*
13  C     | S/R  THSICE_AVE  C     | S/R  THSICE_AVE
# Line 31  C     !INPUT/OUTPUT PARAMETERS: Line 31  C     !INPUT/OUTPUT PARAMETERS:
31  C     == Routine Arguments ==  C     == Routine Arguments ==
32  C     frwAtm  :: net fresh-water flux (E-P) to the atmosphere [kg/m2/s]  C     frwAtm  :: net fresh-water flux (E-P) to the atmosphere [kg/m2/s]
33  C     flxAtm  :: net heat flux from the atmosphere (+=down) [W/m2]  C     flxAtm  :: net heat flux from the atmosphere (+=down) [W/m2]
 C     myTime  :: time counter for this thread  
34  C     bi,bj   :: tile indices  C     bi,bj   :: tile indices
35    C     myTime  :: time counter for this thread
36  C     myIter  :: iteration counter for this thread  C     myIter  :: iteration counter for this thread
37  C     myThid  :: thread number for this instance of the routine.  C     myThid  :: thread number for this instance of the routine.
38  c     _RL frwAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)  c     _RL frwAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 45  CEOP Line 45  CEOP
45    
46  #ifdef ALLOW_THSICE  #ifdef ALLOW_THSICE
47  C     == Local variables ==  C     == Local variables ==
48        LOGICAL  DIFFERENT_MULTIPLE  c     LOGICAL  DIFFERENT_MULTIPLE
49        EXTERNAL DIFFERENT_MULTIPLE  c     EXTERNAL DIFFERENT_MULTIPLE
50  c     INTEGER wrtIter  c     INTEGER wrtIter
51    
52  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
# Line 54  c     INTEGER wrtIter Line 54  c     INTEGER wrtIter
54        IF ( thSIce_taveFreq .GT. 0. _d 0 ) THEN        IF ( thSIce_taveFreq .GT. 0. _d 0 ) THEN
55    
56  C--    Time-average  C--    Time-average
57         CALL TIMEAVE_CUMULATE(ice_fract_Ave, iceMask,         CALL TIMEAVE_CUMULATE( ice_fract_Ave, iceMask,
58       &                       1, thSIce_deltaT, bi, bj, myThid )       &                        1, thSIce_deltaT, bi, bj, myThid )
59  C-- area weighted average (with ice-fraction)  C-- area weighted average (with ice-fraction)
60         CALL TIMEAVE_CUMUL_2V( ice_iceH_Ave,  iceHeight, iceMask,         CALL TIMEAVE_CUMUL_2V( ice_iceH_Ave,  iceHeight, iceMask,
61       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
# Line 70  C-- area weighted average (with ice-frac Line 70  C-- area weighted average (with ice-frac
70         CALL TIMEAVE_CUMUL_2V( ice_snowPr_Ave,snowPrc, iceMask,         CALL TIMEAVE_CUMUL_2V( ice_snowPr_Ave,snowPrc, iceMask,
71       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
72  C--    notes: siceAlb is already multiplied by iceFraction  C--    notes: siceAlb is already multiplied by iceFraction
73         CALL TIMEAVE_CUMULATE(ice_albedo_Ave, siceAlb,         CALL TIMEAVE_CUMULATE( ice_albedo_Ave, siceAlb,
74       &                       1, thSIce_deltaT, bi, bj, myThid )       &                        1, thSIce_deltaT, bi, bj, myThid )
75  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
76  C-- simple average (without ice-fraction)  C-- simple average (without ice-fraction)
77  c      CALL TIMEAVE_CUMULATE(ice_iceH_Ave,iceHeight,  c      CALL TIMEAVE_CUMULATE( ice_iceH_Ave,iceHeight,
78  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                        1, thSIce_deltaT, bi, bj, myThid )
79  c      CALL TIMEAVE_CUMULATE(ice_snowH_Ave,snowHeight,  c      CALL TIMEAVE_CUMULATE( ice_snowH_Ave,snowHeight,
80  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                        1, thSIce_deltaT, bi, bj, myThid )
81  c      CALL TIMEAVE_CUMULATE(ice_Tsrf_Ave, Tsrf,  c      CALL TIMEAVE_CUMULATE( ice_Tsrf_Ave, Tsrf,
82  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                        1, thSIce_deltaT, bi, bj, myThid )
83  c      CALL TIMEAVE_CUMULATE(ice_Tice1_Ave,Tice1,  c      CALL TIMEAVE_CUMULATE( ice_Tice1_Ave,Tice1,
84  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                        1, thSIce_deltaT, bi, bj, myThid )
85  c      CALL TIMEAVE_CUMULATE(ice_Tice2_Ave,Tice2,  c      CALL TIMEAVE_CUMULATE( ice_Tice2_Ave,Tice2,
86  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                        1, thSIce_deltaT, bi, bj, myThid )
87  c      CALL TIMEAVE_CUMULATE(ice_snowPr_Ave, snowPrc,  c      CALL TIMEAVE_CUMULATE( ice_snowPr_Ave, snowPrc,
88  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                        1, thSIce_deltaT, bi, bj, myThid )
89    
90  C-- average of atmospheric fluxes :  C-- average of atmospheric fluxes :
91        IF ( fluidIsWater ) THEN        IF ( fluidIsWater ) THEN
92         CALL TIMEAVE_CUMULATE(ice_flxAtm_Ave, icFlxAtm,         CALL TIMEAVE_CUMULATE( ice_flxAtm_Ave, icFlxAtm,
93       &                       1, thSIce_deltaT, bi, bj, myThid )       &                        1, thSIce_deltaT, bi, bj, myThid )
94         CALL TIMEAVE_CUMULATE(ice_frwAtm_Ave, icFrwAtm,         CALL TIMEAVE_CUMULATE( ice_frwAtm_Ave, icFrwAtm,
95       &                       1, thSIce_deltaT, bi, bj, myThid )       &                        1, thSIce_deltaT, bi, bj, myThid )
96        ENDIF        ENDIF
97    
98  C-- average of oceanic fluxes :  C-- average of oceanic fluxes :
99  #ifndef CHECK_ENERGY_CONSERV  #ifndef CHECK_ENERGY_CONSERV
100  #ifdef REAL4_IS_SLOW  #ifdef RS_IS_REAL8
101         CALL TIMEAVE_CUMULATE(ice_flx2oc_Ave, Qnet,         CALL TIMEAVE_CUMULATE( ice_flx2oc_Ave, Qnet,
102       &                       1, thSIce_deltaT, bi, bj, myThid )       &                        1, thSIce_deltaT, bi, bj, myThid )
103         CALL TIMEAVE_CUMULATE(ice_frw2oc_Ave, EmPmR,         CALL TIMEAVE_CUMULATE( ice_frw2oc_Ave, EmPmR,
104       &                       1, thSIce_deltaT, bi, bj, myThid )       &                        1, thSIce_deltaT, bi, bj, myThid )
105         CALL TIMEAVE_CUMULATE(ice_salFx_Ave, saltFlux,         CALL TIMEAVE_CUMULATE( ice_salFx_Ave, saltFlux,
106       &                       1, thSIce_deltaT, bi, bj, myThid )       &                        1, thSIce_deltaT, bi, bj, myThid )
107  #endif  #endif
108  #endif /* CHECK_ENERGY_CONSERV */  #endif /* CHECK_ENERGY_CONSERV */
109    
 C-- average of Ocean Mixed-Layer temp. & salinity  
       IF ( stepFwd_oceMxL ) THEN  
        CALL TIMEAVE_CUMULATE(ice_tMxL_Ave, tOceMxL,  
      &                       1, thSIce_deltaT, bi, bj, myThid )  
        CALL TIMEAVE_CUMULATE(ice_sMxL_Ave, sOceMxL,  
      &                       1, thSIce_deltaT, bi, bj, myThid )  
       ENDIF  
   
110         ice_timeAve(bi,bj) = ice_timeAve(bi,bj)+thSIce_deltaT         ice_timeAve(bi,bj) = ice_timeAve(bi,bj)+thSIce_deltaT
111    
112        ENDIF        ENDIF
# Line 143  C-- Atmospheric fluxes : Line 135  C-- Atmospheric fluxes :
135    
136  C-- Oceanic fluxes :  C-- Oceanic fluxes :
137  c #ifndef CHECK_ENERGY_CONSERV  c #ifndef CHECK_ENERGY_CONSERV
138          CALL DIAGNOSTICS_FILL_RS(Qnet,    'SIflx2oc',0,1,1,bi,bj,myThid)         CALL DIAGNOSTICS_FILL_RS(Qnet,    'SIflx2oc',0,1,1,bi,bj,myThid)
139          CALL DIAGNOSTICS_FILL_RS(EmPmR,   'SIfrw2oc',0,1,1,bi,bj,myThid)         CALL DIAGNOSTICS_FILL_RS(EmPmR,   'SIfrw2oc',0,1,1,bi,bj,myThid)
140          CALL DIAGNOSTICS_FILL_RS(saltFlux,'SIsaltFx',0,1,1,bi,bj,myThid)         CALL DIAGNOSTICS_FILL_RS(saltFlux,'SIsaltFx',0,1,1,bi,bj,myThid)
141  c #endif /* CHECK_ENERGY_CONSERV */  c #endif /* CHECK_ENERGY_CONSERV */
142    
143        ENDIF        ENDIF

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

  ViewVC Help
Powered by ViewVC 1.1.22