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

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

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


Revision 1.2 - (hide annotations) (download)
Wed Apr 7 23:40:34 2004 UTC (20 years, 1 month ago) by jmc
Branch: MAIN
Changes since 1.1: +80 -22 lines
major changes in pkg/thsice: allows atmospheric model (AIM) to use thsice.
- split thsice_therm.F in 2 S/R: thsice_solve4temp.F & thsice_calc_thickn.F
- move most of the ocean & bulk_force interface in thsice_main.F
- add a "slab ocean" component to be used with atmospheric model

1 jmc 1.2 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_ave.F,v 1.1 2003/11/23 01:20:13 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "THSICE_OPTIONS.h"
5    
6 jmc 1.2 CBOP
7 jmc 1.1 C !ROUTINE: THSICE_AVE
8     C !INTERFACE:
9 jmc 1.2 SUBROUTINE THSICE_AVE(
10     I frwAtm, flxAtm,
11     I bi, bj, myTime, myIter, myThid )
12     C !DESCRIPTION: \bv
13 jmc 1.1 C *==========================================================*
14     C | S/R THSICE_AVE
15     C | o save values for timeaveraging
16     C *==========================================================*
17     C \ev
18    
19     C !USES:
20     IMPLICIT NONE
21 jmc 1.2
22 jmc 1.1 C == Global variables ==
23     #include "SIZE.h"
24 jmc 1.2 #include "EEPARAMS.h"
25     #include "PARAMS.h"
26     #include "FFIELDS.h"
27 jmc 1.1 #include "THSICE_PARAMS.h"
28 jmc 1.2 #include "THSICE_VARS.h"
29     #include "THSICE_TAVE.h"
30 jmc 1.1
31     C !INPUT/OUTPUT PARAMETERS:
32     C == Routine Arguments ==
33 jmc 1.2 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 jmc 1.1 INTEGER bi,bj
42 jmc 1.2 _RL myTime
43     INTEGER myIter
44 jmc 1.1 INTEGER myThid
45 jmc 1.2 CEOP
46 jmc 1.1
47     #ifdef ALLOW_THSICE
48 jmc 1.2 C == Local variables ==
49     LOGICAL DIFFERENT_MULTIPLE
50     EXTERNAL DIFFERENT_MULTIPLE
51     INTEGER wrtIter
52    
53 jmc 1.1 #ifdef ALLOW_TIMEAVE
54    
55 jmc 1.2 IF ( thSIce_taveFreq .LE. 0. _d 0 ) RETURN
56    
57 jmc 1.1 C-- Time-average
58 jmc 1.2 CALL TIMEAVE_CUMULATE(ice_fract_Ave, iceMask,
59 jmc 1.1 & 1, thSIce_deltaT, bi, bj, myThid )
60     C-- area weighted average (with ice-fraction)
61 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_iceH_Ave, iceheight, iceMask,
62 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
63 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_snowH_Ave, snowheight, iceMask,
64 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
65 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_Tsrf_Ave, Tsrf, iceMask,
66 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
67 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_Tice1_Ave, Tice1, iceMask,
68 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
69 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_Tice2_Ave, Tice2, iceMask,
70 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
71 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_snowPr_Ave,snowPrc, iceMask,
72 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
73     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
74     C-- simple average (without ice-fraction)
75 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_iceH_Ave,iceheight,
76 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
77 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_snowH_Ave,snowHeight,
78 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
79 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_Tsrf_Ave, Tsrf,
80 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
81 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_Tice1_Ave,Tice1,
82 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
83 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_Tice2_Ave,Tice2,
84 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
85 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_snowPr_Ave, snowPrc,
86 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
87    
88 jmc 1.2 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 jmc 1.1
116     #endif /* ALLOW_TIMEAVE */
117 jmc 1.2
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 jmc 1.1 #endif /* ALLOW_THSICE */
128    
129     RETURN
130     END

  ViewVC Help
Powered by ViewVC 1.1.22