/[MITgcm]/MITgcm_contrib/torge/itd/code/seaice_diagnostics_init.F
ViewVC logotype

Contents of /MITgcm_contrib/torge/itd/code/seaice_diagnostics_init.F

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


Revision 1.5 - (show annotations) (download)
Wed Mar 27 18:59:52 2013 UTC (12 years, 4 months ago) by torge
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +2 -2 lines
updating my MITgcm_contrib directory to include latest changes on main branch;
settings are to run a 1D test szenario with ITD code and 7 categories

1 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_diagnostics_init.F,v 1.35 2012/12/23 02:13:06 heimbach Exp $
2 C $Name: $
3
4 #include "SEAICE_OPTIONS.h"
5
6 C-- File seaice_diagnostics_init.F: Routines initialize SEAICE diagnostics
7 C-- Contents
8 C-- o SEAICE_DIAGNOSTICS_INIT
9 C-- o SEAICE_DIAG_SUFX
10
11 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12 CBOP
13 C !ROUTINE: SEAICE_DIAGNOSTICS_INIT
14 C !INTERFACE:
15 SUBROUTINE SEAICE_DIAGNOSTICS_INIT( myThid )
16
17 C !DESCRIPTION: \bv
18 C *==========================================================*
19 C | SUBROUTINE SEAICE_DIAGNOSTICS_INIT
20 C | o Routine to initialize list of all available diagnostics
21 C | for SEAICE package
22 C *==========================================================*
23 C \ev
24 C !USES:
25 IMPLICIT NONE
26
27 C === Global variables ===
28 #include "EEPARAMS.h"
29 #include "SIZE.h"
30 #include "SEAICE_SIZE.h"
31 #include "SEAICE_PARAMS.h"
32 #include "SEAICE_TRACER.h"
33
34 C !INPUT/OUTPUT PARAMETERS:
35 C === Routine arguments ===
36 C myThid :: my Thread Id number
37 INTEGER myThid
38 CEOP
39
40 #ifdef ALLOW_DIAGNOSTICS
41 C !LOCAL VARIABLES:
42 C === Local variables ===
43 C diagNum :: diagnostics number in the (long) list of available diag.
44 C diagMate :: diag. mate number in the (long) list of available diag.
45 C diagName :: local short name (8c) of a diagnostics
46 C diagCode :: local parser field with characteristics of the diagnostics
47 C see head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT
48 C for a list of options
49 C diagUnits :: local string (16c): physical units of a diagnostic field
50 C diagTitle :: local string (80c): description of field in diagnostic
51 INTEGER diagNum
52 INTEGER diagMate
53 CHARACTER*8 diagName
54 CHARACTER*16 diagCode
55 CHARACTER*16 diagUnits
56 CHARACTER*(80) diagTitle
57
58 #ifdef ALLOW_SITRACER
59 INTEGER iTr, ilnb, numMateTr, numMateTrPreTh
60 CHARACTER*8 locUnitTr
61 CHARACTER*30 locNameTr
62 #endif
63 INTEGER numArea,numAreaPreTh,numHeff,numHeffPreTh
64 CHARACTER*9 flxUnits
65 CHARACTER*15 locName
66 CHARACTER*4 SEAICE_DIAG_SUFX, diagSufx
67 EXTERNAL SEAICE_DIAG_SUFX
68 C Functions ::
69 INTEGER ILNBLNK
70 EXTERNAL ILNBLNK
71
72 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
73
74
75 C=============== state variables ============
76
77 diagName = 'SIarea '
78 diagTitle = 'SEAICE fractional ice-covered area [0 to 1]'
79 diagUnits = 'm^2/m^2 '
80 diagCode = 'SM M1 '
81 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
82 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
83 numArea = diagNum
84
85 diagName = 'SIareaPR'
86 diagTitle = 'SIarea preceeding ridging process'
87 diagUnits = 'm^2/m^2 '
88 diagCode = 'SM M1 '
89 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
90 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
91
92 diagName = 'SIareaPT'
93 diagTitle = 'SIarea preceeding thermodynamic growth/melt'
94 diagUnits = 'm^2/m^2 '
95 diagCode = 'SM M1 '
96 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
97 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
98 numAreaPreTh = diagNum
99
100 diagName = 'SIheff '
101 diagTitle = 'SEAICE effective ice thickness'
102 diagUnits = 'm '
103 diagCode = 'SM M1 '
104 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
105 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
106 numHeff = diagNum
107
108 diagName = 'SIheffPT'
109 diagTitle = 'SIheff preceeeding thermodynamic growth/melt'
110 diagUnits = 'm '
111 diagCode = 'SM M1 '
112 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
113 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
114 numHeffPreTh = diagNum
115
116 diagName = 'SIhsnow '
117 diagTitle = 'SEAICE effective snow thickness'
118 diagUnits = 'm '
119 diagCode = 'SM M1 '
120 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
121 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
122
123 diagName = 'SIhsnoPT'
124 diagTitle = 'SIhsnow preceeeding thermodynamic growth/melt'
125 diagUnits = 'm '
126 diagCode = 'SM M1 '
127 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
128 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
129
130 diagName = 'SIhsalt '
131 diagTitle = 'SEAICE effective salinity'
132 diagUnits = 'g/m^2 '
133 diagCode = 'SM M1 '
134 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
135 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
136
137 #ifdef ALLOW_SITRACER
138 DO iTr = 1, SItrNumInUse
139
140 C-- Set default name & tracer Units:
141 WRITE(locNameTr,'(A,I4.4,A)') 'sea ice tracer no. ',iTr
142 if (SItrMate(iTr).EQ.'HEFF') then
143 locUnitTr = '(kg/kg) '
144 numMateTr = numHeff
145 numMateTrPreTh = numHeffPreTh
146 else
147 locUnitTr = '(kg/m^2)'
148 numMateTr = numArea
149 numMateTrPreTh = numAreaPreTh
150 endif
151 C- use name & units from data.seaice :
152 ilnb = ILNBLNK(SItrUnit(iTr))
153 IF ( ilnb.GE.1 ) THEN
154 ilnb = LEN(locUnitTr)
155 locUnitTr = SItrUnit(iTr)(1:ilnb)
156 ENDIF
157 ilnb = ILNBLNK(SItrNameLong(iTr))
158 IF ( ilnb.GE.1 ) THEN
159 ilnb = MIN(LEN(locNameTr),ilnb)
160 WRITE(locNameTr,'(A)') SItrNameLong(iTr)(1:ilnb)
161 ELSE
162 ilnb = ILNBLNK(SItrName(iTr))
163 IF ( ilnb.GE.1 ) THEN
164 ilnb = MIN(LEN(locNameTr),ilnb)
165 WRITE(locNameTr,'(2A)') SItrName(iTr)(1:ilnb),' tracer'
166 ENDIF
167 ENDIF
168 ilnb = MAX(ILNBLNK(locNameTr),1)
169
170 WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,' '
171 WRITE(diagTitle,'(4A)') locNameTr(1:ilnb),
172 & ' (associated with ',SItrMate(iTr),')'
173 diagUnits = locUnitTr//' '
174 diagCode = 'SM C M1 '
175 CALL DIAGNOSTICS_ADDTOLIST( diagNum, diagName,
176 I diagCode, diagUnits, diagTitle, numMateTr, myThid )
177
178 WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'PT'
179 WRITE(diagTitle,'(A4,I2.2,2A)') 'SItr',iTr,
180 & ' preceeeding thermodynamic growth/melt'
181 diagUnits = locUnitTr//' '
182 diagCode = 'SM C M1 '
183 CALL DIAGNOSTICS_ADDTOLIST( diagNum, diagName,
184 I diagCode, diagUnits, diagTitle, numMateTrPreTh, myThid )
185
186 ENDDO
187 #endif
188
189 diagName = 'SItices '
190 diagTitle = 'Surface Temperature over Sea-Ice (area weighted)'
191 diagUnits = 'K '
192 diagCode = 'SM C M1 '
193 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
194 I diagName, diagCode, diagUnits, diagTitle, numArea, myThid )
195
196 diagName = 'SIuice '
197 diagTitle = 'SEAICE zonal ice velocity, >0 from West to East'
198 diagUnits = 'm/s '
199 #ifdef SEAICE_CGRID
200 diagCode = 'UU M1 '
201 #else
202 diagCode = 'UZ M1 '
203 #endif
204 diagMate = diagNum + 2
205 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
206 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
207
208 diagName = 'SIvice '
209 diagTitle = 'SEAICE merid. ice velocity, >0 from South to North'
210 diagUnits = 'm/s '
211 #ifdef SEAICE_CGRID
212 diagCode = 'VV M1 '
213 #else
214 diagCode = 'VZ M1 '
215 #endif
216 diagMate = diagNum
217 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
218 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
219
220
221 C=============== momentum, heat and fresh water forcing ============
222
223 C pkg/diagnostics SIfu and oceTAUX, dumpfreq FU, and tavefreq FUtave
224 C are identical but they differ from pkg/diagnostics EXFtaux, which
225 C is stress before impact of ice. Also when using exf bulk
226 C formulae, EXFtaux is defined on tracer rather than uvel points.
227 diagName = 'SIfu '
228 diagTitle = 'SEAICE zonal surface wind stress, >0 increases uVel '
229 diagUnits = 'N/m^2 '
230 diagCode = 'UU U1 '
231 diagMate = diagNum + 2
232 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
233 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
234
235 C pkg/diagnostics SIfv and oceTAUY, dumpfreq FV, and tavefreq FVtave
236 C are identical but they differ from pkg/diagnostics EXFtauy, which
237 C is stress before impact of ice. Also when using exf bulk
238 C formulae, EXFtauy is defined on tracer rather than vvel points.
239 diagName = 'SIfv '
240 diagTitle = 'SEAICE merid. surface wind stress, >0 increases vVel'
241 diagUnits = 'N/m^2 '
242 diagCode = 'VV U1 '
243 diagMate = diagNum
244 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
245 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
246
247 diagName = 'SIuwind '
248 diagTitle = 'SEAICE zonal 10-m wind speed, >0 increases uVel'
249 diagUnits = 'm/s '
250 diagCode = 'UM U1 '
251 diagMate = diagNum + 2
252 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
253 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
254
255 diagName = 'SIvwind '
256 diagTitle = 'SEAICE meridional 10-m wind speed, >0 increases uVel'
257 diagUnits = 'm/s '
258 diagCode = 'VM U1 '
259 diagMate = diagNum
260 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
261 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
262
263 C SIqnet, Qnet, and QNETtave are identical.
264 C With #undef NONLIN_FRSURF SIqnet is identical to -(TFLUX-TRELAX).
265 C Except over land and under sea ice, SIqnet is also identical to
266 C EXFlwnet+EXFswnet-EXFhl-EXFhs.
267 diagName = 'SIqnet '
268 diagTitle = 'Ocean surface heatflux, turb+rad, >0 decreases theta'
269 diagUnits = 'W/m^2 '
270 diagCode = 'SM U1 '
271 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
272 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
273
274 C SIqsw, Qsw, and QSWtave are identical.
275 C Except under sea ice, SIqsw is also identical to EXFswnet.
276 diagName = 'SIqsw '
277 diagTitle = 'Ocean surface shortwave radiat., >0 decreases theta'
278 diagUnits = 'W/m^2 '
279 diagCode = 'SM U1 '
280 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
281 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
282
283 diagName = 'SIatmQnt'
284 diagTitle = 'Net atmospheric heat flux, >0 decreases theta'
285 diagUnits = 'W/m^2 '
286 diagCode = 'SM U1 '
287 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
288 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
289
290 diagName = 'SItflux '
291 diagTitle = 'Same as TFLUX but incl seaice (>0 incr T decr H)'
292 diagUnits = 'W/m^2 '
293 diagCode = 'SM U1 '
294 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
295 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
296
297 #ifndef SEAICE_DISABLE_HEATCONSFIX
298 diagName = 'SIaaflux'
299 diagTitle = 'conservative ocn<->seaice adv. heat flux adjust.'
300 diagUnits = 'W/m^2 '
301 diagCode = 'SM U1 '
302 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
303 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
304 #endif
305
306 diagName = 'SIhl '
307 diagTitle = 'Latent heat flux into ocean, >0 increases theta'
308 diagUnits = 'W/m^2 '
309 diagCode = 'SM U1 '
310 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
311 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
312
313 diagName = 'SIqneto '
314 diagTitle = 'Open Ocean Part of SIqnet, turb+rad, >0 decr theta'
315 diagUnits = 'W/m^2 '
316 diagCode = 'SM U1 '
317 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
318 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
319
320 diagName = 'SIqneti '
321 diagTitle = 'Ice Covered Part of SIqnet, turb+rad, >0 decr theta'
322 diagUnits = 'W/m^2 '
323 diagCode = 'SM U1 '
324 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
325 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
326
327 C pkg/diagnostics SIempmr, dumpfreq EmPmR, and tavefreq EmPmRtave
328 C are identical but they differ from pkg/diagnostics EXFempmr, which
329 C is EmPmR before impact of ice.
330 diagName = 'SIempmr '
331 diagTitle = 'Ocean surface freshwater flux, > 0 increases salt'
332 diagUnits = 'kg/m^2/s '
333 diagCode = 'SM U1 '
334 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
335 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
336
337 diagName = 'SIatmFW '
338 diagTitle = 'Net freshwater flux from atmosphere & land (+=down)'
339 diagUnits = 'kg/m^2/s '
340 diagCode = 'SM U1 '
341 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
342 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
343
344 diagName = 'SIsnPrcp'
345 diagTitle = 'Snow precip. (+=dw) over Sea-Ice (area weighted)'
346 diagUnits = 'kg/m^2/s '
347 diagCode = 'SM U1 '
348 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
349 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
350
351 diagName = 'SIfwSubl'
352 diagTitle ='Potential sublimation freshwater flux, >0 decr. ice'
353 diagUnits = 'kg/m^2/s '
354 diagCode = 'SM U1 '
355 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
356 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
357
358 diagName = 'SIacSubl'
359 diagTitle = 'Actual sublimation freshwater flux, >0 decr. ice'
360 diagUnits = 'kg/m^2/s '
361 diagCode = 'SM U1 '
362 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
363 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
364
365 diagName = 'SIrsSubl'
366 diagTitle = 'Residual subl. freshwater flux, >0 taken from ocn'
367 diagUnits = 'kg/m^2/s '
368 diagCode = 'SM U1 '
369 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
370 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
371
372 diagName = 'SIactLHF'
373 diagTitle = 'Actual latent heat flux over ice'
374 diagUnits = 'W/m^2 '
375 diagCode = 'SM U1 '
376 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
377 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
378
379 diagName = 'SImaxLHF'
380 diagTitle = 'Maximum latent heat flux over ice'
381 diagUnits = 'W/m^2 '
382 diagCode = 'SM U1 '
383 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
384 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
385
386 #ifdef ALLOW_SITRACER
387 DO iTr = 1, SItrNumInUse
388 IF (SItrMate(iTr).EQ.'HEFF') then
389 C-- Set default name & tracer Units:
390 WRITE(diagUnits,'(A)') 'kg/m^2/s'
391 C-- use units from data.seaice :
392 ilnb = ILNBLNK(SItrUnit(iTr))
393 IF ( ilnb.GE.1 ) THEN
394 WRITE(diagUnits,'(2A)') SItrUnit(iTr)(1:ilnb),'.kg/m^2/s'
395 ENDIF
396 C--
397 WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'Fx'
398 WRITE(diagTitle,'(A4,I2.2,A)') 'SItr',iTr,
399 I ' flux out of ice pack (that may enter ocean)'
400 diagCode = 'SM M1 '
401 CALL DIAGNOSTICS_ADDTOLIST( diagNum, diagName,
402 I diagCode, diagUnits, diagTitle, 0, myThid )
403
404 ENDIF
405 ENDDO
406 #endif
407
408 C============== ice growth/melt ==============
409
410 diagName = 'SIaQbOCN'
411 diagTitle = 'Potential HEFF rate of change by ocean ice flux'
412 diagUnits = 'm/s '
413 diagCode = 'SM M1 '
414 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
415 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
416
417 diagName = 'SIaQbATC'
418 diagTitle = 'Potential HEFF rate of change by atm flux over ice'
419 diagUnits = 'm/s '
420 diagCode = 'SM M1 '
421 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
422 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
423
424 diagName = 'SIaQbATO'
425 diagTitle = 'Potential HEFF rate of change by open ocn atm flux'
426 diagUnits = 'm/s '
427 diagCode = 'SM M1 '
428 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
429 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
430
431 diagName = 'SIdHbOCN'
432 diagTitle = 'HEFF rate of change by ocean ice flux'
433 diagUnits = 'm/s '
434 diagCode = 'SM M1 '
435 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
436 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
437
438 diagName = 'SIdSbATC'
439 diagTitle = 'HSNOW rate of change by atm flux over sea ice'
440 diagUnits = 'm/s '
441 diagCode = 'SM M1 '
442 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
443 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
444
445 diagName = 'SIdSbOCN'
446 diagTitle = 'HSNOW rate of change by ocean ice flux'
447 diagUnits = 'm/s '
448 diagCode = 'SM M1 '
449 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
450 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
451
452 diagName = 'SIdHbATC'
453 diagTitle = 'HEFF rate of change by atm flux over sea ice'
454 diagUnits = 'm/s '
455 diagCode = 'SM M1 '
456 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
457 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
458
459 diagName = 'SIdHbATO'
460 diagTitle = 'HEFF rate of change by open ocn atm flux'
461 diagUnits = 'm/s '
462 diagCode = 'SM M1 '
463 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
464 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
465
466 diagName = 'SIdHbFLO'
467 diagTitle = 'HEFF rate of change by flooding snow'
468 diagUnits = 'm/s '
469 diagCode = 'SM M1 '
470 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
471 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
472
473 C=============== expansion/contraction ============
474
475 diagName = 'SIdAbATO'
476 diagTitle = 'Potential AREA rate of change by open ocn atm flux'
477 diagUnits = 'm^2/m^2/s '
478 diagCode = 'SM M1 '
479 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
480 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
481
482 diagName = 'SIdAbATC'
483 diagTitle = 'Potential AREA rate of change by atm flux over ice'
484 diagUnits = 'm^2/m^2/s '
485 diagCode = 'SM M1 '
486 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
487 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
488
489 diagName = 'SIdAbOCN'
490 diagTitle = 'Potential AREA rate of change by ocean ice flux'
491 diagUnits = 'm^2/m^2/s '
492 diagCode = 'SM M1 '
493 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
494 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
495
496 diagName = 'SIdA'
497 diagTitle = 'AREA rate of change (net)'
498 diagUnits = 'm^2/m^2/s '
499 diagCode = 'SM M1 '
500 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
501 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
502
503 C============== advection/diffusion ============
504
505 C effective thickness
506 flxUnits = '.m^2/s '
507 locName = 'eff ice thickn '
508 WRITE(diagUnits,'(2A)') 'm',flxUnits
509 diagSufx = SEAICE_DIAG_SUFX( GAD_HEFF, myThid )
510
511 C-- advective flux
512 diagName = 'ADVx'//diagSufx
513 diagTitle = 'Zonal Advective Flux of '//locName
514 diagCode = 'UU M1 '
515 diagMate = diagNum + 2
516 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
517 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
518
519 diagName = 'ADVy'//diagSufx
520 diagTitle = 'Meridional Advective Flux of '//locName
521 diagCode = 'VV M1 '
522 diagMate = diagNum
523 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
524 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
525
526 diagName = 'SIuheff '
527 diagTitle = 'Zonal Transport of eff ice thickn (centered)'
528 diagUnits = 'm^2/s '
529 diagCode = 'UU M1 '
530 diagMate = diagNum + 2
531 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
532 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
533
534 diagName = 'SIvheff '
535 diagTitle = 'Meridional Transport of eff ice thickn (centered)'
536 diagUnits = 'm^2/s '
537 diagCode = 'VV M1 '
538 diagMate = diagNum
539 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
540 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
541
542 C-- Diffusive flux:
543 diagName = 'DFxE'//diagSufx
544 diagTitle = 'Zonal Diffusive Flux of '//locName
545 diagCode = 'UU M1 '
546 diagMate = diagNum + 2
547 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
548 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
549
550 diagName = 'DFyE'//diagSufx
551 diagTitle = 'Meridional Diffusive Flux of '//locName
552 diagCode = 'VV M1 '
553 diagMate = diagNum
554 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
555 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
556
557 C fractional ice covered area (ice concentration)
558 locName = 'fract area '
559 WRITE(diagUnits,'(2A)') 'm^2/m^2',flxUnits
560 diagSufx = SEAICE_DIAG_SUFX( GAD_AREA, myThid )
561
562 C-- advective flux
563 diagName = 'ADVx'//diagSufx
564 diagTitle = 'Zonal Advective Flux of '//locName
565 diagCode = 'UU M1 '
566 diagMate = diagNum + 2
567 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
568 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
569
570 diagName = 'ADVy'//diagSufx
571 diagTitle = 'Meridional Advective Flux of '//locName
572 diagCode = 'VV M1 '
573 diagMate = diagNum
574 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
575 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
576
577 C-- Diffusive flux:
578 diagName = 'DFxE'//diagSufx
579 diagTitle = 'Zonal Diffusive Flux of '//locName
580 diagCode = 'UU M1 '
581 diagMate = diagNum + 2
582 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
583 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
584
585 diagName = 'DFyE'//diagSufx
586 diagTitle = 'Meridional Diffusive Flux of '//locName
587 diagCode = 'VV M1 '
588 diagMate = diagNum
589 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
590 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
591
592 C effective snow thickness
593 locName = 'eff snow thickn'
594 WRITE(diagUnits,'(2A)') 'm',flxUnits
595 diagSufx = SEAICE_DIAG_SUFX( GAD_SNOW, myThid )
596
597 C-- advective flux
598 diagName = 'ADVx'//diagSufx
599 diagTitle = 'Zonal Advective Flux of '//locName
600 diagCode = 'UU M1 '
601 diagMate = diagNum + 2
602 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
603 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
604
605 diagName = 'ADVy'//diagSufx
606 diagTitle = 'Meridional Advective Flux of '//locName
607 diagCode = 'VV M1 '
608 diagMate = diagNum
609 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
610 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
611
612 C-- Diffusive flux:
613 diagName = 'DFxE'//diagSufx
614 diagTitle = 'Zonal Diffusive Flux of '//locName
615 diagCode = 'UU M1 '
616 diagMate = diagNum + 2
617 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
618 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
619
620 diagName = 'DFyE'//diagSufx
621 diagTitle = 'Meridional Diffusive Flux of '//locName
622 diagCode = 'VV M1 '
623 diagMate = diagNum
624 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
625 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
626
627 C sea ice salinity
628 locName = 'seaice salinity'
629 WRITE(diagUnits,'(2A)') 'psu',flxUnits
630 diagSufx = SEAICE_DIAG_SUFX( GAD_SALT, myThid )
631
632 C-- advective flux
633 diagName = 'ADVx'//diagSufx
634 diagTitle = 'Zonal Advective Flux of '//locName
635 diagCode = 'UU M1 '
636 diagMate = diagNum + 2
637 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
638 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
639
640 diagName = 'ADVy'//diagSufx
641 diagTitle = 'Meridional Advective Flux of '//locName
642 diagCode = 'VV M1 '
643 diagMate = diagNum
644 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
645 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
646
647 C-- Diffusive flux:
648 diagName = 'DFxE'//diagSufx
649 diagTitle = 'Zonal Diffusive Flux of '//locName
650 diagCode = 'UU M1 '
651 diagMate = diagNum + 2
652 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
653 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
654
655 diagName = 'DFyE'//diagSufx
656 diagTitle = 'Meridional Diffusive Flux of '//locName
657 diagCode = 'VV M1 '
658 diagMate = diagNum
659 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
660 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
661
662 C=============== dynamics ============
663
664 diagName = 'SIpress '
665 diagTitle = 'SEAICE strength (with upper and lower limit)'
666 diagUnits = 'm^2/s^2 '
667 diagCode = 'SM M1 '
668 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
669 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
670
671 diagName = 'SIzeta '
672 diagTitle = 'SEAICE nonlinear bulk viscosity'
673 diagUnits = 'm^2/s '
674 diagCode = 'SM M1 '
675 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
676 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
677
678 diagName = 'SIeta '
679 diagTitle = 'SEAICE nonlinear shear viscosity'
680 diagUnits = 'm^2/s '
681 diagCode = 'SM M1 '
682 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
683 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
684
685 diagName = 'SIsigI '
686 diagTitle = 'SEAICE normalized principle stress, component one'
687 diagUnits = 'no units '
688 diagCode = 'SM M1 '
689 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
690 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
691
692 diagName = 'SIsigII '
693 diagTitle = 'SEAICE normalized principle stress, component two'
694 diagUnits = 'no units '
695 diagCode = 'SM M1 '
696 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
697 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
698
699 #ifdef SEAICE_ITD
700 C=============== ice thickness categories ============
701
702 diagName = 'SIheffN '
703 diagTitle = 'SEAICE effective ice thickness per category'
704 diagUnits = 'm '
705 diagCode = 'SM MX '
706 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
707 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
708 CALL DIAGNOSTICS_SETKLEV( diagName, nITD, myThid )
709
710 diagName = 'SIareaN '
711 diagTitle =
712 I 'SEAICE fractional ice-covered area per category [0 to 1]'
713 diagUnits = 'm^2/m^2 '
714 diagCode = 'SM MX '
715 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
716 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
717 CALL DIAGNOSTICS_SETKLEV( diagName, nITD, myThid )
718 #endif
719
720 #endif /* ALLOW_DIAGNOSTICS */
721
722 RETURN
723 END
724
725 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
726 CBOP 0
727 C !ROUTINE: SEAICE_DIAG_SUFX
728
729 C !INTERFACE:
730 CHARACTER*4 FUNCTION SEAICE_DIAG_SUFX( tracerId, myThid )
731
732 C !DESCRIPTION:
733 C *==========================================================*
734 C | FUNCTION SEAICE_DIAG_SUFX
735 C | o Return diagnostic suffix (4 character long) for the
736 C | "tracerId" tracer (used to build diagnostic names).
737 C *==========================================================*
738
739 C !USES:
740 IMPLICIT NONE
741 #include "EEPARAMS.h"
742 #include "SEAICE_SIZE.h"
743 #include "SEAICE_PARAMS.h"
744
745 C !INPUT PARAMETERS:
746 C tracerId :: tracer identifier
747 C myThid :: my thread Id number
748 INTEGER tracerId
749 INTEGER myThid
750 CEOP
751
752 C !LOCAL VARIABLES:
753
754 C-- Set diagnostic suffix (4 character long) for the "tracerId" tracer
755 IF ( tracerId.EQ.GAD_HEFF ) THEN
756 SEAICE_DIAG_SUFX = 'HEFF'
757 ELSEIF( tracerId.EQ.GAD_AREA ) THEN
758 SEAICE_DIAG_SUFX = 'AREA'
759 ELSEIF( tracerId.EQ.GAD_SNOW ) THEN
760 SEAICE_DIAG_SUFX = 'SNOW'
761 ELSEIF( tracerId.EQ.GAD_SALT ) THEN
762 SEAICE_DIAG_SUFX = 'SSLT'
763 ELSE
764 SEAICE_DIAG_SUFX = 'aaaa'
765 ENDIF
766
767 RETURN
768 END

  ViewVC Help
Powered by ViewVC 1.1.22