--- manual/s_phys_pkgs/diagnostics.tex 2004/10/14 18:06:06 1.4 +++ manual/s_phys_pkgs/diagnostics.tex 2005/07/15 18:58:21 1.11 @@ -6,13 +6,31 @@ \subsection{Introduction} -This section of the documentation describes the Diagnostics Utilities available within -the GCM. In addition to a description on how to set and extract diagnostic quantities, -this document also provides a comprehensive list of all available diagnostic quantities -and a short description of how they are computed. It should be noted that this document -is not intended to be a complete documentation of the various packages used in the GCM, -and the reader should refer to original publications and the appropriate sections of this -documentation for further insight. +\noindent +This section of the documentation describes the Diagnostics package available within +the GCM. A large selection of model diagnostics is available for output. +In addition to the diagnostic quantities pre-defined in the GCM, there exists +the option, in any experiment, to define a new diagnostic quantity and include it +as part of the diagnostic output with the addition of a single subroutine call in the +routine where the field is computed. As a matter of philosophy, no diagnostic is enabled +as default, thus each user must specify the exact diagnostic information required for an +experiment. This is accomplished by enabling the specific diagnostic of interest cataloged +in the Diagnostic Menu (see Section \ref{sec:diagnostics:menu}). Instructions for enabling +diagnostic output and defining new diagnostic quantities are found in Section +\ref{sec:diagnostics:usersguide} of this document. + +\noindent +The Diagnostic Menu in this section of the manual is a listing of diagnostic quantities available +within the main (dynamics) part of the GCM. Additional diagnostic quantities, defined within the +different GCM packages, are available and are listed in the diagnostic menu subsection of +the manual section associated with each relevant package. Once a diagnostic is enabled, the +GCM will continually increment an array specifically allocated for that diagnostic whenever the +appropriate quantity is computed. A counter is defined which records how many times each diagnostic +quantity has been incremented. Several special diagnostics are included in the menu. Quantities +refered to as ``Counter Diagnostics'', are defined for selected diagnostics which record the +frequency at which a diagnostic is incremented separately for each model grid location. +Quantitied refered to as ``User Diagnostics'' are included in the menu to facilitate +defining new diagnostics for a particular experiment. \subsection{Equations} Not relevant. @@ -20,35 +38,158 @@ \subsection{Key Subroutines and Parameters} \label{sec:diagnostics:diagover} -A large selection of model diagnostics is available in the GCM. At the time of -this writing there are 280 different diagnostic quantities which can be enabled for an -experiment. As a matter of philosophy, no diagnostic is enabled as default, thus each user must -specify the exact diagnostic information required for an experiment. This is accomplished by -enabling the specific diagnostic of interest cataloged in the -Diagnostic Menu (see Section \ref{sec:diagnostics:menu}). -The Diagnostic Menu is a hard-wired enumeration of diagnostic quantities available within the -GCM. Diagnostics are internally referred to by their associated number in the Diagnostic -Menu. Once a diagnostic is enabled, the GCM will continually increment an array -specifically allocated for that diagnostic whenever the associated process for the diagnostic is -computed. Separate arrays are used both for the diagnostic quantity and its diagnostic counter -which records how many times each diagnostic quantity has been computed. In addition -special diagnostics, called -``Counter Diagnostics'', records the frequency of diagnostic updates separately for each -model grid location. - -The diagnostics are computed at various times and places within the GCM. -Some diagnostics are computed on the geophysical A-grid (such as -those within the Physics routines), while others are computed on the C-grid -(those computed during the dynamics time-stepping). Some diagnostics are -scalars, while others are vectors. Each of these possibilities requires -separate tasks for A-grid to C-grid transformations and coordinate transformations. Due -to this complexity, and since the specific diagnostics enabled are User determined at the -time of the run, -a diagnostic parameter has been developed and implemented into the GCM, defined as GDIAG, -which contains information concerning various grid attributes of each diagnostic. The GDIAG -array is internally defined as a character*8 variable, and is equivalenced to -a character*1 "parse" array in output in order to extract the grid-attribute information. -The GDIAG array is described in Table \ref{tab:diagnostics:gdiag.tabl}. +\noindent +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. + +\noindent +{\bf diagnostics\_fill}: This is the main user interface routine to the diagnostics +package. This routine will increment the specified diagnostic quantity with a field +sent through the argument list. + +\noindent +\begin{tabbing} +XXXXXXXXX\=XXXXXX\= \kill +\> call diagnostics\_fill (arrayin, chardiag, levflg, nlevs, \\ +\> bibjflg, bi, bj, myThid) \\ +\\ +where \> arrayin \>= Field to increment diagnostics array \\ + \> chardiag \>= Character *8 expression for diag to fill \\ + \> levflg \>= Integer flag for vertical levels: \\ + \> \>= 0 indicates multiple (nlevs) levels incremented \\ + \> \>= -1 indicates multiple (nlevs) levels incremented, \\ + \> \> but in reverse vertical order \\ + \> \> positive integer - WHICH single level to increment. \\ + \> nlevs \>= indicates Number of levels to be filled (1 if levflg gt 0) \\ + \> bibjflg \>= Integer flag to indicate instructions for bi bj loop \\ + \> \>= 0 indicates that the bi-bj loop must be done here \\ + \> \>= 1 indicates that the bi-bj loop is done OUTSIDE \\ + \> \>= 2 indicates that the bi-bj loop is done OUTSIDE \\ + \> \> AND that we have been sent a local array \\ + \> \> AND that the array has the shadow regions \\ + \> \>= 3 indicates that the bi-bj loop is done OUTSIDE \\ + \> \> AND that we have been sent a local array \\ + \> \> AND that the array has no shadow regions \\ + \> bi \>= X-direction process(or) number - used for bibjflg=1-3 \\ + \> bj \>= Y-direction process(or) number - used for bibjflg=1-3 \\ + \> myThid \>= Current Thread number \\ +\end{tabbing} + +\noindent +{\bf diagnostics\_scale\_fill}: This is a possible alternative routine to +diagnostics\_fill which performs the same functions and has an additional option +to scale the field before filling or raise the field to a power before filling. + +\noindent +\begin{tabbing} +XXXXXXXXX\=XXXXXX\= \kill +\> call diagnostics\_scale\_fill (arrayin, scalefactor, power, chardiag, \\ +\> levflg, nlevs, bibjflg, bi, bj, myThid) \\ +\\ +where \> All the arguments are the same as for diagnostics\_fill with the addition of: \\ + \> scalefactor \>= Factor to scale field \\ + \> power \>= Integer power to which to raise the input field \\ +\end{tabbing} + +\noindent +{\bf diagnostics\_is\_on}: Function call to inquire whether a diagnostic is active +and can be incremented. Useful when there is a computation that must be done locally +before a call to diagnostics\_fill. The call sequence: + +\noindent +\begin{tabbing} +XXXXXXXXX\=XXXXXX\= \kill +\> flag = diagnostics\_is\_on( diagName, myThid ) +\\ +where \> diagName \>= Character *8 expression for diagnostic \\ + \> myThid \>= Current Thread number \\ +\end{tabbing} + +\noindent +{\bf diagnostics\_get\_pointers}: This subroutine retrieves the value of a the diagnostics +pointers that other routines require as input - can be useful if the diagnostics common +blocks are not local to a routine. + +\noindent +\begin{tabbing} +XXXXXXXXX\=XXXXXX\= \kill +\> call diagnostics\_get\_pointers( diagName, ipoint, jpoint, myThid ) +\\ +where \> diagName \>= Character *8 expression of diagnostic \\ + \> ipoint \>= Pointer into qdiag array - from idiag array in common \\ + \> jpoint \>= Pointer into diagnostics menu - from jdiag array in common \\ + \> myThid \>= Current Thread number \\ +\end{tabbing} + +\noindent +{\bf getdiag}: This subroutine retrieves the value of a model diagnostic. This routine +is particulary useful when called from a user output routine, although it can be called +from any routine. This routine returns the time-averaged value of the diagnostic by +dividing the current accumulated diagnostic value by its corresponding counter. This +routine does not change the value of the diagnostic itself, that is, it does not replace +the diagnostic with its time-average. The calling sequence for this routine is givin by: + +\noindent +\begin{tabbing} +XXXXXXXXX\=XXXXXX\= \kill +\> call getdiag (lev, undef, qtmp, ipoint, mate, bi, bj, myThid) \\ +\\ +where \> lev \>= Model Level at which the diagnostic is desired \\ + \> undef \>= Fill value to be used when diagnostic is undefined \\ + \> qtmp \>= Time-Averaged Diagnostic Output \\ + \> ipoint \>= Pointer into qdiag array - from idiag array in common \\ + \> mate \>= Diagnostic mate pointer number \\ + \> bi \>= X-direction process(or) number \\ + \> bj \>= Y-direction process(or) number \\ + \> myThid \>= Current Thread number \\ +\end{tabbing} + +\noindent +{\bf diagnostics\_add2list}: 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 routine +for defining a new permanent diagnostic in the main model or in a package. The calling sequence is: + +\noindent +\begin{tabbing} +XXXXXXXXX\=XXXXXX\= \kill +\> call diagnostics\_add2list( diagNum,diagName, diagCode, \\ +\> diagUnits, diagTitle, myThid ) \\ +\\ +where \> diagNum \>=Diagnostic number - Output from routine \\ + \> diagName \>=character*8 diagnostic name \\ + \> diagCode \>=character*16 parsing code (see description of gdiag below) \\ + \> diagUnits \>=Diagnostic units (character*16) \\ + \> diagTitle \>=Diagnostic title or long name (up to character*80) \\ + \> myThid \>=Current Thread number \\ +\end{tabbing} + +\noindent +{\bf clrdiag}: This subroutine initializes the values of model diagnostics to zero, and is +particularly useful when called from user output routines to re-initialize diagnostics +during the run. The calling sequence is: + +\noindent +\begin{tabbing} +XXXXXXXXX\=XXXXXX\= \kill +\> call diagnostics\_clrdiag (jpoint, ipoint, myThid) \\ +\\ +where \> jpoint \>= Diagnostic number from menu - from jdiag array \\ + ipoint \>= Pointer number into qdiag array - from idiag array \\ + \> myThid \>=Current Thread number \\ +\end{tabbing} + +\noindent +The diagnostics are computed at various times and places within the GCM. Because the +MIT GCM may employ a staggered grid, diagnostics may be computed at grid box centers, +corners, or edges, and at the middle or edge in the vertical. Some diagnostics are scalars, +while others are components of vectors. An internal array is defined which contains +information concerning various grid attributes of each diagnostic. The GDIAG +array (in common block \\diagnostics in file diagnostics.h) is internally defined as a +character*8 variable, and is equivalenced to a character*1 "parse" array in output in +order to extract the grid-attribute information. The GDIAG array is described in +Table \ref{tab:diagnostics:gdiag.tabl}. \begin{table} \caption{Diagnostic Parsing Array} @@ -79,560 +220,588 @@ \end{center} \end{table} + +\noindent As an example, consider a diagnostic whose associated GDIAG parameter is equal to ``UU 002''. From GDIAG we can determine that this diagnostic is a U-vector component located at the C-grid U-point. Its corresponding V-component diagnostic is located in Diagnostic \# 002. +\noindent In this way, each Diagnostic in the model has its attributes (ie. vector or scalar, -A-Grid or C-grid, etc.) defined internally. The Output routines -use this information in order to determine -what type of transformations need to be performed. Thus, all Diagnostic -interpolations are done at the time of output rather than during each model dynamic step. -In this way the User now has more flexibility -in determining the type of gridded data which is output. +C-grid location, etc.) defined internally. The Output routines use this information +in order to determine what type of transformations need to be performed. Any +interpolations are done at the time of output rather than during each model step. +In this way the User has flexibility in determining the type of gridded data which +is output. -There are several utilities within the GCM available to users to enable, disable, -clear, and retrieve model diagnostics, and may be called from any user-supplied application -and/or output routine. The available utilities and the CALL sequences are listed below. - - -{\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 useful when -called from either user application routines or user output routines, and 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} - - -{\bf GETDIAG}: This subroutine retrieves the value of a model diagnostic. This routine is -particulary useful when called from a user output routine, although it can be called from an -application routine as well. This routine returns the time-averaged value of the diagnostic by -dividing the current accumulated diagnostic value by its corresponding counter. This routine does -not change the value of the diagnostic itself, that is, it does not replace the diagnostic with its -time-average. The calling sequence for this routine is givin by: +\subsection{Usage Notes} +\label{sec:diagnostics:usersguide} -\begin{tabbing} -XXXXXXXXX\=XXXXXX\= \kill -\> CALL GETDIAG (LEV,NUM,QTMP,UNDEF) \\ -\\ -where \> LEV \>= Model Level at which the diagnostic is desired \\ - \> NUM \>= Diagnostic number from menu \\ - \> QTMP \>= Time-Averaged Diagnostic Output \\ - \> UNDEF \>= Fill value to be used when diagnostic is undefined \\ -\end{tabbing} +\noindent +To use the diagnostics package, other than enabling it in packages.conf +and turning the usediagnostics flag in data.pkg to .TRUE., there are two +further steps the user must take to enable the diagnostics package for +output of quantities that are already defined in the GCM under an experiment's +configuration of packages. A namelist must be supplied in the run directory +called data.diagnostics, and the file DIAGNOSTICS\_SIZE.h must be included in the +code directory. The steps for defining a new (permanent or experiment-specific +temporary) diagnostic quantity will be outlined later. + +\noindent The namelist will activate a user-defined list of diagnostics quantities +to be computed, specify the frequency and type of output, the number of levels, and +the name of all the separate output files. A sample data.diagnostics namelist file: + +\noindent +$\#$ Diagnostic Package Choices \\ + $\&$diagnostics\_list \\ + frequency(1) = 86400., \ \\ + levels(1,1) = 1., \ \\ + fields(1,1) = 'RSURF ', \ \\ + filename(1) = 'surface', \ \\ + frequency(2) = 86400., \ \\ + levels(1,2) = 1.,2.,3.,4.,5., \ \\ + fields(1,2) = 'UVEL ','VVEL ', \ \\ + filename(2) = 'diagout1', \ \\ + frequency(3) = 3600., \ \\ + fields(1,3) = 'UVEL ','VVEL ','PRESSURE', \ \\ + filename(3) = 'diagout2', \ \\ + fileflags(3) = ' P1 ', \ \\ + $\&$end \ \\ -{\bf CLRDIAG}: This subroutine initializes the values of model diagnostics to zero, and is -particularly useful when called from user output routines to re-initialize diagnostics during the -run. The calling sequence is: +\noindent +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 86400. seconds, +(frequency is 86400.), and will write fields which are multiple-level +fields at output levels 1-5. The names of diagnostics quantities are +UVEL and VVEL. The second set of output files +has the prefix diagout2, does time averaging every 3600. seconds, +includes fields which are multiple-level fields, levels output are 1-5, +and the names of diagnostics quantities are THETA and SALT. +\noindent +The user must assure that enough computer memory is allocated for the diagnostics +and the output streams selected for a particular experiment. This is acomplished by +modifying the file DIAGNOSTICS\_SIZE.h and including it in the experiment code directory. +The parameters that should be checked are called numdiags, numlists, numperlist, and +diagSt\_size. + +\noindent numdiags (and diagSt\_size): \\ +\noindent All GCM diagnostic quantities are stored in the single diagnostic array QDIAG +which is located in the file \\ \filelink{pkg/diagnostics/diagnostics.h}{pkg-diagnostics-diagnostics.h}.\\ +and has the form:\\ +common /diagnostics/ qdiag(1-Olx,sNx+Olx,1-Olx,sNx+Olx,numdiags,Nsx,Nsy) \\ +\noindent +The first two-dimensions of qdiag correspond to the horizontal dimension of a given diagnostic, +and the third dimension of qdiag is used to identify diagnostic fields and levels combined. 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, or with +numdiags set to Nr. In order for the User to enable more than 1 three-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}. +numdiags should be set greater than or equal to the sum of all the diagnostics activated +for output each multiplied by the number of levels defined for that diagnostic quantity. +For the above example, there are 4 multiple level fields, which the diagnostics menu +(see below) indicates are defined at the GCM vertical resolution, Nr. The value of +numdiag in DIAGNOSTICS\_SIZE.h would therefore be equal to 4*Nr, or, say 40 if $Nr=10$. + +\noindent numlists and numperlist: \\ +\noindent The parameter numlists must be set greater than or equal to the number of +separate output streams that the user specifies in the namelist file data.diagnostics. +The parameter numperlist corresponds to the number of diagnostics requested in each +output stream. + +\noindent +In order to define and include as part of the diagnostic output any field +that is desired for a particular experiment, two steps must be taken. The +first is to enable the ``User Diagnostic'' in data.diagnostics. This is +accomplished by adding one of the ``User Diagnostic'' field names (UDIAG1 through +UDIAG10, for multi-level fields, or SDIAG1 through SDIAG10 for single level +fields) to the data.diagnostics namelist in one of the output streams. These +fields are listed in the diagnostics menu. The second step is to +add a call to diagnostics\_fill from the subroutine in which the quantity +desired for diagnostic output is computed. + +\noindent +In order to add a new diagnostic to the permanent set of diagnostics that the +main model or any package contains as part of its diagnostics menu, the subroutine +diagnostics\_add2list should be called during the initialization phase of the +main model or package. For the main model, the call should be made from +subroutine diagnostics\_main\_init, and for a package, the call should probably +be made from somewhere in the packages\_init\_fixed sequence (probaby from inside +the particular package's init\_fixed routine). A typical code sequence to set the +input arguments to diagnostics\_add2list would look like: +\noindent \begin{tabbing} XXXXXXXXX\=XXXXXX\= \kill -\> CALL CLRDIAG (NUM) \\ +\> diagName = 'THETA ' \\ +\> diagTitle = 'Potential Temperature (degC,K)' \\ +\> diagUnits = 'Degrees K ' \\ +\> diagCode = 'SM MR ' \\ +\> CALL DIAGNOSTICS\_ADD2LIST( diagNum, \\ +\> I diagName, diagCode, diagUnits, diagTitle, myThid ) \\ \\ -where \> NUM \>= Diagnostic number from menu \\ \end{tabbing} +\noindent If the new diagnostic quantity is associated with either a vector +pair or a diagnostic counter, the diagCode argument must be filled with the +proper index for the ``mate''. The output argument from diagnostics\_add2list +that is called diagNum here contains a running total of the number of diagnostics +defined in the code up to any point during the run. The sequence number for the +next two diagnostics defined (the two components of the vector pair, for instance) +will be diagNum+1 and diagNum+2. The definition of the first component of the vector +pair must fill the ``mate'' segment of the diagCode as diagnostic number diagNum+2. +Since the subroutine increments diagNum, the definition of the second component of +the vector fills the ``mate'' part of diagCode with diagNum. A code sequence for +this case would look like: - -{\bf ZAPDIAG}: This entry into subroutine SETDIAG disables model diagnostics, meaning that the -diagnostic is no longer available to the user. The memory previously allocated to the diagnostic -is released when ZAPDIAG is invoked. The calling sequence is given by: - - +\noindent \begin{tabbing} XXXXXXXXX\=XXXXXX\= \kill -\> CALL ZAPDIAG (NUM) \\ +\> diagName = 'UVEL ' \\ +\> diagTitle = 'Zonal Velocity ' \\ +\> diagUnits = 'm / sec ' \\ +\> diagCode = 'SM MR ' \\ +\> write(diagCode,'(A,I3.3,A)') 'VV ', diagNum+2 ,'MR ' \\ +\> call diagnostics\_add2list( diagNum, \\ +\> I diagName, diagCode, diagUnits, diagTitle, myThid ) \\ +\> diagName = 'VVEL ' \\ +\> diagTitle = 'Meridional Velocity ' \\ +\> diagUnits = 'm / sec ' \\ +\> diagCode = 'SM MR ' \\ +\> write(diagCode,'(A,I3.3,A)') 'VV ', diagNum ,'MR ' \\ +\> call diagnostics\_add2list( diagNum, \\ +\> I diagName, diagCode, diagUnits, diagTitle, myThid ) \\ \\ -where \> NUM \>= Diagnostic number from menu \\ \end{tabbing} -{\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: - -\begin{verbatim} -\# Diagnostic Package Choices - \&diagnostics_list - 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', \ - \&end \ -\end{verbatim} - -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. \newpage \subsubsection{GCM Diagnostic Menu} \label{sec:diagnostics:menu} -\begin{tabular}{lllll} +\begin{tabular}{llll} \hline\hline -N & NAME & UNITS & LEVELS & DESCRIPTION \\ + NAME & UNITS & LEVELS & DESCRIPTION \\ \hline &\\ -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 - &\begin{minipage}[t]{3in} - {Surface Flux of Sensible Heat} + {User-Defined Surface Diagnostic-1} \end{minipage}\\ -4 & EFLUX & $Watts/m^2$ & 1 + SDIAG2 & & 1 &\begin{minipage}[t]{3in} - {Surface Flux of Latent Heat} + {User-Defined Surface Diagnostic-2} \end{minipage}\\ -5 & QICE & $Watts/m^2$ & 1 + UDIAG1 & & Nrphys &\begin{minipage}[t]{3in} - {Heat Conduction through Sea-Ice} + {User-Defined Upper-Air Diagnostic-1} \end{minipage}\\ -6 & RADLWG & $Watts/m^2$ & 1 + UDIAG2 & & Nrphys &\begin{minipage}[t]{3in} - {Net upward LW flux at the ground} + {User-Defined Upper-Air Diagnostic-2} \end{minipage}\\ -7 & RADSWG & $Watts/m^2$ & 1 + SDIAG3 & & 1 &\begin{minipage}[t]{3in} - {Net downward SW flux at the ground} + {User-Defined Surface Diagnostic-3} \end{minipage}\\ -8 & RI & $dimensionless$ & Nrphys + SDIAG4 & & 1 &\begin{minipage}[t]{3in} - {Richardson Number} + {User-Defined Surface Diagnostic-4} \end{minipage}\\ -9 & CT & $dimensionless$ & 1 + SDIAG5 & & 1 &\begin{minipage}[t]{3in} - {Surface Drag coefficient for T and Q} + {User-Defined Surface Diagnostic-5} \end{minipage}\\ -10 & CU & $dimensionless$ & 1 + SDIAG6 & & 1 &\begin{minipage}[t]{3in} - {Surface Drag coefficient for U and V} + {User-Defined Surface Diagnostic-6} \end{minipage}\\ -11 & ET & $m^2/sec$ & Nrphys + SDIAG7 & & 1 &\begin{minipage}[t]{3in} - {Diffusivity coefficient for T and Q} + {User-Defined Surface Diagnostic-7} \end{minipage}\\ -12 & EU & $m^2/sec$ & Nrphys + SDIAG8 & & 1 &\begin{minipage}[t]{3in} - {Diffusivity coefficient for U and V} + {User-Defined Surface Diagnostic-8} \end{minipage}\\ -13 & TURBU & $m/sec/day$ & Nrphys + SDIAG9 & & 1 &\begin{minipage}[t]{3in} - {U-Momentum Changes due to Turbulence} + {User-Defined Surface Diagnostic-9} \end{minipage}\\ -14 & TURBV & $m/sec/day$ & Nrphys + SDIAG10 & & 1 &\begin{minipage}[t]{3in} - {V-Momentum Changes due to Turbulence} + {User-Defined Surface Diagnostic-1-} \end{minipage}\\ -15 & TURBT & $deg/day$ & Nrphys + UDIAG3 & & Nrphys &\begin{minipage}[t]{3in} - {Temperature Changes due to Turbulence} + {User-Defined Multi-Level Diagnostic-3} \end{minipage}\\ -16 & TURBQ & $g/kg/day$ & Nrphys + UDIAG4 & & Nrphys &\begin{minipage}[t]{3in} - {Specific Humidity Changes due to Turbulence} + {User-Defined Multi-Level Diagnostic-4} \end{minipage}\\ -17 & MOISTT & $deg/day$ & Nrphys + UDIAG5 & & Nrphys &\begin{minipage}[t]{3in} - {Temperature Changes due to Moist Processes} + {User-Defined Multi-Level Diagnostic-5} \end{minipage}\\ -18 & MOISTQ & $g/kg/day$ & Nrphys + UDIAG6 & & Nrphys &\begin{minipage}[t]{3in} - {Specific Humidity Changes due to Moist Processes} + {User-Defined Multi-Level Diagnostic-6} \end{minipage}\\ -19 & RADLW & $deg/day$ & Nrphys + UDIAG7 & & Nrphys &\begin{minipage}[t]{3in} - {Net Longwave heating rate for each level} + {User-Defined Multi-Level Diagnostic-7} \end{minipage}\\ -20 & RADSW & $deg/day$ & Nrphys + UDIAG8 & & Nrphys &\begin{minipage}[t]{3in} - {Net Shortwave heating rate for each level} + {User-Defined Multi-Level Diagnostic-8} \end{minipage}\\ -21 & PREACC & $mm/day$ & 1 + UDIAG9 & & Nrphys &\begin{minipage}[t]{3in} - {Total Precipitation} + {User-Defined Multi-Level Diagnostic-9} \end{minipage}\\ -22 & PRECON & $mm/day$ & 1 + UDIAG10 & & Nrphys &\begin{minipage}[t]{3in} - {Convective Precipitation} + {User-Defined Multi-Level Diagnostic-10} \end{minipage}\\ -23 & TUFLUX & $Newton/m^2$ & Nrphys + SDIAGC & & 1 &\begin{minipage}[t]{3in} - {Turbulent Flux of U-Momentum} + {User-Defined Counted Surface Diagnostic} \end{minipage}\\ -24 & TVFLUX & $Newton/m^2$ & Nrphys + SDIAGCC & & 1 &\begin{minipage}[t]{3in} - {Turbulent Flux of V-Momentum} + {User-Defined Counted Surface Diagnostic Counter} \end{minipage}\\ -25 & TTFLUX & $Watts/m^2$ & Nrphys + ETAN & $(hPa,m)$ & 1 &\begin{minipage}[t]{3in} - {Turbulent Flux of Sensible Heat} + {Perturbation of Surface (pressure, height)} \end{minipage}\\ -26 & TQFLUX & $Watts/m^2$ & Nrphys + ETANSQ & $(hPa^2,m^2)$ & 1 &\begin{minipage}[t]{3in} - {Turbulent Flux of Latent Heat} + {Square of Perturbation of Surface (pressure, height)} \end{minipage}\\ -27 & CN & $dimensionless$ & 1 + DETADT2 & ${r-unit}^2/s^2$ & 1 &\begin{minipage}[t]{3in} - {Neutral Drag Coefficient} + {Square of Eta (Surf.P,SSH) Tendency} \end{minipage}\\ -28 & WINDS & $m/sec$ & 1 + THETA & $deg K$ & Nr &\begin{minipage}[t]{3in} - {Surface Wind Speed} + {Potential Temperature} \end{minipage}\\ -29 & DTSRF & $deg$ & 1 + SST & $deg K$ & 1 &\begin{minipage}[t]{3in} - {Air/Surface virtual temperature difference} + {Sea Surface Temperature} \end{minipage}\\ -30 & TG & $deg$ & 1 + SALT & $g/kg$ & Nr &\begin{minipage}[t]{3in} - {Ground temperature} + {Salt (or Water Vapor Mixing Ratio)} \end{minipage}\\ -31 & TS & $deg$ & 1 + SSS & $g/kg$ & 1 &\begin{minipage}[t]{3in} - {Surface air temperature (Adiabatic from lowest model layer)} + {Sea Surface Salinity} \end{minipage}\\ -32 & DTG & $deg$ & 1 + SALTanom & $g/kg$ & Nr &\begin{minipage}[t]{3in} - {Ground temperature adjustment} + {Salt anomaly (=SALT-35)} \end{minipage}\\ - \end{tabular} +\vspace{1.5in} +\vfill \newpage \vspace*{\fill} -\begin{tabular}{lllll} +\begin{tabular}{llll} \hline\hline -N & NAME & UNITS & LEVELS & DESCRIPTION \\ + NAME & UNITS & LEVELS & DESCRIPTION \\ \hline &\\ -33 & QG & $g/kg$ & 1 + UVEL & $m/sec$ & Nr &\begin{minipage}[t]{3in} - {Ground specific humidity} + {U-Velocity} \end{minipage}\\ -34 & QS & $g/kg$ & 1 + VVEL & $m/sec$ & Nr &\begin{minipage}[t]{3in} - {Saturation surface specific humidity} + {V-Velocity} \end{minipage}\\ - -&\\ -35 & TGRLW & $deg$ & 1 + UVEL\_k2 & $m/sec$ & 1 &\begin{minipage}[t]{3in} - {Instantaneous ground temperature used as input to the - Longwave radiation subroutine} + {U-Velocity} \end{minipage}\\ -36 & ST4 & $Watts/m^2$ & 1 + VVEL\_k2 & $m/sec$ & 1 &\begin{minipage}[t]{3in} - {Upward Longwave flux at the ground ($\sigma T^4$)} + {V-Velocity} \end{minipage}\\ -37 & OLR & $Watts/m^2$ & 1 + WVEL & $m/sec$ & Nr &\begin{minipage}[t]{3in} - {Net upward Longwave flux at the top of the model} + {Vertical-Velocity} \end{minipage}\\ -38 & OLRCLR & $Watts/m^2$ & 1 + THETASQ & $deg^2$ & Nr &\begin{minipage}[t]{3in} - {Net upward clearsky Longwave flux at the top of the model} + {Square of Potential Temperature} \end{minipage}\\ -39 & LWGCLR & $Watts/m^2$ & 1 + SALTSQ & $g^2/{kg}^2$ & Nr &\begin{minipage}[t]{3in} - {Net upward clearsky Longwave flux at the ground} + {Square of Salt (or Water Vapor Mixing Ratio)} \end{minipage}\\ -40 & LWCLR & $deg/day$ & Nrphys + SALTSQan & $g^2/{kg}^2$ & Nr &\begin{minipage}[t]{3in} - {Net clearsky Longwave heating rate for each level} + {Square of Salt anomaly (=SALT-35)} \end{minipage}\\ -41 & TLW & $deg$ & Nrphys + UVELSQ & $m^2/sec^2$ & Nr &\begin{minipage}[t]{3in} - {Instantaneous temperature used as input to the Longwave radiation - subroutine} + {Square of U-Velocity} \end{minipage}\\ -42 & SHLW & $g/g$ & Nrphys + VVELSQ & $m^2/sec^2$ & Nr &\begin{minipage}[t]{3in} - {Instantaneous specific humidity used as input to the Longwave radiation - subroutine} + {Square of V-Velocity} \end{minipage}\\ -43 & OZLW & $g/g$ & Nrphys + WVELSQ & $m^2/sec^2$ & Nr &\begin{minipage}[t]{3in} - {Instantaneous ozone used as input to the Longwave radiation - subroutine} + {Square of Vertical-Velocity} \end{minipage}\\ -44 & CLMOLW & $0-1$ & Nrphys + UV\_VEL\_C & $m^2/sec^2$ & Nr &\begin{minipage}[t]{3in} - {Maximum overlap cloud fraction used in the Longwave radiation - subroutine} + {Meridional Transport of Zonal Momentum (cell center)} \end{minipage}\\ -45 & CLDTOT & $0-1$ & Nrphys + UV\_VEL\_Z & $m^2/sec^2$ & Nr &\begin{minipage}[t]{3in} - {Total cloud fraction used in the Longwave and Shortwave radiation - subroutines} + {Meridional Transport of Zonal Momentum (corner)} \end{minipage}\\ -46 & RADSWT & $Watts/m^2$ & 1 + WU\_VEL & $m^2/sec^2$ & Nr &\begin{minipage}[t]{3in} - {Incident Shortwave radiation at the top of the atmosphere} + {Vertical Transport of Zonal Momentum (cell center)} \end{minipage}\\ -47 & CLROSW & $0-1$ & Nrphys + WV\_VEL & $m^2/sec^2$ & Nr &\begin{minipage}[t]{3in} - {Random overlap cloud fraction used in the shortwave radiation - subroutine} + {Vertical Transport of Meridional Momentum (cell center)} \end{minipage}\\ -48 & CLMOSW & $0-1$ & Nrphys + UVELMASS & $m/sec$ & Nr &\begin{minipage}[t]{3in} - {Maximum overlap cloud fraction used in the shortwave radiation - subroutine} + {Zonal Mass-Weighted Component of Velocity} \end{minipage}\\ -49 & EVAP & $mm/day$ & 1 + VVELMASS & $m/sec$ & Nr &\begin{minipage}[t]{3in} - {Surface evaporation} + {Meridional Mass-Weighted Component of Velocity} \end{minipage}\\ -\end{tabular} -\vfill - -\newpage -\vspace*{\fill} -\begin{tabular}{lllll} -\hline\hline -N & NAME & UNITS & LEVELS & DESCRIPTION \\ -\hline - -&\\ -50 & DUDT & $m/sec/day$ & Nrphys + WVELMASS & $m/sec$ & Nr &\begin{minipage}[t]{3in} - {Total U-Wind tendency} + {Vertical Mass-Weighted Component of Velocity} \end{minipage}\\ -51 & DVDT & $m/sec/day$ & Nrphys + UTHMASS & $m-deg/sec$ & Nr &\begin{minipage}[t]{3in} - {Total V-Wind tendency} + {Zonal Mass-Weight Transp of Pot Temp} \end{minipage}\\ -52 & DTDT & $deg/day$ & Nrphys + VTHMASS & $m-deg/sec$ & Nr &\begin{minipage}[t]{3in} - {Total Temperature tendency} + {Meridional Mass-Weight Transp of Pot Temp} \end{minipage}\\ -53 & DQDT & $g/kg/day$ & Nrphys + WTHMASS & $m-deg/sec$ & Nr &\begin{minipage}[t]{3in} - {Total Specific Humidity tendency} + {Vertical Mass-Weight Transp of Pot Temp} \end{minipage}\\ -54 & USTAR & $m/sec$ & 1 + USLTMASS & $m-kg/sec-kg$ & Nr &\begin{minipage}[t]{3in} - {Surface USTAR wind} + {Zonal Mass-Weight Transp of Salt (or W.Vap Mix Rat.)} \end{minipage}\\ -55 & Z0 & $m$ & 1 + VSLTMASS & $m-kg/sec-kg$ & Nr &\begin{minipage}[t]{3in} - {Surface roughness} + {Meridional Mass-Weight Transp of Salt (or W.Vap Mix Rat.)} \end{minipage}\\ -56 & FRQTRB & $0-1$ & Nrphys-1 + WSLTMASS & $m-kg/sec-kg$ & Nr &\begin{minipage}[t]{3in} - {Frequency of Turbulence} + {Vertical Mass-Weight Transp of Salt (or W.Vap Mix Rat.)} \end{minipage}\\ -57 & PBL & $mb$ & 1 + UVELTH & $m-deg/sec$ & Nr &\begin{minipage}[t]{3in} - {Planetary Boundary Layer depth} + {Zonal Transp of Pot Temp} \end{minipage}\\ -58 & SWCLR & $deg/day$ & Nrphys + VVELTH & $m-deg/sec$ & Nr &\begin{minipage}[t]{3in} - {Net clearsky Shortwave heating rate for each level} + {Meridional Transp of Pot Temp} \end{minipage}\\ -59 & OSR & $Watts/m^2$ & 1 + WVELTH & $m-deg/sec$ & Nr &\begin{minipage}[t]{3in} - {Net downward Shortwave flux at the top of the model} + {Vertical Transp of Pot Temp} \end{minipage}\\ -60 & OSRCLR & $Watts/m^2$ & 1 + UVELSLT & $m-kg/sec-kg$ & Nr &\begin{minipage}[t]{3in} - {Net downward clearsky Shortwave flux at the top of the model} + {Zonal Transp of Salt (or W.Vap Mix Rat.)} \end{minipage}\\ -61 & CLDMAS & $kg / m^2$ & Nrphys + VVELSLT & $m-kg/sec-kg$ & Nr &\begin{minipage}[t]{3in} - {Convective cloud mass flux} + {Meridional Transp of Salt (or W.Vap Mix Rat.)} \end{minipage}\\ -62 & UAVE & $m/sec$ & Nrphys + WVELSLT & $m-kg/sec-kg$ & Nr &\begin{minipage}[t]{3in} - {Time-averaged $u-Wind$} + {Vertical Transp of Salt (or W.Vap Mix Rat.)} \end{minipage}\\ -63 & VAVE & $m/sec$ & Nrphys +\end{tabular} +\vspace{1.5in} +\vfill + +\newpage +\vspace*{\fill} +\begin{tabular}{llll} +\hline\hline + NAME & UNITS & LEVELS & DESCRIPTION \\ +\hline + +&\\ + RHOAnoma & $kg/m^3 $ & Nr &\begin{minipage}[t]{3in} - {Time-averaged $v-Wind$} + {Density Anomaly (=Rho-rhoConst)} \end{minipage}\\ -64 & TAVE & $deg$ & Nrphys + RHOANOSQ & $kg^2/m^6$ & Nr &\begin{minipage}[t]{3in} - {Time-averaged $Temperature$} + {Square of Density Anomaly (=(Rho-rhoConst))} \end{minipage}\\ -65 & QAVE & $g/g$ & Nrphys + URHOMASS & $kg/m^2/s$ & Nr &\begin{minipage}[t]{3in} - {Time-averaged $Specific \, \, Humidity$} + {Zonal Transport of Density} \end{minipage}\\ -66 & PAVE & $mb$ & 1 + VRHOMASS & $kg/m^2/s$ & Nr &\begin{minipage}[t]{3in} - {Time-averaged $p_{surf} - p_{top}$} + {Meridional Transport of Density} \end{minipage}\\ -67 & QQAVE & $(m/sec)^2$ & Nrphys + WRHOMASS & $kg/m^2/s$ & Nr &\begin{minipage}[t]{3in} - {Time-averaged $Turbulent Kinetic Energy$} + {Vertical Transport of Potential Density} \end{minipage}\\ -68 & SWGCLR & $Watts/m^2$ & 1 + PHIHYD & $m^2/s^2 $ & Nr &\begin{minipage}[t]{3in} - {Net downward clearsky Shortwave flux at the ground} + {Hydrostatic (ocean) pressure / (atmos) geo-Potential} \end{minipage}\\ -69 & SDIAG1 & & 1 + PHIHYDSQ & $m^4/s^4 $ & Nr &\begin{minipage}[t]{3in} - {User-Defined Surface Diagnostic-1} + {Square of Hyd. (ocean) press / (atmos) geoPotential} \end{minipage}\\ -70 & SDIAG2 & & 1 + PHIBOT & $m^2/s^2 $ & Nr &\begin{minipage}[t]{3in} - {User-Defined Surface Diagnostic-2} + {ocean bottom pressure / top. atmos geo-Potential} \end{minipage}\\ -71 & UDIAG1 & & Nrphys + PHIBOTSQ & $m^4/s^4 $ & Nr &\begin{minipage}[t]{3in} - {User-Defined Upper-Air Diagnostic-1} + {Square of ocean bottom pressure / top. geo-Potential} \end{minipage}\\ -72 & UDIAG2 & & Nrphys + DRHODR & $kg/m^3/{r-unit}$ & Nr &\begin{minipage}[t]{3in} - {User-Defined Upper-Air Diagnostic-2} + {Stratification: d.Sigma/dr} \end{minipage}\\ -73 & DIABU & $m/sec/day$ & Nrphys + VISCA4 & $m^4/sec$ & 1 &\begin{minipage}[t]{3in} - {Total Diabatic forcing on $u-Wind$} + {Biharmonic Viscosity Coefficient} \end{minipage}\\ -74 & DIABV & $m/sec/day$ & Nrphys + VISCAH & $m^2/sec$ & 1 &\begin{minipage}[t]{3in} - {Total Diabatic forcing on $v-Wind$} + {Harmonic Viscosity Coefficient} \end{minipage}\\ -75 & DIABT & $deg/day$ & Nrphys + TAUX & $N/m^2 $ & 1 &\begin{minipage}[t]{3in} - {Total Diabatic forcing on $Temperature$} + {zonal surface wind stress, >0 increases uVel} \end{minipage}\\ -76 & DIABQ & $g/kg/day$ & Nrphys + TAUY & $N/m^2 $ & 1 &\begin{minipage}[t]{3in} - {Total Diabatic forcing on $Specific \, \, Humidity$} + {meridional surf. wind stress, >0 increases vVel} \end{minipage}\\ - -\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 + TFLUX & $W/m^2 $ & 1 &\begin{minipage}[t]{3in} - {Vertically integrated $u \, q$} + {net surface heat flux, >0 increases theta} \end{minipage}\\ -78 & VINTVQ & $m/sec \cdot g/kg$ & 1 + TRELAX & $W/m^2 $ & 1 &\begin{minipage}[t]{3in} - {Vertically integrated $v \, q$} + {surface temperature relaxation, >0 increases theta} \end{minipage}\\ -79 & VINTUT & $m/sec \cdot deg$ & 1 + TICE & $W/m^2 $ & 1 &\begin{minipage}[t]{3in} - {Vertically integrated $u \, T$} + {heat from melt/freeze of sea-ice, >0 increases theta} \end{minipage}\\ -80 & VINTVT & $m/sec \cdot deg$ & 1 + SFLUX & $g/m^2/s $ & 1 &\begin{minipage}[t]{3in} - {Vertically integrated $v \, T$} + {net surface salt flux, >0 increases salt} \end{minipage}\\ -81 & CLDFRC & $0-1$ & 1 + SRELAX & $g/m^2/s $ & 1 &\begin{minipage}[t]{3in} - {Total Cloud Fraction} + {surface salinity relaxation, >0 increases salt} \end{minipage}\\ -82 & QINT & $gm/cm^2$ & 1 + PRESSURE & $Pa $ & Nr &\begin{minipage}[t]{3in} - {Precipitable water} + {Atmospheric Pressure (Pa)} \end{minipage}\\ -83 & U2M & $m/sec$ & 1 + ADVr\_TH & $K.Pa.m^2/s $ & Nr &\begin{minipage}[t]{3in} - {U-Wind at 2 meters} + {Vertical Advective Flux of Pot.Temperature} \end{minipage}\\ -84 & V2M & $m/sec$ & 1 + ADVx\_TH & $K.Pa.m^2/s $ & Nr &\begin{minipage}[t]{3in} - {V-Wind at 2 meters} + {Zonal Advective Flux of Pot.Temperature} \end{minipage}\\ -85 & T2M & $deg$ & 1 + ADVy\_TH & $K.Pa.m^2/s $ & Nr &\begin{minipage}[t]{3in} - {Temperature at 2 meters} + {Meridional Advective Flux of Pot.Temperature} \end{minipage}\\ -86 & Q2M & $g/kg$ & 1 + DFrE\_TH & $K.Pa.m^2/s $ & Nr &\begin{minipage}[t]{3in} - {Specific Humidity at 2 meters} + {Vertical Diffusive Flux of Pot.Temperature (Explicit part)} \end{minipage}\\ -87 & U10M & $m/sec$ & 1 + DIFx\_TH & $K.Pa.m^2/s $ & Nr &\begin{minipage}[t]{3in} - {U-Wind at 10 meters} + {Zonal Diffusive Flux of Pot.Temperature} \end{minipage}\\ -88 & V10M & $m/sec$ & 1 + DIFy\_TH & $K.Pa.m^2/s $ & Nr &\begin{minipage}[t]{3in} - {V-Wind at 10 meters} + {Meridional Diffusive Flux of Pot.Temperature} \end{minipage}\\ -89 & T10M & $deg$ & 1 + DFrI\_TH & $K.Pa.m^2/s $ & Nr &\begin{minipage}[t]{3in} - {Temperature at 10 meters} + {Vertical Diffusive Flux of Pot.Temperature (Implicit part)} \end{minipage}\\ -90 & Q10M & $g/kg$ & 1 + ADVr\_SLT & $g/kg.Pa.m^2/s$ & Nr &\begin{minipage}[t]{3in} - {Specific Humidity at 10 meters} + {Vertical Advective Flux of Water-Vapor} \end{minipage}\\ -91 & DTRAIN & $kg/m^2$ & Nrphys + ADVx\_SLT & $g/kg.Pa.m^2/s$ & Nr &\begin{minipage}[t]{3in} - {Detrainment Cloud Mass Flux} + {Zonal Advective Flux of Water-Vapor} \end{minipage}\\ -92 & QFILL & $g/kg/day$ & Nrphys + ADVy\_SLT & $g/kg.Pa.m^2/s$ & Nr &\begin{minipage}[t]{3in} - {Filling of negative specific humidity} + {Meridional Advective Flux of Water-Vapor} \end{minipage}\\ +\end{tabular} +\vspace{1.5in} +\vfill +\newpage +\vspace*{\fill} +\begin{tabular}{llll} +\hline\hline + NAME & UNITS & LEVELS & DESCRIPTION \\ +\hline + +&\\ + DFrE\_SLT & $g/kg.Pa.m^2/s$ & Nr + &\begin{minipage}[t]{3in} + {Vertical Diffusive Flux of Water-Vapor (Explicit part)} + \end{minipage}\\ + DIFx\_SLT & $g/kg.Pa.m^2/s$ & Nr + &\begin{minipage}[t]{3in} + {Zonal Diffusive Flux of Water-Vapor} + \end{minipage}\\ + DIFy\_SLT & $g/kg.Pa.m^2/s$ & Nr + &\begin{minipage}[t]{3in} + {Meridional Diffusive Flux of Water-Vapor} + \end{minipage}\\ + DFrI\_SLT & $g/kg.Pa.m^2/s$ & Nr + &\begin{minipage}[t]{3in} + {Vertical Diffusive Flux of Water-Vapor (Implicit part)} + \end{minipage}\\ \end{tabular} \vspace{1.5in} \vfill @@ -651,1691 +820,8 @@ {\bf DIAGNOSTIC} = {1 \over TTOT} \sum_{t=1}^{t=TTOT} diag(t) \] where $TTOT = {{\bf NQDIAG} \over \Delta t}$, {\bf NQDIAG} is the -output frequency of the diagnositc, and $\Delta t$ is -the timestep over which the diagnostic is updated. For further information on how -to set the diagnostic output frequency {\bf NQDIAG}, please see Part III, A User's Guide. - -{\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} -\] +output frequency of the diagnostic, and $\Delta t$ is +the timestep over which the diagnostic is updated. \subsection{Dos and Donts}