/[MITgcm]/MITgcm_contrib/many_tracers/new_code/gad_diagnostics_init.F
ViewVC logotype

Contents of /MITgcm_contrib/many_tracers/new_code/gad_diagnostics_init.F

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


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Thu Jun 15 02:23:54 2006 UTC (17 years, 10 months ago) by cnh
Branch: initial, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
Initial checkin

1 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_diagnostics_init.F,v 1.2 2006/06/05 17:17:31 molod Exp $
2 C $Name: $
3
4 #include "GAD_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: GAD_INIT
8 C !INTERFACE:
9 SUBROUTINE GAD_DIAGNOSTICS_INIT( myThid )
10 C !DESCRIPTION:
11 C Routine to initialize Generic Advection/Diffusion diagnostics
12
13 C !USES:
14 IMPLICIT NONE
15 C === Global variables ===
16 #include "SIZE.h"
17 #include "EEPARAMS.h"
18 #include "PARAMS.h"
19 #include "GAD.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 C !LOCAL VARIABLES:
29 C === Local variables ===
30 C msgBuf - Informational/error meesage buffer
31 c CHARACTER*(MAX_LEN_MBUF) msgBuf
32
33 INTEGER diagNum
34 CHARACTER*8 diagName
35 CHARACTER*16 diagCode
36 CHARACTER*16 diagUnits
37 CHARACTER*(80) diagTitle
38
39 CHARACTER*10 flxUnits
40 CHARACTER*12 locName
41 CHARACTER*4 GAD_DIAG_SUFX, diagSufx
42 c EXTERNAL GAD_DIAG_SUFX
43
44 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
45
46 C-- Add diagnostics to the (long) list
47 IF ( usingPCoords ) THEN
48 flxUnits = '.Pa.m^2/s '
49 ELSE
50 flxUnits = '.m^3/s '
51 ENDIF
52
53 C- add diagnostics of advective & diffusive flux of Temp :
54 IF ( fluidIsAir ) THEN
55 WRITE(diagUnits,'(2A)') 'K',flxUnits
56 ELSE
57 WRITE(diagUnits,'(2A)') 'degC',flxUnits
58 ENDIF
59 diagSufx = GAD_DIAG_SUFX( GAD_TEMPERATURE, myThid )
60
61 C- Advective flux:
62 diagName = 'ADVr'//diagSufx
63 diagTitle = 'Vertical Advective Flux of Pot.Temperature'
64 diagCode = 'WM LR '
65 CALL DIAGNOSTICS_ADD2LIST( diagNum,
66 I diagName, diagCode, diagUnits, diagTitle, myThid )
67 diagName = 'ADVx'//diagSufx
68 diagTitle = 'Zonal Advective Flux of Pot.Temperature'
69 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
70 CALL DIAGNOSTICS_ADD2LIST( diagNum,
71 I diagName, diagCode, diagUnits, diagTitle, myThid )
72 diagName = 'ADVy'//diagSufx
73 diagTitle = 'Meridional Advective Flux of Pot.Temperature'
74 WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
75 CALL DIAGNOSTICS_ADD2LIST( diagNum,
76 I diagName, diagCode, diagUnits, diagTitle, myThid )
77 C- Diffusive flux:
78 diagName = 'DFrE'//diagSufx
79 diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'
80 & //' (Explicit part)'
81 diagCode = 'WM LR '
82 CALL DIAGNOSTICS_ADD2LIST( diagNum,
83 I diagName, diagCode, diagUnits, diagTitle, myThid )
84 diagName = 'DIFx'//diagSufx
85 diagTitle = 'Zonal Diffusive Flux of Pot.Temperature'
86 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
87 CALL DIAGNOSTICS_ADD2LIST( diagNum,
88 I diagName, diagCode, diagUnits, diagTitle, myThid )
89 diagName = 'DIFy'//diagSufx
90 diagTitle = 'Meridional Diffusive Flux of Pot.Temperature'
91 WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
92 CALL DIAGNOSTICS_ADD2LIST( diagNum,
93 I diagName, diagCode, diagUnits, diagTitle, myThid )
94
95 diagName = 'DFrI'//diagSufx
96 diagTitle = 'Vertical Diffusive Flux of Pot.Temperature'
97 & //' (Implicit part)'
98 diagCode = 'WM LR '
99 CALL DIAGNOSTICS_ADD2LIST( diagNum,
100 I diagName, diagCode, diagUnits, diagTitle, myThid )
101
102 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
103
104 C- add diagnostics of advective & diffusive flux of Salt :
105 IF ( fluidIsAir ) THEN
106 locName = ' Water-Vapor'
107 WRITE(diagUnits,'(2A)') 'g/kg',flxUnits
108 #ifdef ALLOW_FIZHI
109 IF(useFIZHI)THEN
110 WRITE(diagUnits,'(2A)') 'kg/kg',flxUnits
111 ENDIF
112 #endif /* ALLOW_FIZHI */
113 ELSE
114 locName = ' Salinity '
115 WRITE(diagUnits,'(2A)') 'psu',flxUnits
116 ENDIF
117 diagSufx = GAD_DIAG_SUFX( GAD_SALINITY, myThid )
118
119 C- Advective flux:
120 diagName = 'ADVr'//diagSufx
121 diagTitle = 'Vertical Advective Flux of'//locName
122 diagCode = 'WM LR '
123 CALL DIAGNOSTICS_ADD2LIST( diagNum,
124 I diagName, diagCode, diagUnits, diagTitle, myThid )
125 diagName = 'ADVx'//diagSufx
126 diagTitle = 'Zonal Advective Flux of'//locName
127 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
128 CALL DIAGNOSTICS_ADD2LIST( diagNum,
129 I diagName, diagCode, diagUnits, diagTitle, myThid )
130 diagName = 'ADVy'//diagSufx
131 diagTitle = 'Meridional Advective Flux of'//locName
132 WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
133 CALL DIAGNOSTICS_ADD2LIST( diagNum,
134 I diagName, diagCode, diagUnits, diagTitle, myThid )
135 C- Diffusive flux:
136 diagName = 'DFrE'//diagSufx
137 diagTitle = 'Vertical Diffusive Flux of'//locName
138 & // ' (Explicit part)'
139 diagCode = 'WM LR '
140 CALL DIAGNOSTICS_ADD2LIST( diagNum,
141 I diagName, diagCode, diagUnits, diagTitle, myThid )
142 diagName = 'DIFx'//diagSufx
143 diagTitle = 'Zonal Diffusive Flux of'//locName
144 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
145 CALL DIAGNOSTICS_ADD2LIST( diagNum,
146 I diagName, diagCode, diagUnits, diagTitle, myThid )
147 diagName = 'DIFy'//diagSufx
148 diagTitle = 'Meridional Diffusive Flux of'//locName
149 WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
150 CALL DIAGNOSTICS_ADD2LIST( diagNum,
151 I diagName, diagCode, diagUnits, diagTitle, myThid )
152
153 diagName = 'DFrI'//diagSufx
154 diagTitle = 'Vertical Diffusive Flux of'//locName
155 & //' (Implicit part)'
156 diagCode = 'WM LR '
157 CALL DIAGNOSTICS_ADD2LIST( diagNum,
158 I diagName, diagCode, diagUnits, diagTitle, myThid )
159
160 diagName = 'SALTFILL'
161 diagTitle = 'Filling of Negative Values of'//locName
162 diagCode = 'SM MR '
163 CALL DIAGNOSTICS_ADD2LIST( diagNum,
164 I diagName, diagCode, diagUnits, diagTitle, myThid )
165
166 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
167
168 #endif /* ALLOW_DIAGNOSTICS */
169
170 RETURN
171 END
172
173 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
174
175 CBOP 0
176 C !ROUTINE: GAD_DIAG_SUFX
177
178 C !INTERFACE:
179 CHARACTER*4 FUNCTION GAD_DIAG_SUFX( tracerId, myThid )
180
181 C !DESCRIPTION:
182 C *==========================================================*
183 C | FUNCTION GAD_DIAG_SUFX
184 C | o Return diagnostic suffix (4 character long) for the
185 C | "tracerId" tracer (used to build diagnostic names).
186 C *==========================================================*
187
188 C !USES:
189 IMPLICIT NONE
190 #include "EEPARAMS.h"
191 #include "GAD.h"
192
193 C !INPUT PARAMETERS:
194 C tracerId :: tracer identifier
195 C myThid :: my thread Id number
196 INTEGER tracerId
197 INTEGER myThid
198 CEOP
199
200 C !LOCAL VARIABLES:
201
202 C-- Set diagnostic suffix (4 character long) for the "tracerId" tracer
203 IF ( tracerId.EQ.GAD_TEMPERATURE ) THEN
204 GAD_DIAG_SUFX = '_TH '
205 ELSEIF( tracerId.EQ.GAD_SALINITY ) THEN
206 GAD_DIAG_SUFX = '_SLT'
207 ELSEIF( tracerId.GE.GAD_TR1
208 & .AND. tracerId.LT.100 ) THEN
209 C WRITE(GAD_DIAG_SUFX,'(A,I2.2)') 'Tr',tracerId + 1-GAD_TR1
210 WRITE(GAD_DIAG_SUFX,'(A,A2)') 'Tr',
211 & GAD_iolabel(tracerId + 1-GAD_TR1)
212 ELSE
213 GAD_DIAG_SUFX = 'aaaa'
214 ENDIF
215
216 RETURN
217 END

  ViewVC Help
Powered by ViewVC 1.1.22