/[MITgcm]/manual/s_phys_pkgs/diagnostics.tex
ViewVC logotype

Diff of /manual/s_phys_pkgs/diagnostics.tex

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

revision 1.5 by molod, Fri Oct 15 18:40:33 2004 UTC revision 1.11 by molod, Fri Jul 15 18:58:21 2005 UTC
# Line 6  Line 6 
6    
7  \subsection{Introduction}  \subsection{Introduction}
8    
9    \noindent
10  This section of the documentation describes the Diagnostics package available within  This section of the documentation describes the Diagnostics package available within
11  the GCM.  In addition to a description of how to set and extract diagnostic quantities,  the GCM.  A large selection of model diagnostics is available for output.  
12  this document also provides a comprehensive list of all available diagnostic quantities  In addition to the diagnostic quantities pre-defined in the GCM, there exists
13  and a short description of how they are computed.  It should be noted that this document  the option, in any experiment, to define a new diagnostic quantity and include it
14  is not intended to be a complete documentation of the various packages used in the GCM,  as part of the diagnostic output with the addition of a single subroutine call in the
15  and the reader should refer to original publications and the appropriate sections of this  routine where the field is computed. As a matter of philosophy, no diagnostic is enabled
16  documentation for further insight.  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    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    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    
35  \subsection{Equations}  \subsection{Equations}
36  Not relevant.  Not relevant.
# Line 20  Not relevant. Line 38  Not relevant.
38  \subsection{Key Subroutines and Parameters}  \subsection{Key Subroutines and Parameters}
39  \label{sec:diagnostics:diagover}  \label{sec:diagnostics:diagover}
40    
41  A large selection of model diagnostics is available in the GCM.  At the time of  \noindent
42  this writing there are 280 different diagnostic quantities which can be enabled for an  There are several utilities within the GCM available to users to enable, disable,
43  experiment.  As a matter of philosophy, no diagnostic is enabled as default, thus each  clear, write and retrieve model diagnostics, and may be called from any routine.  
44  user must specify the exact diagnostic information required for an experiment.  This  The available utilities and the CALL sequences are listed below.
45  is accomplished by enabling the specific diagnostic of interest cataloged in the  
46  Diagnostic Menu (see Section \ref{sec:diagnostics:menu}).  \noindent
47  The Diagnostic Menu is a hard-wired enumeration of diagnostic quantities available within  {\bf diagnostics\_fill}:  This is the main user interface routine to the diagnostics
48  the GCM. Diagnostics are internally referred to by their associated number in the Diagnostic  package. This routine will increment the specified diagnostic quantity with a field
49  Menu.  Once a diagnostic is enabled, the GCM will continually increment an array  sent through the argument list.
50  specifically allocated for that diagnostic whenever the associated process for the  
51  diagnostic is computed.  Separate arrays are used both for the diagnostic quantity and  \noindent
52  its diagnostic counter which records how many times each diagnostic quantity has been  \begin{tabbing}
53  computed.  In addition special diagnostics, called ``Counter Diagnostics'', records the  XXXXXXXXX\=XXXXXX\= \kill
54  frequency of diagnostic updates separately for each model grid location.  \>        call diagnostics\_fill (arrayin, chardiag, levflg, nlevs, \\
55    \>              bibjflg, bi, bj, myThid) \\
56  The diagnostics are computed at various times and places within the GCM.    \\
57  Some diagnostics are computed on the A-grid (such as those within the fizhi routines),  where \>  arrayin  \>= Field to increment diagnostics array \\
58  while others are computed on the C-grid (those computed during the dynamics time-stepping).          \>  chardiag \>= Character *8 expression for diag to fill \\
59  Some diagnostics are scalars, while others are vectors.  Each of these possibilities requires        \>  levflg   \>= Integer flag for vertical levels: \\
60  separate tasks for A-grid to C-grid transformations and coordinate transformations.  Due        \>           \>= 0 indicates multiple (nlevs) levels incremented \\
61  to this complexity, and since the specific diagnostics enabled are User determined at the        \>           \>= -1 indicates multiple (nlevs) levels incremented, \\
62  time of the run,        \>           \> but in reverse vertical order \\
63  a diagnostic parameter has been developed and implemented into the GCM, defined as GDIAG,        \>           \> positive integer - WHICH single level to increment. \\
64  which contains information concerning various grid attributes of each diagnostic.  The GDIAG        \>  nlevs    \>= indicates Number of levels to be filled (1 if levflg gt 0) \\
65  array is internally defined as a character*8 variable, and is equivalenced to        \>  bibjflg  \>= Integer flag to indicate instructions for bi bj loop \\
66  a character*1 "parse" array in output in order to extract the grid-attribute information.        \>           \>= 0 indicates that the bi-bj loop must be done here \\
67  The GDIAG array is described in Table \ref{tab:diagnostics:gdiag.tabl}.        \>           \>= 1 indicates that the bi-bj loop is done OUTSIDE \\
68          \>           \>= 2 indicates that the bi-bj loop is done OUTSIDE \\
69          \>           \>    AND that we have been sent a local array \\
70          \>           \>    AND that the array has the shadow regions \\
71          \>           \>= 3 indicates that the bi-bj loop is done OUTSIDE \\
72          \>           \>    AND that we have been sent a local array \\
73          \>           \>    AND that the array has no shadow regions \\
74          \>  bi       \>= X-direction process(or) number - used for bibjflg=1-3 \\
75          \>  bj       \>= Y-direction process(or) number - used for bibjflg=1-3 \\
76          \>  myThid   \>= Current Thread number \\
77    \end{tabbing}
78    
79    \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    
84    \noindent
85    \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    
114    \noindent
115    \begin{tabbing}
116    XXXXXXXXX\=XXXXXX\= \kill
117    \> call diagnostics\_get\_pointers( diagName, ipoint, jpoint, myThid )
118    \\
119    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    \end{tabbing}
124    
125    \noindent
126    {\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    
133    \noindent
134    \begin{tabbing}
135    XXXXXXXXX\=XXXXXX\= \kill
136    \>        call getdiag (lev, undef, qtmp, ipoint, mate, bi, bj, myThid) \\
137    \\
138    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    \end{tabbing}
147    
148    \noindent
149    {\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    
154    \noindent
155    \begin{tabbing}
156    XXXXXXXXX\=XXXXXX\= \kill
157    \>        call diagnostics\_add2list( diagNum,diagName, diagCode, \\
158    \>        diagUnits, diagTitle, myThid ) \\
159    \\
160    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    \end{tabbing}
167    
168    \noindent
169    {\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    
173    \noindent
174    \begin{tabbing}
175    XXXXXXXXX\=XXXXXX\= \kill
176    \>        call diagnostics\_clrdiag (jpoint, ipoint, myThid) \\
177    \\
178    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    \end{tabbing}
182    
183    \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}  \begin{table}
195  \caption{Diagnostic Parsing Array}  \caption{Diagnostic Parsing Array}
# Line 77  Array & Value & Description \\ Line 220  Array & Value & Description \\
220  \end{center}  \end{center}
221  \end{table}  \end{table}
222    
223    
224    \noindent
225  As an example, consider a diagnostic whose associated GDIAG parameter is equal  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  to ``UU  002''.  From GDIAG we can determine that this diagnostic is a
227  U-vector component located at the C-grid U-point.  U-vector component located at the C-grid U-point.
228  Its corresponding V-component diagnostic is located in Diagnostic \# 002.  Its corresponding V-component diagnostic is located in Diagnostic \# 002.
229    
230    \noindent
231  In this way, each Diagnostic in the model has its attributes (ie. vector or scalar,  In this way, each Diagnostic in the model has its attributes (ie. vector or scalar,
232  A-Grid or C-grid, etc.) defined internally.  The Output routines  C-grid location, etc.) defined internally.  The Output routines use this information
233  use this information in order to determine  in order to determine what type of transformations need to be performed.  Any
234  what type of transformations need to be performed.  Thus, all Diagnostic  interpolations are done at the time of output rather than during each model step.
235  interpolations are done at the time of output rather than during each model dynamic step.  In this way the User has flexibility in determining the type of gridded data which
236  In this way the User now has more flexibility  is output.
 in determining the type of gridded data which is output.  
   
 There are several utilities within the GCM available to users to enable, disable,  
 clear, write and retrieve model diagnostics, and may be called from any routine.    
 The available utilities and the CALL sequences are listed below.  
237    
238  {\bf fill\_diag}:  This routine will increment  \subsection{Usage Notes}
239    \label{sec:diagnostics:usersguide}
 {\bf setdiag}:  This subroutine enables a diagnostic from the Diagnostic Menu, meaning  
 that space is allocated for the diagnostic and the model routines will increment the  
 diagnostic value during execution.  This routine is the underlying interface  
 between the user and the desired diagnostic.  The diagnostic is referenced by its diagnostic  
 number from the menu, and its calling sequence is given by:  
   
 \begin{tabbing}  
 XXXXXXXXX\=XXXXXX\= \kill  
 \>        call setdiag (num) \\  
 \\  
 where \>  num   \>= Diagnostic number from menu \\  
 \end{tabbing}  
240    
241  {\bf getdiag}:  This subroutine retrieves the value of a model diagnostic.  This routine  \noindent
242  is particulary useful when called from a user output routine, although it can be called  To use the diagnostics package, other than enabling it in packages.conf
243  from any routine.  This routine returns the time-averaged value of the diagnostic by  and turning the usediagnostics flag in data.pkg to .TRUE., there are two
244  dividing the current accumulated diagnostic value by its corresponding counter.  This  further steps the user must take to enable the diagnostics package for
245  routine does not change the value of the diagnostic itself, that is, it does not replace  output of quantities that are already defined in the GCM under an experiment's
246  the diagnostic with its time-average.  The calling sequence for this routine is givin by:  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    
255    \noindent
256    $\#$ Diagnostic Package Choices \\
257     $\&$diagnostics\_list \\
258      frequency(1) = 86400., \ \\
259       levels(1,1) = 1., \ \\
260       fields(1,1) = 'RSURF   ', \ \\
261       filename(1) = 'surface', \ \\
262      frequency(2) = 86400., \ \\
263       levels(1,2) = 1.,2.,3.,4.,5., \ \\
264       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     $\&$end \ \\
271    
272  \begin{tabbing}  \noindent
273  XXXXXXXXX\=XXXXXX\= \kill  In this example, there are two output files that will be generated
274  \>        call getdiag (lev,num,qtmp,undef) \\  for each tile and for each output time. The first set of output files
275  \\  has the prefix diagout1, does time averaging every 86400. seconds,
276  where \>  lev   \>= Model Level at which the diagnostic is desired \\  (frequency is 86400.), and will write fields which are multiple-level
277        \>  num   \>= Diagnostic number from menu \\  fields at output levels 1-5. The names of diagnostics quantities are
278        \>  qtmp  \>= Time-Averaged Diagnostic Output \\  UVEL and VVEL.  The second set of output files
279        \>  undef \>= Fill value to be used when diagnostic is undefined \\  has the prefix diagout2, does time averaging every 3600. seconds,
280  \end{tabbing}  includes fields which are multiple-level fields, levels output are 1-5,
281    and the names of diagnostics quantities are THETA and SALT.
282    
283  {\bf clrdiag}:  This subroutine initializes the values of model diagnostics to zero, and is  \noindent
284  particularly useful when called from user output routines to re-initialize diagnostics  The user must assure that enough computer memory is allocated for the diagnostics
285  during the run.  The calling sequence is:  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    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    accomplished by adding one of the ``User Diagnostic'' field names (UDIAG1 through
321    UDIAG10, for multi-level fields, or SDIAG1 through SDIAG10 for single level
322    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    desired for diagnostic output is computed.
326    
327    \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}  \begin{tabbing}
339  XXXXXXXXX\=XXXXXX\= \kill  XXXXXXXXX\=XXXXXX\= \kill
340  \>        call clrdiag (num) \\  \>      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  \\  \\
 where \>  num   \>= Diagnostic number from menu \\  
347  \end{tabbing}  \end{tabbing}
348    
349  {\bf zapdiag}:  This entry into subroutine SETDIAG disables model diagnostics, meaning  \noindent If the new diagnostic quantity is associated with either a vector
350  that the diagnostic is no longer available to the user.  The memory previously allocated  pair or a diagnostic counter, the diagCode argument must be filled with the
351  to the diagnostic is released when ZAPDIAG is invoked.  The calling sequence is given by:  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}  \begin{tabbing}
363  XXXXXXXXX\=XXXXXX\= \kill  XXXXXXXXX\=XXXXXX\= \kill
364  \>        call zapdiag (NUM) \\  \>      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  \\  \\
 where \>  num   \>= Diagnostic number from menu \\  
379  \end{tabbing}  \end{tabbing}
380    
 {\bf diagsize}:  We end this section with a discussion on the manner in which computer  
 memory   is allocated for diagnostics.   All GCM diagnostic quantities are stored in the  
 single diagnostic array QDIAG which is located in diagnostics.h, and has the form:  
   
 common /diagnostics/ qdiag(1-Olx,sNx+Olx,1-Olx,sNx+Olx,numdiags,Nsx,Nsy)  
   
 where numdiags is an Integer variable which should be  
 set equal to the number of enabled diagnostics, and qdiag is a three-dimensional  
 array.  The first two-dimensions of qdiag correspond to the horizontal dimension  
 of a given diagnostic, while the third dimension of qdiag is used to identify  
 specific diagnostic types.  
 In order to minimize the memory requirement of the model for diagnostics,  
 the default GCM executable is compiled with room for only one horizontal  
 diagnostic array, as shown in the above example.    
 In order for the User to enable more than 1 two-dimensional diagnostic,  
 the size of the diagnostics common must be expanded to accomodate the desired diagnostics.  
 This can be accomplished by manually changing the parameter numdiags in the  
 file \filelink{pkg/diagnostics/diagnostics\_SIZE.h}{pkg-diagnostics-diagnostics_SIZE.h}, or by allowing the  
 shell script (???????) to make this  
 change based on the choice of diagnostic output made in the namelist.  
   
 \subsection{Usage Notes}  
 \label{sec:diagnostics:usersguide}  
 To use the diagnostics package, other than enabling it in packages.conf  
 and turning the usediagnostics flag in data.pkg to .TRUE., a namelist  
 must be supplied in the run directory called data.diagnostics. The namelist  
 will activate a user-defined list of diagnostics quantities to be computed,  
 specify the frequency of output, the number of levels, and the name of  
 up to 10 separate output files. A sample data.diagnostics namelist file:  
   
 <<<<<<< diagnostics.tex  
 $\#$ Diagnostic Package Choices  
  $\&$diagnostics\_list  
 =======  
 \begin{verbatim}  
 \# Diagnostic Package Choices  
  \&diagnostics_list  
 >>>>>>> 1.4  
   frequency(1) = 10, \  
    levels(1,1) = 1.,2.,3.,4.,5., \  
    fields(1,1) = 'UVEL    ','VVEL    ', \  
    filename(1) = 'diagout1', \  
   frequency(2) = 100, \  
    levels(1,2) = 1.,2.,3.,4.,5., \  
    fields(1,2) = 'THETA   ','SALT    ', \  
    filename(2) = 'diagout2', \  
 <<<<<<< diagnostics.tex  
  $\&$end \  
 =======  
  \&end \  
 \end{verbatim}  
 >>>>>>> 1.4  
   
 In this example, there are two output files that will be generated  
 for each tile and for each output time. The first set of output files  
 has the prefix diagout1, does time averaging every 10 time steps,  
 for fields which are multiple-level fields the levels output are 1-5,  
 and the names of diagnostics quantities are UVEL and VVEL.  
 The second set of output files  
 has the prefix diagout2, does time averaging every 100 time steps,  
 for fields which are multiple-level fields the levels output are 1-5,  
 and the names of diagnostics quantities are THETA and SALT.  
381    
382  \newpage  \newpage
383    
384  \subsubsection{GCM Diagnostic Menu}  \subsubsection{GCM Diagnostic Menu}
385  \label{sec:diagnostics:menu}  \label{sec:diagnostics:menu}
386    
387  \begin{tabular}{lllll}  \begin{tabular}{llll}
388  \hline\hline  \hline\hline
389  N & NAME & UNITS & LEVELS & DESCRIPTION \\   NAME & UNITS & LEVELS & DESCRIPTION \\
390  \hline  \hline
391    
392  &\\  &\\
393  1 & UFLUX    &   $Newton/m^2$  &    1     SDIAG1   &             &    1  
          &\begin{minipage}[t]{3in}  
           {Surface U-Wind Stress on the atmosphere}  
          \end{minipage}\\  
 2 & VFLUX    &   $Newton/m^2$  &    1    
          &\begin{minipage}[t]{3in}  
           {Surface V-Wind Stress on the atmosphere}  
          \end{minipage}\\  
 3 & HFLUX    &   $Watts/m^2$  &    1    
394           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
395            {Surface Flux of Sensible Heat}            {User-Defined Surface Diagnostic-1}
396           \end{minipage}\\           \end{minipage}\\
397  4 & EFLUX    &   $Watts/m^2$  &    1     SDIAG2   &             &    1  
398           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
399            {Surface Flux of Latent Heat}            {User-Defined Surface Diagnostic-2}
400           \end{minipage}\\           \end{minipage}\\
401  5 & QICE     &   $Watts/m^2$  &    1     UDIAG1   &             &    Nrphys
402           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
403            {Heat Conduction through Sea-Ice}            {User-Defined Upper-Air Diagnostic-1}
404           \end{minipage}\\           \end{minipage}\\
405  6 & RADLWG   &   $Watts/m^2$ &    1     UDIAG2   &             &    Nrphys
406           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
407            {Net upward LW flux at the ground}            {User-Defined Upper-Air Diagnostic-2}
408           \end{minipage}\\           \end{minipage}\\
409  7 & RADSWG   &   $Watts/m^2$  &    1   SDIAG3   &             &    1  
410           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
411            {Net downward SW flux at the ground}            {User-Defined Surface Diagnostic-3}
412           \end{minipage}\\           \end{minipage}\\
413  8 & RI       &  $dimensionless$ &  Nrphys   SDIAG4   &             &    1  
414           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
415            {Richardson Number}            {User-Defined Surface Diagnostic-4}
416           \end{minipage}\\           \end{minipage}\\
417  9 & CT       &  $dimensionless$ &  1   SDIAG5   &             &    1  
418           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
419            {Surface Drag coefficient for T and Q}            {User-Defined Surface Diagnostic-5}
420           \end{minipage}\\           \end{minipage}\\
421  10 & CU       & $dimensionless$ &  1   SDIAG6   &             &    1  
422           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
423            {Surface Drag coefficient for U and V}            {User-Defined Surface Diagnostic-6}
424           \end{minipage}\\           \end{minipage}\\
425  11 & ET       &  $m^2/sec$ &  Nrphys   SDIAG7   &             &    1  
426           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
427            {Diffusivity coefficient for T and Q}            {User-Defined Surface Diagnostic-7}
428           \end{minipage}\\           \end{minipage}\\
429  12 & EU       &  $m^2/sec$ &  Nrphys   SDIAG8   &             &    1  
430           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
431            {Diffusivity coefficient for U and V}            {User-Defined Surface Diagnostic-8}
432           \end{minipage}\\           \end{minipage}\\
433  13 & TURBU    &  $m/sec/day$ &  Nrphys   SDIAG9   &             &    1  
434           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
435            {U-Momentum Changes due to Turbulence}            {User-Defined Surface Diagnostic-9}
436           \end{minipage}\\           \end{minipage}\\
437  14 & TURBV    &  $m/sec/day$ &  Nrphys   SDIAG10  &             &    1  
438           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
439            {V-Momentum Changes due to Turbulence}            {User-Defined Surface Diagnostic-1-}
440           \end{minipage}\\           \end{minipage}\\
441  15 & TURBT    &  $deg/day$ &  Nrphys   UDIAG3   &             &    Nrphys  
442           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
443            {Temperature Changes due to Turbulence}            {User-Defined Multi-Level Diagnostic-3}
444           \end{minipage}\\           \end{minipage}\\
445  16 & TURBQ    &  $g/kg/day$ &  Nrphys   UDIAG4   &             &    Nrphys  
446           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
447            {Specific Humidity Changes due to Turbulence}            {User-Defined Multi-Level Diagnostic-4}
448           \end{minipage}\\           \end{minipage}\\
449  17 & MOISTT   &   $deg/day$ &  Nrphys   UDIAG5   &             &    Nrphys  
450           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
451            {Temperature Changes due to Moist Processes}            {User-Defined Multi-Level Diagnostic-5}
452           \end{minipage}\\           \end{minipage}\\
453  18 & MOISTQ   &  $g/kg/day$ &  Nrphys   UDIAG6   &             &    Nrphys  
454           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
455            {Specific Humidity Changes due to Moist Processes}            {User-Defined Multi-Level Diagnostic-6}
456           \end{minipage}\\           \end{minipage}\\
457  19 & RADLW    &  $deg/day$ &  Nrphys   UDIAG7   &             &    Nrphys  
458           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
459            {Net Longwave heating rate for each level}            {User-Defined Multi-Level Diagnostic-7}
460           \end{minipage}\\           \end{minipage}\\
461  20 & RADSW    &  $deg/day$ &  Nrphys   UDIAG8   &             &    Nrphys  
462           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
463            {Net Shortwave heating rate for each level}            {User-Defined Multi-Level Diagnostic-8}
464           \end{minipage}\\           \end{minipage}\\
465  21 & PREACC   &  $mm/day$ &  1   UDIAG9   &             &    Nrphys  
466           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
467            {Total Precipitation}            {User-Defined Multi-Level Diagnostic-9}
468           \end{minipage}\\           \end{minipage}\\
469  22 & PRECON   &  $mm/day$ &  1   UDIAG10  &             &    Nrphys  
470           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
471            {Convective Precipitation}            {User-Defined Multi-Level Diagnostic-10}
472           \end{minipage}\\           \end{minipage}\\
473  23 & TUFLUX   &  $Newton/m^2$ &  Nrphys   SDIAGC   &             &    1  
474           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
475            {Turbulent Flux of U-Momentum}            {User-Defined Counted Surface Diagnostic}
476           \end{minipage}\\           \end{minipage}\\
477  24 & TVFLUX   &  $Newton/m^2$ &  Nrphys   SDIAGCC  &             &    1  
478           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
479            {Turbulent Flux of V-Momentum}            {User-Defined Counted Surface Diagnostic Counter}
480           \end{minipage}\\           \end{minipage}\\
481  25 & TTFLUX   &  $Watts/m^2$ &  Nrphys   ETAN     & $(hPa,m)$ &    1
482           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
483            {Turbulent Flux of Sensible Heat}            {Perturbation of Surface (pressure, height)}
484           \end{minipage}\\           \end{minipage}\\
485  26 & TQFLUX   &  $Watts/m^2$ &  Nrphys   ETANSQ   & $(hPa^2,m^2)$ & 1
486           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
487            {Turbulent Flux of Latent Heat}            {Square of Perturbation of Surface (pressure, height)}
488           \end{minipage}\\           \end{minipage}\\
489  27 & CN       &  $dimensionless$ &  1   DETADT2  & ${r-unit}^2/s^2$ & 1
490           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
491            {Neutral Drag Coefficient}            {Square of Eta (Surf.P,SSH) Tendency}
492           \end{minipage}\\           \end{minipage}\\
493  28 & WINDS     &  $m/sec$ &  1   THETA    & $deg K$ & Nr
494           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
495            {Surface Wind Speed}            {Potential Temperature}
496           \end{minipage}\\           \end{minipage}\\
497  29 & DTSRF     &  $deg$ &  1   SST      & $deg K$ & 1
498           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
499            {Air/Surface virtual temperature difference}            {Sea Surface Temperature}
500           \end{minipage}\\           \end{minipage}\\
501  30 & TG        &  $deg$ &  1   SALT     & $g/kg$ & Nr
502           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
503            {Ground temperature}            {Salt (or Water Vapor Mixing Ratio)}
504           \end{minipage}\\           \end{minipage}\\
505  31 & TS        &  $deg$ &  1   SSS      & $g/kg$ & 1
506           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
507            {Surface air temperature (Adiabatic from lowest model layer)}            {Sea Surface Salinity}
508           \end{minipage}\\           \end{minipage}\\
509  32 & DTG       &  $deg$ &  1   SALTanom & $g/kg$ & Nr
510           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
511            {Ground temperature adjustment}            {Salt anomaly (=SALT-35)}
512           \end{minipage}\\           \end{minipage}\\
   
513  \end{tabular}  \end{tabular}
514    \vspace{1.5in}
515    \vfill
516    
517  \newpage  \newpage
518  \vspace*{\fill}  \vspace*{\fill}
519  \begin{tabular}{lllll}  \begin{tabular}{llll}
520  \hline\hline  \hline\hline
521  N & NAME & UNITS & LEVELS & DESCRIPTION \\   NAME & UNITS & LEVELS & DESCRIPTION \\
522  \hline  \hline
523    
524  &\\  &\\
525  33 & QG        &  $g/kg$ &  1   UVEL     & $m/sec$ & Nr
526           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
527            {Ground specific humidity}            {U-Velocity}
528           \end{minipage}\\           \end{minipage}\\
529  34 & QS        &  $g/kg$ &  1   VVEL     & $m/sec$ & Nr
530           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
531            {Saturation surface specific humidity}            {V-Velocity}
532           \end{minipage}\\           \end{minipage}\\
533     UVEL\_k2  & $m/sec$ & 1
 &\\  
 35 & TGRLW    &    $deg$   &    1    
534           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
535            {Instantaneous ground temperature used as input to the            {U-Velocity}
            Longwave radiation subroutine}  
536           \end{minipage}\\           \end{minipage}\\
537  36 & ST4      &   $Watts/m^2$  &    1     VVEL\_k2  & $m/sec$ & 1
538           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
539            {Upward Longwave flux at the ground ($\sigma T^4$)}            {V-Velocity}
540           \end{minipage}\\           \end{minipage}\\
541  37 & OLR      &   $Watts/m^2$  &    1     WVEL     & $m/sec$ & Nr
542           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
543            {Net upward Longwave flux at the top of the model}            {Vertical-Velocity}
544           \end{minipage}\\           \end{minipage}\\
545  38 & OLRCLR   &   $Watts/m^2$  &    1     THETASQ  & $deg^2$ & Nr
546           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
547            {Net upward clearsky Longwave flux at the top of the model}            {Square of Potential Temperature}
548           \end{minipage}\\           \end{minipage}\\
549  39 & LWGCLR   &   $Watts/m^2$  &    1     SALTSQ   & $g^2/{kg}^2$ & Nr
550           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
551            {Net upward clearsky Longwave flux at the ground}            {Square of Salt (or Water Vapor Mixing Ratio)}
552           \end{minipage}\\           \end{minipage}\\
553  40 & LWCLR    &  $deg/day$ &  Nrphys   SALTSQan & $g^2/{kg}^2$ & Nr
554           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
555            {Net clearsky Longwave heating rate for each level}            {Square of Salt anomaly (=SALT-35)}
556           \end{minipage}\\           \end{minipage}\\
557  41 & TLW      &    $deg$   &  Nrphys   UVELSQ   & $m^2/sec^2$ & Nr
558           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
559            {Instantaneous temperature used as input to the Longwave radiation            {Square of U-Velocity}
           subroutine}  
560           \end{minipage}\\           \end{minipage}\\
561  42 & SHLW     &    $g/g$   &  Nrphys   VVELSQ   & $m^2/sec^2$ & Nr
562           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
563            {Instantaneous specific humidity used as input to the Longwave radiation            {Square of V-Velocity}
           subroutine}  
564           \end{minipage}\\           \end{minipage}\\
565  43 & OZLW     &    $g/g$   &  Nrphys   WVELSQ   & $m^2/sec^2$ & Nr
566           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
567            {Instantaneous ozone used as input to the Longwave radiation            {Square of Vertical-Velocity}
           subroutine}  
568           \end{minipage}\\           \end{minipage}\\
569  44 & CLMOLW   &    $0-1$   &  Nrphys   UV\_VEL\_C & $m^2/sec^2$ & Nr
570           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
571            {Maximum overlap cloud fraction used in the Longwave radiation            {Meridional Transport of Zonal Momentum (cell center)}
           subroutine}  
572           \end{minipage}\\           \end{minipage}\\
573  45 & CLDTOT   &    $0-1$   &  Nrphys   UV\_VEL\_Z & $m^2/sec^2$ & Nr
574           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
575            {Total cloud fraction used in the Longwave and Shortwave radiation            {Meridional Transport of Zonal Momentum (corner)}
           subroutines}  
576           \end{minipage}\\           \end{minipage}\\
577  46 & RADSWT   &    $Watts/m^2$   &  1   WU\_VEL   & $m^2/sec^2$ & Nr
578           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
579            {Incident Shortwave radiation at the top of the atmosphere}            {Vertical Transport of Zonal Momentum (cell center)}
580           \end{minipage}\\           \end{minipage}\\
581  47 & CLROSW   &    $0-1$   &  Nrphys   WV\_VEL   & $m^2/sec^2$ & Nr
582           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
583            {Random overlap cloud fraction used in the shortwave radiation            {Vertical Transport of Meridional Momentum (cell center)}
           subroutine}  
584           \end{minipage}\\           \end{minipage}\\
585  48 & CLMOSW   &    $0-1$   &  Nrphys   UVELMASS & $m/sec$ & Nr
586           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
587            {Maximum overlap cloud fraction used in the shortwave radiation            {Zonal Mass-Weighted Component of Velocity}
           subroutine}  
588           \end{minipage}\\           \end{minipage}\\
589  49 & EVAP     &    $mm/day$   &  1   VVELMASS & $m/sec$ & Nr
590           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
591            {Surface evaporation}            {Meridional Mass-Weighted Component of Velocity}
592           \end{minipage}\\           \end{minipage}\\
593  \end{tabular}   WVELMASS & $m/sec$ & Nr
 \vfill  
   
 \newpage  
 \vspace*{\fill}  
 \begin{tabular}{lllll}  
 \hline\hline  
 N & NAME & UNITS & LEVELS & DESCRIPTION \\  
 \hline  
   
 &\\  
 50 & DUDT     &    $m/sec/day$ &  Nrphys  
594           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
595            {Total U-Wind tendency}            {Vertical Mass-Weighted Component of Velocity}
596           \end{minipage}\\           \end{minipage}\\
597  51 & DVDT     &    $m/sec/day$ &  Nrphys   UTHMASS  & $m-deg/sec$ & Nr
598           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
599            {Total V-Wind tendency}            {Zonal Mass-Weight Transp of Pot Temp}
600           \end{minipage}\\           \end{minipage}\\
601  52 & DTDT     &    $deg/day$ &  Nrphys   VTHMASS  & $m-deg/sec$ & Nr
602           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
603            {Total Temperature tendency}            {Meridional Mass-Weight Transp of Pot Temp}
604           \end{minipage}\\           \end{minipage}\\
605  53 & DQDT     &    $g/kg/day$ &  Nrphys   WTHMASS  & $m-deg/sec$ & Nr
606           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
607            {Total Specific Humidity tendency}            {Vertical Mass-Weight Transp of Pot Temp}
608           \end{minipage}\\           \end{minipage}\\
609  54 & USTAR    &    $m/sec$ &  1   USLTMASS & $m-kg/sec-kg$ & Nr
610           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
611            {Surface USTAR wind}            {Zonal Mass-Weight Transp of Salt (or W.Vap Mix Rat.)}
612           \end{minipage}\\           \end{minipage}\\
613  55 & Z0       &    $m$ &  1   VSLTMASS & $m-kg/sec-kg$ & Nr
614           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
615            {Surface roughness}            {Meridional Mass-Weight Transp of Salt (or W.Vap Mix Rat.)}
616           \end{minipage}\\           \end{minipage}\\
617  56 & FRQTRB   &    $0-1$ &  Nrphys-1   WSLTMASS & $m-kg/sec-kg$ & Nr
618           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
619            {Frequency of Turbulence}            {Vertical Mass-Weight Transp of Salt (or W.Vap Mix Rat.)}
620           \end{minipage}\\           \end{minipage}\\
621  57 & PBL      &    $mb$ &  1   UVELTH   & $m-deg/sec$ & Nr
622           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
623            {Planetary Boundary Layer depth}            {Zonal Transp of Pot Temp}
624           \end{minipage}\\           \end{minipage}\\
625  58 & SWCLR    &  $deg/day$ &  Nrphys   VVELTH   & $m-deg/sec$ & Nr
626           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
627            {Net clearsky Shortwave heating rate for each level}            {Meridional Transp of Pot Temp}
628           \end{minipage}\\           \end{minipage}\\
629  59 & OSR      &   $Watts/m^2$  &    1   WVELTH   & $m-deg/sec$ & Nr
630           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
631            {Net downward Shortwave flux at the top of the model}            {Vertical Transp of Pot Temp}
632           \end{minipage}\\           \end{minipage}\\
633  60 & OSRCLR   &   $Watts/m^2$  &    1     UVELSLT  & $m-kg/sec-kg$ & Nr
634           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
635            {Net downward clearsky Shortwave flux at the top of the model}            {Zonal Transp of Salt (or W.Vap Mix Rat.)}
636           \end{minipage}\\           \end{minipage}\\
637  61 & CLDMAS   &   $kg / m^2$  &    Nrphys   VVELSLT  & $m-kg/sec-kg$ & Nr
638           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
639            {Convective cloud mass flux}            {Meridional Transp of Salt (or W.Vap Mix Rat.)}
640           \end{minipage}\\           \end{minipage}\\
641  62 & UAVE     &   $m/sec$  &    Nrphys   WVELSLT  & $m-kg/sec-kg$ & Nr
642           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
643            {Time-averaged $u-Wind$}            {Vertical Transp of Salt (or W.Vap Mix Rat.)}
644           \end{minipage}\\           \end{minipage}\\
645  63 & VAVE     &   $m/sec$  &    Nrphys  \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}           &\begin{minipage}[t]{3in}
659            {Time-averaged $v-Wind$}            {Density Anomaly (=Rho-rhoConst)}
660           \end{minipage}\\           \end{minipage}\\
661  64 & TAVE     &   $deg$  &    Nrphys   RHOANOSQ & $kg^2/m^6$  &  Nr  
662           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
663            {Time-averaged $Temperature$}            {Square of Density Anomaly (=(Rho-rhoConst))}
664           \end{minipage}\\           \end{minipage}\\
665  65 & QAVE     &   $g/g$  &    Nrphys   URHOMASS & $kg/m^2/s$  &  Nr  
666           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
667            {Time-averaged $Specific \, \, Humidity$}            {Zonal Transport of Density}
668           \end{minipage}\\           \end{minipage}\\
669  66 & PAVE     &   $mb$  &    1   VRHOMASS & $kg/m^2/s$  &  Nr  
670           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
671            {Time-averaged $p_{surf} - p_{top}$}            {Meridional Transport of Density}
672           \end{minipage}\\           \end{minipage}\\
673  67 & QQAVE    &   $(m/sec)^2$  &    Nrphys   WRHOMASS & $kg/m^2/s$  &  Nr  
674           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
675            {Time-averaged $Turbulent Kinetic Energy$}            {Vertical Transport of Potential Density}
676           \end{minipage}\\           \end{minipage}\\
677  68 & SWGCLR   &   $Watts/m^2$  &    1     PHIHYD   & $m^2/s^2 $  &  Nr  
678           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
679            {Net downward clearsky Shortwave flux at the ground}            {Hydrostatic (ocean) pressure / (atmos) geo-Potential}
680           \end{minipage}\\           \end{minipage}\\
681  69 & SDIAG1   &             &    1     PHIHYDSQ & $m^4/s^4 $  &  Nr  
682           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
683            {User-Defined Surface Diagnostic-1}            {Square of Hyd. (ocean) press / (atmos) geoPotential}
684           \end{minipage}\\           \end{minipage}\\
685  70 & SDIAG2   &             &    1     PHIBOT   & $m^2/s^2 $  &  Nr  
686           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
687            {User-Defined Surface Diagnostic-2}            {ocean bottom pressure / top. atmos geo-Potential}
688           \end{minipage}\\           \end{minipage}\\
689  71 & UDIAG1   &             &    Nrphys   PHIBOTSQ & $m^4/s^4 $  &  Nr  
690           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
691            {User-Defined Upper-Air Diagnostic-1}            {Square of ocean bottom pressure / top. geo-Potential}
692           \end{minipage}\\           \end{minipage}\\
693  72 & UDIAG2   &             &    Nrphys   DRHODR   & $kg/m^3/{r-unit}$ & Nr
694           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
695            {User-Defined Upper-Air Diagnostic-2}            {Stratification: d.Sigma/dr}
696           \end{minipage}\\           \end{minipage}\\
697  73 & DIABU    & $m/sec/day$ &    Nrphys   VISCA4   & $m^4/sec$ & 1
698           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
699            {Total Diabatic forcing on $u-Wind$}            {Biharmonic Viscosity Coefficient}
700           \end{minipage}\\           \end{minipage}\\
701  74 & DIABV    & $m/sec/day$ &    Nrphys   VISCAH   & $m^2/sec$ & 1
702           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
703            {Total Diabatic forcing on $v-Wind$}            {Harmonic Viscosity Coefficient}
704           \end{minipage}\\           \end{minipage}\\
705  75 & DIABT    & $deg/day$ &    Nrphys   TAUX     & $N/m^2        $ & 1
706           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
707            {Total Diabatic forcing on $Temperature$}            {zonal surface wind stress, >0 increases uVel}
708           \end{minipage}\\           \end{minipage}\\
709  76 & DIABQ    & $g/kg/day$ &    Nrphys   TAUY     & $N/m^2        $ & 1
710           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
711            {Total Diabatic forcing on $Specific \, \, Humidity$}            {meridional surf. wind stress, >0 increases vVel}
712           \end{minipage}\\           \end{minipage}\\
713     TFLUX    & $W/m^2        $ & 1
 \end{tabular}  
 \vfill  
   
 \newpage  
 \vspace*{\fill}  
 \begin{tabular}{lllll}  
 \hline\hline  
 N & NAME & UNITS & LEVELS & DESCRIPTION \\  
 \hline  
   
 77 & VINTUQ  & $m/sec \cdot g/kg$ &    1  
