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

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

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


Revision 1.8 - (show annotations) (download)
Tue May 19 19:54:38 2009 UTC (14 years, 11 months ago) by dfer
Branch: MAIN
CVS Tags: checkpoint64a, checkpoint64c, checkpoint64b, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint62, checkpoint63, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint61o, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.7: +2 -2 lines
Fix units of diagnostics SIfrw2oc

1 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_diagnostics_init.F,v 1.7 2008/02/05 15:35:20 jmc Exp $
2 C $Name: $
3
4 #include "THSICE_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: THSICE_DIAGNOSTICS_INIT
8 C !INTERFACE:
9 SUBROUTINE THSICE_DIAGNOSTICS_INIT( myThid )
10
11 C !DESCRIPTION: \bv
12 C *==========================================================*
13 C | SUBROUTINE THSICE_DIAGNOSTICS_INIT
14 C | o Routine to initialize list of all available diagnostics
15 C | for THSICE package
16 C *==========================================================*
17 C \ev
18 C !USES:
19 IMPLICIT NONE
20
21 C === Global variables ===
22 #include "EEPARAMS.h"
23 c #include "SIZE.h"
24 c #include "PARAMS.h"
25 #include "THSICE_SIZE.h"
26 c #include "THSICE_PARAMS.h"
27
28 C !INPUT/OUTPUT PARAMETERS:
29 C === Routine arguments ===
30 C myThid :: My Thread Id. number
31 INTEGER myThid
32 CEOP
33
34 #ifdef ALLOW_DIAGNOSTICS
35 C !LOCAL VARIABLES:
36 C === Local variables ===
37 C diagNum :: diagnostics number in the (long) list of available diag.
38 C diagMate :: diag. mate number in the (long) list of available diag.
39 C diagName :: local short name (8c) of a diagnostics
40 C diagCode :: local parser field with characteristics of the diagnostics
41 C cf head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT
42 C diagUnits :: local string (16c): physical units of a diagnostic field
43 C diagTitle :: local string (80c): description of field in diagnostic
44 INTEGER diagNum
45 INTEGER diagMate
46 CHARACTER*8 diagName
47 CHARACTER*16 diagCode
48 CHARACTER*16 diagUnits
49 CHARACTER*(80) diagTitle
50 INTEGER numFract, numThick, numFrcFx
51 INTEGER n
52 LOGICAL flag
53 CHARACTER*16 locName
54 CHARACTER*4 THSICE_DIAG_SUFX, diagSufx
55 EXTERNAL THSICE_DIAG_SUFX
56
57 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
58
59 c IF ( useDiagnotics ) THEN
60
61 diagName = 'SI_Fract'
62 diagTitle = 'Sea-Ice fraction [0-1]'
63 diagUnits = '0-1 '
64 diagCode = 'SM P M1 '
65 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
66 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
67 numFract = diagNum
68
69 diagName = 'SI_Thick'
70 diagTitle = 'Sea-Ice thickness (area weighted average)'
71 diagUnits = 'm '
72 diagCode = 'SM PC M1 '
73 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
74 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
75 numThick = diagNum
76
77 diagName = 'SI_SnowH'
78 diagTitle = 'Snow thickness over Sea-Ice (area weighted)'
79 diagUnits = 'm '
80 diagCode = 'SM PC M1 '
81 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
82 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
83
84 diagName = 'SI_Tsrf '
85 diagTitle = 'Surface Temperature over Sea-Ice (area weighted)'
86 diagUnits = 'degC '
87 diagCode = 'SM C M1 '
88 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
89 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
90
91 diagName = 'SI_Tice1'
92 diagTitle = 'Sea-Ice Temperature, 1srt layer (area weighted)'
93 diagUnits = 'degC '
94 diagCode = 'SM C M1 '
95 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
96 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
97
98 diagName = 'SI_Tice2'
99 diagTitle = 'Sea-Ice Temperature, 2nd layer (area weighted)'
100 diagUnits = 'degC '
101 diagCode = 'SM C M1 '
102 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
103 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
104
105 diagName = 'SI_Qice1'
106 diagTitle = 'Sea-Ice enthalpy, 1srt layer (mass weighted)'
107 diagUnits = 'J/kg '
108 diagCode = 'SM C M1 '
109 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
110 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
111
112 diagName = 'SI_Qice2'
113 diagTitle = 'Sea-Ice enthalpy, 2nd layer (mass weighted)'
114 diagUnits = 'J/kg '
115 diagCode = 'SM C M1 '
116 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
117 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
118
119 diagName = 'SIsnwAge'
120 diagTitle = 'snow age over Sea-Ice'
121 diagUnits = 's '
122 diagCode = 'SM P M1 '
123 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
124 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
125
126 diagName = 'SI_FrcFx'
127 diagTitle = 'Sea-Ice fraction [0-1], synchro. with fluxes'
128 diagUnits = '0-1 '
129 diagCode = 'SM P M1 '
130 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
131 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
132 numFrcFx = diagNum
133
134 diagName = 'SIalbedo'
135 diagTitle = 'Sea-Ice Albedo [0-1] (area weighted average)'
136 diagUnits = '0-1 '
137 diagCode = 'SM PC M1 '
138 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
139 I diagName, diagCode, diagUnits, diagTitle, numFrcFx, myThid )
140
141 diagName = 'SIsnwPrc'
142 diagTitle = 'snow precip. (+=dw) over Sea-Ice (area weighted)'
143 diagUnits = 'kg/m^2/s '
144 diagCode = 'SM C M1 '
145 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
146 I diagName, diagCode, diagUnits, diagTitle, numFrcFx, myThid )
147
148 diagName = 'SIflxAtm'
149 diagTitle = 'net heat flux from the Atmosphere (+=dw)'
150 diagUnits = 'W/m^2 '
151 diagCode = 'SM M1 '
152 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
153 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
154
155 diagName = 'SIfrwAtm'
156 diagTitle = 'fresh-water flux to the Atmosphere (+=up)'
157 diagUnits = 'kg/m^2/s '
158 diagCode = 'SM M1 '
159 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
160 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
161
162 diagName = 'SIflx2oc'
163 diagTitle = 'heat flux out of the ocean (+=up)'
164 diagUnits = 'W/m^2 '
165 diagCode = 'SM M1 '
166 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
167 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
168
169 diagName = 'SIfrw2oc'
170 diagTitle = 'fresh-water flux out of the ocean (+=up)'
171 diagUnits = 'kg/m^2/s '
172 diagCode = 'SM M1 '
173 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
174 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
175
176 diagName = 'SIsaltFx'
177 diagTitle = 'salt flux out of the ocean (+=up)'
178 diagUnits = 'psu.kg/m^2/s '
179 diagCode = 'SM M1 '
180 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
181 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
182
183 diagName = 'SItOcMxL'
184 diagTitle = 'ocean mixed layer temperature'
185 diagUnits = 'degC '
186 diagCode = 'SM M1 '
187 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
188 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
189
190 diagName = 'SIsOcMxL'
191 diagTitle = 'ocean mixed layer salinity'
192 diagUnits = 'psu '
193 diagCode = 'SM P M1 '
194 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
195 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
196
197 DO n=-5,-9,-1
198 flag = .TRUE.
199 IF ( n .EQ. GAD_SI_FRAC ) THEN
200 locName = 'SeaIce Fraction '
201 diagUnits = 'm^2/s '
202 ELSEIF ( n .EQ. GAD_SI_HSNOW ) THEN
203 locName = 'Snow Thickness '
204 diagUnits = 'm^3/s '
205 ELSEIF ( n .EQ. GAD_SI_HICE ) THEN
206 locName = 'SeaIce Thickness'
207 diagUnits = 'm^3/s '
208 ELSEIF ( n .EQ. GAD_SI_QICE1 ) THEN
209 locName = 'Ice enthalpy l=1'
210 diagUnits = 'J/kg.m^3/s '
211 c diagUnits = 'W.m^3/kg '
212 ELSEIF ( n .EQ. GAD_SI_QICE2 ) THEN
213 locName = 'Ice enthalpy l=2'
214 diagUnits = 'J/kg.m^3/s '
215 ELSE
216 flag = .FALSE.
217 ENDIF
218 IF ( flag ) THEN
219 C- Advective flux:
220 diagSufx = THSICE_DIAG_SUFX( n, myThid )
221 diagName = 'ADVx'//diagSufx
222 diagTitle = 'Zonal Advective Flux of '//locName
223 diagCode = 'UU M1 '
224 diagMate = diagNum + 2
225 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
226 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
227 diagName = 'ADVy'//diagSufx
228 diagTitle = 'Meridional Advective Flux of '//locName
229 diagCode = 'VV M1 '
230 diagMate = diagNum
231 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
232 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
233 ENDIF
234 ENDDO
235
236 C-- Intermediate State, just after advection:
237 diagName = 'SI_AdvFr'
238 diagTitle = 'Sea-Ice fraction [0-1] (after advection)'
239 diagUnits = '0-1 '
240 diagCode = 'SM P M1 '
241 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
242 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
243 numFract = diagNum
244
245 diagName = 'SI_AdvHi'
246 diagTitle = 'Sea-Ice thickness (after advection)'
247 diagUnits = 'm '
248 diagCode = 'SM PC M1 '
249 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
250 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
251 numThick = diagNum
252
253 diagName = 'SI_AdvHs'
254 diagTitle = 'Snow thickness over Sea-Ice (after advection)'
255 diagUnits = 'm '
256 diagCode = 'SM PC M1 '
257 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
258 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
259
260 diagName = 'SI_AdvQ1'
261 diagTitle = 'Sea-Ice enthalpy, 1srt layer (after advection)'
262 diagUnits = 'J/kg '
263 diagCode = 'SM C M1 '
264 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
265 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
266
267 diagName = 'SI_AdvQ2'
268 diagTitle = 'Sea-Ice enthalpy, 2nd layer (after advection)'
269 diagUnits = 'J/kg '
270 diagCode = 'SM C M1 '
271 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
272 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
273
274 c ENDIF
275
276 #endif /* ALLOW_DIAGNOSTICS */
277
278 RETURN
279 END
280
281 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
282
283 CBOP 0
284 C !ROUTINE: THSICE_DIAG_SUFX
285
286 C !INTERFACE:
287 CHARACTER*4 FUNCTION THSICE_DIAG_SUFX( tracerId, myThid )
288
289 C !DESCRIPTION:
290 C *==========================================================*
291 C | FUNCTION THSICE_DIAG_SUFX
292 C | o Return diagnostic suffix (4 character long) for the
293 C | "tracerId" tracer (used to build diagnostic names).
294 C *==========================================================*
295
296 C !USES:
297 IMPLICIT NONE
298 #include "EEPARAMS.h"
299 #include "THSICE_SIZE.h"
300
301 C !INPUT PARAMETERS:
302 C tracerId :: tracer identifier
303 C myThid :: my thread Id number
304 INTEGER tracerId
305 INTEGER myThid
306 CEOP
307
308 C !LOCAL VARIABLES:
309
310 C-- Set diagnostic suffix (4 character long) for the "tracerId" tracer
311 IF ( tracerId.EQ.GAD_SI_FRAC ) THEN
312 THSICE_DIAG_SUFX = 'SIfr'
313 ELSEIF( tracerId.EQ.GAD_SI_HSNOW ) THEN
314 THSICE_DIAG_SUFX = 'SIhs'
315 ELSEIF( tracerId.EQ.GAD_SI_HICE ) THEN
316 THSICE_DIAG_SUFX = 'SIhi'
317 ELSEIF( tracerId.EQ.GAD_SI_QICE1 ) THEN
318 THSICE_DIAG_SUFX = 'SIq1'
319 ELSEIF( tracerId.EQ.GAD_SI_QICE2 ) THEN
320 THSICE_DIAG_SUFX = 'SIq2'
321 ELSE
322 THSICE_DIAG_SUFX = 'iiii'
323 ENDIF
324
325 RETURN
326 END

  ViewVC Help
Powered by ViewVC 1.1.22