/[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.10 - (hide annotations) (download)
Thu May 25 18:03:24 2006 UTC (18 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58l_post, mitgcm_mapl_00, checkpoint58u_post, checkpoint58w_post, checkpoint58r_post, checkpoint58n_post, checkpoint58x_post, checkpoint58t_post, checkpoint58h_post, checkpoint58q_post, checkpoint58j_post, checkpoint59e, checkpoint59d, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59, checkpoint58f_post, checkpoint58i_post, checkpoint58g_post, checkpoint58o_post, checkpoint58y_post, checkpoint58k_post, checkpoint58v_post, checkpoint58s_post, checkpoint58p_post, checkpoint58m_post
Changes since 1.9: +23 -24 lines
- put i,j loops inside S/R: THSICE_ALBEDO, THSICE_SOLVE4TEMP, THSICE_EXTEND
   and THSICE_CALC_THICKN
- split thsice_step_fwd.F in 2 S/R: thsice_step_temp.F & thsice_step_fwd.F

1 jmc 1.10 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_ave.F,v 1.9 2006/02/21 01:15:15 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.10 SUBROUTINE THSICE_AVE(
10 jmc 1.2 I bi, bj, myTime, myIter, myThid )
11     C !DESCRIPTION: \bv
12 jmc 1.1 C *==========================================================*
13 jmc 1.10 C | S/R THSICE_AVE
14 jmc 1.1 C | o save values for timeaveraging
15     C *==========================================================*
16     C \ev
17    
18     C !USES:
19     IMPLICIT NONE
20 jmc 1.2
21 jmc 1.1 C == Global variables ==
22     #include "SIZE.h"
23 jmc 1.2 #include "EEPARAMS.h"
24     #include "PARAMS.h"
25     #include "FFIELDS.h"
26 jmc 1.1 #include "THSICE_PARAMS.h"
27 jmc 1.2 #include "THSICE_VARS.h"
28     #include "THSICE_TAVE.h"
29 jmc 1.1
30     C !INPUT/OUTPUT PARAMETERS:
31     C == Routine Arguments ==
32 jmc 1.2 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]
34     C myTime :: time counter for this thread
35     C bi,bj :: tile indices
36     C myIter :: iteration counter for this thread
37     C myThid :: thread number for this instance of the routine.
38 jmc 1.10 c _RL frwAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
39     c _RL flxAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
40 jmc 1.1 INTEGER bi,bj
41 jmc 1.2 _RL myTime
42     INTEGER myIter
43 jmc 1.1 INTEGER myThid
44 jmc 1.2 CEOP
45 jmc 1.1
46     #ifdef ALLOW_THSICE
47 jmc 1.2 C == Local variables ==
48 jmc 1.8 LOGICAL DIFFERENT_MULTIPLE
49     EXTERNAL DIFFERENT_MULTIPLE
50 jmc 1.10 c INTEGER wrtIter
51 jmc 1.2
52 jmc 1.1 #ifdef ALLOW_TIMEAVE
53    
54 jmc 1.3 IF ( thSIce_taveFreq .GT. 0. _d 0 ) THEN
55 jmc 1.2
56 jmc 1.1 C-- Time-average
57 jmc 1.10 CALL TIMEAVE_CUMULATE(ice_fract_Ave, iceMask,
58 jmc 1.1 & 1, thSIce_deltaT, bi, bj, myThid )
59     C-- area weighted average (with ice-fraction)
60 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_iceH_Ave, iceheight, iceMask,
61 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
62 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_snowH_Ave, snowheight, iceMask,
63 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
64 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_Tsrf_Ave, Tsrf, iceMask,
65 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
66 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_Tice1_Ave, Tice1, iceMask,
67 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
68 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_Tice2_Ave, Tice2, iceMask,
69 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
70 jmc 1.2 CALL TIMEAVE_CUMUL_2V( ice_snowPr_Ave,snowPrc, iceMask,
71 jmc 1.1 & 1, 0, thSIce_deltaT, bi, bj, myThid )
72 jmc 1.6 C-- notes: siceAlb is already multiplied by iceFraction
73 jmc 1.10 CALL TIMEAVE_CUMULATE(ice_albedo_Ave, siceAlb,
74 jmc 1.6 & 1, thSIce_deltaT, bi, bj, myThid )
75 jmc 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
76     C-- simple average (without ice-fraction)
77 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_iceH_Ave,iceheight,
78 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
79 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_snowH_Ave,snowHeight,
80 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
81 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_Tsrf_Ave, Tsrf,
82 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
83 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_Tice1_Ave,Tice1,
84 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
85 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_Tice2_Ave,Tice2,
86 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
87 jmc 1.2 c CALL TIMEAVE_CUMULATE(ice_snowPr_Ave, snowPrc,
88 jmc 1.1 c & 1, thSIce_deltaT, bi, bj, myThid )
89    
90 jmc 1.10 C-- average of atmospheric fluxes :
91 jmc 1.4 IF ( fluidIsWater ) THEN
92 jmc 1.10 CALL TIMEAVE_CUMULATE(ice_flxAtm_Ave, icFlxAtm,
93 jmc 1.2 & 1, thSIce_deltaT, bi, bj, myThid )
94 jmc 1.10 CALL TIMEAVE_CUMULATE(ice_frwAtm_Ave, icFrwAtm,
95 jmc 1.2 & 1, thSIce_deltaT, bi, bj, myThid )
96 jmc 1.3 ENDIF
97 jmc 1.2
98 jmc 1.10 C-- average of oceanic fluxes :
99 jmc 1.2 #ifndef CHECK_ENERGY_CONSERV
100     CALL TIMEAVE_CUMULATE(ice_flx2oc_Ave, Qnet,
101     & 1, thSIce_deltaT, bi, bj, myThid )
102     CALL TIMEAVE_CUMULATE(ice_frw2oc_Ave, EmPmR,
103     & 1, thSIce_deltaT, bi, bj, myThid )
104     CALL TIMEAVE_CUMULATE(ice_salFx_Ave, saltFlux,
105     & 1, thSIce_deltaT, bi, bj, myThid )
106     #endif /* CHECK_ENERGY_CONSERV */
107    
108     C-- average of Ocean Mixed-Layer temp. & salinity
109     IF ( stepFwd_oceMxL ) THEN
110     CALL TIMEAVE_CUMULATE(ice_tMxL_Ave, tOceMxL,
111     & 1, thSIce_deltaT, bi, bj, myThid )
112     CALL TIMEAVE_CUMULATE(ice_sMxL_Ave, sOceMxL,
113     & 1, thSIce_deltaT, bi, bj, myThid )
114     ENDIF
115    
116     ice_timeAve(1,bi,bj)=ice_timeAve(1,bi,bj)+thSIce_deltaT
117 jmc 1.1
118 jmc 1.3 ENDIF
119 jmc 1.1 #endif /* ALLOW_TIMEAVE */
120 jmc 1.2
121 jmc 1.10 c IF ( DIFFERENT_MULTIPLE(thSIce_diagFreq,
122     c & myTime+deltaTClock,deltaTClock)
123     c & .AND. fluidIsWater ) THEN
124     c wrtIter = myIter+1
125     c CALL WRITE_LOCAL_RL('ice_flxAtm','I10',1,flxAtm,
126     c & bi,bj,1,wrtIter,myThid)
127     c CALL WRITE_LOCAL_RL('ice_frwAtm','I10',1,frwAtm,
128     c & bi,bj,1,wrtIter,myThid)
129     c ENDIF
130 jmc 1.2
131 jmc 1.6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
132    
133     #ifdef ALLOW_DIAGNOSTICS
134 jmc 1.5 IF ( useDiagnostics ) THEN
135 jmc 1.6
136     C-- Atmospheric fluxes :
137     IF ( fluidIsWater ) THEN
138 jmc 1.10 CALL DIAGNOSTICS_FILL(icFlxAtm,'SIflxAtm',0,1,1,bi,bj,myThid)
139     CALL DIAGNOSTICS_FILL(icFrwAtm,'SIfrwAtm',0,1,1,bi,bj,myThid)
140 jmc 1.6 ENDIF
141    
142     C-- Oceanic fluxes :
143     c #ifndef CHECK_ENERGY_CONSERV
144     CALL DIAGNOSTICS_FILL(Qnet, 'SIflx2oc',0,1,1,bi,bj,myThid)
145     CALL DIAGNOSTICS_FILL(EmPmR, 'SIfrw2oc',0,1,1,bi,bj,myThid)
146     CALL DIAGNOSTICS_FILL(saltFlux,'SIsaltFx',0,1,1,bi,bj,myThid)
147     c #endif /* CHECK_ENERGY_CONSERV */
148    
149 jmc 1.5 ENDIF
150 jmc 1.6 #endif /* ALLOW_DIAGNOSTICS */
151 jmc 1.5
152 jmc 1.1 #endif /* ALLOW_THSICE */
153    
154     RETURN
155     END

  ViewVC Help
Powered by ViewVC 1.1.22