/[MITgcm]/MITgcm/pkg/mom_common/mom_diagnostics_init.F
ViewVC logotype

Contents of /MITgcm/pkg/mom_common/mom_diagnostics_init.F

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


Revision 1.5 - (show annotations) (download)
Tue Sep 20 20:41:43 2005 UTC (18 years, 8 months ago) by baylor
Branch: MAIN
Changes since 1.4: +161 -5 lines
Cleaner version of mom_calc_visc.F and added diagnostics for different viscosities.

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_diagnostics_init.F,v 1.4 2005/09/16 19:32:20 baylor Exp $
2 C $Name: $
3
4 #include "MOM_COMMON_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: MOM_DIAGNOSTICS_INIT
8 C !INTERFACE:
9 SUBROUTINE MOM_DIAGNOSTICS_INIT( myThid )
10 C !DESCRIPTION:
11 C Routine to initialize Momentum diagnostics
12 C (from mom_common, mom_fluxform & mom_vecinv packages)
13
14 C !USES:
15 IMPLICIT NONE
16 C === Global variables ===
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20
21 C !INPUT/OUTPUT PARAMETERS:
22 C === Routine arguments ===
23 C myThid - Number of this instance of GAD_INIT
24 INTEGER myThid
25 CEOP
26
27 #ifdef ALLOW_DIAGNOSTICS
28 #ifdef ALLOW_MOM_COMMON
29 C !LOCAL VARIABLES:
30 C === Local variables ===
31 C msgBuf - Informational/error meesage buffer
32 c CHARACTER*(MAX_LEN_MBUF) msgBuf
33
34 INTEGER diagNum
35 CHARACTER*8 diagName
36 CHARACTER*16 diagCode
37 CHARACTER*16 diagUnits
38 CHARACTER*(80) diagTitle
39
40 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
41
42 C--- Add diagnostics to the (long) list of available diagnostics:
43
44 C-- add diagnostics for viscosity coefficients:
45 diagName = 'VISCAHZ '
46 diagTitle = 'Harmonic Visc Coefficient (m2/s) (Zeta Pt)'
47 diagUnits = 'm^2/s '
48 diagCode = 'SZ MR '
49 CALL DIAGNOSTICS_ADD2LIST( diagNum,
50 I diagName, diagCode, diagUnits, diagTitle, myThid )
51
52 diagName = 'VISCA4Z '
53 diagTitle = 'Biharmonic Visc Coefficient (m4/s) (Zeta Pt)'
54 diagUnits = 'm^4/s '
55 diagCode = 'SZ MR '
56 CALL DIAGNOSTICS_ADD2LIST( diagNum,
57 I diagName, diagCode, diagUnits, diagTitle, myThid )
58
59 diagName = 'VISCAHD '
60 diagTitle = 'Harmonic Viscosity Coefficient (m2/s) (Div Pt)'
61 diagUnits = 'm^2/s '
62 diagCode = 'SM MR '
63 CALL DIAGNOSTICS_ADD2LIST( diagNum,
64 I diagName, diagCode, diagUnits, diagTitle, myThid )
65
66 diagName = 'VISCA4D '
67 diagTitle = 'Biharmonic Viscosity Coefficient (m4/s) (Div Pt)'
68 diagUnits = 'm^4/s '
69 diagCode = 'SM MR '
70 CALL DIAGNOSTICS_ADD2LIST( diagNum,
71 I diagName, diagCode, diagUnits, diagTitle, myThid )
72
73 diagName = 'VAHZMAX '
74 diagTitle = 'CFL-MAX Harm Visc Coefficient (m2/s) (Zeta Pt)'
75 diagUnits = 'm^2/s '
76 diagCode = 'SZ MR '
77 CALL DIAGNOSTICS_ADD2LIST( diagNum,
78 I diagName, diagCode, diagUnits, diagTitle, myThid )
79
80 diagName = 'VA4ZMAX '
81 diagTitle = 'CFL-MAX Biharm Visc Coefficient (m4/s) (Zeta Pt)'
82 diagUnits = 'm^4/s '
83 diagCode = 'SZ MR '
84 CALL DIAGNOSTICS_ADD2LIST( diagNum,
85 I diagName, diagCode, diagUnits, diagTitle, myThid )
86
87 diagName = 'VAHDMAX '
88 diagTitle = 'CFL-MAX Harm Visc Coefficient (m2/s) (Div Pt)'
89 diagUnits = 'm^2/s '
90 diagCode = 'SM MR '
91 CALL DIAGNOSTICS_ADD2LIST( diagNum,
92 I diagName, diagCode, diagUnits, diagTitle, myThid )
93
94 diagName = 'VA4DMAX '
95 diagTitle = 'CFL-MAX Biharm Visc Coefficient (m4/s) (Div Pt)'
96 diagUnits = 'm^4/s '
97 diagCode = 'SM MR '
98 CALL DIAGNOSTICS_ADD2LIST( diagNum,
99 I diagName, diagCode, diagUnits, diagTitle, myThid )
100
101 diagName = 'VAHZMIN '
102 diagTitle = 'RE-MIN Harm Visc Coefficient (m2/s) (Zeta Pt)'
103 diagUnits = 'm^2/s '
104 diagCode = 'SZ MR '
105 CALL DIAGNOSTICS_ADD2LIST( diagNum,
106 I diagName, diagCode, diagUnits, diagTitle, myThid )
107
108 diagName = 'VA4ZMIN '
109 diagTitle = 'RE-MIN Biharm Visc Coefficient (m4/s) (Zeta Pt)'
110 diagUnits = 'm^4/s '
111 diagCode = 'SZ MR '
112 CALL DIAGNOSTICS_ADD2LIST( diagNum,
113 I diagName, diagCode, diagUnits, diagTitle, myThid )
114
115 diagName = 'VAHDMIN '
116 diagTitle = 'RE-MIN Harm Visc Coefficient (m2/s) (Div Pt)'
117 diagUnits = 'm^2/s '
118 diagCode = 'SM MR '
119 CALL DIAGNOSTICS_ADD2LIST( diagNum,
120 I diagName, diagCode, diagUnits, diagTitle, myThid )
121
122 diagName = 'VA4DMIN '
123 diagTitle = 'RE-MIN Biharm Visc Coefficient (m4/s) (Div Pt)'
124 diagUnits = 'm^4/s '
125 diagCode = 'SM MR '
126 CALL DIAGNOSTICS_ADD2LIST( diagNum,
127 I diagName, diagCode, diagUnits, diagTitle, myThid )
128
129 diagName = 'VAHZLTH '
130 diagTitle = 'Leith Harm Visc Coefficient (m2/s) (Zeta Pt)'
131 diagUnits = 'm^2/s '
132 diagCode = 'SZ MR '
133 CALL DIAGNOSTICS_ADD2LIST( diagNum,
134 I diagName, diagCode, diagUnits, diagTitle, myThid )
135
136 diagName = 'VA4ZLTH '
137 diagTitle = 'Leith Biharm Visc Coefficient (m4/s) (Zeta Pt)'
138 diagUnits = 'm^4/s '
139 diagCode = 'SZ MR '
140 CALL DIAGNOSTICS_ADD2LIST( diagNum,
141 I diagName, diagCode, diagUnits, diagTitle, myThid )
142
143 diagName = 'VAHDLTH '
144 diagTitle = 'Leith Harm Visc Coefficient (m2/s) (Div Pt)'
145 diagUnits = 'm^2/s '
146 diagCode = 'SM MR '
147 CALL DIAGNOSTICS_ADD2LIST( diagNum,
148 I diagName, diagCode, diagUnits, diagTitle, myThid )
149
150 diagName = 'VA4DLTH '
151 diagTitle = 'Leith Biharm Visc Coefficient (m4/s) (Div Pt)'
152 diagUnits = 'm^4/s '
153 diagCode = 'SM MR '
154 CALL DIAGNOSTICS_ADD2LIST( diagNum,
155 I diagName, diagCode, diagUnits, diagTitle, myThid )
156
157 diagName = 'VAHZLTHD'
158 diagTitle = 'LeithD Harm Visc Coefficient (m2/s) (Zeta Pt)'
159 diagUnits = 'm^2/s '
160 diagCode = 'SZ MR '
161 CALL DIAGNOSTICS_ADD2LIST( diagNum,
162 I diagName, diagCode, diagUnits, diagTitle, myThid )
163
164 diagName = 'VA4ZLTHD'
165 diagTitle = 'LeithD Biharm Visc Coefficient (m4/s) (Zeta Pt)'
166 diagUnits = 'm^4/s '
167 diagCode = 'SZ MR '
168 CALL DIAGNOSTICS_ADD2LIST( diagNum,
169 I diagName, diagCode, diagUnits, diagTitle, myThid )
170
171 diagName = 'VAHDLTHD'
172 diagTitle = 'LeithD Harm Visc Coefficient (m2/s) (Div Pt)'
173 diagUnits = 'm^2/s '
174 diagCode = 'SM MR '
175 CALL DIAGNOSTICS_ADD2LIST( diagNum,
176 I diagName, diagCode, diagUnits, diagTitle, myThid )
177
178 diagName = 'VA4DLTHD'
179 diagTitle = 'LeithD Biharm Visc Coefficient (m4/s) (Div Pt)'
180 diagUnits = 'm^4/s '
181 diagCode = 'SM MR '
182 CALL DIAGNOSTICS_ADD2LIST( diagNum,
183 I diagName, diagCode, diagUnits, diagTitle, myThid )
184
185 diagName = 'VAHZSMAG'
186 diagTitle = 'Smagorinsky Harm Visc Coefficient (m2/s) (Zeta Pt)'
187 diagUnits = 'm^2/s '
188 diagCode = 'SZ MR '
189 CALL DIAGNOSTICS_ADD2LIST( diagNum,
190 I diagName, diagCode, diagUnits, diagTitle, myThid )
191
192 diagName = 'VA4ZSMAG'
193 diagTitle = 'Smagorinsky Biharm Visc Coeff. (m4/s) (Zeta Pt)'
194 diagUnits = 'm^4/s '
195 diagCode = 'SZ MR '
196 CALL DIAGNOSTICS_ADD2LIST( diagNum,
197 I diagName, diagCode, diagUnits, diagTitle, myThid )
198
199 diagName = 'VAHDSMAG'
200 diagTitle = 'Smagorinsky Harm Visc Coefficient (m2/s) (Div Pt)'
201 diagUnits = 'm^2/s '
202 diagCode = 'SM MR '
203 CALL DIAGNOSTICS_ADD2LIST( diagNum,
204 I diagName, diagCode, diagUnits, diagTitle, myThid )
205
206 diagName = 'VA4DSMAG'
207 diagTitle = 'Smagorinsky Biharm Visc Coeff. (m4/s) (Div Pt)'
208 diagUnits = 'm^4/s '
209 diagCode = 'SM MR '
210 CALL DIAGNOSTICS_ADD2LIST( diagNum,
211 I diagName, diagCode, diagUnits, diagTitle, myThid )
212
213
214
215 C-- add diagnostics of simple derivative quantities:
216 diagName = 'momKE '
217 diagTitle = 'Kinetic Energy (in momentum Eq.)'
218 diagCode = 'SM MR '
219 diagUnits = 'm^2/s^2 '
220 CALL DIAGNOSTICS_ADD2LIST( diagNum,
221 I diagName, diagCode, diagUnits, diagTitle, myThid )
222
223 #ifdef ALLOW_MOM_VECINV
224 diagName = 'momHDiv '
225 diagTitle = 'Horizontal Divergence (in momentum Eq.)'
226 diagCode = 'SM MR '
227 diagUnits = 's^-1 '
228 CALL DIAGNOSTICS_ADD2LIST( diagNum,
229 I diagName, diagCode, diagUnits, diagTitle, myThid )
230
231 diagName = 'momVort3'
232 diagTitle = '3rd component (vertical) of Vorticity'
233 diagCode = 'SZ MR '
234 diagUnits = 's^-1 '
235 CALL DIAGNOSTICS_ADD2LIST( diagNum,
236 I diagName, diagCode, diagUnits, diagTitle, myThid )
237
238 diagName = 'Strain '
239 diagTitle = 'Horizontal Strain of Horizontal Velocities'
240 diagCode = 'SZ MR '
241 diagUnits = 's^-1 '
242 CALL DIAGNOSTICS_ADD2LIST( diagNum,
243 I diagName, diagCode, diagUnits, diagTitle, myThid )
244
245 diagName = 'Tension '
246 diagTitle = 'Horizontal Tension of Horizontal Velocities'
247 diagCode = 'SM MR '
248 diagUnits = 's^-1 '
249 CALL DIAGNOSTICS_ADD2LIST( diagNum,
250 I diagName, diagCode, diagUnits, diagTitle, myThid )
251 #endif /* ALLOW_MOM_VECINV */
252
253 C-- add diagnostics of tendencies from each terms
254 diagUnits = 'm/s^2 '
255
256 diagName = 'Um_Diss '
257 diagTitle = 'U momentum tendency from Dissipation'
258 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
259 CALL DIAGNOSTICS_ADD2LIST( diagNum,
260 I diagName, diagCode, diagUnits, diagTitle, myThid )
261 diagName = 'Vm_Diss '
262 diagTitle = 'V momentum tendency from Dissipation'
263 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
264 CALL DIAGNOSTICS_ADD2LIST( diagNum,
265 I diagName, diagCode, diagUnits, diagTitle, myThid )
266
267 diagName = 'Um_Advec'
268 diagTitle = 'U momentum tendency from Advection terms'
269 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
270 CALL DIAGNOSTICS_ADD2LIST( diagNum,
271 I diagName, diagCode, diagUnits, diagTitle, myThid )
272 diagName = 'Vm_Advec'
273 diagTitle = 'V momentum tendency from Advection terms'
274 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
275 CALL DIAGNOSTICS_ADD2LIST( diagNum,
276 I diagName, diagCode, diagUnits, diagTitle, myThid )
277
278 diagName = 'Um_Cori '
279 diagTitle = 'U momentum tendency from Coriolis term'
280 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
281 CALL DIAGNOSTICS_ADD2LIST( diagNum,
282 I diagName, diagCode, diagUnits, diagTitle, myThid )
283 diagName = 'Vm_Cori '
284 diagTitle = 'V momentum tendency from Coriolis term'
285 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
286 CALL DIAGNOSTICS_ADD2LIST( diagNum,
287 I diagName, diagCode, diagUnits, diagTitle, myThid )
288
289 #ifdef ALLOW_MOM_VECINV
290 diagName = 'Um_AdvZ3'
291 diagTitle = 'U momentum tendency from Vorticity Advection'
292 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
293 CALL DIAGNOSTICS_ADD2LIST( diagNum,
294 I diagName, diagCode, diagUnits, diagTitle, myThid )
295 diagName = 'Vm_AdvZ3'
296 diagTitle = 'V momentum tendency from Vorticity Advection'
297 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
298 CALL DIAGNOSTICS_ADD2LIST( diagNum,
299 I diagName, diagCode, diagUnits, diagTitle, myThid )
300
301 diagName = 'Um_AdvRe'
302 diagTitle = 'U momentum tendency from vertical Advection'
303 & //' (Explicit part)'
304 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
305 CALL DIAGNOSTICS_ADD2LIST( diagNum,
306 I diagName, diagCode, diagUnits, diagTitle, myThid )
307 diagName = 'Vm_AdvRe'
308 diagTitle = 'V momentum tendency from vertical Advection'
309 & //' (Explicit part)'
310 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
311 CALL DIAGNOSTICS_ADD2LIST( diagNum,
312 I diagName, diagCode, diagUnits, diagTitle, myThid )
313 #endif /* ALLOW_MOM_VECINV */
314
315 C-- add diagnostics of advective & viscous flux :
316 IF ( usingPCoords ) THEN
317 diagUnits = 'Pa.m^3/s^2 '
318 ELSE
319 diagUnits = 'm^4/s^2 '
320 ENDIF
321
322 C- Advective flux of Zonal momentum:
323 #ifdef ALLOW_MOM_FLUXFORM
324 diagName = 'ADVx_Um '
325 diagTitle = 'Zonal Advective Flux of U momentum'
326 WRITE(diagCode,'(A,I3.3,A)') 'UM ',diagNum+2,'MR '
327 CALL DIAGNOSTICS_ADD2LIST( diagNum,
328 I diagName, diagCode, diagUnits, diagTitle, myThid )
329 diagName = 'ADVy_Um '
330 diagTitle = 'Meridional Advective Flux of U momentum'
331 WRITE(diagCode,'(A,I3.3,A)') 'VZ ', diagNum, 'MR '
332 CALL DIAGNOSTICS_ADD2LIST( diagNum,
333 I diagName, diagCode, diagUnits, diagTitle, myThid )
334 diagName = 'ADVrE_Um'
335 diagTitle = 'Vertical Advective Flux of U momentum'
336 & //' (Explicit part)'
337 diagCode = 'WU LR '
338 CALL DIAGNOSTICS_ADD2LIST( diagNum,
339 I diagName, diagCode, diagUnits, diagTitle, myThid )
340 #endif /* ALLOW_MOM_FLUXFORM */
341 c diagName = 'ADVrI_Um'
342 c diagTitle = 'Vertical Advective Flux of U momentum'
343 c & //' (Implicit part)'
344 c diagCode = 'WU LR '
345 c CALL DIAGNOSTICS_ADD2LIST( diagNum,
346 c I diagName, diagCode, diagUnits, diagTitle, myThid )
347
348 C- Advective flux of Meridional momentum:
349 #ifdef ALLOW_MOM_FLUXFORM
350 diagName = 'ADVx_Vm '
351 diagTitle = 'Zonal Advective Flux of V momentum'
352 WRITE(diagCode,'(A,I3.3,A)') 'UZ ',diagNum+2,'MR '
353 CALL DIAGNOSTICS_ADD2LIST( diagNum,
354 I diagName, diagCode, diagUnits, diagTitle, myThid )
355 diagName = 'ADVy_Vm '
356 diagTitle = 'Meridional Advective Flux of V momentum'
357 WRITE(diagCode,'(A,I3.3,A)') 'VM ', diagNum, 'MR '
358 CALL DIAGNOSTICS_ADD2LIST( diagNum,
359 I diagName, diagCode, diagUnits, diagTitle, myThid )
360 diagName = 'ADVrE_Vm'
361 diagTitle = 'Vertical Advective Flux of V momentum'
362 & //' (Explicit part)'
363 diagCode = 'WV LR '
364 CALL DIAGNOSTICS_ADD2LIST( diagNum,
365 I diagName, diagCode, diagUnits, diagTitle, myThid )
366 #endif /* ALLOW_MOM_FLUXFORM */
367 c diagName = 'ADVrI_Vm'
368 c diagTitle = 'Vertical Advective Flux of V momentum'
369 c & //' (Implicit part)'
370 c diagCode = 'WV LR '
371 c CALL DIAGNOSTICS_ADD2LIST( diagNum,
372 c I diagName, diagCode, diagUnits, diagTitle, myThid )
373
374 c- Viscous flux of Zonal momentum :
375 #ifdef ALLOW_MOM_FLUXFORM
376 diagName = 'VISCx_Um'
377 diagTitle = 'Zonal Viscous Flux of U momentum'
378 WRITE(diagCode,'(A,I3.3,A)') 'UM ',diagNum+2,'MR '
379 CALL DIAGNOSTICS_ADD2LIST( diagNum,
380 I diagName, diagCode, diagUnits, diagTitle, myThid )
381 diagName = 'VISCy_Um'
382 diagTitle = 'Meridional Viscous Flux of U momentum'
383 WRITE(diagCode,'(A,I3.3,A)') 'VZ ', diagNum, 'MR '
384 CALL DIAGNOSTICS_ADD2LIST( diagNum,
385 I diagName, diagCode, diagUnits, diagTitle, myThid )
386 diagName = 'VISrE_Um'
387 diagTitle = 'Vertical Viscous Flux of U momentum'
388 & //' (Explicit part)'
389 diagCode = 'WU LR '
390 CALL DIAGNOSTICS_ADD2LIST( diagNum,
391 I diagName, diagCode, diagUnits, diagTitle, myThid )
392 #endif /* ALLOW_MOM_FLUXFORM */
393 diagName = 'VISrI_Um'
394 diagTitle = 'Vertical Viscous Flux of U momentum'
395 & //' (Implicit part)'
396 diagCode = 'WU LR '
397 CALL DIAGNOSTICS_ADD2LIST( diagNum,
398 I diagName, diagCode, diagUnits, diagTitle, myThid )
399
400 c- Viscous flux of Meridional momentum :
401 #ifdef ALLOW_MOM_FLUXFORM
402 diagName = 'VISCx_Vm'
403 diagTitle = 'Zonal Viscous Flux of V momentum'
404 WRITE(diagCode,'(A,I3.3,A)') 'UZ ',diagNum+2,'MR '
405 CALL DIAGNOSTICS_ADD2LIST( diagNum,
406 I diagName, diagCode, diagUnits, diagTitle, myThid )
407 diagName = 'VISCy_Vm'
408 diagTitle = 'Meridional Viscous Flux of V momentum'
409 WRITE(diagCode,'(A,I3.3,A)') 'VM ', diagNum, 'MR '
410 CALL DIAGNOSTICS_ADD2LIST( diagNum,
411 I diagName, diagCode, diagUnits, diagTitle, myThid )
412 diagName = 'VISrE_Vm'
413 diagTitle = 'Vertical Viscous Flux of V momentum'
414 & //' (Explicit part)'
415 diagCode = 'WV LR '
416 CALL DIAGNOSTICS_ADD2LIST( diagNum,
417 I diagName, diagCode, diagUnits, diagTitle, myThid )
418 #endif /* ALLOW_MOM_FLUXFORM */
419 diagName = 'VISrI_Vm'
420 diagTitle = 'Vertical Viscous Flux of V momentum'
421 & //' (Implicit part)'
422 diagCode = 'WV LR '
423 CALL DIAGNOSTICS_ADD2LIST( diagNum,
424 I diagName, diagCode, diagUnits, diagTitle, myThid )
425
426 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
427
428 #endif /* ALLOW_MOM_COMMON */
429 #endif /* ALLOW_DIAGNOSTICS */
430
431 RETURN
432 END

  ViewVC Help
Powered by ViewVC 1.1.22