714           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
715            {Vertically integrated $u \, q$}            {net surface heat flux, >0 increases theta}
716           \end{minipage}\\           \end{minipage}\\
717  78 & VINTVQ  & $m/sec \cdot g/kg$ &    1   TRELAX   & $W/m^2        $ & 1
718           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
719            {Vertically integrated $v \, q$}            {surface temperature relaxation, >0 increases theta}
720           \end{minipage}\\           \end{minipage}\\
721  79 & VINTUT  & $m/sec \cdot deg$ &    1   TICE     & $W/m^2        $ & 1
722           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
723            {Vertically integrated $u \, T$}            {heat from melt/freeze of sea-ice, >0 increases theta}
724           \end{minipage}\\           \end{minipage}\\
725  80 & VINTVT  & $m/sec \cdot deg$ &    1   SFLUX    & $g/m^2/s      $ & 1
726           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
727            {Vertically integrated $v \, T$}            {net surface salt flux, >0 increases salt}
728           \end{minipage}\\           \end{minipage}\\
729  81 & CLDFRC  & $0-1$ &    1   SRELAX   & $g/m^2/s      $ & 1
730           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
731            {Total Cloud Fraction}            {surface salinity relaxation, >0 increases salt}
732           \end{minipage}\\           \end{minipage}\\
733  82 & QINT    & $gm/cm^2$ &    1   PRESSURE & $Pa           $ & Nr
734           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
735            {Precipitable water}            {Atmospheric Pressure (Pa)}
736           \end{minipage}\\           \end{minipage}\\
737  83 & U2M     & $m/sec$ &    1   ADVr\_TH  & $K.Pa.m^2/s   $ & Nr
738           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
739            {U-Wind at 2 meters}            {Vertical   Advective Flux of Pot.Temperature}
740           \end{minipage}\\           \end{minipage}\\
741  84 & V2M     & $m/sec$ &    1   ADVx\_TH  & $K.Pa.m^2/s   $ & Nr
742           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
743            {V-Wind at 2 meters}            {Zonal      Advective Flux of Pot.Temperature}
744           \end{minipage}\\           \end{minipage}\\
745  85 & T2M     & $deg$ &    1   ADVy\_TH  & $K.Pa.m^2/s   $ & Nr
746           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
747            {Temperature at 2 meters}            {Meridional Advective Flux of Pot.Temperature}
748           \end{minipage}\\           \end{minipage}\\
749  86 & Q2M     & $g/kg$ &    1   DFrE\_TH  & $K.Pa.m^2/s   $ & Nr
750           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
751            {Specific Humidity at 2 meters}            {Vertical Diffusive Flux of Pot.Temperature (Explicit part)}
752           \end{minipage}\\           \end{minipage}\\
753  87 & U10M    & $m/sec$ &    1   DIFx\_TH  & $K.Pa.m^2/s   $ & Nr
754           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
755            {U-Wind at 10 meters}            {Zonal      Diffusive Flux of Pot.Temperature}
756           \end{minipage}\\           \end{minipage}\\
757  88 & V10M    & $m/sec$ &    1   DIFy\_TH  & $K.Pa.m^2/s   $ & Nr
758           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
759            {V-Wind at 10 meters}            {Meridional Diffusive Flux of Pot.Temperature}
760           \end{minipage}\\           \end{minipage}\\
761  89 & T10M    & $deg$ &    1   DFrI\_TH  & $K.Pa.m^2/s   $ & Nr
762           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
763            {Temperature at 10 meters}            {Vertical Diffusive Flux of Pot.Temperature (Implicit part)}
764           \end{minipage}\\           \end{minipage}\\
765  90 & Q10M    & $g/kg$ &    1   ADVr\_SLT & $g/kg.Pa.m^2/s$ & Nr
766           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
767            {Specific Humidity at 10 meters}            {Vertical   Advective Flux of Water-Vapor}
768           \end{minipage}\\           \end{minipage}\\
769  91 & DTRAIN  & $kg/m^2$ &    Nrphys   ADVx\_SLT & $g/kg.Pa.m^2/s$ & Nr
770           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
771            {Detrainment Cloud Mass Flux}            {Zonal      Advective Flux of Water-Vapor}
772           \end{minipage}\\           \end{minipage}\\
773  92 & QFILL   & $g/kg/day$ &    Nrphys   ADVy\_SLT & $g/kg.Pa.m^2/s$ & Nr
774           &\begin{minipage}[t]{3in}           &\begin{minipage}[t]{3in}
775            {Filling of negative specific humidity}            {Meridional Advective Flux of Water-Vapor}
776           \end{minipage}\\           \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             \end{minipage}\\
801     DFrI\_SLT & $g/kg.Pa.m^2/s$ & Nr
802             &\begin{minipage}[t]{3in}
803              {Vertical Diffusive Flux of Water-Vapor (Implicit part)}
804             \end{minipage}\\
805  \end{tabular}  \end{tabular}
806  \vspace{1.5in}  \vspace{1.5in}
807  \vfill  \vfill
# Line 655  where $TTOT = {{\bf NQDIAG} \over \Delta Line 823  where $TTOT = {{\bf NQDIAG} \over \Delta
823  output frequency of the diagnostic, and $\Delta t$ is  output frequency of the diagnostic, and $\Delta t$ is
824  the timestep over which the diagnostic is updated.    the timestep over which the diagnostic is updated.  
825    
 {\bf 1)  \underline {UFLUX} Surface Zonal Wind Stress on the Atmosphere ($Newton/m^2$) }  
   
 The zonal wind stress is the turbulent flux of zonal momentum from  
 the surface. See section 3.3 for a description of the surface layer parameterization.  
 \[  
 {\bf UFLUX} =  - \rho C_D W_s u \hspace{1cm}where: \hspace{.2cm}C_D = C^2_u  
 \]  
 where $\rho$ = the atmospheric density at the surface, $C_{D}$ is the surface  
 drag coefficient, $C_u$ is the dimensionless surface exchange coefficient for momentum  
 (see diagnostic number 10), $W_s$ is the magnitude of the surface layer wind, and $u$ is  
 the zonal wind in the lowest model layer.  
 \\  
   
   
 {\bf 2)  \underline {VFLUX} Surface Meridional Wind Stress on the Atmosphere ($Newton/m^2$) }  
   
 The meridional wind stress is the turbulent flux of meridional momentum from  
 the surface. See section 3.3 for a description of the surface layer parameterization.  
 \[  
 {\bf VFLUX} =  - \rho C_D W_s v \hspace{1cm}where: \hspace{.2cm}C_D = C^2_u  
 \]  
 where $\rho$ = the atmospheric density at the surface, $C_{D}$ is the surface  
 drag coefficient, $C_u$ is the dimensionless surface exchange coefficient for momentum  
 (see diagnostic number 10), $W_s$ is the magnitude of the surface layer wind, and $v$ is  
 the meridional wind in the lowest model layer.  
 \\  
   
 {\bf 3)  \underline {HFLUX} Surface Flux of Sensible Heat ($Watts/m^2$) }  
   
 The turbulent flux of sensible heat from the surface to the atmosphere is a function of the  
 gradient of virtual potential temperature and the eddy exchange coefficient:  
 \[  
 {\bf HFLUX} =  P^{\kappa}\rho c_{p} C_{H} W_s (\theta_{surface} - \theta_{Nrphys})  
 \hspace{1cm}where: \hspace{.2cm}C_H = C_u C_t  
 \]  
 where $\rho$ = the atmospheric density at the surface, $c_{p}$ is the specific  
 heat of air, $C_{H}$ is the dimensionless surface heat transfer coefficient, $W_s$ is the  
 magnitude of the surface layer wind, $C_u$ is the dimensionless surface exchange coefficient  
 for momentum (see diagnostic number 10), $C_t$ is the dimensionless surface exchange coefficient  
 for heat and moisture (see diagnostic number 9), and $\theta$ is the potential temperature  
 at the surface and at the bottom model level.  
 \\  
   
   
 {\bf 4)  \underline {EFLUX} Surface Flux of Latent Heat ($Watts/m^2$) }  
   
 The turbulent flux of latent heat from the surface to the atmosphere is a function of the  
 gradient of moisture, the potential evapotranspiration fraction and the eddy exchange coefficient:  
 \[  
 {\bf EFLUX} =  \rho \beta L C_{H} W_s (q_{surface} - q_{Nrphys})  
 \hspace{1cm}where: \hspace{.2cm}C_H = C_u C_t  
 \]  
 where $\rho$ = the atmospheric density at the surface, $\beta$ is the fraction of  
 the potential evapotranspiration actually evaporated, L is the latent  
 heat of evaporation, $C_{H}$ is the dimensionless surface heat transfer coefficient, $W_s$ is the  
 magnitude of the surface layer wind, $C_u$ is the dimensionless surface exchange coefficient  
 for momentum (see diagnostic number 10), $C_t$ is the dimensionless surface exchange coefficient  
 for heat and moisture (see diagnostic number 9), and $q_{surface}$ and $q_{Nrphys}$ are the specific  
 humidity at the surface and at the bottom model level, respectively.  
 \\  
   
 {\bf 5)  \underline {QICE} Heat Conduction Through Sea Ice ($Watts/m^2$) }  
   
 Over sea ice there is an additional source of energy at the surface due to the heat  
 conduction from the relatively warm ocean through the sea ice. The heat conduction  
 through sea ice represents an additional energy source term for the ground temperature equation.  
   
 \[  
 {\bf QICE} = {C_{ti} \over {H_i}} (T_i-T_g)  
 \]  
   
 where $C_{ti}$ is the thermal conductivity of ice, $H_i$ is the ice thickness, assumed to  
 be $3 \hspace{.1cm} m$ where sea ice is present, $T_i$ is 273 degrees Kelvin, and  
 $T_g$ is the temperature of the sea ice.  
   
 NOTE: QICE is not available through model version 5.3, but is available in subsequent versions.  
 \\  
   
   
 {\bf 6) \underline {RADLWG} Net upward Longwave Flux at the surface ($Watts/m^2$)}  
   
 \begin{eqnarray*}  
 {\bf RADLWG} & =  & F_{LW,Nrphys+1}^{Net} \\  
              & =  & F_{LW,Nrphys+1}^\uparrow - F_{LW,Nrphys+1}^\downarrow  
 \end{eqnarray*}  
 \\  
 where Nrphys+1 indicates the lowest model edge-level, or $p = p_{surf}$.  
 $F_{LW}^\uparrow$ is  
 the upward Longwave flux and $F_{LW}^\downarrow$ is the downward Longwave flux.  
 \\  
   
 {\bf 7) \underline {RADSWG} Net downard shortwave Flux at the surface ($Watts/m^2$)}  
   
 \begin{eqnarray*}  
 {\bf RADSWG} & =  & F_{SW,Nrphys+1}^{Net} \\  
              & =  & F_{SW,Nrphys+1}^\downarrow - F_{SW,Nrphys+1}^\uparrow  
 \end{eqnarray*}  
 \\  
 where Nrphys+1 indicates the lowest model edge-level, or $p = p_{surf}$.  
 $F_{SW}^\downarrow$ is  
 the downward Shortwave flux and $F_{SW}^\uparrow$ is the upward Shortwave flux.  
 \\  
   
   
 \noindent  
 {\bf 8)  \underline {RI} Richardson Number} ($dimensionless$)  
   
 \noindent  
 The non-dimensional stability indicator is the ratio of the buoyancy to the shear:  
 \[  
 {\bf RI} = { { {g \over \theta_v} \pp {\theta_v}{z} } \over { (\pp{u}{z})^2 + (\pp{v}{z})^2 } }  
  =  {  {c_p \pp{\theta_v}{z} \pp{P^ \kappa}{z} } \over { (\pp{u}{z})^2 + (\pp{v}{z})^2 } }  
 \]  
 \\  
 where we used the hydrostatic equation:  
 \[  
 {\pp{\Phi}{P^ \kappa}} = c_p \theta_v  
 \]  
 Negative values indicate unstable buoyancy {\bf{AND}} shear, small positive values ($<0.4$)  
 indicate dominantly unstable shear, and large positive values indicate dominantly stable  
 stratification.  
 \\  
   
 \noindent  
 {\bf 9)  \underline {CT}  Surface Exchange Coefficient for Temperature and Moisture ($dimensionless$) }  
   
 \noindent  
 The surface exchange coefficient is obtained from the similarity functions for the stability  
  dependant flux profile relationships:  
 \[  
 {\bf CT} = -{( {\overline{w^{\prime}\theta^{\prime}}}) \over {u_* \Delta \theta }} =  
 -{( {\overline{w^{\prime}q^{\prime}}}) \over {u_* \Delta q }} =  
 { k \over { (\psi_{h} + \psi_{g}) } }  
 \]  
 where $\psi_h$ is the surface layer non-dimensional temperature change and $\psi_g$ is the  
 viscous sublayer non-dimensional temperature or moisture change:  
 \[  
 \psi_{h} = {\int_{\zeta_{0}}^{\zeta} {\phi_{h} \over \zeta} d \zeta} \hspace{1cm} and  
 \hspace{1cm} \psi_{g} = { 0.55 (Pr^{2/3} - 0.2) \over \nu^{1/2} }  
 (h_{0}u_{*} - h_{0_{ref}}u_{*_{ref}})^{1/2}  
 \]  
 and:  
 $h_{0} = 30z_{0}$ with a maximum value over land of 0.01  
   
 \noindent  
 $\phi_h$ is the similarity function of $\zeta$, which expresses the stability dependance of  
 the temperature and moisture gradients, specified differently for stable and unstable  
 layers according to Helfand and Schubert, 1993. k is the Von Karman constant, $\zeta$ is the  
 non-dimensional stability parameter, Pr is the Prandtl number for air, $\nu$ is the molecular  
 viscosity, $z_{0}$ is the surface roughness length, $u_*$ is the surface stress velocity  
 (see diagnostic number 67), and the subscript ref refers to a reference value.  
 \\  
   
 \noindent  
 {\bf 10)  \underline {CU}  Surface Exchange Coefficient for Momentum ($dimensionless$) }  
   
 \noindent  
 The surface exchange coefficient is obtained from the similarity functions for the stability  
  dependant flux profile relationships:  
 \[  
 {\bf CU} = {u_* \over W_s} = { k \over \psi_{m} }  
 \]  
 where $\psi_m$ is the surface layer non-dimensional wind shear:  
 \[  
 \psi_{m} = {\int_{\zeta_{0}}^{\zeta} {\phi_{m} \over \zeta} d \zeta}  
 \]  
 \noindent  
 $\phi_m$ is the similarity function of $\zeta$, which expresses the stability dependance of  
 the temperature and moisture gradients, specified differently for stable and unstable layers  
 according to Helfand and Schubert, 1993. k is the Von Karman constant, $\zeta$ is the  
 non-dimensional stability parameter, $u_*$ is the surface stress velocity  
 (see diagnostic number 67), and $W_s$ is the magnitude of the surface layer wind.  
 \\  
   
 \noindent  
 {\bf 11)  \underline {ET}  Diffusivity Coefficient for Temperature and Moisture ($m^2/sec$) }  
   
 \noindent  
 In the level 2.5 version of the Mellor-Yamada (1974) hierarchy, the turbulent heat or  
 moisture flux for the atmosphere above the surface layer can be expressed as a turbulent  
 diffusion coefficient $K_h$ times the negative of the gradient of potential temperature  
 or moisture. In the Helfand and Labraga (1988) adaptation of this closure, $K_h$  
 takes the form:  
 \[  
 {\bf ET} = K_h = -{( {\overline{w^{\prime}\theta_v^{\prime}}}) \over {\pp{\theta_v}{z}} }  
  = \left\{ \begin{array}{l@{\quad\mbox{for}\quad}l} q \, \ell \, S_H(G_M,G_H) & \mbox{decaying turbulence}  
 \\ { q^2 \over {q_e} } \, \ell \, S_{H}(G_{M_e},G_{H_e}) & \mbox{growing turbulence} \end{array} \right.  
 \]  
 where $q$ is the turbulent velocity, or $\sqrt{2*turbulent \hspace{.2cm} kinetic \hspace{.2cm}  
 energy}$, $q_e$ is the turbulence velocity derived from the more simple level 2.0 model,  
 which describes equilibrium turbulence, $\ell$ is the master length scale related to the layer  
 depth,  
 $S_H$ is a function of $G_H$ and $G_M$, the dimensionless buoyancy and  
 wind shear parameters, respectively, or a function of $G_{H_e}$ and $G_{M_e}$, the equilibrium  
 dimensionless buoyancy and wind shear  
 parameters.   Both $G_H$ and $G_M$, and their equilibrium values $G_{H_e}$ and $G_{M_e}$,  
 are functions of the Richardson number.  
   
 \noindent  
 For the detailed equations and derivations of the modified level 2.5 closure scheme,  
 see Helfand and Labraga, 1988.  
   
 \noindent  
 In the surface layer, ${\bf {ET}}$ is the exchange coefficient for heat and moisture,  
 in units of $m/sec$, given by:  
 \[  
 {\bf ET_{Nrphys}} =  C_t * u_* = C_H W_s  
 \]  
 \noindent  
 where $C_t$ is the dimensionless exchange coefficient for heat and moisture from the  
 surface layer similarity functions (see diagnostic number 9), $u_*$ is the surface  
 friction velocity (see diagnostic number 67), $C_H$ is the heat transfer coefficient,  
 and $W_s$ is the magnitude of the surface layer wind.  
 \\  
   
 \noindent  
 {\bf 12)  \underline {EU}  Diffusivity Coefficient for Momentum ($m^2/sec$) }  
   
 \noindent    
 In the level 2.5 version of the Mellor-Yamada (1974) hierarchy, the turbulent heat  
 momentum flux for the atmosphere above the surface layer can be expressed as a turbulent  
 diffusion coefficient $K_m$ times the negative of the gradient of the u-wind.  
 In the Helfand and Labraga (1988) adaptation of this closure, $K_m$  
 takes the form:  
 \[  
 {\bf EU} = K_m = -{( {\overline{u^{\prime}w^{\prime}}}) \over {\pp{U}{z}} }  
  = \left\{ \begin{array}{l@{\quad\mbox{for}\quad}l} q \, \ell \, S_M(G_M,G_H) & \mbox{decaying turbulence}  
 \\ { q^2 \over {q_e} } \, \ell \, S_{M}(G_{M_e},G_{H_e}) & \mbox{growing turbulence} \end{array} \right.  
 \]  
 \noindent  
 where $q$ is the turbulent velocity, or $\sqrt{2*turbulent \hspace{.2cm} kinetic \hspace{.2cm}  
 energy}$, $q_e$ is the turbulence velocity derived from the more simple level 2.0 model,  
 which describes equilibrium turbulence, $\ell$ is the master length scale related to the layer  
 depth,  
 $S_M$ is a function of $G_H$ and $G_M$, the dimensionless buoyancy and  
 wind shear parameters, respectively, or a function of $G_{H_e}$ and $G_{M_e}$, the equilibrium  
 dimensionless buoyancy and wind shear  
 parameters.   Both $G_H$ and $G_M$, and their equilibrium values $G_{H_e}$ and $G_{M_e}$,  
 are functions of the Richardson number.  
   
 \noindent  
 For the detailed equations and derivations of the modified level 2.5 closure scheme,  
 see Helfand and Labraga, 1988.  
   
 \noindent  
 In the surface layer, ${\bf {EU}}$ is the exchange coefficient for momentum,  
 in units of $m/sec$, given by:  
 \[  
 {\bf EU_{Nrphys}} = C_u * u_* = C_D W_s  
 \]  
 \noindent  
 where $C_u$ is the dimensionless exchange coefficient for momentum from the surface layer  
 similarity functions (see diagnostic number 10), $u_*$ is the surface friction velocity  
 (see diagnostic number 67), $C_D$ is the surface drag coefficient, and $W_s$ is the  
 magnitude of the surface layer wind.  
 \\  
   
 \noindent  
 {\bf 13)  \underline {TURBU}  Zonal U-Momentum changes due to Turbulence ($m/sec/day$) }  
   
 \noindent  
 The tendency of U-Momentum due to turbulence is written:  
 \[  
 {\bf TURBU} = {\pp{u}{t}}_{turb} = {\pp{}{z} }{(- \overline{u^{\prime}w^{\prime}})}  
  = {\pp{}{z} }{(K_m \pp{u}{z})}  
 \]  
   
 \noindent  
 The Helfand and Labraga level 2.5 scheme models the turbulent  
 flux of u-momentum in terms of $K_m$, and the equation has the form of a diffusion  
 equation.  
   
 \noindent  
 {\bf 14)  \underline {TURBV}  Meridional V-Momentum changes due to Turbulence ($m/sec/day$) }  
   
 \noindent  
 The tendency of V-Momentum due to turbulence is written:  
 \[  
 {\bf TURBV} = {\pp{v}{t}}_{turb} = {\pp{}{z} }{(- \overline{v^{\prime}w^{\prime}})}  
  = {\pp{}{z} }{(K_m \pp{v}{z})}  
 \]  
   
 \noindent  
 The Helfand and Labraga level 2.5 scheme models the turbulent  
 flux of v-momentum in terms of $K_m$, and the equation has the form of a diffusion  
 equation.  
 \\  
   
 \noindent  
 {\bf 15)  \underline {TURBT}  Temperature changes due to Turbulence ($deg/day$) }  
   
 \noindent  
 The tendency of temperature due to turbulence is written:  
 \[  
 {\bf TURBT} = {\pp{T}{t}} = P^{\kappa}{\pp{\theta}{t}}_{turb} =  
 P^{\kappa}{\pp{}{z} }{(- \overline{w^{\prime}\theta^{\prime}})}  
  = P^{\kappa}{\pp{}{z} }{(K_h \pp{\theta_v}{z})}  
 \]  
   
 \noindent  
 The Helfand and Labraga level 2.5 scheme models the turbulent  
 flux of temperature in terms of $K_h$, and the equation has the form of a diffusion  
 equation.  
 \\  
   
 \noindent  
 {\bf 16)  \underline {TURBQ}  Specific Humidity changes due to Turbulence ($g/kg/day$) }  
   
 \noindent  
 The tendency of specific humidity due to turbulence is written:  
 \[  
 {\bf TURBQ} = {\pp{q}{t}}_{turb} = {\pp{}{z} }{(- \overline{w^{\prime}q^{\prime}})}  
  = {\pp{}{z} }{(K_h \pp{q}{z})}  
 \]  
   
 \noindent  
 The Helfand and Labraga level 2.5 scheme models the turbulent  
 flux of temperature in terms of $K_h$, and the equation has the form of a diffusion  
 equation.  
 \\  
   
 \noindent  
 {\bf 17)  \underline {MOISTT} Temperature Changes Due to Moist Processes ($deg/day$) }  
   
 \noindent  
 \[  
 {\bf MOISTT} = \left. {\pp{T}{t}}\right|_{c} + \left. {\pp{T}{t}} \right|_{ls}  
 \]  
 where:  
 \[  
 \left.{\pp{T}{t}}\right|_{c} = R \sum_i \left( \alpha { m_B \over c_p} \Gamma_s \right)_i  
 \hspace{.4cm} and  
 \hspace{.4cm} \left.{\pp{T}{t}}\right|_{ls} = {L \over c_p } (q^*-q)  
 \]  
 and  
 \[  
 \Gamma_s = g \eta \pp{s}{p}  
 \]  
   
 \noindent  
 The subscript $c$ refers to convective processes, while the subscript $ls$ refers to large scale  
 precipitation processes, or supersaturation rain.  
 The summation refers to contributions from each cloud type called by RAS.    
 The dry static energy is given  
 as $s$, the convective cloud base mass flux is given as $m_B$, and the cloud entrainment is  
 given as $\eta$, which are explicitly defined in Section \ref{sec:fizhi:mc},  
 the description of the convective parameterization.  The fractional adjustment, or relaxation  
 parameter, for each cloud type is given as $\alpha$, while  
 $R$ is the rain re-evaporation adjustment.  
 \\  
   
 \noindent  
 {\bf 18)  \underline {MOISTQ} Specific Humidity Changes Due to Moist Processes ($g/kg/day$) }  
   
 \noindent  
 \[  
 {\bf MOISTQ} = \left. {\pp{q}{t}}\right|_{c} + \left. {\pp{q}{t}} \right|_{ls}  
 \]  
 where:  
 \[  
 \left.{\pp{q}{t}}\right|_{c} = R \sum_i \left( \alpha { m_B \over {L}}(\Gamma_h-\Gamma_s) \right)_i  
 \hspace{.4cm} and  
 \hspace{.4cm} \left.{\pp{q}{t}}\right|_{ls} = (q^*-q)  
 \]  
 and  
 \[  
 \Gamma_s = g \eta \pp{s}{p}\hspace{.4cm} and \hspace{.4cm}\Gamma_h = g \eta \pp{h}{p}  
 \]  
 \noindent  
 The subscript $c$ refers to convective processes, while the subscript $ls$ refers to large scale  
 precipitation processes, or supersaturation rain.  
 The summation refers to contributions from each cloud type called by RAS.    
 The dry static energy is given as $s$,  
 the moist static energy is given as $h$,  
 the convective cloud base mass flux is given as $m_B$, and the cloud entrainment is  
 given as $\eta$, which are explicitly defined in Section \ref{sec:fizhi:mc},  
 the description of the convective parameterization.  The fractional adjustment, or relaxation  
 parameter, for each cloud type is given as $\alpha$, while  
 $R$ is the rain re-evaporation adjustment.  
 \\  
   
 \noindent  
 {\bf 19)  \underline {RADLW} Heating Rate due to Longwave Radiation ($deg/day$) }  
   
 \noindent  
 The net longwave heating rate is calculated as the vertical divergence of the  
 net terrestrial radiative fluxes.  
 Both the clear-sky and cloudy-sky longwave fluxes are computed within the  
 longwave routine.  
 The subroutine calculates the clear-sky flux, $F^{clearsky}_{LW}$, first.  
 For a given cloud fraction,  
 the clear line-of-sight probability $C(p,p^{\prime})$ is computed from the current level pressure $p$  
 to the model top pressure, $p^{\prime} = p_{top}$, and the model surface pressure, $p^{\prime} = p_{surf}$,  
 for the upward and downward radiative fluxes.  
 (see Section \ref{sec:fizhi:radcloud}).  
 The cloudy-sky flux is then obtained as:  
     
 \noindent  
 \[  
 F_{LW} = C(p,p') \cdot F^{clearsky}_{LW},  
 \]  
   
 \noindent  
 Finally, the net longwave heating rate is calculated as the vertical divergence of the  
 net terrestrial radiative fluxes:  
 \[  
 \pp{\rho c_p T}{t} = - {\partial \over \partial z} F_{LW}^{NET} ,  
 \]  
 or  
 \[  
 {\bf RADLW} = \frac{g}{c_p \pi} {\partial \over \partial \sigma} F_{LW}^{NET} .  
 \]  
   
 \noindent  
 where $g$ is the accelation due to gravity,  
 $c_p$ is the heat capacity of air at constant pressure,  
 and  
 \[  
 F_{LW}^{NET} = F_{LW}^\uparrow - F_{LW}^\downarrow  
 \]  
 \\  
   
   
 \noindent  
 {\bf 20)  \underline {RADSW} Heating Rate due to Shortwave Radiation ($deg/day$) }  
   
 \noindent  
 The net Shortwave heating rate is calculated as the vertical divergence of the  
 net solar radiative fluxes.  
 The clear-sky and cloudy-sky shortwave fluxes are calculated separately.  
 For the clear-sky case, the shortwave fluxes and heating rates are computed with  
 both CLMO (maximum overlap cloud fraction) and  
 CLRO (random overlap cloud fraction) set to zero (see Section \ref{sec:fizhi:radcloud}).  
 The shortwave routine is then called a second time, for the cloudy-sky case, with the  
 true time-averaged cloud fractions CLMO  
 and CLRO being used.  In all cases, a normalized incident shortwave flux is used as  
 input at the top of the atmosphere.  
   
 \noindent  
 The heating rate due to Shortwave Radiation under cloudy skies is defined as:  
 \[  
 \pp{\rho c_p T}{t} = - {\partial \over \partial z} F(cloudy)_{SW}^{NET} \cdot {\rm RADSWT},  
 \]  
 or  
 \[  
 {\bf RADSW} = \frac{g}{c_p \pi} {\partial \over \partial \sigma} F(cloudy)_{SW}^{NET}\cdot {\rm RADSWT} .  
 \]  
   
 \noindent  
 where $g$ is the accelation due to gravity,  
 $c_p$ is the heat capacity of air at constant pressure, RADSWT is the true incident  
 shortwave radiation at the top of the atmosphere (See Diagnostic \#48), and  
 \[  
 F(cloudy)_{SW}^{Net} = F(cloudy)_{SW}^\uparrow - F(cloudy)_{SW}^\downarrow  
 \]  
 \\  
   
 \noindent  
 {\bf 21)  \underline {PREACC} Total (Large-scale + Convective) Accumulated Precipition ($mm/day$) }  
   
 \noindent  
 For a change in specific humidity due to moist processes, $\Delta q_{moist}$,  
 the vertical integral or total precipitable amount is given by:    
 \[  
 {\bf PREACC} = \int_{surf}^{top} \rho \Delta q_{moist} dz = - \int_{surf}^{top} \Delta  q_{moist}  
 {dp \over g} = {1 \over g} \int_0^1 \Delta q_{moist} dp  
 \]  
 \\  
   
 \noindent  
 A precipitation rate is defined as the vertically integrated moisture adjustment per Moist Processes  
 time step, scaled to $mm/day$.  
 \\  
   
 \noindent  
 {\bf 22)  \underline {PRECON} Convective Precipition ($mm/day$) }  
   
 \noindent  
 For a change in specific humidity due to sub-grid scale cumulus convective processes, $\Delta q_{cum}$,  
 the vertical integral or total precipitable amount is given by:    
 \[  
 {\bf PRECON} = \int_{surf}^{top} \rho \Delta q_{cum} dz = - \int_{surf}^{top} \Delta  q_{cum}  
 {dp \over g} = {1 \over g} \int_0^1 \Delta q_{cum} dp  
 \]  
 \\  
   
 \noindent  
 A precipitation rate is defined as the vertically integrated moisture adjustment per Moist Processes  
 time step, scaled to $mm/day$.  
 \\  
   
 \noindent  
 {\bf 23)  \underline {TUFLUX}  Turbulent Flux of U-Momentum ($Newton/m^2$) }  
   
 \noindent  
 The turbulent flux of u-momentum is calculated for $diagnostic \hspace{.2cm} purposes  
  \hspace{.2cm} only$ from the eddy coefficient for momentum:  
   
 \[  
 {\bf TUFLUX} =  {\rho } {(\overline{u^{\prime}w^{\prime}})} =    
 {\rho } {(- K_m \pp{U}{z})}  
 \]  
   
 \noindent  
 where $\rho$ is the air density, and $K_m$ is the eddy coefficient.  
 \\  
   
 \noindent  
 {\bf 24)  \underline {TVFLUX}  Turbulent Flux of V-Momentum ($Newton/m^2$) }  
   
 \noindent  
 The turbulent flux of v-momentum is calculated for $diagnostic \hspace{.2cm} purposes  
 \hspace{.2cm} only$ from the eddy coefficient for momentum:  
   
 \[  
 {\bf TVFLUX} =  {\rho } {(\overline{v^{\prime}w^{\prime}})} =  
  {\rho } {(- K_m \pp{V}{z})}  
 \]  
   
 \noindent  
 where $\rho$ is the air density, and $K_m$ is the eddy coefficient.  
 \\  
   
   
 \noindent  
 {\bf 25)  \underline {TTFLUX}  Turbulent Flux of Sensible Heat ($Watts/m^2$) }  
   
 \noindent  
 The turbulent flux of sensible heat is calculated for $diagnostic \hspace{.2cm} purposes  
 \hspace{.2cm} only$ from the eddy coefficient for heat and moisture:  
   
 \noindent  
 \[  
 {\bf TTFLUX} = c_p {\rho }    
 P^{\kappa}{(\overline{w^{\prime}\theta^{\prime}})}  
  = c_p  {\rho } P^{\kappa}{(- K_h \pp{\theta_v}{z})}  
 \]  
   
 \noindent  
 where $\rho$ is the air density, and $K_h$ is the eddy coefficient.  
 \\  
   
   
 \noindent  
 {\bf 26)  \underline {TQFLUX}  Turbulent Flux of Latent Heat ($Watts/m^2$) }  
   
 \noindent  
 The turbulent flux of latent heat is calculated for $diagnostic \hspace{.2cm} purposes  
 \hspace{.2cm} only$ from the eddy coefficient for heat and moisture:  
   
 \noindent  
 \[  
 {\bf TQFLUX} = {L {\rho } (\overline{w^{\prime}q^{\prime}})} =  
 {L {\rho }(- K_h \pp{q}{z})}  
 \]  
   
 \noindent  
 where $\rho$ is the air density, and $K_h$ is the eddy coefficient.  
 \\  
   
   
 \noindent  
 {\bf 27)  \underline {CN}  Neutral Drag Coefficient ($dimensionless$) }  
   
 \noindent  
 The drag coefficient for momentum obtained by assuming a neutrally stable surface layer:  
 \[  
 {\bf CN} = { k \over { \ln({h \over {z_0}})} }  
 \]  
   
 \noindent  
 where $k$ is the Von Karman constant, $h$ is the height of the surface layer, and  
 $z_0$ is the surface roughness.  
   
 \noindent  
 NOTE: CN is not available through model version 5.3, but is available in subsequent  
 versions.  
 \\  
   
 \noindent  
 {\bf 28)  \underline {WINDS}  Surface Wind Speed ($meter/sec$) }  
   
 \noindent  
 The surface wind speed is calculated for the last internal turbulence time step:  
 \[  
 {\bf WINDS} = \sqrt{u_{Nrphys}^2 + v_{Nrphys}^2}  
 \]  
   
 \noindent  
 where the subscript $Nrphys$ refers to the lowest model level.  
 \\  
   
 \noindent  
 {\bf 29)  \underline {DTSRF}  Air/Surface Virtual Temperature Difference ($deg \hspace{.1cm} K$) }  
   
 \noindent  
 The air/surface virtual temperature difference measures the stability of the surface layer:  
 \[  
 {\bf DTSRF} = (\theta_{v{Nrphys+1}} - \theta{v_{Nrphys}}) P^{\kappa}_{surf}  
 \]  
 \noindent  
 where  
 \[  
 \theta_{v{Nrphys+1}} = { T_g \over {P^{\kappa}_{surf}} } (1 + .609 q_{Nrphys+1}) \hspace{1cm}  
 and \hspace{1cm} q_{Nrphys+1} = q_{Nrphys} + \beta(q^*(T_g,P_s) - q_{Nrphys})  
 \]  
   
 \noindent  
 $\beta$ is the surface potential evapotranspiration coefficient ($\beta=1$ over oceans),  
 $q^*(T_g,P_s)$ is the saturation specific humidity at the ground temperature  
 and surface pressure, level $Nrphys$ refers to the lowest model level and level $Nrphys+1$  
 refers to the surface.  
 \\  
   
   
 \noindent  
 {\bf 30)  \underline {TG}  Ground Temperature ($deg \hspace{.1cm} K$) }  
   
 \noindent  
 The ground temperature equation is solved as part of the turbulence package  
 using a backward implicit time differencing scheme:  
 \[  
 {\bf TG} \hspace{.1cm} is \hspace{.1cm} obtained \hspace{.1cm} from: \hspace{.1cm}  
 C_g\pp{T_g}{t} = R_{sw} - R_{lw} + Q_{ice} - H - LE  
 \]  
   
 \noindent  
 where $R_{sw}$ is the net surface downward shortwave radiative flux, $R_{lw}$ is the  
 net surface upward longwave radiative flux, $Q_{ice}$ is the heat conduction through  
 sea ice, $H$ is the upward sensible heat flux, $LE$ is the upward latent heat  
 flux, and $C_g$ is the total heat capacity of the ground.  
 $C_g$ is obtained by solving a heat diffusion equation  
 for the penetration of the diurnal cycle into the ground (Blackadar, 1977), and is given by:  
 \[  
 C_g = \sqrt{ {\lambda C_s \over {2 \omega} } } = \sqrt{(0.386 + 0.536W + 0.15W^2)2x10^{-3}  
 { 86400. \over {2 \pi} } } \, \, .  
 \]  
 \noindent  
 Here, the thermal conductivity, $\lambda$, is equal to $2x10^{-3}$ ${ly\over{ sec}}  
 {cm \over {^oK}}$,  
 the angular velocity of the earth, $\omega$, is written as $86400$ $sec/day$ divided  
 by $2 \pi$ $radians/  
 day$, and the expression for $C_s$, the heat capacity per unit volume at the surface,  
 is a function of the ground wetness, $W$.  
 \\  
   
 \noindent  
 {\bf 31)  \underline {TS}  Surface Temperature ($deg \hspace{.1cm} K$) }  
   
 \noindent  
 The surface temperature estimate is made by assuming that the model's lowest  
 layer is well-mixed, and therefore that $\theta$ is constant in that layer.  
 The surface temperature is therefore:  
 \[  
 {\bf TS} = \theta_{Nrphys} P^{\kappa}_{surf}  
 \]  
 \\  
   
 \noindent  
 {\bf 32)  \underline {DTG}  Surface Temperature Adjustment ($deg \hspace{.1cm} K$) }  
   
 \noindent  
 The change in surface temperature from one turbulence time step to the next, solved  
 using the Ground Temperature Equation (see diagnostic number 30) is calculated:  
 \[  
 {\bf DTG} = {T_g}^{n} - {T_g}^{n-1}  
 \]  
   
 \noindent  
 where superscript $n$ refers to the new, updated time level, and the superscript $n-1$  
 refers to the value at the previous turbulence time level.  
 \\  
   
 \noindent  
 {\bf 33)  \underline {QG}  Ground Specific Humidity ($g/kg$) }  
   
 \noindent  
 The ground specific humidity is obtained by interpolating between the specific  
 humidity at the lowest model level and the specific humidity of a saturated ground.  
 The interpolation is performed using the potential evapotranspiration function:  
 \[  
 {\bf QG} = q_{Nrphys+1} = q_{Nrphys} + \beta(q^*(T_g,P_s) - q_{Nrphys})  
 \]  
   
 \noindent  
 where $\beta$ is the surface potential evapotranspiration coefficient ($\beta=1$ over oceans),  
 and $q^*(T_g,P_s)$ is the saturation specific humidity at the ground temperature and surface  
 pressure.  
 \\  
   
 \noindent  
 {\bf 34)  \underline {QS}  Saturation Surface Specific Humidity ($g/kg$) }  
   
 \noindent  
 The surface saturation specific humidity is the saturation specific humidity at  
 the ground temprature and surface pressure:  
 \[  
 {\bf QS} = q^*(T_g,P_s)  
 \]  
 \\  
   
 \noindent  
 {\bf 35)  \underline {TGRLW} Instantaneous ground temperature used as input to the Longwave  
  radiation subroutine (deg)}  
 \[  
 {\bf TGRLW}  = T_g(\lambda , \phi ,n)  
 \]  
 \noindent  
 where $T_g$ is the model ground temperature at the current time step $n$.  
 \\  
   
   
 \noindent  
 {\bf 36)  \underline {ST4} Upward Longwave flux at the surface ($Watts/m^2$) }  
 \[  
 {\bf ST4} = \sigma T^4  
 \]  
 \noindent  
 where $\sigma$ is the Stefan-Boltzmann constant and T is the temperature.  
 \\  
   
 \noindent  
 {\bf 37)  \underline {OLR} Net upward Longwave flux at $p=p_{top}$ ($Watts/m^2$) }  
 \[  
 {\bf OLR}  =  F_{LW,top}^{NET}  
 \]  
 \noindent  
 where top indicates the top of the first model layer.  
 In the GCM, $p_{top}$ = 0.0 mb.  
 \\  
   
   
 \noindent  
 {\bf 38)  \underline {OLRCLR} Net upward clearsky Longwave flux at $p=p_{top}$ ($Watts/m^2$) }  
 \[  
 {\bf OLRCLR}  =  F(clearsky)_{LW,top}^{NET}  
 \]  
 \noindent  
 where top indicates the top of the first model layer.  
 In the GCM, $p_{top}$ = 0.0 mb.  
 \\  
   
 \noindent  
 {\bf 39)  \underline {LWGCLR} Net upward clearsky Longwave flux at the surface ($Watts/m^2$) }  
   
 \noindent  
 \begin{eqnarray*}  
 {\bf LWGCLR} & =  & F(clearsky)_{LW,Nrphys+1}^{Net} \\  
              & =  & F(clearsky)_{LW,Nrphys+1}^\uparrow - F(clearsky)_{LW,Nrphys+1}^\downarrow  
 \end{eqnarray*}  
 where Nrphys+1 indicates the lowest model edge-level, or $p = p_{surf}$.  
 $F(clearsky)_{LW}^\uparrow$ is  
 the upward clearsky Longwave flux and the $F(clearsky)_{LW}^\downarrow$ is the downward clearsky Longwave flux.  
 \\  
   
 \noindent  
 {\bf 40)  \underline {LWCLR} Heating Rate due to Clearsky Longwave Radiation ($deg/day$) }  
   
 \noindent  
 The net longwave heating rate is calculated as the vertical divergence of the  
 net terrestrial radiative fluxes.  
 Both the clear-sky and cloudy-sky longwave fluxes are computed within the  
 longwave routine.  
 The subroutine calculates the clear-sky flux, $F^{clearsky}_{LW}$, first.  
 For a given cloud fraction,  
 the clear line-of-sight probability $C(p,p^{\prime})$ is computed from the current level pressure $p$  
 to the model top pressure, $p^{\prime} = p_{top}$, and the model surface pressure, $p^{\prime} = p_{surf}$,  
 for the upward and downward radiative fluxes.  
 (see Section \ref{sec:fizhi:radcloud}).  
 The cloudy-sky flux is then obtained as:  
     
 \noindent  
 \[  
 F_{LW} = C(p,p') \cdot F^{clearsky}_{LW},  
 \]  
   
 \noindent  
 Thus, {\bf LWCLR} is defined as the net longwave heating rate due to the  
 vertical divergence of the  
 clear-sky longwave radiative flux:  
 \[  
 \pp{\rho c_p T}{t}_{clearsky} = - {\partial \over \partial z} F(clearsky)_{LW}^{NET} ,  
 \]  
 or  
 \[  
 {\bf LWCLR} = \frac{g}{c_p \pi} {\partial \over \partial \sigma} F(clearsky)_{LW}^{NET} .  
 \]  
   
 \noindent  
 where $g$ is the accelation due to gravity,  
 $c_p$ is the heat capacity of air at constant pressure,  
 and  
 \[  
 F(clearsky)_{LW}^{Net} = F(clearsky)_{LW}^\uparrow - F(clearsky)_{LW}^\downarrow  
 \]  
 \\  
   
   
 \noindent  
 {\bf 41)  \underline {TLW} Instantaneous temperature used as input to the Longwave  
  radiation subroutine (deg)}  
 \[  
 {\bf TLW}  = T(\lambda , \phi ,level, n)  
 \]  
 \noindent  
 where $T$ is the model temperature at the current time step $n$.  
 \\  
   
   
 \noindent  
 {\bf 42)  \underline {SHLW} Instantaneous specific humidity used as input to  
  the Longwave radiation subroutine (kg/kg)}  
 \[  
 {\bf SHLW}  = q(\lambda , \phi , level , n)  
 \]  
 \noindent  
 where $q$ is the model specific humidity at the current time step $n$.  
 \\  
   
   
 \noindent  
 {\bf 43)  \underline {OZLW} Instantaneous ozone used as input to  
  the Longwave radiation subroutine (kg/kg)}  
 \[  
 {\bf OZLW}  = {\rm OZ}(\lambda , \phi , level , n)  
 \]  
 \noindent  
 where $\rm OZ$ is the interpolated ozone data set from the climatological monthly  
 mean zonally averaged ozone data set.  
 \\  
   
   
 \noindent  
 {\bf 44) \underline {CLMOLW} Maximum Overlap cloud fraction used in LW Radiation ($0-1$) }  
   
 \noindent  
 {\bf CLMOLW} is the time-averaged maximum overlap cloud fraction that has been filled by the Relaxed  
 Arakawa/Schubert Convection scheme and will be used in the Longwave Radiation algorithm.  These are  
 convective clouds whose radiative characteristics are assumed to be correlated in the vertical.  
 For a complete description of cloud/radiative interactions, see Section \ref{sec:fizhi:radcloud}.  
 \[  
 {\bf CLMOLW} = CLMO_{RAS,LW}(\lambda, \phi,  level )  
 \]  
 \\  
   
   
 {\bf 45) \underline {CLDTOT} Total cloud fraction used in LW and SW Radiation ($0-1$) }  
   
 {\bf CLDTOT} is the time-averaged total cloud fraction that has been filled by the Relaxed  
 Arakawa/Schubert and Large-scale Convection schemes and will be used in the Longwave and Shortwave  
 Radiation packages.  
 For a complete description of cloud/radiative interactions, see Section \ref{sec:fizhi:radcloud}.  
 \[  
 {\bf CLDTOT} = F_{RAS} + F_{LS}  
 \]  
 \\  
 where $F_{RAS}$ is the time-averaged cloud fraction due to sub-grid scale convection, and $F_{LS}$ is the  
 time-averaged cloud fraction due to precipitating and non-precipitating large-scale moist processes.  
 \\  
   
   
 \noindent  
 {\bf 46) \underline {CLMOSW} Maximum Overlap cloud fraction used in SW Radiation ($0-1$) }  
   
 \noindent  
 {\bf CLMOSW} is the time-averaged maximum overlap cloud fraction that has been filled by the Relaxed  
 Arakawa/Schubert Convection scheme and will be used in the Shortwave Radiation algorithm.  These are  
 convective clouds whose radiative characteristics are assumed to be correlated in the vertical.  
 For a complete description of cloud/radiative interactions, see Section \ref{sec:fizhi:radcloud}.  
 \[  
 {\bf CLMOSW} = CLMO_{RAS,SW}(\lambda, \phi,  level )  
 \]  
 \\  
   
 \noindent  
 {\bf 47) \underline {CLROSW} Random Overlap cloud fraction used in SW Radiation ($0-1$) }  
   
 \noindent  
 {\bf CLROSW} is the time-averaged random overlap cloud fraction that has been filled by the Relaxed  
 Arakawa/Schubert and Large-scale Convection schemes and will be used in the Shortwave  
 Radiation algorithm.  These are  
 convective and large-scale clouds whose radiative characteristics are not  
 assumed to be correlated in the vertical.  
 For a complete description of cloud/radiative interactions, see Section \ref{sec:fizhi:radcloud}.  
 \[  
 {\bf CLROSW} = CLRO_{RAS,Large Scale,SW}(\lambda, \phi,  level )  
 \]  
 \\  
   
 \noindent  
 {\bf 48)  \underline {RADSWT} Incident Shortwave radiation at the top of the atmosphere ($Watts/m^2$) }  
 \[  
 {\bf RADSWT} = {\frac{S_0}{R_a^2}} \cdot cos \phi_z  
 \]  
 \noindent  
 where $S_0$, is the extra-terrestial solar contant,  
 $R_a$ is the earth-sun distance in Astronomical Units,  
 and $cos \phi_z$ is the cosine of the zenith angle.  
 It should be noted that {\bf RADSWT}, as well as  
 {\bf OSR} and {\bf OSRCLR},  
 are calculated at the top of the atmosphere (p=0 mb).  However, the  
 {\bf OLR} and {\bf OLRCLR} diagnostics are currently  
 calculated at $p= p_{top}$ (0.0 mb for the GCM).  
 \\  
     
 \noindent  
 {\bf 49)  \underline {EVAP}  Surface Evaporation ($mm/day$) }  
   
 \noindent  
 The surface evaporation is a function of the gradient of moisture, the potential  
 evapotranspiration fraction and the eddy exchange coefficient:  
 \[  
 {\bf EVAP} =  \rho \beta K_{h} (q_{surface} - q_{Nrphys})  
 \]  
 where $\rho$ = the atmospheric density at the surface, $\beta$ is the fraction of  
 the potential evapotranspiration actually evaporated ($\beta=1$ over oceans), $K_{h}$ is the  
 turbulent eddy exchange coefficient for heat and moisture at the surface in $m/sec$ and  
 $q{surface}$ and $q_{Nrphys}$ are the specific humidity at the surface (see diagnostic  
 number 34) and at the bottom model level, respectively.  
 \\  
   
 \noindent  
 {\bf 50)  \underline {DUDT} Total Zonal U-Wind Tendency  ($m/sec/day$) }  
   
 \noindent  
 {\bf DUDT} is the total time-tendency of the Zonal U-Wind due to Hydrodynamic, Diabatic,  
 and Analysis forcing.  
 \[  
 {\bf DUDT} = \pp{u}{t}_{Dynamics} + \pp{u}{t}_{Moist} + \pp{u}{t}_{Turbulence} + \pp{u}{t}_{Analysis}  
 \]  
 \\  
   
 \noindent  
 {\bf 51)  \underline {DVDT} Total Zonal V-Wind Tendency  ($m/sec/day$) }  
   
 \noindent  
 {\bf DVDT} is the total time-tendency of the Meridional V-Wind due to Hydrodynamic, Diabatic,  
 and Analysis forcing.  
 \[  
 {\bf DVDT} = \pp{v}{t}_{Dynamics} + \pp{v}{t}_{Moist} + \pp{v}{t}_{Turbulence} + \pp{v}{t}_{Analysis}  
 \]  
 \\  
   
 \noindent  
 {\bf 52)  \underline {DTDT} Total Temperature Tendency  ($deg/day$) }  
   
 \noindent  
 {\bf DTDT} is the total time-tendency of Temperature due to Hydrodynamic, Diabatic,  
 and Analysis forcing.  
 \begin{eqnarray*}  
 {\bf DTDT} & = & \pp{T}{t}_{Dynamics} + \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\  
            & + & \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence} + \pp{T}{t}_{Analysis}  
 \end{eqnarray*}  
 \\  
   
 \noindent  
 {\bf 53)  \underline {DQDT} Total Specific Humidity Tendency  ($g/kg/day$) }  
   
 \noindent  
 {\bf DQDT} is the total time-tendency of Specific Humidity due to Hydrodynamic, Diabatic,  
 and Analysis forcing.  
 \[  
 {\bf DQDT} = \pp{q}{t}_{Dynamics} + \pp{q}{t}_{Moist Processes}  
 + \pp{q}{t}_{Turbulence} + \pp{q}{t}_{Analysis}  
 \]  
 \\  
     
 \noindent  
 {\bf 54)  \underline {USTAR}  Surface-Stress Velocity ($m/sec$) }  
   
 \noindent  
 The surface stress velocity, or the friction velocity, is the wind speed at  
 the surface layer top impeded by the surface drag:  
 \[  
 {\bf USTAR} = C_uW_s \hspace{1cm}where: \hspace{.2cm}  
 C_u = {k \over {\psi_m} }  
 \]  
   
 \noindent  
 $C_u$ is the non-dimensional surface drag coefficient (see diagnostic  
 number 10), and $W_s$ is the surface wind speed (see diagnostic number 28).  
   
 \noindent  
 {\bf 55)  \underline {Z0}  Surface Roughness Length ($m$) }  
   
 \noindent  
 Over the land surface, the surface roughness length is interpolated to the local  
 time from the monthly mean data of Dorman and Sellers (1989). Over the ocean,  
 the roughness length is a function of the surface-stress velocity, $u_*$.  
 \[  
 {\bf Z0} = c_1u^3_* + c_2u^2_* + c_3u_* + c_4 + {c_5 \over {u_*}}  
 \]  
   
 \noindent  
 where the constants are chosen to interpolate between the reciprocal relation of  
 Kondo(1975) for weak winds, and the piecewise linear relation of Large and Pond(1981)  
 for moderate to large winds.  
 \\  
   
 \noindent  
 {\bf 56)  \underline {FRQTRB}  Frequency of Turbulence ($0-1$) }  
   
 \noindent  
 The fraction of time when turbulence is present is defined as the fraction of  
 time when the turbulent kinetic energy exceeds some minimum value, defined here  
 to be $0.005 \hspace{.1cm}m^2/sec^2$. When this criterion is met, a counter is  
 incremented. The fraction over the averaging interval is reported.  
 \\  
   
 \noindent  
 {\bf 57)  \underline {PBL}  Planetary Boundary Layer Depth ($mb$) }  
   
 \noindent  
 The depth of the PBL is defined by the turbulence parameterization to be the  
 depth at which the turbulent kinetic energy reduces to ten percent of its surface  
 value.  
   
 \[  
 {\bf PBL} = P_{PBL} - P_{surface}  
 \]  
   
 \noindent  
 where $P_{PBL}$ is the pressure in $mb$ at which the turbulent kinetic energy  
 reaches one tenth of its surface value, and $P_s$ is the surface pressure.  
 \\  
   
 \noindent  
 {\bf 58)  \underline {SWCLR} Clear sky Heating Rate due to Shortwave Radiation ($deg/day$) }  
   
 \noindent  
 The net Shortwave heating rate is calculated as the vertical divergence of the  
 net solar radiative fluxes.  
 The clear-sky and cloudy-sky shortwave fluxes are calculated separately.  
 For the clear-sky case, the shortwave fluxes and heating rates are computed with  
 both CLMO (maximum overlap cloud fraction) and  
 CLRO (random overlap cloud fraction) set to zero (see Section \ref{sec:fizhi:radcloud}).  
 The shortwave routine is then called a second time, for the cloudy-sky case, with the  
 true time-averaged cloud fractions CLMO  
 and CLRO being used.  In all cases, a normalized incident shortwave flux is used as  
 input at the top of the atmosphere.  
   
 \noindent  
 The heating rate due to Shortwave Radiation under clear skies is defined as:  
 \[  
 \pp{\rho c_p T}{t} = - {\partial \over \partial z} F(clear)_{SW}^{NET} \cdot {\rm RADSWT},  
 \]  
 or  
 \[  
 {\bf SWCLR} = \frac{g}{c_p } {\partial \over \partial p} F(clear)_{SW}^{NET}\cdot {\rm RADSWT} .  
 \]  
   
 \noindent  
 where $g$ is the accelation due to gravity,  
 $c_p$ is the heat capacity of air at constant pressure, RADSWT is the true incident  
 shortwave radiation at the top of the atmosphere (See Diagnostic \#48), and  
 \[  
 F(clear)_{SW}^{Net} = F(clear)_{SW}^\uparrow - F(clear)_{SW}^\downarrow  
 \]  
 \\  
   
 \noindent  
 {\bf 59)  \underline {OSR} Net upward Shortwave flux at the top of the model ($Watts/m^2$) }  
 \[  
 {\bf OSR}  =  F_{SW,top}^{NET}  
 \]                                                                                        
 \noindent  
 where top indicates the top of the first model layer used in the shortwave radiation  
 routine.  
 In the GCM, $p_{SW_{top}}$ = 0 mb.  
 \\  
   
 \noindent  
 {\bf 60)  \underline {OSRCLR} Net upward clearsky Shortwave flux at the top of the model ($Watts/m^2$) }  
 \[  
 {\bf OSRCLR}  =  F(clearsky)_{SW,top}^{NET}  
 \]  
 \noindent  
 where top indicates the top of the first model layer used in the shortwave radiation  
 routine.  
 In the GCM, $p_{SW_{top}}$ = 0 mb.  
 \\  
   
   
 \noindent  
 {\bf 61)  \underline {CLDMAS} Convective Cloud Mass Flux ($kg/m^2$) }  
   
 \noindent  
 The amount of cloud mass moved per RAS timestep from all convective clouds is written:  
 \[  
 {\bf CLDMAS} = \eta m_B  
 \]  
 where $\eta$ is the entrainment, normalized by the cloud base mass flux, and $m_B$ is  
 the cloud base mass flux. $m_B$ and $\eta$ are defined explicitly in Section \ref{sec:fizhi:mc}, the  
 description of the convective parameterization.  
 \\  
   
   
   
 \noindent  
 {\bf 62)  \underline {UAVE} Time-Averaged Zonal U-Wind ($m/sec$) }  
   
 \noindent  
 The diagnostic {\bf UAVE} is simply the time-averaged Zonal U-Wind over  
 the {\bf NUAVE} output frequency.  This is contrasted to the instantaneous  
 Zonal U-Wind which is archived on the Prognostic Output data stream.  
 \[  
 {\bf UAVE} = u(\lambda, \phi, level , t)  
 \]  
 \\  
 Note, {\bf UAVE} is computed and stored on the staggered C-grid.  
 \\  
   
 \noindent  
 {\bf 63)  \underline {VAVE} Time-Averaged Meridional V-Wind ($m/sec$) }  
   
 \noindent  
 The diagnostic {\bf VAVE} is simply the time-averaged Meridional V-Wind over  
 the {\bf NVAVE} output frequency.  This is contrasted to the instantaneous  
 Meridional V-Wind which is archived on the Prognostic Output data stream.  
 \[  
 {\bf VAVE} = v(\lambda, \phi, level , t)  
 \]  
 \\  
 Note, {\bf VAVE} is computed and stored on the staggered C-grid.  
 \\  
   
 \noindent  
 {\bf 64)  \underline {TAVE} Time-Averaged Temperature ($Kelvin$) }  
   
 \noindent  
 The diagnostic {\bf TAVE} is simply the time-averaged Temperature over  
 the {\bf NTAVE} output frequency.  This is contrasted to the instantaneous  
 Temperature which is archived on the Prognostic Output data stream.  
 \[  
 {\bf TAVE} = T(\lambda, \phi, level , t)  
 \]  
 \\  
   
 \noindent  
 {\bf 65)  \underline {QAVE} Time-Averaged Specific Humidity ($g/kg$) }  
   
 \noindent  
 The diagnostic {\bf QAVE} is simply the time-averaged Specific Humidity over  
 the {\bf NQAVE} output frequency.  This is contrasted to the instantaneous  
 Specific Humidity which is archived on the Prognostic Output data stream.  
 \[  
 {\bf QAVE} = q(\lambda, \phi, level , t)  
 \]  
 \\  
   
 \noindent  
 {\bf 66)  \underline {PAVE} Time-Averaged Surface Pressure - PTOP ($mb$) }  
   
 \noindent  
 The diagnostic {\bf PAVE} is simply the time-averaged Surface Pressure - PTOP over  
 the {\bf NPAVE} output frequency.  This is contrasted to the instantaneous  
 Surface Pressure - PTOP which is archived on the Prognostic Output data stream.  
 \begin{eqnarray*}  
 {\bf PAVE} & =  & \pi(\lambda, \phi, level , t) \\  
            & =  & p_s(\lambda, \phi, level , t) - p_T  
 \end{eqnarray*}  
 \\  
   
   
 \noindent  
 {\bf 67)  \underline {QQAVE} Time-Averaged Turbulent Kinetic Energy $(m/sec)^2$ }  
   
 \noindent  
 The diagnostic {\bf QQAVE} is simply the time-averaged prognostic Turbulent Kinetic Energy  
 produced by the GCM Turbulence parameterization over  
 the {\bf NQQAVE} output frequency.  This is contrasted to the instantaneous  
 Turbulent Kinetic Energy which is archived on the Prognostic Output data stream.  
 \[  
 {\bf QQAVE} = qq(\lambda, \phi, level , t)  
 \]  
 \\  
 Note, {\bf QQAVE} is computed and stored at the ``mass-point'' locations on the staggered C-grid.  
 \\  
   
 \noindent  
 {\bf 68)  \underline {SWGCLR} Net downward clearsky Shortwave flux at the surface ($Watts/m^2$) }  
   
 \noindent  
 \begin{eqnarray*}  
 {\bf SWGCLR} & =  & F(clearsky)_{SW,Nrphys+1}^{Net} \\  
              & =  & F(clearsky)_{SW,Nrphys+1}^\downarrow - F(clearsky)_{SW,Nrphys+1}^\uparrow  
 \end{eqnarray*}  
 \noindent  
 \\  
 where Nrphys+1 indicates the lowest model edge-level, or $p = p_{surf}$.  
 $F(clearsky){SW}^\downarrow$ is  
 the downward clearsky Shortwave flux and $F(clearsky)_{SW}^\uparrow$ is  
 the upward clearsky Shortwave flux.  
 \\  
   
 \noindent  
 {\bf 69)  \underline {SDIAG1} User-Defined Surface Diagnostic-1 }  
   
 \noindent  
 The GCM provides Users with a built-in mechanism for archiving user-defined  
 diagnostics.  The generic diagnostic array QDIAG located in COMMON /DIAG/, and the associated  
 diagnostic counters and pointers located in COMMON /DIAGP/,  
 must be accessable in order to use the user-defined diagnostics (see Section \ref{sec:diagnostics:diagover}).    
 A convenient method for incorporating all necessary COMMON files is to  
 include the GCM {\em vstate.com} file in the routine which employs the  
 user-defined diagnostics.  
   
 \noindent  
 In addition to enabling the user-defined diagnostic (ie., CALL SETDIAG(84)), the User must fill  
 the QDIAG array with the desired quantity within the User's  
 application program or within modified GCM subroutines, as well as increment  
 the diagnostic counter at the time when the diagnostic is updated.    
 The QDIAG location index for {\bf SDIAG1} and its corresponding counter is  
 automatically defined as {\bf ISDIAG1} and {\bf NSDIAG1}, respectively, after the  
 diagnostic has been enabled.    
 The syntax for its use is given by  
 \begin{verbatim}  
       do j=1,jm  
       do i=1,im  
       qdiag(i,j,ISDIAG1) = qdiag(i,j,ISDIAG1) + ...  
       enddo  
       enddo  
   
       NSDIAG1 = NSDIAG1 + 1  
 \end{verbatim}  
 The diagnostics defined in this manner will automatically be archived by the output routines.  
 \\  
   
 \noindent  
 {\bf 70)  \underline {SDIAG2} User-Defined Surface Diagnostic-2 }  
   
 \noindent  
 The GCM provides Users with a built-in mechanism for archiving user-defined  
 diagnostics.  For a complete description refer to Diagnostic \#84.  
 The syntax for using the surface SDIAG2 diagnostic is given by  
 \begin{verbatim}  
       do j=1,jm  
       do i=1,im  
       qdiag(i,j,ISDIAG2) = qdiag(i,j,ISDIAG2) + ...  
       enddo  
       enddo  
   
       NSDIAG2 = NSDIAG2 + 1  
 \end{verbatim}  
 The diagnostics defined in this manner will automatically be archived by the output routines.  
 \\  
   
 \noindent  
 {\bf 71)  \underline {UDIAG1} User-Defined Upper-Air Diagnostic-1 }  
   
 \noindent  
 The GCM provides Users with a built-in mechanism for archiving user-defined  
 diagnostics.  For a complete description refer to Diagnostic \#84.  
 The syntax for using the upper-air UDIAG1 diagnostic is given by  
 \begin{verbatim}  
       do L=1,Nrphys  
       do j=1,jm  
       do i=1,im  
       qdiag(i,j,IUDIAG1+L-1) = qdiag(i,j,IUDIAG1+L-1) + ...  
       enddo  
       enddo  
       enddo  
   
       NUDIAG1 = NUDIAG1 + 1  
 \end{verbatim}  
 The diagnostics defined in this manner will automatically be archived by the  
 output programs.  
 \\  
   
 \noindent  
 {\bf 72)  \underline {UDIAG2} User-Defined Upper-Air Diagnostic-2 }  
   
 \noindent  
 The GCM provides Users with a built-in mechanism for archiving user-defined  
 diagnostics.  For a complete description refer to Diagnostic \#84.  
 The syntax for using the upper-air UDIAG2 diagnostic is given by  
 \begin{verbatim}  
       do L=1,Nrphys  
       do j=1,jm  
       do i=1,im  
       qdiag(i,j,IUDIAG2+L-1) = qdiag(i,j,IUDIAG2+L-1) + ...  
       enddo  
       enddo  
       enddo  
   
       NUDIAG2 = NUDIAG2 + 1  
 \end{verbatim}  
 The diagnostics defined in this manner will automatically be archived by the  
 output programs.  
 \\  
   
   
 \noindent  
 {\bf 73)  \underline {DIABU} Total Diabatic Zonal U-Wind Tendency  ($m/sec/day$) }  
   
 \noindent  
 {\bf DIABU} is the total time-tendency of the Zonal U-Wind due to Diabatic processes  
 and the Analysis forcing.  
 \[  
 {\bf DIABU} = \pp{u}{t}_{Moist} + \pp{u}{t}_{Turbulence} + \pp{u}{t}_{Analysis}  
 \]  
 \\  
   
 \noindent  
 {\bf 74)  \underline {DIABV} Total Diabatic Meridional V-Wind Tendency  ($m/sec/day$) }  
   
 \noindent  
 {\bf DIABV} is the total time-tendency of the Meridional V-Wind due to Diabatic processes  
 and the Analysis forcing.  
 \[  
 {\bf DIABV} = \pp{v}{t}_{Moist} + \pp{v}{t}_{Turbulence} + \pp{v}{t}_{Analysis}  
 \]  
 \\  
   
 \noindent  
 {\bf 75)  \underline {DIABT} Total Diabatic Temperature Tendency  ($deg/day$) }  
   
 \noindent  
 {\bf DIABT} is the total time-tendency of Temperature due to Diabatic processes  
 and the Analysis forcing.  
 \begin{eqnarray*}  
 {\bf DIABT} & = & \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\  
            & + & \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence} + \pp{T}{t}_{Analysis}  
 \end{eqnarray*}  
 \\  
 If we define the time-tendency of Temperature due to Diabatic processes as  
 \begin{eqnarray*}  
 \pp{T}{t}_{Diabatic} & = & \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\  
                      & + & \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence}  
 \end{eqnarray*}  
 then, since there are no surface pressure changes due to Diabatic processes, we may write  
 \[  
 \pp{T}{t}_{Diabatic} = {p^\kappa \over \pi }\pp{\pi \theta}{t}_{Diabatic}  
 \]  
 where $\theta = T/p^\kappa$.  Thus, {\bf DIABT} may be written as  
 \[  
 {\bf DIABT} = {p^\kappa \over \pi } \left( \pp{\pi \theta}{t}_{Diabatic} + \pp{\pi \theta}{t}_{Analysis} \right)  
 \]  
 \\  
   
 \noindent  
 {\bf 76)  \underline {DIABQ} Total Diabatic Specific Humidity Tendency  ($g/kg/day$) }  
   
 \noindent  
 {\bf DIABQ} is the total time-tendency of Specific Humidity due to Diabatic processes  
 and the Analysis forcing.  
 \[  
 {\bf DIABQ} = \pp{q}{t}_{Moist Processes} + \pp{q}{t}_{Turbulence} + \pp{q}{t}_{Analysis}  
 \]  
 If we define the time-tendency of Specific Humidity due to Diabatic processes as  
 \[  
 \pp{q}{t}_{Diabatic} = \pp{q}{t}_{Moist Processes} + \pp{q}{t}_{Turbulence}  
 \]  
 then, since there are no surface pressure changes due to Diabatic processes, we may write  
 \[  
 \pp{q}{t}_{Diabatic} = {1 \over \pi }\pp{\pi q}{t}_{Diabatic}  
 \]  
 Thus, {\bf DIABQ} may be written as  
 \[  
 {\bf DIABQ} = {1 \over \pi } \left( \pp{\pi q}{t}_{Diabatic} + \pp{\pi q}{t}_{Analysis} \right)  
 \]  
 \\  
   
 \noindent  
 {\bf 77)  \underline {VINTUQ} Vertically Integrated Moisture Flux ($m/sec \cdot g/kg$) }  
   
 \noindent  
 The vertically integrated moisture flux due to the zonal u-wind is obtained by integrating  
 $u q$ over the depth of the atmosphere at each model timestep,  
 and dividing by the total mass of the column.  
 \[  
 {\bf VINTUQ} = \frac{ \int_{surf}^{top} u q \rho dz  } { \int_{surf}^{top} \rho dz  }  
 \]  
 Using $\rho \delta z = -{\delta p \over g} = - {1 \over g} \delta p$, we have  
 \[  
 {\bf VINTUQ} = { \int_0^1 u q dp  }  
 \]  
 \\  
   
   
 \noindent  
 {\bf 78)  \underline {VINTVQ} Vertically Integrated Moisture Flux ($m/sec \cdot g/kg$) }  
   
 \noindent  
 The vertically integrated moisture flux due to the meridional v-wind is obtained by integrating  
 $v q$ over the depth of the atmosphere at each model timestep,  
 and dividing by the total mass of the column.  
 \[  
 {\bf VINTVQ} = \frac{ \int_{surf}^{top} v q \rho dz  } { \int_{surf}^{top} \rho dz  }  
 \]  
 Using $\rho \delta z = -{\delta p \over g} = - {1 \over g} \delta p$, we have  
 \[  
 {\bf VINTVQ} = { \int_0^1 v q dp  }  
 \]  
 \\  
   
   
 \noindent  
 {\bf 79)  \underline {VINTUT} Vertically Integrated Heat Flux ($m/sec \cdot deg$) }  
   
 \noindent  
 The vertically integrated heat flux due to the zonal u-wind is obtained by integrating  
 $u T$ over the depth of the atmosphere at each model timestep,  
 and dividing by the total mass of the column.  
 \[  
 {\bf VINTUT} = \frac{ \int_{surf}^{top} u T \rho dz  } { \int_{surf}^{top} \rho dz  }  
 \]  
 Or,  
 \[  
 {\bf VINTUT} = { \int_0^1 u T dp  }  
 \]  
 \\  
   
 \noindent  
 {\bf 80)  \underline {VINTVT} Vertically Integrated Heat Flux ($m/sec \cdot deg$) }  
   
 \noindent  
 The vertically integrated heat flux due to the meridional v-wind is obtained by integrating  
 $v T$ over the depth of the atmosphere at each model timestep,  
 and dividing by the total mass of the column.  
 \[  
 {\bf VINTVT} = \frac{ \int_{surf}^{top} v T \rho dz  } { \int_{surf}^{top} \rho dz  }  
 \]  
 Using $\rho \delta z = -{\delta p \over g} $, we have  
 \[  
 {\bf VINTVT} = { \int_0^1 v T dp  }  
 \]  
 \\  
   
 \noindent  
 {\bf 81 \underline {CLDFRC} Total 2-Dimensional Cloud Fracton ($0-1$) }  
   
 If we define the  
 time-averaged random and maximum overlapped cloudiness as CLRO and  
 CLMO respectively, then the probability of clear sky associated  
 with random overlapped clouds at any level is (1-CLRO) while the probability of  
 clear sky associated with maximum overlapped clouds at any level is (1-CLMO).  
 The total clear sky probability is given by (1-CLRO)*(1-CLMO), thus  
 the total cloud fraction at each  level may be obtained by  
 1-(1-CLRO)*(1-CLMO).  
   
 At any given level, we may define the clear line-of-site probability by  
 appropriately accounting for the maximum and random overlap  
 cloudiness.  The clear line-of-site probability is defined to be  
 equal to the product of the clear line-of-site probabilities  
 associated with random and maximum overlap cloudiness.  The clear  
 line-of-site probability $C(p,p^{\prime})$ associated with maximum overlap clouds,  
 from the current pressure $p$  
 to the model top pressure, $p^{\prime} = p_{top}$, or the model surface pressure, $p^{\prime} = p_{surf}$,  
 is simply 1.0 minus the largest maximum overlap cloud value along  the  
 line-of-site, ie.  
   
 $$1-MAX_p^{p^{\prime}} \left( CLMO_p \right)$$  
   
 Thus, even in the time-averaged sense it is assumed that the  
 maximum overlap clouds are correlated in the vertical.  The clear  
 line-of-site probability associated with random overlap clouds is  
 defined to be the product of the clear sky probabilities at each  
 level along the line-of-site, ie.  
   
 $$\prod_{p}^{p^{\prime}} \left( 1-CLRO_p \right)$$  
   
 The total cloud fraction at a given level associated with a line-  
 of-site calculation is given by  
   
 $$1-\left( 1-MAX_p^{p^{\prime}} \left[ CLMO_p \right] \right)  
     \prod_p^{p^{\prime}} \left( 1-CLRO_p \right)$$  
   
   
 \noindent  
 The 2-dimensional net cloud fraction as seen from the top of the  
 atmosphere is given by  
 \[  
 {\bf CLDFRC} = 1-\left( 1-MAX_{l=l_1}^{Nrphys} \left[ CLMO_l \right] \right)  
     \prod_{l=l_1}^{Nrphys} \left( 1-CLRO_l \right)  
 \]  
 \\  
 For a complete description of cloud/radiative interactions, see Section \ref{sec:fizhi:radcloud}.  
   
   
 \noindent  
 {\bf 82)  \underline {QINT} Total Precipitable Water ($gm/cm^2$) }  
   
 \noindent  
 The Total Precipitable Water is defined as the vertical integral of the specific humidity,  
 given by:  
 \begin{eqnarray*}  
 {\bf QINT} & = & \int_{surf}^{top} \rho q dz \\  
            & = & {\pi \over g} \int_0^1 q dp  
 \end{eqnarray*}  
 where we have used the hydrostatic relation  
 $\rho \delta z = -{\delta p \over g} $.  
 \\  
   
   
 \noindent  
 {\bf 83)  \underline {U2M}  Zonal U-Wind at 2 Meter Depth ($m/sec$) }  
   
 \noindent  
 The u-wind at the 2-meter depth is determined from the similarity theory:  
 \[  
 {\bf U2M} = {u_* \over k} \psi_{m_{2m}} {u_{sl} \over {W_s}} =  
 { \psi_{m_{2m}} \over {\psi_{m_{sl}} }}u_{sl}  
 \]  
   
 \noindent  
 where $\psi_m(2m)$ is the non-dimensional wind shear at two meters, and the subscript  
 $sl$ refers to the height of the top of the surface layer. If the roughness height  
 is above two meters, ${\bf U2M}$ is undefined.  
 \\  
   
 \noindent  
 {\bf 84)  \underline {V2M}  Meridional V-Wind at 2 Meter Depth ($m/sec$) }  
   
 \noindent  
 The v-wind at the 2-meter depth is a determined from the similarity theory:  
 \[  
 {\bf V2M} = {u_* \over k} \psi_{m_{2m}} {v_{sl} \over {W_s}} =  
 { \psi_{m_{2m}} \over {\psi_{m_{sl}} }}v_{sl}  
 \]  
   
 \noindent  
 where $\psi_m(2m)$ is the non-dimensional wind shear at two meters, and the subscript  
 $sl$ refers to the height of the top of the surface layer. If the roughness height  
 is above two meters, ${\bf V2M}$ is undefined.  
 \\  
   
 \noindent  
 {\bf 85)  \underline {T2M}  Temperature at 2 Meter Depth ($deg \hspace{.1cm} K$) }  
   
 \noindent  
 The temperature at the 2-meter depth is a determined from the similarity theory:  
 \[  
 {\bf T2M} = P^{\kappa} ({\theta* \over k} ({\psi_{h_{2m}}+\psi_g}) + \theta_{surf} ) =  
 P^{\kappa}(\theta_{surf} + { {\psi_{h_{2m}}+\psi_g} \over {{\psi_{h_{sl}}+\psi_g}} }  
 (\theta_{sl} - \theta_{surf}))  
 \]  
 where:  
 \[  
 \theta_* = - { (\overline{w^{\prime}\theta^{\prime}}) \over {u_*} }  
 \]  
   
 \noindent  
 where $\psi_h(2m)$ is the non-dimensional temperature gradient at two meters, $\psi_g$ is  
 the non-dimensional temperature gradient in the viscous sublayer, and the subscript  
 $sl$ refers to the height of the top of the surface layer. If the roughness height  
 is above two meters, ${\bf T2M}$ is undefined.  
 \\  
   
 \noindent  
 {\bf 86)  \underline {Q2M}  Specific Humidity at 2 Meter Depth ($g/kg$) }  
   
 \noindent  
 The specific humidity at the 2-meter depth is determined from the similarity theory:  
 \[  
 {\bf Q2M} = P^{\kappa} ({q_* \over k} ({\psi_{h_{2m}}+\psi_g}) + q_{surf} ) =  
 P^{\kappa}(q_{surf} + { {\psi_{h_{2m}}+\psi_g} \over {{\psi_{h_{sl}}+\psi_g}} }  
 (q_{sl} - q_{surf}))  
 \]  
 where:  
 \[  
 q_* = - { (\overline{w^{\prime}q^{\prime}}) \over {u_*} }  
 \]  
   
 \noindent  
 where $\psi_h(2m)$ is the non-dimensional temperature gradient at two meters, $\psi_g$ is  
 the non-dimensional temperature gradient in the viscous sublayer, and the subscript  
 $sl$ refers to the height of the top of the surface layer. If the roughness height  
 is above two meters, ${\bf Q2M}$ is undefined.  
 \\  
   
 \noindent  
 {\bf 87)  \underline {U10M}  Zonal U-Wind at 10 Meter Depth ($m/sec$) }  
   
 \noindent  
 The u-wind at the 10-meter depth is an interpolation between the surface wind  
 and the model lowest level wind using the ratio of the non-dimensional wind shear  
 at the two levels:  
 \[  
 {\bf U10M} = {u_* \over k} \psi_{m_{10m}} {u_{sl} \over {W_s}} =  
 { \psi_{m_{10m}} \over {\psi_{m_{sl}} }}u_{sl}  
 \]  
   
 \noindent  
 where $\psi_m(10m)$ is the non-dimensional wind shear at ten meters, and the subscript  
 $sl$ refers to the height of the top of the surface layer.  
 \\  
   
 \noindent  
 {\bf 88)  \underline {V10M}  Meridional V-Wind at 10 Meter Depth ($m/sec$) }  
   
 \noindent  
 The v-wind at the 10-meter depth is an interpolation between the surface wind  
 and the model lowest level wind using the ratio of the non-dimensional wind shear  
 at the two levels:  
 \[  
 {\bf V10M} = {u_* \over k} \psi_{m_{10m}} {v_{sl} \over {W_s}} =  
 { \psi_{m_{10m}} \over {\psi_{m_{sl}} }}v_{sl}  
 \]  
   
 \noindent  
 where $\psi_m(10m)$ is the non-dimensional wind shear at ten meters, and the subscript  
 $sl$ refers to the height of the top of the surface layer.  
 \\  
   
 \noindent  
 {\bf 89)  \underline {T10M}  Temperature at 10 Meter Depth ($deg \hspace{.1cm} K$) }  
   
 \noindent  
 The temperature at the 10-meter depth is an interpolation between the surface potential  
 temperature and the model lowest level potential temperature using the ratio of the  
 non-dimensional temperature gradient at the two levels:  
 \[  
 {\bf T10M} = P^{\kappa} ({\theta* \over k} ({\psi_{h_{10m}}+\psi_g}) + \theta_{surf} ) =  
 P^{\kappa}(\theta_{surf} + { {\psi_{h_{10m}}+\psi_g} \over {{\psi_{h_{sl}}+\psi_g}} }  
 (\theta_{sl} - \theta_{surf}))  
 \]  
 where:  
 \[  
 \theta_* = - { (\overline{w^{\prime}\theta^{\prime}}) \over {u_*} }  
 \]  
   
 \noindent  
 where $\psi_h(10m)$ is the non-dimensional temperature gradient at two meters, $\psi_g$ is  
 the non-dimensional temperature gradient in the viscous sublayer, and the subscript  
 $sl$ refers to the height of the top of the surface layer.  
 \\  
   
 \noindent  
 {\bf 90)  \underline {Q10M}  Specific Humidity at 10 Meter Depth ($g/kg$) }  
   
 \noindent  
 The specific humidity at the 10-meter depth is an interpolation between the surface specific  
 humidity and the model lowest level specific humidity using the ratio of the  
 non-dimensional temperature gradient at the two levels:  
 \[  
 {\bf Q10M} = P^{\kappa} ({q_* \over k} ({\psi_{h_{10m}}+\psi_g}) + q_{surf} ) =  
 P^{\kappa}(q_{surf} + { {\psi_{h_{10m}}+\psi_g} \over {{\psi_{h_{sl}}+\psi_g}} }  
 (q_{sl} - q_{surf}))  
 \]  
 where:  
 \[  
 q_* =  - { (\overline{w^{\prime}q^{\prime}}) \over {u_*} }  
 \]  
   
 \noindent  
 where $\psi_h(10m)$ is the non-dimensional temperature gradient at two meters, $\psi_g$ is  
 the non-dimensional temperature gradient in the viscous sublayer, and the subscript  
 $sl$ refers to the height of the top of the surface layer.  
 \\  
   
 \noindent  
 {\bf 91)  \underline {DTRAIN} Cloud Detrainment Mass Flux ($kg/m^2$) }  
   
 The amount of cloud mass moved per RAS timestep at the cloud detrainment level is written:  
 \[  
 {\bf DTRAIN} = \eta_{r_D}m_B  
 \]  
 \noindent  
 where $r_D$ is the detrainment level,  
 $m_B$ is the cloud base mass flux, and $\eta$  
 is the entrainment, defined in Section \ref{sec:fizhi:mc}.  
 \\  
   
 \noindent  
 {\bf 92)  \underline {QFILL}  Filling of negative Specific Humidity ($g/kg/day$) }  
   
 \noindent  
 Due to computational errors associated with the numerical scheme used for  
 the advection of moisture, negative values of specific humidity may be generated.  The  
 specific humidity is checked for negative values after every dynamics timestep.  If negative  
 values have been produced, a filling algorithm is invoked which redistributes moisture from  
 below.  Diagnostic {\bf QFILL} is equal to the net filling needed  
 to eliminate negative specific humidity, scaled to a per-day rate:  
 \[  
 {\bf QFILL} = q^{n+1}_{final} - q^{n+1}_{initial}  
 \]  
 where  
 \[  
 q^{n+1} = (\pi q)^{n+1} / \pi^{n+1}  
 \]  
   
826  \subsection{Dos and Donts}  \subsection{Dos and Donts}
827    
828  \subsection{Diagnostics Reference}  \subsection{Diagnostics Reference}

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22