/[MITgcm]/manual/s_outp_pkgs/text/diagnostics.tex
ViewVC logotype

Contents of /manual/s_outp_pkgs/text/diagnostics.tex

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


Revision 1.9 - (show annotations) (download) (as text)
Fri Jun 10 13:13:11 2011 UTC (14 years, 1 month ago) by jmc
Branch: MAIN
Changes since 1.8: +249 -169 lines
File MIME type: application/x-tex
- updated to fit what the diagnostics pkg is doing.
- add some links to the source code.

1 \section{Diagnostics--A Flexible Infrastructure}
2 \label{sec:pkg:diagnostics}
3 \begin{rawhtml}
4 <!-- CMIREDIR:package_diagnostics: -->
5 \end{rawhtml}
6
7 \subsection{Introduction}
8
9 \noindent
10 This section of the documentation describes the Diagnostics package
11 available within the GCM. A large selection of model diagnostics is
12 available for output. In addition to the diagnostic quantities
13 pre-defined in the GCM, there exists the option, in any experiment, to
14 define a new diagnostic quantity and include it as part of the
15 diagnostic output with the addition of a single subroutine call in the
16 routine where the field is computed. As a matter of philosophy, no
17 diagnostic is enabled as default, thus each user must specify the
18 exact diagnostic information required for an experiment. This is
19 accomplished by enabling the specific diagnostic of interest cataloged
20 in the Diagnostic Menu (see Section \ref{sec:diagnostics:menu}).
21 Instructions for enabling diagnostic output and defining new
22 diagnostic quantities are found in Section
23 \ref{sec:diagnostics:usersguide} of this document.
24
25 \noindent
26 The Diagnostic Menu in this section of the manual is a listing of
27 diagnostic quantities available within the main (dynamics) part of the
28 GCM. Additional diagnostic quantities, defined within the different
29 GCM packages, are available and are listed in the diagnostic menu
30 subsection of the manual section associated with each relevant
31 package. Once a diagnostic is enabled, the GCM will continually
32 increment an array specifically allocated for that diagnostic whenever
33 the appropriate quantity is computed. A counter is defined which
34 records how many times each diagnostic quantity has been incremented.
35 Several special diagnostics are included in the menu. Quantities
36 referred to as ``Counter Diagnostics'', are defined for selected
37 diagnostics which record the frequency at which a diagnostic is
38 incremented separately for each model grid location. Quantities
39 referred to as ``User Diagnostics'' are included in the menu to
40 facilitate defining new diagnostics for a particular experiment.
41
42 \subsection{Equations}
43 Not relevant.
44
45 \subsection{Key Subroutines and Parameters}
46 \label{sec:diagnostics:diagover}
47
48 \noindent
49 There are several utilities within the GCM available to users to
50 enable, disable, clear, write and retrieve model diagnostics, and may
51 be called from any routine. The available utilities and the CALL
52 sequences are listed below.
53
54 \noindent
55 {\bf DIAGNOSTICS\_ADDTOLIST}
56 (\filelink{pkg/diagnostics/diagnostics\_addtolist.F}{pkg-diagnostics-diagnostics\_addtolist.F}):
57 %This subroutine enables a diagnostic from the Diagnostic Menu,
58 %meaning that space is allocated for the
59 %diagnostic and the model routines will increment the diagnostic value
60 %during execution.
61 This routine is the underlying interface routine for defining a new permanent
62 diagnostic in the main model or in a package. The calling sequence is:
63
64 \begin{verbatim}
65 CALL DIAGNOSTICS_ADDTOLIST (
66 O diagNum,
67 I diagName, diagCode, diagUnits, diagTitle, diagMate,
68 I myThid )
69
70 where:
71 diagNum = diagnostic Id number - Output from routine
72 diagName = name of diagnostic to declare
73 diagCode = parser code for this diagnostic
74 diagUnits = field units for this diagnostic
75 diagTitle = field description for this diagnostic
76 diagMate = diagnostic mate number
77 myThid = my Thread Id number
78
79 \end{verbatim}
80
81
82 \noindent
83 {\bf DIAGNOSTICS\_FILL}
84 (\filelink{pkg/diagnostics/diagnostics\_fill.F}{pkg-diagnostics-diagnostics\_fill.F}):
85 This is the main user interface routine to the diagnostics package.
86 This routine will increment the specified
87 diagnostic quantity with a field sent through the argument list.
88
89 \begin{verbatim}
90 CALL DIAGNOSTICS_FILL(
91 I inpFld, chardiag,
92 I kLev, nLevs, bibjFlg, bi, bj, myThid )
93
94 where:
95 inpFld = Field to increment diagnostics array
96 diagName = diagnostic identificator name (8 characters long)
97 kLev = Integer flag for vertical levels:
98 > 0 (any integer): WHICH single level to increment in qdiag.
99 0,-1 to increment "nLevs" levels in qdiag,
100 0 : fill-in in the same order as the input array
101 -1: fill-in in reverse order.
102 nLevs = indicates Number of levels of the input field array
103 (whether to fill-in all the levels (kLev<1) or just one (kLev>0))
104 bibjFlg = Integer flag to indicate instructions for bi bj loop
105 = 0 indicates that the bi-bj loop must be done here
106 = 1 indicates that the bi-bj loop is done OUTSIDE
107 = 2 indicates that the bi-bj loop is done OUTSIDE
108 AND that we have been sent a local array (with overlap regions)
109 (local array here means that it has no bi-bj dimensions)
110 = 3 indicates that the bi-bj loop is done OUTSIDE
111 AND that we have been sent a local array
112 AND that the array has no overlap region (interior only)
113 NOTE - bibjFlg can be NEGATIVE to indicate not to increment counter
114 bi = X-direction tile number - used for bibjFlg=1-3
115 bj = Y-direction tile number - used for bibjFlg=1-3
116 myThid = my thread Id number
117 \end{verbatim}
118
119 \noindent
120 {\bf DIAGNOSTICS\_SCALE\_FILL}
121 (\filelink{pkg/diagnostics/diagnostics\_scale\_fill.F}{pkg-diagnostics-diagnostics\_scale\_fill.F}):
122 This is a possible alternative routine to
123 DIAGNOSTICS\_FILL which performs the same functions and has an additional option
124 to scale the field before filling or raise the field to a power before filling.
125
126 \begin{verbatim}
127 CALL DIAGNOSTICS_SCALE_FILL(
128 I inpFld, scaleFact, power, chardiag,
129 I kLev, nLevs, bibjFlg, bi, bj, myThid )
130
131
132 where all the arguments are the same as for DIAGNOSTICS_FILL with
133 the addition of:
134 scaleFact = Scaling factor to apply to the input field product
135 power = Integer power to which to raise the input field (before scaling)
136 \end{verbatim}
137
138 \noindent
139 {\bf DIAGNOSTICS\_IS\_ON}: Function call to inquire whether a
140 diagnostic is active and can be incremented. Useful when there is a
141 computation that must be done locally before a call to
142 DIAGNOSTICS\_FILL. The call sequence:
143
144 \begin{verbatim}
145 flag = DIAGNOSTICS_IS_ON( diagName, myThid )
146
147 where:
148 diagName = diagnostic identificator name (8 characters long)
149 myThid = my thread Id number
150 \end{verbatim}
151
152 \noindent
153 {\bf DIAGNOSTICS\_GET\_POINTERS}
154 (\filelink{pkg/diagnostics/diagnostics\_utils.F}{pkg-diagnostics-diagnostics\_utils.F}):
155 This subroutine retrieves the value of a the diagnostics pointers
156 that other routines require as input - can be useful if the diagnostics common
157 blocks are not local to a routine.
158
159 \begin{verbatim}
160 CALL DIAGNOSTICS_GET_POINTERS(
161 I diagName, listId,
162 O ndId, ip,
163 I myThid )
164
165 where:
166 diagName = diagnostic identificator name (8 characters long)
167 listId = list number that specifies the output frequency
168 ndId = diagnostics Id number (in available diagnostics list)
169 ip = diagnostics pointer to storage array
170 myThid = my Thread Id number
171 \end{verbatim}
172
173 \noindent
174 {\bf GETDIAG}
175 (\filelink{pkg/diagnostics/diagnostics\_utils.F}{pkg-diagnostics-diagnostics\_utils.F}):
176 This subroutine retrieves the value of a model diagnostic.
177 This routine is particularly useful when called from a
178 user output routine, although it can be called from any routine. This
179 routine returns the time-averaged value of the diagnostic by dividing
180 the current accumulated diagnostic value by its corresponding counter.
181 This routine does not change the value of the diagnostic itself, that
182 is, it does not replace the diagnostic with its time-average. The
183 calling sequence for this routine is givin by:
184
185 \begin{verbatim}
186 CALL GETDIAG(
187 I levreal, undef,
188 O qtmp,
189 I ndId, mate, ip, im, bi, bj, myThid )
190
191 where:
192 lev = Model Level at which the diagnostic is desired
193 undef = Fill value to be used when diagnostic is undefined
194 qtmp = Time-Averaged Diagnostic Output
195 ndId = diagnostics Id number (in available diagnostics list)
196 mate = counter diagnostic number if any ; 0 otherwise
197 ip = pointer to storage array location for diag.
198 im = pointer to storage array location for mate
199 bi = X-direction tile number
200 bj = Y-direction tile number
201 myThid = my thread Id number
202 \end{verbatim}
203
204 \noindent
205 {\bf DIAGNOSTICS\_CLRDIAG}
206 (\filelink{pkg/diagnostics/diagnostics\_clear.F}{pkg-diagnostics-diagnostics\_clear.F}):
207 This subroutine initializes the values of model
208 diagnostics to zero, and is particularly useful when called from user
209 output routines to re-initialize diagnostics during the run.
210 The calling sequence is:
211
212 \begin{verbatim}
213 CALL DIAGNOSTICS_CLRDIAG ( ipt, nLev, myThid )
214
215 where:
216 ipt :: diagnostic pointer to storage array
217 nLev :: number of levels (in storage array) to reset
218 myThid :: my Thread Id number
219 \end{verbatim}
220
221 \noindent
222 The diagnostics are computed at various times and places within the
223 GCM. Because MITgcm may employ a staggered grid, diagnostics may be
224 computed at grid box centers, corners, or edges, and at the middle or
225 edge in the vertical. Some diagnostics are scalars, while others are
226 components of vectors. An internal array is defined which contains
227 information concerning various grid attributes of each diagnostic. The
228 GDIAG array (in common block {\tt diagnostics} in file {\tt
229 DIAGNOSTICS.h}) is internally defined as a character*10 variable, and
230 is equivalenced to a character*1 "parse" array in output in order to
231 extract the grid-attribute information. The GDIAG array is described
232 in Table \ref{tab:diagnostics:gdiag.tabl}.
233
234 \begin{table}
235 \caption{Diagnostic Parsing Array}
236 \label{tab:diagnostics:gdiag.tabl}
237 \begin{center}
238 \begin{tabular}{ |c|c|l| }
239 \hline
240 \multicolumn{3}{|c|}{\bf Diagnostic Parsing Array} \\
241 \hline
242 \hline
243 Array & Value & Description \\
244 \hline
245 parse(1) & $\rightarrow$ S & Scalar Diagnostic \\
246 & $\rightarrow$ U & U-vector component Diagnostic \\
247 & $\rightarrow$ V & V-vector component Diagnostic \\ \hline
248 parse(2) & $\rightarrow$ U & C-Grid U-Point \\
249 & $\rightarrow$ V & C-Grid V-Point \\
250 & $\rightarrow$ M & C-Grid Mass Point \\
251 & $\rightarrow$ Z & C-Grid Vorticity (Corner) Point \\ \hline
252 parse(3) & $\rightarrow$ & Used for Level Integrated output: cumulate levels \\
253 & $\rightarrow$ r & same but cumulate product by model level thickness \\
254 & $\rightarrow$ R & same but cumulate product by hFac \& level thickness \\ \hline
255 parse(4) & $\rightarrow$ P & Positive Definite Diagnostic \\ \hline
256 parse(5) & $\rightarrow$ C & with Counter array \\
257 & $\rightarrow$ D & Disabled Diagnostic for output \\ \hline
258 parse(6-8)& & retired, formerly: 3-digit mate number \\ \hline
259 parse(9) & $\rightarrow$ U & model-level plus 1/2 \\
260 & $\rightarrow$ M & model-level middle \\
261 & $\rightarrow$ L & model-level minus 1/2 \\ \hline
262 parse(10) & $\rightarrow$ 0 & levels = 0 \\
263 & $\rightarrow$ 1 & levels = 1 \\
264 & $\rightarrow$ R & levels = Nr \\
265 & $\rightarrow$ L & levels = MAX(Nr,NrPhys) \\
266 & $\rightarrow$ M & levels = MAX(Nr,NrPhys) - 1 \\
267 & $\rightarrow$ G & levels = Ground\_level Number \\
268 & $\rightarrow$ I & levels = sea-Ice\_level Number \\
269 & $\rightarrow$ X & free levels option (need to be set explicitly)\\ \hline
270 \end{tabular}
271 \addcontentsline{lot}{section}{Table 3: Diagnostic Parsing Array}
272 \end{center}
273 \end{table}
274
275
276 \noindent
277 As an example, consider a diagnostic whose associated GDIAG parameter is equal
278 to ``UUR\hspace{5mm}MR''. From GDIAG we can determine that this diagnostic is a
279 U-vector component located at the C-grid U-point, model mid-level (M)
280 with Nr levels (last R).
281
282 \noindent
283 In this way, each Diagnostic in the model has its attributes (ie. vector or scalar,
284 C-grid location, etc.) defined internally. The Output routines use this information
285 in order to determine what type of transformations need to be performed. Any
286 interpolations are done at the time of output rather than during each model step.
287 In this way the User has flexibility in determining the type of gridded data which
288 is output.
289
290 \subsection{Usage Notes}
291 \label{sec:diagnostics:usersguide}
292
293 \noindent
294 To use the diagnostics package, other than enabling it in {\tt packages.conf}
295 and turning the {\tt useDiagnostics} flag in {\tt data.pkg} to .TRUE., there are two
296 further steps the user must take to enable the diagnostics package for
297 output of quantities that are already defined in the GCM under an experiment's
298 configuration of packages.
299 A parameter file {\tt data.diagnostics} must be supplied in the run directory,
300 and the file DIAGNOSTICS\_SIZE.h must be included in the
301 code directory. The steps for defining a new (permanent or experiment-specific
302 temporary) diagnostic quantity will be outlined later.
303
304 \noindent The namelist in parameter file {\tt data.diagnostics} will activate
305 a user-defined list of diagnostics quantities to be computed,
306 specify the frequency and type of output, the number of levels, and
307 the name of all the separate output files.
308 A sample {\tt data.diagnostics} namelist file:
309
310 \begin{verbatim}
311 # Diagnostic Package Choices
312 #--------------------
313 # dumpAtLast (logical): always write output at the end of simulation (default=F)
314 # diag_mnc (logical): write to NetCDF files (default=useMNC)
315 #--for each output-stream:
316 # fileName(n) : prefix of the output file name (max 80c long) for outp.stream n
317 # frequency(n):< 0 : write snap-shot output every |frequency| seconds
318 # > 0 : write time-average output every frequency seconds
319 # timePhase(n) : write at time = timePhase + multiple of |frequency|
320 # averagingFreq : frequency (in s) for periodic averaging interval
321 # averagingPhase : phase (in s) for periodic averaging interval
322 # repeatCycle : number of averaging intervals in 1 cycle
323 # levels(:,n) : list of levels to write to file (Notes: declared as REAL)
324 # when this entry is missing, select all common levels of this list
325 # fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n
326 # (see "available_diagnostics.log" file for the full list of diags)
327 # missing_value(n) : missing value for real-type fields in output file "n"
328 # fileFlags(n) : specific code (8c string) for output file "n"
329 #--------------------
330 &DIAGNOSTICS_LIST
331 fields(1:2,1) = 'UVEL ','VVEL ',
332 levels(1:5,1) = 1.,2.,3.,4.,5.,
333 filename(1) = 'diagout1',
334 frequency(1) = 86400.,
335 fields(1:3,2) = 'THETA ','SALT ',
336 filename(2) = 'diagout2',
337 fileflags(2) = ' P1 ',
338 frequency(2) = 3600.,
339 &
340
341 #--------------------
342 # Parameter for Diagnostics of per level statistics:
343 #--------------------
344 # diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc)
345 # diagSt_regMaskFile : file containing the region-mask to read-in
346 # nSetRegMskFile : number of region-mask sets within the region-mask file
347 # set_regMask(i) : region-mask set-index that identifies the region "i"
348 # val_regMask(i) : region "i" identifier value in the region mask
349 #--for each output-stream:
350 # stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n
351 # stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds
352 # > 0 : write time-average output every stat_freq seconds
353 # stat_phase(n) : write at time = stat_phase + multiple of |stat_freq|
354 # stat_region(:,n) : list of "regions" (default: 1 region only=global)
355 # stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n
356 # (see "available_diagnostics.log" file for the full list of diags)
357 #--------------------
358 &DIAG_STATIS_PARMS
359 &
360 \end{verbatim}
361
362 \noindent
363 In this example, there are two output files that will be generated for
364 each tile and for each output time. The first set of output files has
365 the prefix diagout1, does time averaging every 86400. seconds,
366 (frequency is 86400.), and will write fields which are multiple-level
367 fields at output levels 1-5. The names of diagnostics quantities are
368 UVEL and VVEL. The second set of output files has the prefix
369 diagout2, does time averaging every 3600. seconds, includes fields
370 with all levels, and the names of diagnostics quantities are THETA and SALT.
371
372 \noindent
373 The user must assure that enough computer memory is allocated for the
374 diagnostics and the output streams selected for a particular
375 experiment. This is accomplished by modifying the file
376 DIAGNOSTICS\_SIZE.h and including it in the experiment code directory.
377 The parameters that should be checked are called numDiags, numLists,
378 numperList, and diagSt\_size.
379
380 \noindent numDiags (and diagSt\_size): \\
381 \noindent All GCM diagnostic quantities are stored in the single diagnostic array QDIAG
382 which is located in the file
383 \filelink{pkg/diagnostics/DIAGNOSTICS.h}{pkg-diagnostics-DIAGNOSTICS.h}
384 and has the form:\\
385 \begin{verbatim}
386 _RL qdiag(1-Olx,sNx+Olx,1-Olx,sNx+Olx,numDiags,nSx,nSy)
387 _RL qSdiag(0:nStats,0:nRegions,diagSt_size,nSx,nSy)
388 COMMON / DIAG_STORE_R / qdiag, qSdiag
389 \end{verbatim}
390 \noindent
391 The first two-dimensions of qdiag correspond to the horizontal
392 dimension of a given diagnostic, and the third dimension of qdiag is
393 used to identify diagnostic fields and levels combined. In order to
394 minimize the memory requirement of the model for diagnostics, the
395 default GCM executable is compiled with room for only one horizontal
396 diagnostic array, or with numDiags set to Nr. In order for the User to
397 enable more than 1 three-dimensional diagnostic, the size of the
398 diagnostics common must be expanded to accommodate the desired
399 diagnostics. This can be accomplished by manually changing the
400 parameter numDiags in the file
401 \filelink{pkg/diagnostics/DIAGNOSTICS\_SIZE.h}{pkg-diagnostics-DIAGNOSTICS\_SIZE.h}.
402 numDiags should be set greater than or equal to the sum of all the
403 diagnostics activated for output each multiplied by the number of
404 levels defined for that diagnostic quantity. For the above example,
405 there are 4 multiple level fields, which the diagnostics menu (see
406 below) indicates are defined at the GCM vertical resolution, Nr. The
407 value of numDiags in DIAGNOSTICS\_SIZE.h would therefore be equal to
408 4*Nr, or, say 40 if $Nr=10$.
409
410 \noindent numLists and numperList: \\
411 \noindent The parameter numLists must be set greater than or equal to
412 the number of separate output streams that the user specifies in the
413 namelist file data.diagnostics. The parameter numperList corresponds
414 to the maximum number of diagnostics requested per output streams.
415
416 \noindent
417 In order to define and include as part of the diagnostic output any
418 field that is desired for a particular experiment, two steps must be
419 taken. The first is to enable the ``User Diagnostic'' in
420 {\tt data.diagnostics}. This is accomplished by adding one of the ``User
421 Diagnostic'' field names (UDIAG1 through UDIAG10, for multi-level
422 fields, or SDIAG1 through SDIAG10 for single level fields) to the
423 data.diagnostics namelist in one of the output streams. These fields
424 are listed in the diagnostics menu. The second step is to add a call
425 to DIAGNOSTICS\_FILL from the subroutine in which the quantity desired
426 for diagnostic output is computed.
427
428 \noindent
429 In order to add a new diagnostic to the permanent set of diagnostics
430 that the main model or any package contains as part of its diagnostics
431 menu, the subroutine DIAGNOSTICS\_ADDTOLIST should be called during the
432 initialization phase of the main model or package. For the main model,
433 the call should be made from subroutine DIAGNOSTICS\_MAIN\_INIT, and
434 for a package, the call should probably be made from
435 %somewhere in the PACKAGES\_INIT\_FIXED sequence (probably
436 from inside the particular package's init\_fixed routine.
437 A typical code sequence to set the
438 input arguments to DIAGNOSTICS\_ADDTOLIST would look like:
439
440 \begin{verbatim}
441 diagName = 'RHOAnoma'
442 diagTitle = 'Density Anomaly (=Rho-rhoConst)'
443 diagUnits = 'kg/m^3 '
444 diagCode = 'SMR MR '
445 CALL DIAGNOSTICS\_ADDTOLIST( diagNum,
446 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
447 \end{verbatim}
448
449 \noindent If the new diagnostic quantity is associated with either a
450 vector pair or a diagnostic counter, the diagMate argument must be
451 provided with the proper index corresponding to the ``mate''.
452 The output argument from DIAGNOSTICS\_ADDTOLIST that is called diagNum here
453 contains a running total of the number of diagnostics defined in the code up to
454 any point during the run. The sequence number for the next two
455 diagnostics defined (the two components of the vector pair, for
456 instance) will be diagNum+1 and diagNum+2. The definition of the first
457 component of the vector pair must fill the ``mate'' segment of the
458 diagCode as diagnostic number diagNum+2. Since the subroutine
459 increments diagNum, the definition of the second component of the
460 vector fills the ``mate'' part of diagCode with diagNum. A code
461 sequence for this case would look like:
462
463 \begin{verbatim}
464 diagName = 'UVEL '
465 diagTitle = 'Zonal Component of Velocity (m/s)'
466 diagUnits = 'm/s '
467 diagCode = 'UUR MR '
468 diagMate = diagNum + 2
469 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
470 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
471
472 diagName = 'VVEL '
473 diagTitle = 'Meridional Component of Velocity (m/s)'
474 diagUnits = 'm/s '
475 diagCode = 'VVR MR '
476 diagMate = diagNum
477 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
478 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
479 \end{verbatim}
480
481 \input{s_outp_pkgs/text/diagnostics-menu.tex}
482
483 \newpage
484 \noindent For a list of the diagnostic fields available in the
485 different MITgcm packages, follow the link to the diagnostics menu
486 in the manual section describing the package:
487
488 \begin{itemize}
489 \item aim: \ref{sec:pkg:aim:diagnostics}
490 \item exf: \ref{sec:pkg:exf:diagnostics}
491 \item gchem: \ref{sec:pkg:gchem:diagnostics}
492 \item generic\_advdiff: \ref{sec:pkg:gad:diagnostics}
493 \item gridalt: \ref{sec:pkg:gridalt:diagnostics}
494 \item gmredi: \ref{sec:pkg:gmredi:diagnostics}
495 \item fizhi: \ref{sec:pkg:fizhi:diagnostics}
496 \item kpp: \ref{sec:pkg:kpp:diagnostics}
497 \item land: \ref{sec:pkg:land:diagnostics}
498 \item mom\_common: \ref{sec:pkg:mom_common:diagnostics}
499 \item obcs: \ref{sec:pkg:obcs:diagnostics}
500 \item thsice: \ref{sec:pkg:thsice:diagnostics}
501 \item shap\_filt: \ref{sec:pkg:shap_filt:diagnostics}
502 \item ptracers: \ref{sec:pkg:ptracers:diagnostics}
503 \end{itemize}
504
505 \subsection{Dos and Donts}
506
507 \subsection{Diagnostics Reference}
508

  ViewVC Help
Powered by ViewVC 1.1.22