/[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.2 - (hide annotations) (download)
Fri Apr 27 22:25:23 2012 UTC (13 years, 3 months ago) by dimitri
Branch: MAIN
Changes since 1.1: +3 -0 lines
first check in of itd code

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

  ViewVC Help
Powered by ViewVC 1.1.22