/[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.1 by jmc, Sun Nov 23 01:20:13 2003 UTC revision 1.2 by jmc, Wed Apr 7 23:40:34 2004 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "THSICE_OPTIONS.h"  #include "THSICE_OPTIONS.h"
5    
6  CStartofinterface  CBOP
7  C     !ROUTINE: THSICE_AVE  C     !ROUTINE: THSICE_AVE
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE THSICE_AVE( bi, bj, myThid )        SUBROUTINE THSICE_AVE(
10         I                      frwAtm, flxAtm,
11         I                      bi, bj, myTime, myIter, myThid )
12    C     !DESCRIPTION: \bv
13  C     *==========================================================*  C     *==========================================================*
14  C     | S/R  THSICE_AVE                                                C     | S/R  THSICE_AVE                                              
15  C     | o save values for timeaveraging  C     | o save values for timeaveraging
# Line 15  C     \ev Line 18  C     \ev
18    
19  C     !USES:  C     !USES:
20        IMPLICIT NONE        IMPLICIT NONE
21    
22  C     == Global variables ==  C     == Global variables ==
23  #include "SIZE.h"  #include "SIZE.h"
24  c #include "EEPARAMS.h"  #include "EEPARAMS.h"
25  c #include "PARAMS.h"  #include "PARAMS.h"
26    #include "FFIELDS.h"
27  #include "THSICE_PARAMS.h"  #include "THSICE_PARAMS.h"
28  #include "THSICE.h"  #include "THSICE_VARS.h"
29  #include "THSICE_DIAGS.h"  #include "THSICE_TAVE.h"
30    
31  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
32  C     == Routine Arguments ==  C     == Routine Arguments ==
33    C     frwAtm  :: net fresh-water flux (E-P) to the atmosphere [kg/m2/s]
34    C     flxAtm  :: net heat flux from the atmosphere (+=down) [W/m2]
35    C     myTime  :: time counter for this thread
36    C     bi,bj   :: tile indices
37    C     myIter  :: iteration counter for this thread
38    C     myThid  :: thread number for this instance of the routine.
39          _RL frwAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
40          _RL flxAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
41        INTEGER bi,bj        INTEGER bi,bj
42          _RL  myTime
43          INTEGER myIter
44        INTEGER myThid        INTEGER myThid
45  CEndofinterface  CEOP
46    
47  #ifdef ALLOW_THSICE  #ifdef ALLOW_THSICE
48    C     == Local variables ==
49          LOGICAL  DIFFERENT_MULTIPLE
50          EXTERNAL DIFFERENT_MULTIPLE
51          INTEGER wrtIter
52    
53  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
54    
55          IF ( thSIce_taveFreq .LE. 0. _d 0 ) RETURN
56    
57  C--    Time-average  C--    Time-average
58         CALL TIMEAVE_CUMULATE(ICE_iceMask_AVE,iceMask,         CALL TIMEAVE_CUMULATE(ice_fract_Ave, iceMask,
59       &                       1, thSIce_deltaT, bi, bj, myThid )       &                       1, thSIce_deltaT, bi, bj, myThid )
60  C-- area weighted average (with ice-fraction)  C-- area weighted average (with ice-fraction)
61         CALL TIMEAVE_CUMUL_2V( ICE_iceH_AVE, iceheight, iceMask,         CALL TIMEAVE_CUMUL_2V( ice_iceH_Ave,  iceheight, iceMask,
62       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
63         CALL TIMEAVE_CUMUL_2V( ICE_snowH_AVE, snowheight, iceMask,         CALL TIMEAVE_CUMUL_2V( ice_snowH_Ave, snowheight, iceMask,
64       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
65         CALL TIMEAVE_CUMUL_2V( ICE_Tsrf_AVE,  Tsrf,  iceMask,         CALL TIMEAVE_CUMUL_2V( ice_Tsrf_Ave,  Tsrf,  iceMask,
66       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
67         CALL TIMEAVE_CUMUL_2V( ICE_Tice1_AVE, Tice1, iceMask,         CALL TIMEAVE_CUMUL_2V( ice_Tice1_Ave, Tice1, iceMask,
68       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
69         CALL TIMEAVE_CUMUL_2V( ICE_Tice2_AVE, Tice2, iceMask,         CALL TIMEAVE_CUMUL_2V( ice_Tice2_Ave, Tice2, iceMask,
70       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
71         CALL TIMEAVE_CUMUL_2V( ICE_snow_AVE,  snow,  iceMask,         CALL TIMEAVE_CUMUL_2V( ice_snowPr_Ave,snowPrc, iceMask,
72       &                    1, 0, thSIce_deltaT, bi, bj, myThid )       &                    1, 0, thSIce_deltaT, bi, bj, myThid )
73  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
74  C-- simple average (without ice-fraction)  C-- simple average (without ice-fraction)
75  c      CALL TIMEAVE_CUMULATE(ICE_iceH_AVE,iceheight,  c      CALL TIMEAVE_CUMULATE(ice_iceH_Ave,iceheight,
76  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                       1, thSIce_deltaT, bi, bj, myThid )
77  c      CALL TIMEAVE_CUMULATE(ICE_snowH_AVE,snowHeight,  c      CALL TIMEAVE_CUMULATE(ice_snowH_Ave,snowHeight,
78  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                       1, thSIce_deltaT, bi, bj, myThid )
79  c      CALL TIMEAVE_CUMULATE(ICE_Tsrf_AVE, Tsrf,  c      CALL TIMEAVE_CUMULATE(ice_Tsrf_Ave, Tsrf,
80  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                       1, thSIce_deltaT, bi, bj, myThid )
81  c      CALL TIMEAVE_CUMULATE(ICE_Tice1_AVE,Tice1,  c      CALL TIMEAVE_CUMULATE(ice_Tice1_Ave,Tice1,
82  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                       1, thSIce_deltaT, bi, bj, myThid )
83  c      CALL TIMEAVE_CUMULATE(ICE_Tice2_AVE,Tice2,  c      CALL TIMEAVE_CUMULATE(ice_Tice2_Ave,Tice2,
84  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                       1, thSIce_deltaT, bi, bj, myThid )
85  c      CALL TIMEAVE_CUMULATE(ICE_snow_AVE, snow,  c      CALL TIMEAVE_CUMULATE(ice_snowPr_Ave, snowPrc,
86  c    &                       1, thSIce_deltaT, bi, bj, myThid )  c    &                       1, thSIce_deltaT, bi, bj, myThid )
87    
88         ICE_timeave(1,bi,bj)=ICE_timeave(1,bi,bj)+thSIce_deltaT  C-- average of atmospheric fluxes :
89    #ifdef ALLOW_TIMEAVE
90           CALL TIMEAVE_CUMUL_1T(ice_flxAtm_Ave, flxAtm,
91         &                       1, thSIce_deltaT, bi, bj, myThid )
92           CALL TIMEAVE_CUMUL_1T(ice_frwAtm_Ave, frwAtm,
93         &                       1, thSIce_deltaT, bi, bj, myThid )
94    #endif /*ALLOW_TIMEAVE*/
95    
96    C-- average of oceanic fluxes :
97    #ifndef CHECK_ENERGY_CONSERV
98           CALL TIMEAVE_CUMULATE(ice_flx2oc_Ave, Qnet,
99         &                       1, thSIce_deltaT, bi, bj, myThid )
100           CALL TIMEAVE_CUMULATE(ice_frw2oc_Ave, EmPmR,
101         &                       1, thSIce_deltaT, bi, bj, myThid )
102           CALL TIMEAVE_CUMULATE(ice_salFx_Ave, saltFlux,
103         &                       1, thSIce_deltaT, bi, bj, myThid )
104    #endif /* CHECK_ENERGY_CONSERV */
105    
106    C-- average of Ocean Mixed-Layer temp. & salinity
107          IF ( stepFwd_oceMxL ) THEN
108           CALL TIMEAVE_CUMULATE(ice_tMxL_Ave, tOceMxL,
109         &                       1, thSIce_deltaT, bi, bj, myThid )
110           CALL TIMEAVE_CUMULATE(ice_sMxL_Ave, sOceMxL,
111         &                       1, thSIce_deltaT, bi, bj, myThid )
112          ENDIF
113    
114           ice_timeAve(1,bi,bj)=ice_timeAve(1,bi,bj)+thSIce_deltaT
115    
116  #endif /* ALLOW_TIMEAVE */  #endif /* ALLOW_TIMEAVE */
117    
118          IF ( DIFFERENT_MULTIPLE(thSIce_diagFreq,myTime+deltaTClock,myTime)
119         &   ) THEN
120            wrtIter = myIter+1
121            CALL WRITE_LOCAL_RL('ice_flxAtm','I10',1,flxAtm,
122         &                      bi,bj,1,wrtIter,myThid)
123            CALL WRITE_LOCAL_RL('ice_frwAtm','I10',1,frwAtm,
124         &                      bi,bj,1,wrtIter,myThid)
125          ENDIF
126    
127  #endif  /* ALLOW_THSICE */  #endif  /* ALLOW_THSICE */
128    
129        RETURN        RETURN

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

  ViewVC Help
Powered by ViewVC 1.1.22