/[MITgcm]/MITgcm/pkg/ptracers/ptracers_diagnostics_init.F
ViewVC logotype

Contents of /MITgcm/pkg/ptracers/ptracers_diagnostics_init.F

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


Revision 1.6 - (show annotations) (download)
Sun Aug 17 02:09:36 2008 UTC (15 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61c, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.5: +13 -1 lines
new pkg "down_slope".

1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_diagnostics_init.F,v 1.5 2008/02/05 15:34:57 jmc Exp $
2 C $Name: $
3
4 #include "PTRACERS_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: PTRACERS_DIAGNOSTICS_INIT
8 C !INTERFACE:
9 SUBROUTINE PTRACERS_DIAGNOSTICS_INIT( myThid )
10 C !DESCRIPTION:
11 C Routine to initialize pTracers diagnostics
12
13 C !USES:
14 IMPLICIT NONE
15 C === Global variables ===
16 #include "SIZE.h"
17 #include "PTRACERS_SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "PTRACERS_PARAMS.h"
21 #include "GAD.h"
22
23 C !INPUT/OUTPUT PARAMETERS:
24 C === Routine arguments ===
25 C myThid - Number of this instance of PTRACERS_DIAGNOSTICS_INIT
26 INTEGER myThid
27 CEOP
28
29 #ifdef ALLOW_DIAGNOSTICS
30 C !LOCAL VARIABLES:
31 C === Local variables ===
32 C msgBuf - Informational/error meesage buffer
33 c CHARACTER*(MAX_LEN_MBUF) msgBuf
34
35 INTEGER diagNum
36 INTEGER diagMate
37 CHARACTER*8 diagName
38 CHARACTER*16 diagCode
39 CHARACTER*16 diagUnits
40 CHARACTER*(80) diagTitle
41
42 INTEGER iTrc, ilnb, tracerId
43 CHARACTER*7 trcUnits
44 CHARACTER*9 flxUnits, wUnits
45 CHARACTER*30 locName
46 CHARACTER*4 diagSufx
47 C Functions ::
48 INTEGER ILNBLNK
49 EXTERNAL ILNBLNK
50 CHARACTER*4 GAD_DIAG_SUFX
51 EXTERNAL GAD_DIAG_SUFX
52
53 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
54
55 C-- Add diagnostics to the (long) list
56
57 IF ( usingPCoords ) THEN
58 flxUnits = '.Pa.m^2/s'
59 wUnits = '.Pa/s '
60 ELSE
61 flxUnits = '.m^3/s '
62 wUnits = '.m/s '
63 ENDIF
64
65 DO iTrc=1,PTRACERS_num
66 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
67 C-- Set default name & tracer Units:
68 WRITE(locName,'(A,I4,A)') 'Tracer ',iTrc
69 trcUnits = '(kg/kg)'
70 C- use name & units from data.ptracers :
71 ilnb = ILNBLNK(PTRACERS_units(iTrc))
72 IF ( ilnb.GE.1 ) THEN
73 ilnb = LEN(trcUnits)
74 trcUnits = PTRACERS_units(iTrc)(1:ilnb)
75 ENDIF
76 ilnb = ILNBLNK(PTRACERS_long_names(iTrc))
77 IF ( ilnb.GE.1 ) THEN
78 ilnb = MIN(LEN(locName),ilnb)
79 WRITE(locName,'(A)') PTRACERS_long_names(iTrc)(1:ilnb)
80 ELSE
81 ilnb = ILNBLNK(PTRACERS_names(iTrc))
82 IF ( ilnb.GE.1 ) THEN
83 ilnb = MIN(LEN(locName),ilnb)
84 WRITE(locName,'(A)') PTRACERS_names(iTrc)(1:ilnb)
85 ENDIF
86 ENDIF
87 ilnb = MAX(ILNBLNK(locName),1)
88
89 C-- Add diagnostics of Tracer concentration & u,v,w Transport
90 WRITE(diagName,'(A4,A2,A2)') 'TRAC',PTRACERS_ioLabel(iTrc),' '
91 WRITE(diagTitle,'(2A)') 'Mass-Weighted ', locName(1:ilnb)
92 diagUnits = trcUnits//' '
93 diagCode = 'SM P MR '
94 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
95 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
96
97 WRITE(diagName,'(A5,A2,A1)') 'UTRAC',PTRACERS_ioLabel(iTrc),' '
98 WRITE(diagTitle,'(2A)') 'Zonal Mass-Weighted Transp of ',
99 & locName(1:ilnb)
100 diagUnits = trcUnits//'.m/s '
101 diagCode = 'UU MR '
102 diagMate = diagNum + 2
103 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
104 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
105
106 WRITE(diagName,'(A5,A2,A1)') 'VTRAC',PTRACERS_ioLabel(iTrc),' '
107 WRITE(diagTitle,'(2A)') 'Merid Mass-Weighted Transp of ',
108 & locName(1:ilnb)
109 diagUnits = trcUnits//'.m/s '
110 diagCode = 'VV MR '
111 diagMate = diagNum
112 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
113 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
114
115 WRITE(diagName,'(A5,A2,A1)') 'WTRAC',PTRACERS_ioLabel(iTrc),' '
116 WRITE(diagTitle,'(2A)') 'Vert Mass-Weighted Transp of ',
117 & locName(1:ilnb)
118 diagUnits = trcUnits//wUnits
119 diagCode = 'WM MR '
120 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
121 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
122
123 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
124 C-- add diagnostics of advective & diffusive flux:
125 diagUnits = trcUnits//flxUnits
126 tracerId = iTrc + GAD_TR1 - 1
127 diagSufx = GAD_DIAG_SUFX( tracerId, myThid )
128
129 C- Advective flux:
130 diagName = 'ADVr'//diagSufx
131 WRITE(diagTitle,'(2A)') 'Vertical Advective Flux of ',
132 & locName(1:ilnb)
133 diagCode = 'WM LR '
134 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
135 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
136 diagName = 'ADVx'//diagSufx
137 WRITE(diagTitle,'(2A)') 'Zonal Advective Flux of ',
138 & locName(1:ilnb)
139 diagCode = 'UU MR '
140 diagMate = diagNum + 2
141 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
142 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
143 diagName = 'ADVy'//diagSufx
144 WRITE(diagTitle,'(2A)') 'Meridional Advective Flux of ',
145 & locName(1:ilnb)
146 diagCode = 'VV MR '
147 diagMate = diagNum
148 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
149 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
150
151 C- Diffusive flux:
152 diagName = 'DFrE'//diagSufx
153 WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
154 & locName(1:ilnb)//' (Explicit part)'
155 diagCode = 'WM LR '
156 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
157 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
158 diagName = 'DFxE'//diagSufx
159 WRITE(diagTitle,'(2A)') 'Zonal Diffusive Flux of ',
160 & locName(1:ilnb)
161 diagCode = 'UU MR '
162 diagMate = diagNum + 2
163 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
164 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
165 diagName = 'DFyE'//diagSufx
166 WRITE(diagTitle,'(2A)') 'Meridional Diffusive Flux of ',
167 & locName(1:ilnb)
168 diagCode = 'VV MR '
169 diagMate = diagNum
170 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
171 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
172
173 diagName = 'DFrI'//diagSufx
174 WRITE(diagTitle,'(2A)') 'Vertical Diffusive Flux of ',
175 & locName(1:ilnb)//' (Implicit part)'
176 diagCode = 'WM LR '
177 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
178 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
179
180 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
181 C-- add diagnostics for other pkg contribution to ptracer solution
182 IF ( useDOWN_SLOPE ) THEN
183 diagName = 'DSLP'//diagSufx
184 WRITE(diagTitle,'(2A)') locName(1:ilnb),
185 & ' tendency from Down-Slope package'
186 diagCode = 'SM MR '
187 diagUnits = trcUnits//'/s '
188 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
189 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
190 ENDIF
191
192 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
193 ENDDO
194
195 #endif /* ALLOW_DIAGNOSTICS */
196
197 RETURN
198 END

  ViewVC Help
Powered by ViewVC 1.1.22