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

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

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


Revision 1.9 - (show annotations) (download)
Tue Feb 21 01:15:15 2006 UTC (18 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58e_post, checkpoint58d_post, checkpoint58c_post, checkpoint58b_post
Changes since 1.8: +1 -3 lines
fix sea-ice albedo diagnostics (for Statistics Diag.)

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

  ViewVC Help
Powered by ViewVC 1.1.22