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

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

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


Revision 1.10 - (hide annotations) (download)
Tue Jun 11 01:34:47 2013 UTC (10 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint65, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, HEAD
Changes since 1.9: +4 -1 lines
- remove diagnostics 'SI_FrcFx' (now identical to 'SI_Fract')

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

  ViewVC Help
Powered by ViewVC 1.1.22