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

Annotation 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 - (hide 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 baylor 1.4 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_diagnostics_init.F,v 1.3 2005/09/15 14:53:11 jmc Exp $
2 jmc 1.1 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 jmc 1.3 C--- Add diagnostics to the (long) list of available diagnostics:
43    
44     C-- add diagnostics for viscosity coefficients:
45 baylor 1.4 diagName = 'VISCAHD '
46     diagTitle = 'Harmonic Viscosity Coefficient (m2/s) (Div Pt)'
47 jmc 1.3 diagUnits = 'm^2/s '
48     diagCode = 'SM MR '
49     CALL DIAGNOSTICS_ADD2LIST( diagNum,
50     I diagName, diagCode, diagUnits, diagTitle, myThid )
51    
52 baylor 1.4 diagName = 'VISCA4D '
53     diagTitle = 'Biharmonic Viscosity Coefficient (m4/s) (Div Pt)'
54 jmc 1.3 diagUnits = 'm^4/s '
55     diagCode = 'SM MR '
56     CALL DIAGNOSTICS_ADD2LIST( diagNum,
57     I diagName, diagCode, diagUnits, diagTitle, myThid )
58 baylor 1.4
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 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
80 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
88 jmc 1.1
89     diagName = 'momVort3'
90     diagTitle = '3rd component (vertical) of Vorticity'
91     diagCode = 'SZ MR '
92     diagUnits = 's^-1 '
93     CALL DIAGNOSTICS_ADD2LIST( diagNum,
94 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
95 jmc 1.1 #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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
105 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
110 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
116 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
121 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
127 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
132 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
139 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
144 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
151 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
157 jmc 1.1 #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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
173 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
178 jmc 1.1 diagName = 'ADVrE_Um'
179     diagTitle = 'Vertical Advective Flux of U momentum'
180     & //' (Explicit part)'
181     diagCode = 'WU LR '
182     CALL DIAGNOSTICS_ADD2LIST( diagNum,
183 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
184 jmc 1.1 #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 jmc 1.2 c I diagName, diagCode, diagUnits, diagTitle, myThid )
191 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
199 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
204 jmc 1.1 diagName = 'ADVrE_Vm'
205     diagTitle = 'Vertical Advective Flux of V momentum'
206     & //' (Explicit part)'
207     diagCode = 'WV LR '
208     CALL DIAGNOSTICS_ADD2LIST( diagNum,
209 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
210 jmc 1.1 #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 jmc 1.2 c I diagName, diagCode, diagUnits, diagTitle, myThid )
217 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
225 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
230 jmc 1.1 diagName = 'VISrE_Um'
231     diagTitle = 'Vertical Viscous Flux of U momentum'
232     & //' (Explicit part)'
233     diagCode = 'WU LR '
234     CALL DIAGNOSTICS_ADD2LIST( diagNum,
235 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
236 jmc 1.1 #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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
243 jmc 1.1
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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
251 jmc 1.1 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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
256 jmc 1.1 diagName = 'VISrE_Vm'
257     diagTitle = 'Vertical Viscous Flux of V momentum'
258     & //' (Explicit part)'
259     diagCode = 'WV LR '
260     CALL DIAGNOSTICS_ADD2LIST( diagNum,
261 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
262 jmc 1.1 #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 jmc 1.2 I diagName, diagCode, diagUnits, diagTitle, myThid )
269 jmc 1.1
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