| 1 | edhill | 1.2 | \section{Diagnostics--A Flexible Infrastructure} | 
| 2 |  |  | \label{sec:pkg:diagnostics} | 
| 3 |  |  | \begin{rawhtml} | 
| 4 |  |  | <!-- CMIREDIR:package_diagnostics: --> | 
| 5 |  |  | \end{rawhtml} | 
| 6 | molod | 1.1 |  | 
| 7 |  |  | \subsection{Introduction} | 
| 8 |  |  |  | 
| 9 | molod | 1.7 | \noindent | 
| 10 | molod | 1.5 | This section of the documentation describes the Diagnostics package available within | 
| 11 | molod | 1.7 | the GCM.  A large selection of model diagnostics is available for output. | 
| 12 |  |  | In addition to the diagnostic quantities pre-defined in the GCM, there exists | 
| 13 |  |  | the option, in any experiment, to define a new diagnostic quantity and include it | 
| 14 |  |  | as part of the diagnostic output with the addition of a single subroutine call in the | 
| 15 |  |  | routine where the field is computed. As a matter of philosophy, no diagnostic is enabled | 
| 16 |  |  | as default, thus each user must specify the exact diagnostic information required for an | 
| 17 |  |  | experiment.  This is accomplished by enabling the specific diagnostic of interest cataloged | 
| 18 |  |  | in the Diagnostic Menu (see Section \ref{sec:diagnostics:menu}). Instructions for enabling | 
| 19 |  |  | diagnostic output and defining new diagnostic quantities are found in Section | 
| 20 |  |  | \ref{sec:diagnostics:usersguide} of this document. | 
| 21 |  |  |  | 
| 22 |  |  | \noindent | 
| 23 | molod | 1.11 | The Diagnostic Menu in this section of the manual is a listing of diagnostic quantities available | 
| 24 |  |  | within the main (dynamics) part of the GCM. Additional diagnostic quantities, defined within the | 
| 25 |  |  | different GCM packages, are available and are listed in the diagnostic menu subsection of | 
| 26 |  |  | the manual section associated with each relevant package. Once a diagnostic is enabled, the | 
| 27 |  |  | GCM will continually increment an array specifically allocated for that diagnostic whenever the | 
| 28 |  |  | appropriate quantity is computed.  A counter is defined which records how many times each diagnostic | 
| 29 |  |  | quantity has been incremented.  Several special diagnostics are included in the menu. Quantities | 
| 30 |  |  | refered to as ``Counter Diagnostics'', are defined for selected diagnostics which record the | 
| 31 | molod | 1.7 | frequency at which a diagnostic is incremented separately for each model grid location. | 
| 32 |  |  | Quantitied refered to as ``User Diagnostics'' are included in the menu to facilitate | 
| 33 |  |  | defining new diagnostics for a particular experiment. | 
| 34 | molod | 1.1 |  | 
| 35 |  |  | \subsection{Equations} | 
| 36 |  |  | Not relevant. | 
| 37 |  |  |  | 
| 38 |  |  | \subsection{Key Subroutines and Parameters} | 
| 39 |  |  | \label{sec:diagnostics:diagover} | 
| 40 |  |  |  | 
| 41 | molod | 1.7 | \noindent | 
| 42 | molod | 1.1 | There are several utilities within the GCM available to users to enable, disable, | 
| 43 | molod | 1.5 | clear, write and retrieve model diagnostics, and may be called from any routine. | 
| 44 |  |  | The available utilities and the CALL sequences are listed below. | 
| 45 | molod | 1.1 |  | 
| 46 | molod | 1.7 | \noindent | 
| 47 | molod | 1.11 | {\bf diagnostics\_fill}:  This is the main user interface routine to the diagnostics | 
| 48 |  |  | package. This routine will increment the specified diagnostic quantity with a field | 
| 49 |  |  | sent through the argument list. | 
| 50 | molod | 1.7 |  | 
| 51 |  |  | \noindent | 
| 52 |  |  | \begin{tabbing} | 
| 53 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 54 | molod | 1.11 | \>        call diagnostics\_fill (arrayin, chardiag, levflg, nlevs, \\ | 
| 55 |  |  | \>              bibjflg, bi, bj, myThid) \\ | 
| 56 | molod | 1.7 | \\ | 
| 57 | molod | 1.11 | where \>  arrayin  \>= Field to increment diagnostics array \\ | 
| 58 | molod | 1.7 | \>  chardiag \>= Character *8 expression for diag to fill \\ | 
| 59 |  |  | \>  levflg   \>= Integer flag for vertical levels: \\ | 
| 60 | molod | 1.11 | \>           \>= 0 indicates multiple (nlevs) levels incremented \\ | 
| 61 |  |  | \>           \>= -1 indicates multiple (nlevs) levels incremented, \\ | 
| 62 |  |  | \>           \> but in reverse vertical order \\ | 
| 63 |  |  | \>           \> positive integer - WHICH single level to increment. \\ | 
| 64 |  |  | \>  nlevs    \>= indicates Number of levels to be filled (1 if levflg gt 0) \\ | 
| 65 | molod | 1.7 | \>  bibjflg  \>= Integer flag to indicate instructions for bi bj loop \\ | 
| 66 | molod | 1.11 | \>           \>= 0 indicates that the bi-bj loop must be done here \\ | 
| 67 |  |  | \>           \>= 1 indicates that the bi-bj loop is done OUTSIDE \\ | 
| 68 |  |  | \>           \>= 2 indicates that the bi-bj loop is done OUTSIDE \\ | 
| 69 | molod | 1.7 | \>           \>    AND that we have been sent a local array \\ | 
| 70 | molod | 1.11 | \>           \>    AND that the array has the shadow regions \\ | 
| 71 |  |  | \>           \>= 3 indicates that the bi-bj loop is done OUTSIDE \\ | 
| 72 | molod | 1.7 | \>           \>    AND that we have been sent a local array \\ | 
| 73 | molod | 1.11 | \>           \>    AND that the array has no shadow regions \\ | 
| 74 | molod | 1.7 | \>  bi       \>= X-direction process(or) number - used for bibjflg=1-3 \\ | 
| 75 |  |  | \>  bj       \>= Y-direction process(or) number - used for bibjflg=1-3 \\ | 
| 76 | molod | 1.11 | \>  myThid   \>= Current Thread number \\ | 
| 77 | molod | 1.7 | \end{tabbing} | 
| 78 |  |  |  | 
| 79 | molod | 1.11 | \noindent | 
| 80 |  |  | {\bf diagnostics\_scale\_fill}:  This is a possible alternative routine to | 
| 81 |  |  | diagnostics\_fill which performs the same functions and has an additional option | 
| 82 |  |  | to scale the field before filling or raise the field to a power before filling. | 
| 83 | molod | 1.7 |  | 
| 84 |  |  | \noindent | 
| 85 | molod | 1.11 | \begin{tabbing} | 
| 86 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 87 |  |  | \>        call diagnostics\_scale\_fill (arrayin, scalefactor, power, chardiag, \\ | 
| 88 |  |  | \>        levflg, nlevs, bibjflg, bi, bj, myThid) \\ | 
| 89 |  |  | \\ | 
| 90 |  |  | where \>  All the arguments are the same as for diagnostics\_fill with the addition of: \\ | 
| 91 |  |  | \>  scalefactor \>= Factor to scale field \\ | 
| 92 |  |  | \>  power       \>= Integer power to which to raise the input field \\ | 
| 93 |  |  | \end{tabbing} | 
| 94 |  |  |  | 
| 95 |  |  | \noindent | 
| 96 |  |  | {\bf diagnostics\_is\_on}: Function call to inquire whether a diagnostic is active | 
| 97 |  |  | and can be incremented. Useful when there is a computation that must be done locally | 
| 98 |  |  | before a call to diagnostics\_fill. The call sequence: | 
| 99 |  |  |  | 
| 100 |  |  | \noindent | 
| 101 |  |  | \begin{tabbing} | 
| 102 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 103 |  |  | \> flag = diagnostics\_is\_on( diagName, myThid ) | 
| 104 |  |  | \\ | 
| 105 |  |  | where \>  diagName \>= Character *8 expression for diagnostic \\ | 
| 106 |  |  | \>  myThid   \>= Current Thread number \\ | 
| 107 |  |  | \end{tabbing} | 
| 108 |  |  |  | 
| 109 |  |  | \noindent | 
| 110 |  |  | {\bf diagnostics\_get\_pointers}:  This subroutine retrieves the value of a the diagnostics | 
| 111 |  |  | pointers that other routines require as input - can be useful if the diagnostics common | 
| 112 |  |  | blocks are not local to a routine. | 
| 113 | molod | 1.1 |  | 
| 114 | molod | 1.7 | \noindent | 
| 115 | molod | 1.1 | \begin{tabbing} | 
| 116 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 117 | molod | 1.11 | \> call diagnostics\_get\_pointers( diagName, ipoint, jpoint, myThid ) | 
| 118 | molod | 1.1 | \\ | 
| 119 | molod | 1.11 | where \>  diagName \>= Character *8 expression of diagnostic \\ | 
| 120 |  |  | \>  ipoint   \>= Pointer into qdiag array - from idiag array in common \\ | 
| 121 |  |  | \>  jpoint   \>= Pointer into diagnostics menu - from jdiag array in common \\ | 
| 122 |  |  | \>  myThid   \>= Current Thread number \\ | 
| 123 | molod | 1.1 | \end{tabbing} | 
| 124 |  |  |  | 
| 125 | molod | 1.7 | \noindent | 
| 126 | molod | 1.5 | {\bf getdiag}:  This subroutine retrieves the value of a model diagnostic.  This routine | 
| 127 |  |  | is particulary useful when called from a user output routine, although it can be called | 
| 128 |  |  | from any routine.  This routine returns the time-averaged value of the diagnostic by | 
| 129 |  |  | dividing the current accumulated diagnostic value by its corresponding counter.  This | 
| 130 |  |  | routine does not change the value of the diagnostic itself, that is, it does not replace | 
| 131 |  |  | the diagnostic with its time-average.  The calling sequence for this routine is givin by: | 
| 132 | molod | 1.1 |  | 
| 133 | molod | 1.7 | \noindent | 
| 134 | molod | 1.1 | \begin{tabbing} | 
| 135 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 136 | molod | 1.11 | \>        call getdiag (lev, undef, qtmp, ipoint, mate, bi, bj, myThid) \\ | 
| 137 | molod | 1.1 | \\ | 
| 138 | molod | 1.11 | where \>  lev     \>= Model Level at which the diagnostic is desired \\ | 
| 139 |  |  | \>  undef   \>= Fill value to be used when diagnostic is undefined \\ | 
| 140 |  |  | \>  qtmp    \>= Time-Averaged Diagnostic Output \\ | 
| 141 |  |  | \>  ipoint  \>= Pointer into qdiag array - from idiag array in common \\ | 
| 142 |  |  | \>  mate    \>= Diagnostic mate pointer number \\ | 
| 143 |  |  | \>  bi      \>= X-direction process(or) number \\ | 
| 144 |  |  | \>  bj      \>= Y-direction process(or) number \\ | 
| 145 |  |  | \>  myThid  \>= Current Thread number \\ | 
| 146 | molod | 1.1 | \end{tabbing} | 
| 147 |  |  |  | 
| 148 | molod | 1.7 | \noindent | 
| 149 | molod | 1.11 | {\bf diagnostics\_add2list}:  This subroutine enables a diagnostic from the Diagnostic Menu, meaning | 
| 150 |  |  | that space is allocated for the diagnostic and the model routines will increment the | 
| 151 |  |  | diagnostic value during execution.  This routine is the underlying interface routine | 
| 152 |  |  | for defining a new permanent diagnostic in the main model or in a package.  The calling sequence is: | 
| 153 | molod | 1.1 |  | 
| 154 | molod | 1.7 | \noindent | 
| 155 | molod | 1.1 | \begin{tabbing} | 
| 156 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 157 | molod | 1.11 | \>        call diagnostics\_add2list( diagNum,diagName, diagCode, \\ | 
| 158 |  |  | \>        diagUnits, diagTitle, myThid ) \\ | 
| 159 | molod | 1.1 | \\ | 
| 160 | molod | 1.11 | where \> diagNum   \>=Diagnostic number - Output from routine \\ | 
| 161 |  |  | \> diagName  \>=character*8 diagnostic name \\ | 
| 162 |  |  | \> diagCode  \>=character*16 parsing code (see description of gdiag below) \\ | 
| 163 |  |  | \> diagUnits \>=Diagnostic units (character*16) \\ | 
| 164 |  |  | \> diagTitle \>=Diagnostic title or long name (up to character*80) \\ | 
| 165 |  |  | \> myThid    \>=Current Thread number \\ | 
| 166 | molod | 1.1 | \end{tabbing} | 
| 167 |  |  |  | 
| 168 | molod | 1.7 | \noindent | 
| 169 | molod | 1.11 | {\bf clrdiag}:  This subroutine initializes the values of model diagnostics to zero, and is | 
| 170 |  |  | particularly useful when called from user output routines to re-initialize diagnostics | 
| 171 |  |  | during the run.  The calling sequence is: | 
| 172 | molod | 1.1 |  | 
| 173 | molod | 1.7 | \noindent | 
| 174 | molod | 1.1 | \begin{tabbing} | 
| 175 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 176 | molod | 1.11 | \>        call diagnostics\_clrdiag (jpoint, ipoint, myThid) \\ | 
| 177 | molod | 1.1 | \\ | 
| 178 | molod | 1.11 | where \>  jpoint \>= Diagnostic number from menu - from jdiag array \\ | 
| 179 |  |  | ipoint \>= Pointer number into qdiag array - from idiag array \\ | 
| 180 |  |  | \>  myThid \>=Current Thread number \\ | 
| 181 | molod | 1.1 | \end{tabbing} | 
| 182 |  |  |  | 
| 183 | molod | 1.11 | \noindent | 
| 184 |  |  | The diagnostics are computed at various times and places within the GCM. Because the | 
| 185 |  |  | MIT GCM may employ a staggered grid, diagnostics may be computed at grid box centers, | 
| 186 |  |  | corners, or edges, and at the middle or edge in the vertical. Some diagnostics are scalars, | 
| 187 |  |  | while others are components of vectors. An internal array is defined which contains | 
| 188 |  |  | information concerning various grid attributes of each diagnostic. The GDIAG | 
| 189 |  |  | array (in common block \\diagnostics in file diagnostics.h) is internally defined as a | 
| 190 |  |  | character*8 variable, and is equivalenced to a character*1 "parse" array in output in | 
| 191 |  |  | order to extract the grid-attribute information.  The GDIAG array is described in | 
| 192 |  |  | Table \ref{tab:diagnostics:gdiag.tabl}. | 
| 193 |  |  |  | 
| 194 |  |  | \begin{table} | 
| 195 |  |  | \caption{Diagnostic Parsing Array} | 
| 196 |  |  | \label{tab:diagnostics:gdiag.tabl} | 
| 197 |  |  | \begin{center} | 
| 198 |  |  | \begin{tabular}{ |c|c|l| } | 
| 199 |  |  | \hline | 
| 200 |  |  | \multicolumn{3}{|c|}{\bf Diagnostic Parsing Array} \\ | 
| 201 |  |  | \hline | 
| 202 |  |  | \hline | 
| 203 |  |  | Array & Value & Description \\ | 
| 204 |  |  | \hline | 
| 205 |  |  | parse(1)   & $\rightarrow$ S &  Scalar Diagnostic                 \\ | 
| 206 |  |  | & $\rightarrow$ U &  U-vector component Diagnostic     \\ | 
| 207 |  |  | & $\rightarrow$ V &  V-vector component Diagnostic     \\ \hline | 
| 208 |  |  | parse(2)   & $\rightarrow$ U &  C-Grid U-Point                    \\ | 
| 209 |  |  | & $\rightarrow$ V &  C-Grid V-Point                    \\ | 
| 210 |  |  | & $\rightarrow$ M &  C-Grid Mass Point                 \\ | 
| 211 |  |  | & $\rightarrow$ Z &  C-Grid Vorticity (Corner) Point   \\ \hline | 
| 212 |  |  | parse(3)   & $\rightarrow$ R &  Not Currently in Use              \\ \hline | 
| 213 |  |  | parse(4)   & $\rightarrow$ P &  Positive Definite Diagnostic      \\ \hline | 
| 214 |  |  | parse(5)   & $\rightarrow$ C &  Counter Diagnostic                \\ | 
| 215 |  |  | & $\rightarrow$ D &  Disabled Diagnostic for output    \\ \hline | 
| 216 |  |  | parse(6-8) & $\rightarrow$ C &  3-digit integer corresponding to  \\ | 
| 217 |  |  | &                 &  vector or counter component mate  \\ \hline | 
| 218 |  |  | \end{tabular} | 
| 219 |  |  | \addcontentsline{lot}{section}{Table 3:  Diagnostic Parsing Array} | 
| 220 |  |  | \end{center} | 
| 221 |  |  | \end{table} | 
| 222 | molod | 1.7 |  | 
| 223 |  |  |  | 
| 224 |  |  | \noindent | 
| 225 | molod | 1.11 | As an example, consider a diagnostic whose associated GDIAG parameter is equal | 
| 226 |  |  | to ``UU  002''.  From GDIAG we can determine that this diagnostic is a | 
| 227 |  |  | U-vector component located at the C-grid U-point. | 
| 228 |  |  | Its corresponding V-component diagnostic is located in Diagnostic \# 002. | 
| 229 | molod | 1.1 |  | 
| 230 | molod | 1.7 | \noindent | 
| 231 | molod | 1.11 | In this way, each Diagnostic in the model has its attributes (ie. vector or scalar, | 
| 232 |  |  | C-grid location, etc.) defined internally.  The Output routines use this information | 
| 233 |  |  | in order to determine what type of transformations need to be performed.  Any | 
| 234 |  |  | interpolations are done at the time of output rather than during each model step. | 
| 235 |  |  | In this way the User has flexibility in determining the type of gridded data which | 
| 236 |  |  | is output. | 
| 237 |  |  |  | 
| 238 |  |  | \subsection{Usage Notes} | 
| 239 |  |  | \label{sec:diagnostics:usersguide} | 
| 240 | molod | 1.1 |  | 
| 241 | molod | 1.7 | \noindent | 
| 242 | molod | 1.3 | To use the diagnostics package, other than enabling it in packages.conf | 
| 243 | molod | 1.11 | and turning the usediagnostics flag in data.pkg to .TRUE., there are two | 
| 244 |  |  | further steps the user must take to enable the diagnostics package for | 
| 245 |  |  | output of quantities that are already defined in the GCM under an experiment's | 
| 246 |  |  | configuration of packages.  A namelist must be supplied in the run directory | 
| 247 |  |  | called data.diagnostics, and the file DIAGNOSTICS\_SIZE.h must be included in the | 
| 248 |  |  | code directory.  The steps for defining a new (permanent or experiment-specific | 
| 249 |  |  | temporary) diagnostic quantity will be outlined later. | 
| 250 |  |  |  | 
| 251 |  |  | \noindent The namelist will activate a user-defined list of diagnostics quantities | 
| 252 |  |  | to be computed, specify the frequency and type of output, the number of levels, and | 
| 253 |  |  | the name of all the separate output files. A sample data.diagnostics namelist file: | 
| 254 | molod | 1.3 |  | 
| 255 | molod | 1.7 | \noindent | 
| 256 |  |  | $\#$ Diagnostic Package Choices \\ | 
| 257 |  |  | $\&$diagnostics\_list \\ | 
| 258 | molod | 1.11 | frequency(1) = 86400., \ \\ | 
| 259 |  |  | levels(1,1) = 1., \ \\ | 
| 260 |  |  | fields(1,1) = 'RSURF   ', \ \\ | 
| 261 |  |  | filename(1) = 'surface', \ \\ | 
| 262 |  |  | frequency(2) = 86400., \ \\ | 
| 263 | molod | 1.7 | levels(1,2) = 1.,2.,3.,4.,5., \ \\ | 
| 264 | molod | 1.11 | fields(1,2) = 'UVEL    ','VVEL    ', \ \\ | 
| 265 |  |  | filename(2) = 'diagout1', \ \\ | 
| 266 |  |  | frequency(3) = 3600., \ \\ | 
| 267 |  |  | fields(1,3) = 'UVEL    ','VVEL    ','PRESSURE', \ \\ | 
| 268 |  |  | filename(3) = 'diagout2', \ \\ | 
| 269 |  |  | fileflags(3) = ' P1     ', \ \\ | 
| 270 | molod | 1.7 | $\&$end \ \\ | 
| 271 | molod | 1.3 |  | 
| 272 | molod | 1.7 | \noindent | 
| 273 | molod | 1.3 | In this example, there are two output files that will be generated | 
| 274 |  |  | for each tile and for each output time. The first set of output files | 
| 275 | molod | 1.11 | has the prefix diagout1, does time averaging every 86400. seconds, | 
| 276 |  |  | (frequency is 86400.), and will write fields which are multiple-level | 
| 277 |  |  | fields at output levels 1-5. The names of diagnostics quantities are | 
| 278 | molod | 1.7 | UVEL and VVEL.  The second set of output files | 
| 279 | molod | 1.11 | has the prefix diagout2, does time averaging every 3600. seconds, | 
| 280 |  |  | includes fields which are multiple-level fields, levels output are 1-5, | 
| 281 | molod | 1.3 | and the names of diagnostics quantities are THETA and SALT. | 
| 282 |  |  |  | 
| 283 | molod | 1.7 | \noindent | 
| 284 | molod | 1.11 | The user must assure that enough computer memory is allocated for the diagnostics | 
| 285 |  |  | and the output streams selected for a particular experiment.  This is acomplished by | 
| 286 |  |  | modifying the file DIAGNOSTICS\_SIZE.h and including it in the experiment code directory. | 
| 287 |  |  | The parameters that should be checked are called numdiags, numlists, numperlist, and | 
| 288 |  |  | diagSt\_size. | 
| 289 |  |  |  | 
| 290 |  |  | \noindent numdiags (and diagSt\_size): \\ | 
| 291 |  |  | \noindent All GCM diagnostic quantities are stored in the single diagnostic array QDIAG | 
| 292 |  |  | which is located in the file \\ \filelink{pkg/diagnostics/diagnostics.h}{pkg-diagnostics-diagnostics.h}.\\ | 
| 293 |  |  | and has the form:\\ | 
| 294 |  |  | common /diagnostics/ qdiag(1-Olx,sNx+Olx,1-Olx,sNx+Olx,numdiags,Nsx,Nsy) \\ | 
| 295 |  |  | \noindent | 
| 296 |  |  | The first two-dimensions of qdiag correspond to the horizontal dimension of a given diagnostic, | 
| 297 |  |  | and the third dimension of qdiag is used to identify diagnostic fields and levels combined. In | 
| 298 |  |  | order to minimize the memory requirement of the model for diagnostics, the default GCM | 
| 299 |  |  | executable is compiled with room for only one horizontal diagnostic array, or with | 
| 300 |  |  | numdiags set to Nr. In order for the User to enable more than 1 three-dimensional diagnostic, | 
| 301 |  |  | the size of the diagnostics common must be expanded to accomodate the desired diagnostics. | 
| 302 |  |  | This can be accomplished by manually changing the parameter numdiags in the | 
| 303 |  |  | file \filelink{pkg/diagnostics/DIAGNOSTICS\_SIZE.h}{pkg-diagnostics-DIAGNOSTICS\_SIZE.h}. | 
| 304 |  |  | numdiags should be set greater than or equal to the sum of all the diagnostics activated | 
| 305 |  |  | for output each multiplied by the number of levels defined for that diagnostic quantity. | 
| 306 |  |  | For the above example, there are 4 multiple level fields, which the diagnostics menu | 
| 307 |  |  | (see below) indicates are defined at the GCM vertical resolution, Nr. The value of | 
| 308 |  |  | numdiag in DIAGNOSTICS\_SIZE.h would therefore be equal to 4*Nr, or, say 40 if $Nr=10$. | 
| 309 |  |  |  | 
| 310 |  |  | \noindent numlists and numperlist: \\ | 
| 311 |  |  | \noindent The parameter numlists must be set greater than or equal to the number of | 
| 312 |  |  | separate output streams that the user specifies in the namelist file data.diagnostics. | 
| 313 |  |  | The parameter numperlist corresponds to the number of diagnostics requested in each | 
| 314 |  |  | output stream. | 
| 315 |  |  |  | 
| 316 |  |  | \noindent | 
| 317 | molod | 1.7 | In order to define and include as part of the diagnostic output any field | 
| 318 |  |  | that is desired for a particular experiment, two steps must be taken. The | 
| 319 |  |  | first is to enable the ``User Diagnostic'' in data.diagnostics. This is | 
| 320 | molod | 1.11 | accomplished by adding one of the ``User Diagnostic'' field names (UDIAG1 through | 
| 321 | molod | 1.7 | UDIAG10, for multi-level fields, or SDIAG1 through SDIAG10 for single level | 
| 322 | molod | 1.11 | fields) to the data.diagnostics namelist in one of the output streams. These | 
| 323 |  |  | fields are listed in the diagnostics menu. The second step is to | 
| 324 |  |  | add a call to diagnostics\_fill from the subroutine in which the quantity | 
| 325 | molod | 1.7 | desired for diagnostic output is computed. | 
| 326 |  |  |  | 
| 327 | molod | 1.11 | \noindent | 
| 328 |  |  | In order to add a new diagnostic to the permanent set of diagnostics that the | 
| 329 |  |  | main model or any package contains as part of its diagnostics menu, the subroutine | 
| 330 |  |  | diagnostics\_add2list should be called during the initialization phase of the | 
| 331 |  |  | main model or package. For the main model, the call should be made from | 
| 332 |  |  | subroutine diagnostics\_main\_init, and for a package, the call should probably | 
| 333 |  |  | be made from somewhere in the packages\_init\_fixed sequence (probaby from inside | 
| 334 |  |  | the particular package's init\_fixed routine). A typical code sequence to set the | 
| 335 |  |  | input arguments to diagnostics\_add2list would look like: | 
| 336 |  |  |  | 
| 337 |  |  | \noindent | 
| 338 |  |  | \begin{tabbing} | 
| 339 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 340 |  |  | \>      diagName  = 'THETA   ' \\ | 
| 341 |  |  | \>      diagTitle = 'Potential Temperature (degC,K)' \\ | 
| 342 |  |  | \>      diagUnits = 'Degrees K       ' \\ | 
| 343 |  |  | \>      diagCode  = 'SM      MR      ' \\ | 
| 344 |  |  | \>      CALL DIAGNOSTICS\_ADD2LIST( diagNum, \\ | 
| 345 |  |  | \>     I          diagName, diagCode, diagUnits, diagTitle, myThid ) \\ | 
| 346 |  |  | \\ | 
| 347 |  |  | \end{tabbing} | 
| 348 |  |  |  | 
| 349 |  |  | \noindent If the new diagnostic quantity is associated with either a vector | 
| 350 |  |  | pair or a diagnostic counter, the diagCode argument must be filled with the | 
| 351 |  |  | proper index for the ``mate''. The output argument from diagnostics\_add2list | 
| 352 |  |  | that is called diagNum here contains a running total of the number of diagnostics | 
| 353 |  |  | defined in the code up to any point during the run. The sequence number for the | 
| 354 |  |  | next two diagnostics defined (the two components of the vector pair, for instance) | 
| 355 |  |  | will be diagNum+1 and diagNum+2. The definition of the first component of the vector | 
| 356 |  |  | pair must fill the ``mate'' segment of the diagCode as diagnostic number diagNum+2. | 
| 357 |  |  | Since the subroutine increments diagNum, the definition of the second component of | 
| 358 |  |  | the vector fills the ``mate'' part of diagCode with diagNum. A code sequence for | 
| 359 |  |  | this case would look like: | 
| 360 |  |  |  | 
| 361 |  |  | \noindent | 
| 362 |  |  | \begin{tabbing} | 
| 363 |  |  | XXXXXXXXX\=XXXXXX\= \kill | 
| 364 |  |  | \>      diagName  = 'UVEL    ' \\ | 
| 365 |  |  | \>      diagTitle = 'Zonal Velocity                ' \\ | 
| 366 |  |  | \>      diagUnits = 'm / sec         ' \\ | 
| 367 |  |  | \>      diagCode  = 'SM      MR      ' \\ | 
| 368 |  |  | \>      write(diagCode,'(A,I3.3,A)') 'VV   ', diagNum+2 ,'MR      ' \\ | 
| 369 |  |  | \>      call diagnostics\_add2list( diagNum, \\ | 
| 370 |  |  | \>     I          diagName, diagCode, diagUnits, diagTitle, myThid ) \\ | 
| 371 |  |  | \>      diagName  = 'VVEL    ' \\ | 
| 372 |  |  | \>      diagTitle = 'Meridional Velocity           ' \\ | 
| 373 |  |  | \>      diagUnits = 'm / sec         ' \\ | 
| 374 |  |  | \>      diagCode  = 'SM      MR      ' \\ | 
| 375 |  |  | \>      write(diagCode,'(A,I3.3,A)') 'VV   ', diagNum ,'MR      ' \\ | 
| 376 |  |  | \>      call diagnostics\_add2list( diagNum, \\ | 
| 377 |  |  | \>     I          diagName, diagCode, diagUnits, diagTitle, myThid ) \\ | 
| 378 |  |  | \\ | 
| 379 |  |  | \end{tabbing} | 
| 380 |  |  |  | 
| 381 |  |  |  | 
| 382 | molod | 1.1 | \newpage | 
| 383 |  |  |  | 
| 384 |  |  | \subsubsection{GCM Diagnostic Menu} | 
| 385 |  |  | \label{sec:diagnostics:menu} | 
| 386 |  |  |  | 
| 387 | molod | 1.10 | \begin{tabular}{llll} | 
| 388 | molod | 1.1 | \hline\hline | 
| 389 | molod | 1.10 | NAME & UNITS & LEVELS & DESCRIPTION \\ | 
| 390 | molod | 1.1 | \hline | 
| 391 |  |  |  | 
| 392 |  |  | &\\ | 
| 393 | molod | 1.10 | SDIAG1   &             &    1 | 
| 394 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 395 | molod | 1.9 | {User-Defined Surface Diagnostic-1} | 
| 396 | molod | 1.1 | \end{minipage}\\ | 
| 397 | molod | 1.10 | SDIAG2   &             &    1 | 
| 398 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 399 | molod | 1.9 | {User-Defined Surface Diagnostic-2} | 
| 400 | molod | 1.1 | \end{minipage}\\ | 
| 401 | molod | 1.10 | UDIAG1   &             &    Nrphys | 
| 402 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 403 | molod | 1.9 | {User-Defined Upper-Air Diagnostic-1} | 
| 404 | molod | 1.1 | \end{minipage}\\ | 
| 405 | molod | 1.10 | UDIAG2   &             &    Nrphys | 
| 406 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 407 | molod | 1.9 | {User-Defined Upper-Air Diagnostic-2} | 
| 408 | molod | 1.1 | \end{minipage}\\ | 
| 409 | molod | 1.10 | SDIAG3   &             &    1 | 
| 410 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 411 | molod | 1.9 | {User-Defined Surface Diagnostic-3} | 
| 412 | molod | 1.1 | \end{minipage}\\ | 
| 413 | molod | 1.10 | SDIAG4   &             &    1 | 
| 414 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 415 | molod | 1.9 | {User-Defined Surface Diagnostic-4} | 
| 416 | molod | 1.1 | \end{minipage}\\ | 
| 417 | molod | 1.10 | SDIAG5   &             &    1 | 
| 418 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 419 | molod | 1.9 | {User-Defined Surface Diagnostic-5} | 
| 420 | molod | 1.1 | \end{minipage}\\ | 
| 421 | molod | 1.10 | SDIAG6   &             &    1 | 
| 422 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 423 | molod | 1.9 | {User-Defined Surface Diagnostic-6} | 
| 424 | molod | 1.1 | \end{minipage}\\ | 
| 425 | molod | 1.10 | SDIAG7   &             &    1 | 
| 426 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 427 | molod | 1.9 | {User-Defined Surface Diagnostic-7} | 
| 428 | molod | 1.1 | \end{minipage}\\ | 
| 429 | molod | 1.10 | SDIAG8   &             &    1 | 
| 430 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 431 | molod | 1.9 | {User-Defined Surface Diagnostic-8} | 
| 432 | molod | 1.1 | \end{minipage}\\ | 
| 433 | molod | 1.10 | SDIAG9   &             &    1 | 
| 434 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 435 | molod | 1.9 | {User-Defined Surface Diagnostic-9} | 
| 436 | molod | 1.1 | \end{minipage}\\ | 
| 437 | molod | 1.10 | SDIAG10  &             &    1 | 
| 438 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 439 | molod | 1.9 | {User-Defined Surface Diagnostic-1-} | 
| 440 | molod | 1.1 | \end{minipage}\\ | 
| 441 | molod | 1.10 | UDIAG3   &             &    Nrphys | 
| 442 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 443 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-3} | 
| 444 | molod | 1.1 | \end{minipage}\\ | 
| 445 | molod | 1.10 | UDIAG4   &             &    Nrphys | 
| 446 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 447 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-4} | 
| 448 | molod | 1.1 | \end{minipage}\\ | 
| 449 | molod | 1.10 | UDIAG5   &             &    Nrphys | 
| 450 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 451 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-5} | 
| 452 | molod | 1.1 | \end{minipage}\\ | 
| 453 | molod | 1.10 | UDIAG6   &             &    Nrphys | 
| 454 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 455 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-6} | 
| 456 | molod | 1.1 | \end{minipage}\\ | 
| 457 | molod | 1.10 | UDIAG7   &             &    Nrphys | 
| 458 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 459 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-7} | 
| 460 | molod | 1.1 | \end{minipage}\\ | 
| 461 | molod | 1.10 | UDIAG8   &             &    Nrphys | 
| 462 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 463 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-8} | 
| 464 | molod | 1.1 | \end{minipage}\\ | 
| 465 | molod | 1.10 | UDIAG9   &             &    Nrphys | 
| 466 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 467 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-9} | 
| 468 | molod | 1.1 | \end{minipage}\\ | 
| 469 | molod | 1.10 | UDIAG10  &             &    Nrphys | 
| 470 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 471 | molod | 1.9 | {User-Defined Multi-Level Diagnostic-10} | 
| 472 | molod | 1.1 | \end{minipage}\\ | 
| 473 | molod | 1.10 | SDIAGC   &             &    1 | 
| 474 |  |  | &\begin{minipage}[t]{3in} | 
| 475 |  |  | {User-Defined Counted Surface Diagnostic} | 
| 476 |  |  | \end{minipage}\\ | 
| 477 |  |  | SDIAGCC  &             &    1 | 
| 478 |  |  | &\begin{minipage}[t]{3in} | 
| 479 |  |  | {User-Defined Counted Surface Diagnostic Counter} | 
| 480 |  |  | \end{minipage}\\ | 
| 481 |  |  | ETAN     & $(hPa,m)$ &    1 | 
| 482 |  |  | &\begin{minipage}[t]{3in} | 
| 483 |  |  | {Perturbation of Surface (pressure, height)} | 
| 484 |  |  | \end{minipage}\\ | 
| 485 |  |  | ETANSQ   & $(hPa^2,m^2)$ & 1 | 
| 486 |  |  | &\begin{minipage}[t]{3in} | 
| 487 |  |  | {Square of Perturbation of Surface (pressure, height)} | 
| 488 |  |  | \end{minipage}\\ | 
| 489 |  |  | DETADT2  & ${r-unit}^2/s^2$ & 1 | 
| 490 |  |  | &\begin{minipage}[t]{3in} | 
| 491 |  |  | {Square of Eta (Surf.P,SSH) Tendency} | 
| 492 |  |  | \end{minipage}\\ | 
| 493 |  |  | THETA    & $deg K$ & Nr | 
| 494 |  |  | &\begin{minipage}[t]{3in} | 
| 495 |  |  | {Potential Temperature} | 
| 496 |  |  | \end{minipage}\\ | 
| 497 |  |  | SST      & $deg K$ & 1 | 
| 498 |  |  | &\begin{minipage}[t]{3in} | 
| 499 |  |  | {Sea Surface Temperature} | 
| 500 |  |  | \end{minipage}\\ | 
| 501 |  |  | SALT     & $g/kg$ & Nr | 
| 502 |  |  | &\begin{minipage}[t]{3in} | 
| 503 |  |  | {Salt (or Water Vapor Mixing Ratio)} | 
| 504 |  |  | \end{minipage}\\ | 
| 505 |  |  | SSS      & $g/kg$ & 1 | 
| 506 |  |  | &\begin{minipage}[t]{3in} | 
| 507 |  |  | {Sea Surface Salinity} | 
| 508 |  |  | \end{minipage}\\ | 
| 509 |  |  | SALTanom & $g/kg$ & Nr | 
| 510 |  |  | &\begin{minipage}[t]{3in} | 
| 511 |  |  | {Salt anomaly (=SALT-35)} | 
| 512 |  |  | \end{minipage}\\ | 
| 513 | molod | 1.8 | \end{tabular} | 
| 514 | molod | 1.9 | \vspace{1.5in} | 
| 515 |  |  | \vfill | 
| 516 | molod | 1.8 |  | 
| 517 |  |  | \newpage | 
| 518 |  |  | \vspace*{\fill} | 
| 519 | molod | 1.10 | \begin{tabular}{llll} | 
| 520 | molod | 1.8 | \hline\hline | 
| 521 | molod | 1.10 | NAME & UNITS & LEVELS & DESCRIPTION \\ | 
| 522 | molod | 1.8 | \hline | 
| 523 |  |  |  | 
| 524 |  |  | &\\ | 
| 525 | molod | 1.10 | UVEL     & $m/sec$ & Nr | 
| 526 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 527 | molod | 1.10 | {U-Velocity} | 
| 528 | molod | 1.1 | \end{minipage}\\ | 
| 529 | molod | 1.10 | VVEL     & $m/sec$ & Nr | 
| 530 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 531 | molod | 1.10 | {V-Velocity} | 
| 532 | molod | 1.1 | \end{minipage}\\ | 
| 533 | molod | 1.10 | UVEL\_k2  & $m/sec$ & 1 | 
| 534 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 535 | molod | 1.9 | {U-Velocity} | 
| 536 | molod | 1.1 | \end{minipage}\\ | 
| 537 | molod | 1.10 | VVEL\_k2  & $m/sec$ & 1 | 
| 538 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 539 | molod | 1.9 | {V-Velocity} | 
| 540 | molod | 1.1 | \end{minipage}\\ | 
| 541 | molod | 1.10 | WVEL     & $m/sec$ & Nr | 
| 542 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 543 | molod | 1.9 | {Vertical-Velocity} | 
| 544 | molod | 1.1 | \end{minipage}\\ | 
| 545 | molod | 1.10 | THETASQ  & $deg^2$ & Nr | 
| 546 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 547 | molod | 1.9 | {Square of Potential Temperature} | 
| 548 | molod | 1.1 | \end{minipage}\\ | 
| 549 | molod | 1.10 | SALTSQ   & $g^2/{kg}^2$ & Nr | 
| 550 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 551 | molod | 1.9 | {Square of Salt (or Water Vapor Mixing Ratio)} | 
| 552 | molod | 1.1 | \end{minipage}\\ | 
| 553 | molod | 1.10 | SALTSQan & $g^2/{kg}^2$ & Nr | 
| 554 |  |  | &\begin{minipage}[t]{3in} | 
| 555 |  |  | {Square of Salt anomaly (=SALT-35)} | 
| 556 |  |  | \end{minipage}\\ | 
| 557 |  |  | UVELSQ   & $m^2/sec^2$ & Nr | 
| 558 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 559 | molod | 1.9 | {Square of U-Velocity} | 
| 560 | molod | 1.1 | \end{minipage}\\ | 
| 561 | molod | 1.10 | VVELSQ   & $m^2/sec^2$ & Nr | 
| 562 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 563 | molod | 1.9 | {Square of V-Velocity} | 
| 564 | molod | 1.1 | \end{minipage}\\ | 
| 565 | molod | 1.10 | WVELSQ   & $m^2/sec^2$ & Nr | 
| 566 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 567 | molod | 1.9 | {Square of Vertical-Velocity} | 
| 568 | molod | 1.1 | \end{minipage}\\ | 
| 569 | molod | 1.10 | UV\_VEL\_C & $m^2/sec^2$ & Nr | 
| 570 |  |  | &\begin{minipage}[t]{3in} | 
| 571 |  |  | {Meridional Transport of Zonal Momentum (cell center)} | 
| 572 |  |  | \end{minipage}\\ | 
| 573 |  |  | UV\_VEL\_Z & $m^2/sec^2$ & Nr | 
| 574 |  |  | &\begin{minipage}[t]{3in} | 
| 575 |  |  | {Meridional Transport of Zonal Momentum (corner)} | 
| 576 |  |  | \end{minipage}\\ | 
| 577 |  |  | WU\_VEL   & $m^2/sec^2$ & Nr | 
| 578 |  |  | &\begin{minipage}[t]{3in} | 
| 579 |  |  | {Vertical Transport of Zonal Momentum (cell center)} | 
| 580 |  |  | \end{minipage}\\ | 
| 581 |  |  | WV\_VEL   & $m^2/sec^2$ & Nr | 
| 582 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 583 | molod | 1.10 | {Vertical Transport of Meridional Momentum (cell center)} | 
| 584 | molod | 1.1 | \end{minipage}\\ | 
| 585 | molod | 1.10 | UVELMASS & $m/sec$ & Nr | 
| 586 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 587 | molod | 1.9 | {Zonal Mass-Weighted Component of Velocity} | 
| 588 | molod | 1.1 | \end{minipage}\\ | 
| 589 | molod | 1.10 | VVELMASS & $m/sec$ & Nr | 
| 590 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 591 | molod | 1.9 | {Meridional Mass-Weighted Component of Velocity} | 
| 592 | molod | 1.1 | \end{minipage}\\ | 
| 593 | molod | 1.10 | WVELMASS & $m/sec$ & Nr | 
| 594 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 595 | molod | 1.9 | {Vertical Mass-Weighted Component of Velocity} | 
| 596 | molod | 1.1 | \end{minipage}\\ | 
| 597 | molod | 1.10 | UTHMASS  & $m-deg/sec$ & Nr | 
| 598 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 599 | molod | 1.9 | {Zonal Mass-Weight Transp of Pot Temp} | 
| 600 | molod | 1.1 | \end{minipage}\\ | 
| 601 | molod | 1.10 | VTHMASS  & $m-deg/sec$ & Nr | 
| 602 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 603 | molod | 1.9 | {Meridional Mass-Weight Transp of Pot Temp} | 
| 604 | molod | 1.1 | \end{minipage}\\ | 
| 605 | molod | 1.10 | WTHMASS  & $m-deg/sec$ & Nr | 
| 606 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 607 | molod | 1.9 | {Vertical Mass-Weight Transp of Pot Temp} | 
| 608 | molod | 1.1 | \end{minipage}\\ | 
| 609 | molod | 1.10 | USLTMASS & $m-kg/sec-kg$ & Nr | 
| 610 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 611 | molod | 1.9 | {Zonal Mass-Weight Transp of Salt (or W.Vap Mix Rat.)} | 
| 612 | molod | 1.1 | \end{minipage}\\ | 
| 613 | molod | 1.10 | VSLTMASS & $m-kg/sec-kg$ & Nr | 
| 614 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 615 | molod | 1.9 | {Meridional Mass-Weight Transp of Salt (or W.Vap Mix Rat.)} | 
| 616 | molod | 1.8 | \end{minipage}\\ | 
| 617 | molod | 1.10 | WSLTMASS & $m-kg/sec-kg$ & Nr | 
| 618 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 619 | molod | 1.9 | {Vertical Mass-Weight Transp of Salt (or W.Vap Mix Rat.)} | 
| 620 | molod | 1.1 | \end{minipage}\\ | 
| 621 | molod | 1.10 | UVELTH   & $m-deg/sec$ & Nr | 
| 622 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 623 | molod | 1.9 | {Zonal Transp of Pot Temp} | 
| 624 | molod | 1.1 | \end{minipage}\\ | 
| 625 | molod | 1.10 | VVELTH   & $m-deg/sec$ & Nr | 
| 626 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 627 | molod | 1.9 | {Meridional Transp of Pot Temp} | 
| 628 | molod | 1.1 | \end{minipage}\\ | 
| 629 | molod | 1.10 | WVELTH   & $m-deg/sec$ & Nr | 
| 630 | molod | 1.1 | &\begin{minipage}[t]{3in} | 
| 631 | molod | 1.9 | {Vertical Transp of Pot Temp} | 
| 632 | molod | 1.1 | \end{minipage}\\ | 
| 633 | molod | 1.10 | UVELSLT  & $m-kg/sec-kg$ & Nr | 
| 634 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 635 | molod | 1.9 | {Zonal Transp of Salt (or W.Vap Mix Rat.)} | 
| 636 | molod | 1.8 | \end{minipage}\\ | 
| 637 | molod | 1.10 | VVELSLT  & $m-kg/sec-kg$ & Nr | 
| 638 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 639 | molod | 1.9 | {Meridional Transp of Salt (or W.Vap Mix Rat.)} | 
| 640 | molod | 1.8 | \end{minipage}\\ | 
| 641 | molod | 1.10 | WVELSLT  & $m-kg/sec-kg$ & Nr | 
| 642 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 643 | molod | 1.9 | {Vertical Transp of Salt (or W.Vap Mix Rat.)} | 
| 644 | molod | 1.8 | \end{minipage}\\ | 
| 645 | molod | 1.10 | \end{tabular} | 
| 646 |  |  | \vspace{1.5in} | 
| 647 |  |  | \vfill | 
| 648 |  |  |  | 
| 649 |  |  | \newpage | 
| 650 |  |  | \vspace*{\fill} | 
| 651 |  |  | \begin{tabular}{llll} | 
| 652 |  |  | \hline\hline | 
| 653 |  |  | NAME & UNITS & LEVELS & DESCRIPTION \\ | 
| 654 |  |  | \hline | 
| 655 |  |  |  | 
| 656 |  |  | &\\ | 
| 657 |  |  | RHOAnoma & $kg/m^3  $  &  Nr | 
| 658 |  |  | &\begin{minipage}[t]{3in} | 
| 659 |  |  | {Density Anomaly (=Rho-rhoConst)} | 
| 660 |  |  | \end{minipage}\\ | 
| 661 |  |  | RHOANOSQ & $kg^2/m^6$  &  Nr | 
| 662 |  |  | &\begin{minipage}[t]{3in} | 
| 663 |  |  | {Square of Density Anomaly (=(Rho-rhoConst))} | 
| 664 |  |  | \end{minipage}\\ | 
| 665 |  |  | URHOMASS & $kg/m^2/s$  &  Nr | 
| 666 |  |  | &\begin{minipage}[t]{3in} | 
| 667 |  |  | {Zonal Transport of Density} | 
| 668 |  |  | \end{minipage}\\ | 
| 669 |  |  | VRHOMASS & $kg/m^2/s$  &  Nr | 
| 670 |  |  | &\begin{minipage}[t]{3in} | 
| 671 |  |  | {Meridional Transport of Density} | 
| 672 |  |  | \end{minipage}\\ | 
| 673 |  |  | WRHOMASS & $kg/m^2/s$  &  Nr | 
| 674 |  |  | &\begin{minipage}[t]{3in} | 
| 675 |  |  | {Vertical Transport of Potential Density} | 
| 676 |  |  | \end{minipage}\\ | 
| 677 |  |  | PHIHYD   & $m^2/s^2 $  &  Nr | 
| 678 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 679 | molod | 1.10 | {Hydrostatic (ocean) pressure / (atmos) geo-Potential} | 
| 680 |  |  | \end{minipage}\\ | 
| 681 |  |  | PHIHYDSQ & $m^4/s^4 $  &  Nr | 
| 682 |  |  | &\begin{minipage}[t]{3in} | 
| 683 |  |  | {Square of Hyd. (ocean) press / (atmos) geoPotential} | 
| 684 |  |  | \end{minipage}\\ | 
| 685 |  |  | PHIBOT   & $m^2/s^2 $  &  Nr | 
| 686 |  |  | &\begin{minipage}[t]{3in} | 
| 687 |  |  | {ocean bottom pressure / top. atmos geo-Potential} | 
| 688 |  |  | \end{minipage}\\ | 
| 689 |  |  | PHIBOTSQ & $m^4/s^4 $  &  Nr | 
| 690 |  |  | &\begin{minipage}[t]{3in} | 
| 691 |  |  | {Square of ocean bottom pressure / top. geo-Potential} | 
| 692 |  |  | \end{minipage}\\ | 
| 693 |  |  | DRHODR   & $kg/m^3/{r-unit}$ & Nr | 
| 694 |  |  | &\begin{minipage}[t]{3in} | 
| 695 |  |  | {Stratification: d.Sigma/dr} | 
| 696 | molod | 1.8 | \end{minipage}\\ | 
| 697 | molod | 1.10 | VISCA4   & $m^4/sec$ & 1 | 
| 698 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 699 | molod | 1.9 | {Biharmonic Viscosity Coefficient} | 
| 700 | molod | 1.8 | \end{minipage}\\ | 
| 701 | molod | 1.10 | VISCAH   & $m^2/sec$ & 1 | 
| 702 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 703 | molod | 1.9 | {Harmonic Viscosity Coefficient} | 
| 704 | molod | 1.8 | \end{minipage}\\ | 
| 705 | molod | 1.10 | TAUX     & $N/m^2        $ & 1 | 
| 706 |  |  | &\begin{minipage}[t]{3in} | 
| 707 |  |  | {zonal surface wind stress, >0 increases uVel} | 
| 708 |  |  | \end{minipage}\\ | 
| 709 |  |  | TAUY     & $N/m^2        $ & 1 | 
| 710 |  |  | &\begin{minipage}[t]{3in} | 
| 711 |  |  | {meridional surf. wind stress, >0 increases vVel} | 
| 712 |  |  | \end{minipage}\\ | 
| 713 |  |  | TFLUX    & $W/m^2        $ & 1 | 
| 714 |  |  | &\begin{minipage}[t]{3in} | 
| 715 |  |  | {net surface heat flux, >0 increases theta} | 
| 716 |  |  | \end{minipage}\\ | 
| 717 |  |  | TRELAX   & $W/m^2        $ & 1 | 
| 718 |  |  | &\begin{minipage}[t]{3in} | 
| 719 |  |  | {surface temperature relaxation, >0 increases theta} | 
| 720 |  |  | \end{minipage}\\ | 
| 721 |  |  | TICE     & $W/m^2        $ & 1 | 
| 722 |  |  | &\begin{minipage}[t]{3in} | 
| 723 |  |  | {heat from melt/freeze of sea-ice, >0 increases theta} | 
| 724 |  |  | \end{minipage}\\ | 
| 725 |  |  | SFLUX    & $g/m^2/s      $ & 1 | 
| 726 |  |  | &\begin{minipage}[t]{3in} | 
| 727 |  |  | {net surface salt flux, >0 increases salt} | 
| 728 |  |  | \end{minipage}\\ | 
| 729 |  |  | SRELAX   & $g/m^2/s      $ & 1 | 
| 730 |  |  | &\begin{minipage}[t]{3in} | 
| 731 |  |  | {surface salinity relaxation, >0 increases salt} | 
| 732 |  |  | \end{minipage}\\ | 
| 733 |  |  | PRESSURE & $Pa           $ & Nr | 
| 734 |  |  | &\begin{minipage}[t]{3in} | 
| 735 |  |  | {Atmospheric Pressure (Pa)} | 
| 736 |  |  | \end{minipage}\\ | 
| 737 |  |  | ADVr\_TH  & $K.Pa.m^2/s   $ & Nr | 
| 738 |  |  | &\begin{minipage}[t]{3in} | 
| 739 |  |  | {Vertical   Advective Flux of Pot.Temperature} | 
| 740 |  |  | \end{minipage}\\ | 
| 741 |  |  | ADVx\_TH  & $K.Pa.m^2/s   $ & Nr | 
| 742 |  |  | &\begin{minipage}[t]{3in} | 
| 743 |  |  | {Zonal      Advective Flux of Pot.Temperature} | 
| 744 |  |  | \end{minipage}\\ | 
| 745 |  |  | ADVy\_TH  & $K.Pa.m^2/s   $ & Nr | 
| 746 |  |  | &\begin{minipage}[t]{3in} | 
| 747 |  |  | {Meridional Advective Flux of Pot.Temperature} | 
| 748 |  |  | \end{minipage}\\ | 
| 749 |  |  | DFrE\_TH  & $K.Pa.m^2/s   $ & Nr | 
| 750 |  |  | &\begin{minipage}[t]{3in} | 
| 751 |  |  | {Vertical Diffusive Flux of Pot.Temperature (Explicit part)} | 
| 752 |  |  | \end{minipage}\\ | 
| 753 |  |  | DIFx\_TH  & $K.Pa.m^2/s   $ & Nr | 
| 754 |  |  | &\begin{minipage}[t]{3in} | 
| 755 |  |  | {Zonal      Diffusive Flux of Pot.Temperature} | 
| 756 |  |  | \end{minipage}\\ | 
| 757 |  |  | DIFy\_TH  & $K.Pa.m^2/s   $ & Nr | 
| 758 |  |  | &\begin{minipage}[t]{3in} | 
| 759 |  |  | {Meridional Diffusive Flux of Pot.Temperature} | 
| 760 |  |  | \end{minipage}\\ | 
| 761 |  |  | DFrI\_TH  & $K.Pa.m^2/s   $ & Nr | 
| 762 |  |  | &\begin{minipage}[t]{3in} | 
| 763 |  |  | {Vertical Diffusive Flux of Pot.Temperature (Implicit part)} | 
| 764 |  |  | \end{minipage}\\ | 
| 765 |  |  | ADVr\_SLT & $g/kg.Pa.m^2/s$ & Nr | 
| 766 |  |  | &\begin{minipage}[t]{3in} | 
| 767 |  |  | {Vertical   Advective Flux of Water-Vapor} | 
| 768 |  |  | \end{minipage}\\ | 
| 769 |  |  | ADVx\_SLT & $g/kg.Pa.m^2/s$ & Nr | 
| 770 |  |  | &\begin{minipage}[t]{3in} | 
| 771 |  |  | {Zonal      Advective Flux of Water-Vapor} | 
| 772 |  |  | \end{minipage}\\ | 
| 773 |  |  | ADVy\_SLT & $g/kg.Pa.m^2/s$ & Nr | 
| 774 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 775 | molod | 1.10 | {Meridional Advective Flux of Water-Vapor} | 
| 776 |  |  | \end{minipage}\\ | 
| 777 |  |  | \end{tabular} | 
| 778 |  |  | \vspace{1.5in} | 
| 779 |  |  | \vfill | 
| 780 |  |  |  | 
| 781 |  |  | \newpage | 
| 782 |  |  | \vspace*{\fill} | 
| 783 |  |  | \begin{tabular}{llll} | 
| 784 |  |  | \hline\hline | 
| 785 |  |  | NAME & UNITS & LEVELS & DESCRIPTION \\ | 
| 786 |  |  | \hline | 
| 787 |  |  |  | 
| 788 |  |  | &\\ | 
| 789 |  |  | DFrE\_SLT & $g/kg.Pa.m^2/s$ & Nr | 
| 790 |  |  | &\begin{minipage}[t]{3in} | 
| 791 |  |  | {Vertical Diffusive Flux of Water-Vapor (Explicit part)} | 
| 792 |  |  | \end{minipage}\\ | 
| 793 |  |  | DIFx\_SLT & $g/kg.Pa.m^2/s$ & Nr | 
| 794 |  |  | &\begin{minipage}[t]{3in} | 
| 795 |  |  | {Zonal      Diffusive Flux of Water-Vapor} | 
| 796 |  |  | \end{minipage}\\ | 
| 797 |  |  | DIFy\_SLT & $g/kg.Pa.m^2/s$ & Nr | 
| 798 |  |  | &\begin{minipage}[t]{3in} | 
| 799 |  |  | {Meridional Diffusive Flux of Water-Vapor} | 
| 800 | molod | 1.8 | \end{minipage}\\ | 
| 801 | molod | 1.10 | DFrI\_SLT & $g/kg.Pa.m^2/s$ & Nr | 
| 802 | molod | 1.8 | &\begin{minipage}[t]{3in} | 
| 803 | molod | 1.10 | {Vertical Diffusive Flux of Water-Vapor (Implicit part)} | 
| 804 | molod | 1.1 | \end{minipage}\\ | 
| 805 | molod | 1.8 | \end{tabular} | 
| 806 | molod | 1.9 | \vspace{1.5in} | 
| 807 | molod | 1.8 | \vfill | 
| 808 |  |  |  | 
| 809 |  |  | \newpage | 
| 810 |  |  |  | 
| 811 | molod | 1.9 | \subsubsection{Diagnostic Description} | 
| 812 | molod | 1.1 |  | 
| 813 | molod | 1.9 | In this section we list and describe the diagnostic quantities available within the | 
| 814 |  |  | GCM.  The diagnostics are listed in the order that they appear in the | 
| 815 |  |  | Diagnostic Menu, Section \ref{sec:diagnostics:menu}. | 
| 816 |  |  | In all cases, each diagnostic as currently archived on the output datasets | 
| 817 |  |  | is time-averaged over its diagnostic output frequency: | 
| 818 | molod | 1.1 |  | 
| 819 | molod | 1.9 | \[ | 
| 820 |  |  | {\bf DIAGNOSTIC} = {1 \over TTOT} \sum_{t=1}^{t=TTOT} diag(t) | 
| 821 |  |  | \] | 
| 822 |  |  | where $TTOT = {{\bf NQDIAG} \over \Delta t}$, {\bf NQDIAG} is the | 
| 823 |  |  | output frequency of the diagnostic, and $\Delta t$ is | 
| 824 |  |  | the timestep over which the diagnostic is updated. | 
| 825 | molod | 1.1 |  | 
| 826 |  |  | \subsection{Dos and Donts} | 
| 827 |  |  |  | 
| 828 |  |  | \subsection{Diagnostics Reference} | 
| 829 |  |  |  |