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

Annotation 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.3 - (hide annotations) (download)
Wed Jun 20 19:58:09 2012 UTC (13 years, 1 month ago) by torge
Branch: MAIN
Changes since 1.2: +22 -1 lines
introducing 3-D ITD output fields SIheffN and SIareaN
containing ice thickness and fractinal area of each ice thickness category

1 dimitri 1.1 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_diagnostics_init.F,v 1.33 2012/02/16 01:22:02 gforget 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 torge 1.3 C see head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT
48     C for a list of options
49 dimitri 1.1 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     c 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 torge 1.3 #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 dimitri 1.1
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 dimitri 1.2 CToM<<<
742     #include "SIZE.h"
743     C>>>ToM
744 dimitri 1.1 #include "EEPARAMS.h"
745     #include "SEAICE_PARAMS.h"
746    
747     C !INPUT PARAMETERS:
748     C tracerId :: tracer identifier
749     C myThid :: my thread Id number
750     INTEGER tracerId
751     INTEGER myThid
752     CEOP
753    
754     C !LOCAL VARIABLES:
755    
756     C-- Set diagnostic suffix (4 character long) for the "tracerId" tracer
757     IF ( tracerId.EQ.GAD_HEFF ) THEN
758     SEAICE_DIAG_SUFX = 'HEFF'
759     ELSEIF( tracerId.EQ.GAD_AREA ) THEN
760     SEAICE_DIAG_SUFX = 'AREA'
761     ELSEIF( tracerId.EQ.GAD_SNOW ) THEN
762     SEAICE_DIAG_SUFX = 'SNOW'
763     ELSEIF( tracerId.EQ.GAD_SALT ) THEN
764     SEAICE_DIAG_SUFX = 'SSLT'
765     ELSE
766     SEAICE_DIAG_SUFX = 'aaaa'
767     ENDIF
768    
769     RETURN
770     END

  ViewVC Help
Powered by ViewVC 1.1.22