/[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.4 - (show annotations) (download)
Fri Sep 16 19:32:20 2005 UTC (18 years, 8 months ago) by baylor
Branch: MAIN
CVS Tags: checkpoint57s_post
Changes since 1.3: +19 -7 lines
Move calculation of viscosities to separate file mom_common/mom_calc_visc.F.  This allows Leith, LeithD,
and Smagorinsky to be used simultaneously, and soon will allow them to be used in strain-tension,
fluxform, and nonhydrostatic modes.  Also, introduce viscC4Smag, a biharmonic Smagorinsky
viscosity as in Griffies and Hallberg.

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_diagnostics_init.F,v 1.3 2005/09/15 14:53:11 jmc 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 = 'VISCAHD '
46 diagTitle = 'Harmonic Viscosity Coefficient (m2/s) (Div Pt)'
47 diagUnits = 'm^2/s '
48 diagCode = 'SM MR '
49 CALL DIAGNOSTICS_ADD2LIST( diagNum,
50 I diagName, diagCode, diagUnits, diagTitle, myThid )
51
52 diagName = 'VISCA4D '
53 diagTitle = 'Biharmonic Viscosity Coefficient (m4/s) (Div Pt)'
54 diagUnits = 'm^4/s '
55 diagCode = 'SM MR '
56 CALL DIAGNOSTICS_ADD2LIST( diagNum,
57 I diagName, diagCode, diagUnits, diagTitle, myThid )
58
59 diagName = 'VISCAHZ '
60 diagTitle = 'Harmonic Viscosity Coefficient (m2/s) (Zeta Pt)'
61 diagUnits = 'm^2/s '
62 diagCode = 'SZ MR '
63 CALL DIAGNOSTICS_ADD2LIST( diagNum,
64 I diagName, diagCode, diagUnits, diagTitle, myThid )
65
66 diagName = 'VISCA4Z '
67 diagTitle = 'Biharmonic Viscosity Coefficient (m4/s) (Zeta Pt)'
68 diagUnits = 'm^4/s '
69 diagCode = 'SZ MR '
70 CALL DIAGNOSTICS_ADD2LIST( diagNum,
71 I diagName, diagCode, diagUnits, diagTitle, myThid )
72
73 C-- add diagnostics of simple derivative quantities:
74 diagName = 'momKE '
75 diagTitle = 'Kinetic Energy (in momentum Eq.)'
76 diagCode = 'SM MR '
77 diagUnits = 'm^2/s^2 '
78 CALL DIAGNOSTICS_ADD2LIST( diagNum,
79 I diagName, diagCode, diagUnits, diagTitle, myThid )
80
81 #ifdef ALLOW_MOM_VECINV
82 diagName = 'momHDiv '
83 diagTitle = 'Horizontal Divergence (in momentum Eq.)'
84 diagCode = 'SM MR '
85 diagUnits = 's^-1 '
86 CALL DIAGNOSTICS_ADD2LIST( diagNum,
87 I diagName, diagCode, diagUnits, diagTitle, myThid )
88
89 diagName = 'momVort3'
90 diagTitle = '3rd component (vertical) of Vorticity'
91 diagCode = 'SZ MR '
92 diagUnits = 's^-1 '
93 CALL DIAGNOSTICS_ADD2LIST( diagNum,
94 I diagName, diagCode, diagUnits, diagTitle, myThid )
95 #endif /* ALLOW_MOM_VECINV */
96
97 C-- add diagnostics of tendencies from each terms
98 diagUnits = 'm/s^2 '
99
100 diagName = 'Um_Diss '
101 diagTitle = 'U momentum tendency from Dissipation'
102 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
103 CALL DIAGNOSTICS_ADD2LIST( diagNum,
104 I diagName, diagCode, diagUnits, diagTitle, myThid )
105 diagName = 'Vm_Diss '
106 diagTitle = 'V momentum tendency from Dissipation'
107 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
108 CALL DIAGNOSTICS_ADD2LIST( diagNum,
109 I diagName, diagCode, diagUnits, diagTitle, myThid )
110
111 diagName = 'Um_Advec'
112 diagTitle = 'U momentum tendency from Advection terms'
113 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
114 CALL DIAGNOSTICS_ADD2LIST( diagNum,
115 I diagName, diagCode, diagUnits, diagTitle, myThid )
116 diagName = 'Vm_Advec'
117 diagTitle = 'V momentum tendency from Advection terms'
118 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
119 CALL DIAGNOSTICS_ADD2LIST( diagNum,
120 I diagName, diagCode, diagUnits, diagTitle, myThid )
121
122 diagName = 'Um_Cori '
123 diagTitle = 'U momentum tendency from Coriolis term'
124 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
125 CALL DIAGNOSTICS_ADD2LIST( diagNum,
126 I diagName, diagCode, diagUnits, diagTitle, myThid )
127 diagName = 'Vm_Cori '
128 diagTitle = 'V momentum tendency from Coriolis term'
129 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
130 CALL DIAGNOSTICS_ADD2LIST( diagNum,
131 I diagName, diagCode, diagUnits, diagTitle, myThid )
132
133 #ifdef ALLOW_MOM_VECINV
134 diagName = 'Um_AdvZ3'
135 diagTitle = 'U momentum tendency from Vorticity Advection'
136 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
137 CALL DIAGNOSTICS_ADD2LIST( diagNum,
138 I diagName, diagCode, diagUnits, diagTitle, myThid )
139 diagName = 'Vm_AdvZ3'
140 diagTitle = 'V momentum tendency from Vorticity Advection'
141 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
142 CALL DIAGNOSTICS_ADD2LIST( diagNum,
143 I diagName, diagCode, diagUnits, diagTitle, myThid )
144
145 diagName = 'Um_AdvRe'
146 diagTitle = 'U momentum tendency from vertical Advection'
147 & //' (Explicit part)'
148 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
149 CALL DIAGNOSTICS_ADD2LIST( diagNum,
150 I diagName, diagCode, diagUnits, diagTitle, myThid )
151 diagName = 'Vm_AdvRe'
152 diagTitle = 'V momentum tendency from vertical Advection'
153 & //' (Explicit part)'
154 WRITE(diagCode,'(A,I3.3,A)') 'VV ', diagNum, 'MR '
155 CALL DIAGNOSTICS_ADD2LIST( diagNum,
156 I diagName, diagCode, diagUnits, diagTitle, myThid )
157 #endif /* ALLOW_MOM_VECINV */
158
159 C-- add diagnostics of advective & viscous flux :
160 IF ( usingPCoords ) THEN
161 diagUnits = 'Pa.m^3/s^2 '
162 ELSE
163 diagUnits = 'm^4/s^2 '
164 ENDIF
165
166 C- Advective flux of Zonal momentum:
167 #ifdef ALLOW_MOM_FLUXFORM
168 diagName = 'ADVx_Um '
169 diagTitle = 'Zonal Advective Flux of U momentum'
170 WRITE(diagCode,'(A,I3.3,A)') 'UM ',diagNum+2,'MR '
171 CALL DIAGNOSTICS_ADD2LIST( diagNum,
172 I diagName, diagCode, diagUnits, diagTitle, myThid )
173 diagName = 'ADVy_Um '
174 diagTitle = 'Meridional Advective Flux of U momentum'
175 WRITE(diagCode,'(A,I3.3,A)') 'VZ ', diagNum, 'MR '
176 CALL DIAGNOSTICS_ADD2LIST( diagNum,
177 I diagName, diagCode, diagUnits, diagTitle, myThid )
178 diagName = 'ADVrE_Um'
179 diagTitle = 'Vertical Advective Flux of U momentum'
180 & //' (Explicit part)'
181 diagCode = 'WU LR '
182 CALL DIAGNOSTICS_ADD2LIST( diagNum,
183 I diagName, diagCode, diagUnits, diagTitle, myThid )
184 #endif /* ALLOW_MOM_FLUXFORM */
185 c diagName = 'ADVrI_Um'
186 c diagTitle = 'Vertical Advective Flux of U momentum'
187 c & //' (Implicit part)'
188 c diagCode = 'WU LR '
189 c CALL DIAGNOSTICS_ADD2LIST( diagNum,
190 c I diagName, diagCode, diagUnits, diagTitle, myThid )
191
192 C- Advective flux of Meridional momentum:
193 #ifdef ALLOW_MOM_FLUXFORM
194 diagName = 'ADVx_Vm '
195 diagTitle = 'Zonal Advective Flux of V momentum'
196 WRITE(diagCode,'(A,I3.3,A)') 'UZ ',diagNum+2,'MR '
197 CALL DIAGNOSTICS_ADD2LIST( diagNum,
198 I diagName, diagCode, diagUnits, diagTitle, myThid )
199 diagName = 'ADVy_Vm '
200 diagTitle = 'Meridional Advective Flux of V momentum'
201 WRITE(diagCode,'(A,I3.3,A)') 'VM ', diagNum, 'MR '
202 CALL DIAGNOSTICS_ADD2LIST( diagNum,
203 I diagName, diagCode, diagUnits, diagTitle, myThid )
204 diagName = 'ADVrE_Vm'
205 diagTitle = 'Vertical Advective Flux of V momentum'
206 & //' (Explicit part)'
207 diagCode = 'WV LR '
208 CALL DIAGNOSTICS_ADD2LIST( diagNum,
209 I diagName, diagCode, diagUnits, diagTitle, myThid )
210 #endif /* ALLOW_MOM_FLUXFORM */
211 c diagName = 'ADVrI_Vm'
212 c diagTitle = 'Vertical Advective Flux of V momentum'
213 c & //' (Implicit part)'
214 c diagCode = 'WV LR '
215 c CALL DIAGNOSTICS_ADD2LIST( diagNum,
216 c I diagName, diagCode, diagUnits, diagTitle, myThid )
217
218 c- Viscous flux of Zonal momentum :
219 #ifdef ALLOW_MOM_FLUXFORM
220 diagName = 'VISCx_Um'
221 diagTitle = 'Zonal Viscous Flux of U momentum'
222 WRITE(diagCode,'(A,I3.3,A)') 'UM ',diagNum+2,'MR '
223 CALL DIAGNOSTICS_ADD2LIST( diagNum,
224 I diagName, diagCode, diagUnits, diagTitle, myThid )
225 diagName = 'VISCy_Um'
226 diagTitle = 'Meridional Viscous Flux of U momentum'
227 WRITE(diagCode,'(A,I3.3,A)') 'VZ ', diagNum, 'MR '
228 CALL DIAGNOSTICS_ADD2LIST( diagNum,
229 I diagName, diagCode, diagUnits, diagTitle, myThid )
230 diagName = 'VISrE_Um'
231 diagTitle = 'Vertical Viscous Flux of U momentum'
232 & //' (Explicit part)'
233 diagCode = 'WU LR '
234 CALL DIAGNOSTICS_ADD2LIST( diagNum,
235 I diagName, diagCode, diagUnits, diagTitle, myThid )
236 #endif /* ALLOW_MOM_FLUXFORM */
237 diagName = 'VISrI_Um'
238 diagTitle = 'Vertical Viscous Flux of U momentum'
239 & //' (Implicit part)'
240 diagCode = 'WU LR '
241 CALL DIAGNOSTICS_ADD2LIST( diagNum,
242 I diagName, diagCode, diagUnits, diagTitle, myThid )
243
244 c- Viscous flux of Meridional momentum :
245 #ifdef ALLOW_MOM_FLUXFORM
246 diagName = 'VISCx_Vm'
247 diagTitle = 'Zonal Viscous Flux of V momentum'
248 WRITE(diagCode,'(A,I3.3,A)') 'UZ ',diagNum+2,'MR '
249 CALL DIAGNOSTICS_ADD2LIST( diagNum,
250 I diagName, diagCode, diagUnits, diagTitle, myThid )
251 diagName = 'VISCy_Vm'
252 diagTitle = 'Meridional Viscous Flux of V momentum'
253 WRITE(diagCode,'(A,I3.3,A)') 'VM ', diagNum, 'MR '
254 CALL DIAGNOSTICS_ADD2LIST( diagNum,
255 I diagName, diagCode, diagUnits, diagTitle, myThid )
256 diagName = 'VISrE_Vm'
257 diagTitle = 'Vertical Viscous Flux of V momentum'
258 & //' (Explicit part)'
259 diagCode = 'WV LR '
260 CALL DIAGNOSTICS_ADD2LIST( diagNum,
261 I diagName, diagCode, diagUnits, diagTitle, myThid )
262 #endif /* ALLOW_MOM_FLUXFORM */
263 diagName = 'VISrI_Vm'
264 diagTitle = 'Vertical Viscous Flux of V momentum'
265 & //' (Implicit part)'
266 diagCode = 'WV LR '
267 CALL DIAGNOSTICS_ADD2LIST( diagNum,
268 I diagName, diagCode, diagUnits, diagTitle, myThid )
269
270 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
271
272 #endif /* ALLOW_MOM_COMMON */
273 #endif /* ALLOW_DIAGNOSTICS */
274
275 RETURN
276 END

  ViewVC Help
Powered by ViewVC 1.1.22