/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_diagnostics_init.F
ViewVC logotype

Contents of /MITgcm/pkg/generic_advdiff/gad_diagnostics_init.F

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


Revision 1.1 - (show annotations) (download)
Thu Dec 16 22:28:43 2004 UTC (19 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57t_post, checkpoint57o_post, checkpoint58e_post, checkpoint57m_post, checkpoint57s_post, checkpoint57k_post, checkpoint57d_post, checkpoint57g_post, checkpoint57b_post, checkpoint57c_pre, checkpoint57i_post, checkpoint57y_post, checkpoint57e_post, checkpoint57g_pre, checkpoint57y_pre, checkpoint57f_pre, checkpoint57v_post, checkpoint57r_post, checkpoint58, eckpoint57e_pre, checkpoint57h_done, checkpoint58f_post, checkpoint57x_post, checkpoint57n_post, checkpoint58d_post, checkpoint58c_post, checkpoint57w_post, checkpoint57p_post, checkpint57u_post, checkpoint57f_post, checkpoint58a_post, checkpoint57q_post, checkpoint57z_post, checkpoint57c_post, checkpoint57j_post, checkpoint58b_post, checkpoint57h_pre, checkpoint57l_post, checkpoint57h_post
add diagnostics of advective & diffusive fluxes

1 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_init.F,v 1.6 2004/09/17 22:57:12 heimbach 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 ELSE
109 locName = ' Salinity '
110 WRITE(diagUnits,'(2A)') 'psu',flxUnits
111 ENDIF
112 diagSufx = GAD_DIAG_SUFX( GAD_SALINITY, myThid )
113
114 C- Advective flux:
115 diagName = 'ADVr'//diagSufx
116 diagTitle = 'Vertical Advective Flux of'//locName
117 diagCode = 'WM LR '
118 CALL DIAGNOSTICS_ADD2LIST( diagNum,
119 I diagName, diagCode, diagUnits, diagTitle, myThid )
120 diagName = 'ADVx'//diagSufx
121 diagTitle = 'Zonal Advective Flux of'//locName
122 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
123 CALL DIAGNOSTICS_ADD2LIST( diagNum,
124 I diagName, diagCode, diagUnits, diagTitle, myThid )
125 diagName = 'ADVy'//diagSufx
126 diagTitle = 'Meridional Advective Flux of'//locName
127 WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
128 CALL DIAGNOSTICS_ADD2LIST( diagNum,
129 I diagName, diagCode, diagUnits, diagTitle, myThid )
130 C- Diffusive flux:
131 diagName = 'DFrE'//diagSufx
132 diagTitle = 'Vertical Diffusive Flux of'//locName
133 & // ' (Explicit part)'
134 diagCode = 'WM LR '
135 CALL DIAGNOSTICS_ADD2LIST( diagNum,
136 I diagName, diagCode, diagUnits, diagTitle, myThid )
137 diagName = 'DIFx'//diagSufx
138 diagTitle = 'Zonal Diffusive Flux of'//locName
139 WRITE(diagCode,'(A,I3.3,A)') 'UU ',diagNum+2,'MR '
140 CALL DIAGNOSTICS_ADD2LIST( diagNum,
141 I diagName, diagCode, diagUnits, diagTitle, myThid )
142 diagName = 'DIFy'//diagSufx
143 diagTitle = 'Meridional Diffusive Flux of'//locName
144 WRITE(diagCode,'(A,I3.3,A)') 'VV ',diagNum,'MR '
145 CALL DIAGNOSTICS_ADD2LIST( diagNum,
146 I diagName, diagCode, diagUnits, diagTitle, myThid )
147
148 diagName = 'DFrI'//diagSufx
149 diagTitle = 'Vertical Diffusive Flux of'//locName
150 & //' (Implicit part)'
151 diagCode = 'WM LR '
152 CALL DIAGNOSTICS_ADD2LIST( diagNum,
153 I diagName, diagCode, diagUnits, diagTitle, myThid )
154
155 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
156
157 #endif /* ALLOW_DIAGNOSTICS */
158
159 RETURN
160 END
161
162 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
163
164 CBOP 0
165 C !ROUTINE: GAD_DIAG_SUFX
166
167 C !INTERFACE:
168 CHARACTER*4 FUNCTION GAD_DIAG_SUFX( tracerId, myThid )
169
170 C !DESCRIPTION:
171 C *==========================================================*
172 C | FUNCTION GAD_DIAG_SUFX
173 C | o Return diagnostic suffix (4 character long) for the
174 C | "tracerId" tracer (used to build diagnostic names).
175 C *==========================================================*
176
177 C !USES:
178 IMPLICIT NONE
179 #include "EEPARAMS.h"
180 #include "GAD.h"
181
182 C !INPUT PARAMETERS:
183 C tracerId :: tracer identifier
184 C myThid :: my thread Id number
185 INTEGER tracerId
186 INTEGER myThid
187 CEOP
188
189 C !LOCAL VARIABLES:
190
191 C-- Set diagnostic suffix (4 character long) for the "tracerId" tracer
192 IF ( tracerId.EQ.GAD_TEMPERATURE ) THEN
193 GAD_DIAG_SUFX = '_TH '
194 ELSEIF( tracerId.EQ.GAD_SALINITY ) THEN
195 GAD_DIAG_SUFX = '_SLT'
196 ELSEIF( tracerId.GE.GAD_TR1
197 & .AND. tracerId.LT.100 ) THEN
198 WRITE(GAD_DIAG_SUFX,'(A,I2.2)') 'Tr',tracerId + 1-GAD_TR1
199 ELSE
200 GAD_DIAG_SUFX = 'aaaa'
201 ENDIF
202
203 RETURN
204 END

  ViewVC Help
Powered by ViewVC 1.1.22