\hypertarget{group__module__radsw__main}{}\doxysubsection{GFS RRTMG-\/\+SW Main Module}
\label{group__module__radsw__main}\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}


This module includes NCEP\textquotesingle{}s modifications of the RRTMG-\/\+SW radiation code from AER.  


\doxysubsubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
module \mbox{\hyperlink{namespacemodule__radsw__parameters}{module\+\_\+radsw\+\_\+parameters}}
\begin{DoxyCompactList}\small\item\em This module is for specifying the band structures and program parameters used by the RRTMG-\/\+SW scheme. \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__ref}{module\+\_\+radsw\+\_\+ref}}
\begin{DoxyCompactList}\small\item\em This module contains the reference pressures (in logarithm form) at 59 vertical levels (TOA is omitted), and the mid-\/latitude summer (MLS) standard temperature profile for the 59 pressure layers that are used to establish pre calculated transmission tables. \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__cldprtb}{module\+\_\+radsw\+\_\+cldprtb}}
\begin{DoxyCompactList}\small\item\em This module contains cloud radiative property coefficients. \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__sflux}{module\+\_\+radsw\+\_\+sflux}}
\begin{DoxyCompactList}\small\item\em This module contains various indexes and coefficients for SW spectral bands, as well as the spectral distribution of solar flux. The values of spectral solar flux are derived based on a prescribed solar constant ( $1368.22 W/m^2$). Scaling will be applied for the actual inputted solar constant value. \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb16}{module\+\_\+radsw\+\_\+kgb16}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coefficients for band 16\+: 2600-\/3250 cm-\/1 (low -\/ h2o, ch4; high -\/ ch4) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb17}{module\+\_\+radsw\+\_\+kgb17}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 17\+: 3250-\/4000 cm-\/1 (low -\/ h2o,co2; high -\/ h2o,co2) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb18}{module\+\_\+radsw\+\_\+kgb18}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 18\+: 4000-\/4650 cm-\/1 (low -\/ h2o,ch4; high -\/ ch4) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb19}{module\+\_\+radsw\+\_\+kgb19}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 19\+: 4650-\/5150 cm-\/1 (low -\/ h2o,co2; high -\/ co2) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb20}{module\+\_\+radsw\+\_\+kgb20}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 20\+: 5150-\/6150 cm-\/1 (low -\/ h2o; high -\/ h2o) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb21}{module\+\_\+radsw\+\_\+kgb21}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 21\+: 6150-\/7700 cm-\/1 (low -\/ h2o,co2; high -\/ h2o,co2) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb22}{module\+\_\+radsw\+\_\+kgb22}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 22\+: 7700-\/8050 cm-\/1 (low -\/ h2o, o2; high -\/ o2) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb23}{module\+\_\+radsw\+\_\+kgb23}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 23\+: 8050-\/12850 cm-\/1 (low -\/ h2o; high -\/ nothing) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb24}{module\+\_\+radsw\+\_\+kgb24}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 24\+: 12850-\/16000 cm-\/1 (low -\/ h2o, o2; high -\/ o2) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb25}{module\+\_\+radsw\+\_\+kgb25}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 25\+: 16000-\/22650 cm-\/1 (low -\/ h2o; high -\/ nothing) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb26}{module\+\_\+radsw\+\_\+kgb26}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 26\+: 22650-\/29000 cm-\/1 (low -\/ nothing; high -\/ nothing) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb27}{module\+\_\+radsw\+\_\+kgb27}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 27\+: 29000-\/38000 cm-\/1 (low -\/ o3; high -\/ o3) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb28}{module\+\_\+radsw\+\_\+kgb28}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 28\+: 38000-\/50000 cm-\/1 (low -\/ o3,o2; high -\/ o3,o2) \end{DoxyCompactList}\item 
module \mbox{\hyperlink{namespacemodule__radsw__kgb29}{module\+\_\+radsw\+\_\+kgb29}}
\begin{DoxyCompactList}\small\item\em This module sets up absorption coeffients for band 29\+: 820-\/2600 cm-\/1 (low -\/ h2o; high -\/ co2) \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \mbox{\hyperlink{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}{rrtmg\+\_\+sw\+::rrtmg\+\_\+sw\+\_\+run}} (plyr, plvl, tlyr, tlvl, qlyr, olyr, gasvmr\+\_\+co2, gasvmr\+\_\+n2o, gasvmr\+\_\+ch4, gasvmr\+\_\+o2, gasvmr\+\_\+co, gasvmr\+\_\+cfc11, gasvmr\+\_\+cfc12, gasvmr\+\_\+cfc22, gasvmr\+\_\+ccl4, icseed, aeraod, aerssa, aerasy, sfcalb\+\_\+nir\+\_\+dir, sfcalb\+\_\+nir\+\_\+dif, sfcalb\+\_\+uvis\+\_\+dir, sfcalb\+\_\+uvis\+\_\+dif, dzlyr, delpin, de\+\_\+lgth, alpha, cosz, solcon, NDAY, idxday, npts, nlay, nlp1, lprnt, inc\+\_\+minor\+\_\+gas, iswcliq, iswcice, isubcsw, iovr, top\+\_\+at\+\_\+1, iswmode, cld\+\_\+cf, lsswr, iovr\+\_\+rand, iovr\+\_\+maxrand, iovr\+\_\+max, iovr\+\_\+dcorr, iovr\+\_\+exp, iovr\+\_\+exprand, hswc, topflx, sfcflx, cldtau, HSW0, HSWB, FLXPRF, FDNCMP, cld\+\_\+lwp, cld\+\_\+ref\+\_\+liq, cld\+\_\+iwp, cld\+\_\+ref\+\_\+ice, cld\+\_\+rwp, cld\+\_\+ref\+\_\+rain, cld\+\_\+swp, cld\+\_\+ref\+\_\+snow, cld\+\_\+od, cld\+\_\+ssa, cld\+\_\+asy, errmsg, errflg)
\item 
subroutine, public \mbox{\hyperlink{group__module__radsw__main_gacd1a47cfea461f06d4573bbd5841b6eb_gacd1a47cfea461f06d4573bbd5841b6eb}{rrtmg\+\_\+sw\+::rswinit}} (me, rad\+\_\+hr\+\_\+units, inc\+\_\+minor\+\_\+gas, iswcliq, isubcsw, iovr, iovr\+\_\+rand, iovr\+\_\+maxrand, iovr\+\_\+max, iovr\+\_\+dcorr, iovr\+\_\+exp, iovr\+\_\+exprand, iswmode, errflg, errmsg)
\begin{DoxyCompactList}\small\item\em This subroutine initializes non-\/varying module variables, conversion factors, and look-\/up tables. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487}{rrtmg\+\_\+sw\+::cldprop}} (cfrac, cliqp, reliq, cicep, reice, cdat1, cdat2, cdat3, cdat4, cf1, nlay, ipseed, dz, delgth, alpha, iswcliq, iswcice, isubcsw, iovr, taucw, ssacw, asycw, cldfrc, cldfmc)
\begin{DoxyCompactList}\small\item\em This subroutine computes the cloud optical properties for each cloudy layer and g-\/point interval. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_ga2c3a6663350f2f9d442fb4c3bd7350fc}{rrtmg\+\_\+sw\+::mcica\+\_\+subcol}} (cldf, nlay, ipseed, dz, de\+\_\+lgth, alpha, iovr, lcloudy)
\begin{DoxyCompactList}\small\item\em This subroutine computes the sub-\/colum cloud profile flag array. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_ga75a4e30460100beb2c2453be850a3ba5}{rrtmg\+\_\+sw\+::setcoef}} (pavel, tavel, h2ovmr, nlay, nlp1, laytrop, jp, jt, jt1, fac00, fac01, fac10, fac11, selffac, selffrac, indself, forfac, forfrac, indfor)
\begin{DoxyCompactList}\small\item\em This subroutine computes various coefficients needed in radiative transfer calculation. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97}{rrtmg\+\_\+sw\+::spcvrtc}} (ssolar, cosz, sntz, albbm, albdf, sfluxzen, cldfrc, cf1, cf0, taug, taur, tauae, ssaae, asyae, taucw, ssacw, asycw, nlay, nlp1, iswmode, fxupc, fxdnc, fxup0, fxdn0, ftoauc, ftoau0, ftoadc, fsfcuc, fsfcu0, fsfcdc, fsfcd0, sfbmc, sfdfc, sfbm0, sfdf0, suvbfc, suvbf0)
\begin{DoxyCompactList}\small\item\em This subroutine computes the shortwave radiative fluxes using two-\/stream method. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b}{rrtmg\+\_\+sw\+::spcvrtm}} (ssolar, cosz, sntz, albbm, albdf, sfluxzen, cldfmc, cf1, cf0, taug, taur, tauae, ssaae, asyae, taucw, ssacw, asycw, nlay, nlp1, iswmode, fxupc, fxdnc, fxup0, fxdn0, ftoauc, ftoau0, ftoadc, fsfcuc, fsfcu0, fsfcdc, fsfcd0, sfbmc, sfdfc, sfbm0, sfdf0, suvbfc, suvbf0)
\begin{DoxyCompactList}\small\item\em This subroutine computes the shortwave radiative fluxes using two-\/stream method of h. barder and mcica,the monte-\/carlo independent column approximation, for the representation of sub-\/grid cloud variability (i.\+e. cloud overlap). \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}{rrtmg\+\_\+sw\+::vrtqdr}} (zrefb, zrefd, ztrab, ztrad, zldbt, ztdbt, NLAY, NLP1, zfu, zfd)
\begin{DoxyCompactList}\small\item\em This subroutine is called by \mbox{\hyperlink{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97}{spcvrtc()}} and \mbox{\hyperlink{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b}{spcvrtm()}}, and computes the upward and downward radiation fluxes. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol}} (colamt, colmol, fac00, fac01, fac10, fac11, jp, jt, jt1, laytrop, forfac, forfrac, indfor, selffac, selffrac, indself, nlay, sfluxzen, taug, taur)
\begin{DoxyCompactList}\small\item\em This subroutine calculates optical depths for gaseous absorption and rayleigh scattering ~\newline
 subroutine called taumol\#\# (\#\# = 16-\/29) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga8702f5f6285ff1a5cbfad740545fffb6_ga8702f5f6285ff1a5cbfad740545fffb6}{taumol16}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 16\+: 2600-\/3250 cm-\/1 (low -\/ h2o,ch4; high -\/ ch4) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_gae46d1c061726bcde426caadd80b1fd80_gae46d1c061726bcde426caadd80b1fd80}{taumol17}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 17\+: 3250-\/4000 cm-\/1 (low -\/ h2o,co2; high -\/ h2o,co2) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga06f6f2b0ef60df93c267a667a2e1aa36_ga06f6f2b0ef60df93c267a667a2e1aa36}{taumol18}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 18\+: 4000-\/4650 cm-\/1 (low -\/ h2o,ch4; high -\/ ch4) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga776a0d78fda9f4fd0f1153b55be597df_ga776a0d78fda9f4fd0f1153b55be597df}{taumol19}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 19\+: 4650-\/5150 cm-\/1 (low -\/ h2o,co2; high -\/ co2) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga6eb9a29728a986ea6b15240adebd4a0c_ga6eb9a29728a986ea6b15240adebd4a0c}{taumol20}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 20\+: 5150-\/6150 cm-\/1 (low -\/ h2o; high -\/ h2o) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga54619c48147f35da2d7855dc488c0ff4_ga54619c48147f35da2d7855dc488c0ff4}{taumol21}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 21\+: 6150-\/7700 cm-\/1 (low -\/ h2o,co2; high -\/ h2o,co2) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga3b5392346eee35eb13a2a54175b6338b_ga3b5392346eee35eb13a2a54175b6338b}{taumol22}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 22\+: 7700-\/8050 cm-\/1 (low -\/ h2o,o2; high -\/ o2) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_gadf5d73763c80ec079b72dda7d74cba94_gadf5d73763c80ec079b72dda7d74cba94}{taumol23}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 23\+: 8050-\/12850 cm-\/1 (low -\/ h2o; high -\/ nothing) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_gae0abf1a08aa5d6ca14bfea83d0603716_gae0abf1a08aa5d6ca14bfea83d0603716}{taumol24}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 24\+: 12850-\/16000 cm-\/1 (low -\/ h2o,o2; high -\/ o2) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga21b72d6de9247eccb20de836ea76cf7a_ga21b72d6de9247eccb20de836ea76cf7a}{taumol25}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 25\+: 16000-\/22650 cm-\/1 (low -\/ h2o; high -\/ nothing) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga20261640145a5d10e091ef3c67763175_ga20261640145a5d10e091ef3c67763175}{taumol26}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 26\+: 22650-\/29000 cm-\/1 (low -\/ nothing; high -\/ nothing) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga7d2cea6cc0cfde853d25a14ba0efcca2_ga7d2cea6cc0cfde853d25a14ba0efcca2}{taumol27}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 27\+: 29000-\/38000 cm-\/1 (low -\/ o3; high -\/ o3) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga2113c76707f43cf91fe5926ab69d1b8b_ga2113c76707f43cf91fe5926ab69d1b8b}{taumol28}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 28\+: 38000-\/50000 cm-\/1 (low -\/ o3,o2; high -\/ o3,o2) \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{group__module__radsw__main_ga08e2db10432d07392f29a49bc5b5c640_ga08e2db10432d07392f29a49bc5b5c640}{taumol29}}
\begin{DoxyCompactList}\small\item\em The subroutine computes the optical depth in band 29\+: 820-\/2600 cm-\/1 (low -\/ h2o; high -\/ co2) \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
The SW radiation model in the current NOAA Environmental Modeling System (NEMS) was adapted from the RRTM radiation model developed by AER Inc. (\cite{clough_et_al_2005}; \cite{mlawer_et_al_1997}). It contains 14 spectral bands spanning a spectral wavenumber range of $50000-820 cm^{-1}$ (corresponding to a wavelength range $0.2-12.2\mu m$), each spectral band focuses on a specific set of atmospheric absorbing species as shown in Table 1. To achieve great computation efficiency while at the same time to maintain a high degree of accuracy, the RRTM radiation model employs a corrected-\/k distribution method (i.\+e. mapping the highly spectral changing absorption coefficient, k, into a monotonic and smooth varying cumulative probability function, g). In the RRTM-\/\+SW, there are 16 unevenly distributed g points for each of the 14 bands for a total of 224 g points. The GCM version of the code (RRTMG-\/\+SW) uses a reduced number (various between 2 to 16) of g points for each of the bands that totals to 112 instead of the full set of 224. To get high quality for the scheme, many advanced techniques are used in RRTM such as carefully selecting the band structure to handle various major (key-\/species) and minor absorbers; deriving a binary parameter for a paired key molecular species in the same domain; and using two pressure regions (dividing level is at about 96mb) for optimal treatment of various species, etc.

Table 1. RRTMG-\/\+SW spectral bands and the corresponding absorbing species \tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{6}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Band \#   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Wavenumber Range   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Lower Atm (Key)   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Lower Atm (Minor)   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Mid/\+Up Atm (Key)   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Mid/\+Up Atm (Minor)    }\\\cline{1-6}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Band \#   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Wavenumber Range   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Lower Atm (Key)   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Lower Atm (Minor)   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Mid/\+Up Atm (Key)   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ Mid/\+Up Atm (Minor)    }\\\cline{1-6}
\endhead
16   &2600-\/3250   &H2O,CH4   &&CH4   &\\\cline{1-6}
17   &3250-\/4000   &H2O,CO2   &&H2O,CO2   &\\\cline{1-6}
18   &4000-\/4650   &H2O,CH4   &&CH4   &\\\cline{1-6}
19   &4650-\/5150   &H2O,CO2   &&CO2   &\\\cline{1-6}
20   &5150-\/6150   &H2O   &CH4   &H2O   &CH4    \\\cline{1-6}
21   &6150-\/7700   &H2O,CO2   &&H2O,CO2   &\\\cline{1-6}
22   &7700-\/8050   &H2O,O2   &&O2   &\\\cline{1-6}
23   &8050-\/12850   &H2O   &&---   &\\\cline{1-6}
24   &12850-\/16000   &H2O,O2   &O3   &O2   &O3    \\\cline{1-6}
25   &16000-\/22650   &H2O   &O3   &---   &O3    \\\cline{1-6}
26   &22650-\/29000   &---   &&---   &\\\cline{1-6}
27   &29000-\/38000   &O3   &&O3   &\\\cline{1-6}
28   &38000-\/50000   &O3,O2   &&O3,O2   &\\\cline{1-6}
29   &820-\/2600   &H2O   &CO2   &CO2   &H2O   \\\cline{1-6}
\end{longtabu}


The RRTMG-\/\+SW package includes three files\+:
\begin{DoxyItemize}
\item radsw\+\_\+param.\+f, which contains\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{namespacemodule__radsw__parameters}{module\+\_\+radsw\+\_\+parameters}}\+: specifies major parameters of the spectral bands and defines the construct structures of derived-\/type variables for holding the output results.
\end{DoxyItemize}
\item radsw\+\_\+datatb.\+f, which contains\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{namespacemodule__radsw__ref}{module\+\_\+radsw\+\_\+ref}}\+: reference temperature and pressure
\item \mbox{\hyperlink{namespacemodule__radsw__cldprtb}{module\+\_\+radsw\+\_\+cldprtb}}\+: cloud property coefficients table
\item \mbox{\hyperlink{namespacemodule__radsw__sflux}{module\+\_\+radsw\+\_\+sflux}}\+: indexes and coefficients for spectral distribution of solar flux
\item module\+\_\+radsw\+\_\+kgbnn\+: absorption coefficents for 14 bands, where nn = 16-\/29
\end{DoxyItemize}
\item radsw\+\_\+main.\+f, which contains\+:
\begin{DoxyItemize}
\item \mbox{\hyperlink{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}{rrtmg\+\_\+sw\+\_\+run()}}\+: the main SW radiation routine
\item \mbox{\hyperlink{group__module__radsw__main_gacd1a47cfea461f06d4573bbd5841b6eb_gacd1a47cfea461f06d4573bbd5841b6eb}{rswinit()}}\+: the initialization routine
\end{DoxyItemize}
\end{DoxyItemize}

\begin{DoxyAuthor}{Author}
Eli J. Mlawer, \href{mailto:emlawer@aer.com}{\texttt{ emlawer@aer.\+com}} 

Jennifer S. Delamere, \href{mailto:jdelamer@aer.com}{\texttt{ jdelamer@aer.\+com}} 

Michael J. Iacono, \href{mailto:miacono@aer.com}{\texttt{ miacono@aer.\+com}} 

Shepard A. Clough 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}
NCEP SW v5.\+1 Nov 2012 -\/RRTMG-\/\+SW v3.\+8
\end{DoxyVersion}
The authors wish to acknowledge the contributions of the following people\+: Steven J. Taubman, Karen Cady-\/\+Pereira, Patrick D. Brown, Ronald E. Farren, Luke Chen, Robert Bergstrom.

\begin{DoxyCopyright}{Copyright}
2002-\/2007, Atmospheric \& Environmental Research, Inc. (AER). This software may be used, copied, or redistributed as long as it is not sold and this copyright notice is reproduced on each copy made. This model is provided as is without any express or implied warranties. (\href{http://www.rtweb.aer.com/}{\texttt{ http\+://www.\+rtweb.\+aer.\+com/}})
\end{DoxyCopyright}
\hypertarget{group__module__radsw__main_arg_table_rrtmg_sw_run}{}\doxysubsubsection{Argument Table}\label{group__module__radsw__main_arg_table_rrtmg_sw_run}
\hypertarget{group__module__radsw__main_gen_swrad}{}\doxysubsubsection{RRTMG Shortwave Radiation Scheme General Algorithm}\label{group__module__radsw__main_gen_swrad}


\doxysubsubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}\label{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!rrtmg\_sw\_run@{rrtmg\_sw\_run}}
\index{rrtmg\_sw\_run@{rrtmg\_sw\_run}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{rrtmg\_sw\_run()}{rrtmg\_sw\_run()}}
{\footnotesize\ttfamily subroutine, public rrtmg\+\_\+sw\+::rrtmg\+\_\+sw\+\_\+run (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{plyr,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{plvl,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{tlyr,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{tlvl,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{qlyr,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{olyr,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+co2,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+n2o,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+ch4,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+o2,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+co,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+cfc11,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+cfc12,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+cfc22,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{gasvmr\+\_\+ccl4,  }\item[{integer, dimension(\+:), intent(in)}]{icseed,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(in)}]{aeraod,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(in)}]{aerssa,  }\item[{real(kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(in)}]{aerasy,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{sfcalb\+\_\+nir\+\_\+dir,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{sfcalb\+\_\+nir\+\_\+dif,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{sfcalb\+\_\+uvis\+\_\+dir,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{sfcalb\+\_\+uvis\+\_\+dif,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{dzlyr,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{delpin,  }\item[{real (kind=kind\+\_\+phys), dimension(npts), intent(in)}]{de\+\_\+lgth,  }\item[{real (kind=kind\+\_\+phys), dimension(npts,nlay), intent(in)}]{alpha,  }\item[{real (kind=kind\+\_\+phys), dimension(npts), intent(in)}]{cosz,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{solcon,  }\item[{integer, intent(in)}]{NDAY,  }\item[{integer, dimension(\+:), intent(in)}]{idxday,  }\item[{integer, intent(in)}]{npts,  }\item[{integer, intent(in)}]{nlay,  }\item[{integer, intent(in)}]{nlp1,  }\item[{logical, intent(in)}]{lprnt,  }\item[{logical, intent(in)}]{inc\+\_\+minor\+\_\+gas,  }\item[{integer, intent(in)}]{iswcliq,  }\item[{integer, intent(in)}]{iswcice,  }\item[{integer, intent(in)}]{isubcsw,  }\item[{integer, intent(in)}]{iovr,  }\item[{logical, intent(in)}]{top\+\_\+at\+\_\+1,  }\item[{integer, intent(in)}]{iswmode,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in)}]{cld\+\_\+cf,  }\item[{logical, intent(in)}]{lsswr,  }\item[{integer, intent(in)}]{iovr\+\_\+rand,  }\item[{integer, intent(in)}]{iovr\+\_\+maxrand,  }\item[{integer, intent(in)}]{iovr\+\_\+max,  }\item[{integer, intent(in)}]{iovr\+\_\+dcorr,  }\item[{integer, intent(in)}]{iovr\+\_\+exp,  }\item[{integer, intent(in)}]{iovr\+\_\+exprand,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{hswc,  }\item[{type (\mbox{\hyperlink{structmodule__radsw__parameters_1_1topfsw__type}{topfsw\+\_\+type}}), dimension(\+:), intent(inout)}]{topflx,  }\item[{type (\mbox{\hyperlink{structmodule__radsw__parameters_1_1sfcfsw__type}{sfcfsw\+\_\+type}}), dimension(\+:), intent(inout)}]{sfcflx,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout)}]{cldtau,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(inout), optional}]{HSW0,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:,\+:), intent(inout), optional}]{HSWB,  }\item[{type (\mbox{\hyperlink{structmodule__radsw__parameters_1_1profsw__type}{profsw\+\_\+type}}), dimension(\+:,\+:), intent(inout), optional}]{FLXPRF,  }\item[{type (\mbox{\hyperlink{structmodule__radsw__parameters_1_1cmpfsw__type}{cmpfsw\+\_\+type}}), dimension(\+:), intent(inout), optional}]{FDNCMP,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+lwp,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+ref\+\_\+liq,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+iwp,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+ref\+\_\+ice,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+rwp,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+ref\+\_\+rain,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+swp,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+ref\+\_\+snow,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+od,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+ssa,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:,\+:), intent(in), optional}]{cld\+\_\+asy,  }\item[{character(len=$\ast$), intent(out)}]{errmsg,  }\item[{integer, intent(out)}]{errflg }\end{DoxyParamCaption})}


\begin{DoxyItemize}
\item Compute solar constant adjustment factor (s0fac) according to solcon.
\item Initial output arrays (and optional) as zero.
\item Change random number seed value for each radiation invocation (isubcsw =1 or 2).
\item Prepare surface albedo\+: bm,df -\/ dir,dif; 1,2 -\/ nir,uvv.
\item Prepare atmospheric profile for use in rrtm.
\item Set absorber and gas column amount, convert from volume mixing ratio to molec/cm2 based on coldry (scaled to 1.\+0e-\/20)
\begin{DoxyItemize}
\item colamt(nlay,maxgas)\+:column amounts of absorbing gases 1 to maxgas are for h2o,co2,o3,n2o,ch4,o2,co, respectively ( $ mol/cm^2 $)
\end{DoxyItemize}
\item Read aerosol optical properties from \textquotesingle{}aerosols\textquotesingle{}.
\item Read cloud optical properties from \textquotesingle{}clouds\textquotesingle{}.
\item Compute fractions of clear sky view\+:
\begin{DoxyItemize}
\item random overlapping
\item max/ran overlapping
\item maximum overlapping
\end{DoxyItemize}
\item For cloudy sky column, call \mbox{\hyperlink{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487}{cldprop()}} to compute the cloud optical properties for each cloudy layer.
\item Call \mbox{\hyperlink{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_ga75a4e30460100beb2c2453be850a3ba5}{setcoef()}} to compute various coefficients needed in radiative transfer calculations.
\item Call \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{taumol()}} to calculate optical depths for gaseous absorption and rayleigh scattering
\item Call the 2-\/stream radiation transfer model\+:
\begin{DoxyItemize}
\item if GFS\+\_\+typedefs\+::isubcsw .le.\+0, using standard cloud scheme, call \mbox{\hyperlink{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97}{spcvrtc()}}.
\item if GFS\+\_\+typedefs\+::isubcsw .gt.\+0, using mcica cloud scheme, call \mbox{\hyperlink{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b}{spcvrtm()}}.
\end{DoxyItemize}
\item Save outputs.
\end{DoxyItemize}

References \mbox{\hyperlink{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487}{rrtmg\+\_\+sw\+::cldprop()}}, \mbox{\hyperlink{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_ga75a4e30460100beb2c2453be850a3ba5}{rrtmg\+\_\+sw\+::setcoef()}}, \mbox{\hyperlink{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97}{rrtmg\+\_\+sw\+::spcvrtc()}}, \mbox{\hyperlink{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b}{rrtmg\+\_\+sw\+::spcvrtm()}}, and \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_gacd1a47cfea461f06d4573bbd5841b6eb_gacd1a47cfea461f06d4573bbd5841b6eb}\label{group__module__radsw__main_gacd1a47cfea461f06d4573bbd5841b6eb_gacd1a47cfea461f06d4573bbd5841b6eb}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!rswinit@{rswinit}}
\index{rswinit@{rswinit}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{rswinit()}{rswinit()}}
{\footnotesize\ttfamily subroutine, public rrtmg\+\_\+sw\+::rswinit (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{me,  }\item[{integer, intent(in)}]{rad\+\_\+hr\+\_\+units,  }\item[{logical, intent(in)}]{inc\+\_\+minor\+\_\+gas,  }\item[{integer, intent(in)}]{iswcliq,  }\item[{integer, intent(in)}]{isubcsw,  }\item[{integer, intent(in)}]{iovr,  }\item[{integer, intent(in)}]{iovr\+\_\+rand,  }\item[{integer, intent(in)}]{iovr\+\_\+maxrand,  }\item[{integer, intent(in)}]{iovr\+\_\+max,  }\item[{integer, intent(in)}]{iovr\+\_\+dcorr,  }\item[{integer, intent(in)}]{iovr\+\_\+exp,  }\item[{integer, intent(in)}]{iovr\+\_\+exprand,  }\item[{integer, intent(in)}]{iswmode,  }\item[{integer, intent(out)}]{errflg,  }\item[{character(len=$\ast$), intent(out)}]{errmsg }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em me} & print control for parallel process \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_gacd1a47cfea461f06d4573bbd5841b6eb_rswinit_gen}{}\doxysubsubsection{rswinit General Algorithm}\label{group__module__radsw__main_gacd1a47cfea461f06d4573bbd5841b6eb_rswinit_gen}

\begin{DoxyItemize}
\item Setup constant factors for heating rate the 1.\+0e-\/2 is to convert pressure from mb to $N/m^2$ .
\item Define exponential lookup tables for transmittance.
\end{DoxyItemize}

Referenced by \mbox{\hyperlink{group___g_f_s__rrtmg__setup__mod_ga57c188f5ede1fbeaa1c48b8f7ac8b459_ga57c188f5ede1fbeaa1c48b8f7ac8b459}{gfs\+\_\+rrtmg\+\_\+setup\+::gfs\+\_\+rrtmg\+\_\+setup\+\_\+init()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=314pt]{group__module__radsw__main_gacd1a47cfea461f06d4573bbd5841b6eb_gacd1a47cfea461f06d4573bbd5841b6eb_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487}\label{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!cldprop@{cldprop}}
\index{cldprop@{cldprop}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{cldprop()}{cldprop()}}
{\footnotesize\ttfamily subroutine rrtmg\+\_\+sw\+::cldprop (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cfrac,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cliqp,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{reliq,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cicep,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{reice,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cdat1,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cdat2,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cdat3,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cdat4,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{cf1,  }\item[{integer, intent(in)}]{nlay,  }\item[{integer, intent(in)}]{ipseed,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{dz,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{delgth,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{alpha,  }\item[{integer, intent(in)}]{iswcliq,  }\item[{integer, intent(in)}]{iswcice,  }\item[{integer, intent(in)}]{isubcsw,  }\item[{integer, intent(in)}]{iovr,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(out)}]{taucw,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(out)}]{ssacw,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(out)}]{asycw,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{cldfrc,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(out)}]{cldfmc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}


\begin{DoxyParams}{Parameters}
{\em cfrac} & layer cloud fraction \\
\hline
{\em cliqp} & layer in-\/cloud liq water path ( $g/m^2$) \\
\hline
{\em reliq} & mean eff radius for liq cloud (micron) \\
\hline
{\em cicep} & layer in-\/cloud ice water path ( $g/m^2$) \\
\hline
{\em reice} & mean eff radius for ice cloud (micron) \\
\hline
{\em cdat1} & layer rain drop water path ( $g/m^2$) \\
\hline
{\em cdat2} & effective radius for rain drop (micron) \\
\hline
{\em cdat3} & layer snow flake water path( $g/m^2$) \\
\hline
{\em cdat4} & mean eff radius for snow flake(micron) \\
\hline
{\em cf1} & effective total cloud cover at surface \\
\hline
{\em nlay} & vertical layer number \\
\hline
{\em ipseed} & permutation seed for generating random numbers (isubcsw\texorpdfstring{$>$}{>}0) \\
\hline
{\em dz} & layer thickness (km) \\
\hline
{\em delgth} & layer cloud decorrelation length (km) \\
\hline
{\em alpha} & EXP/\+ER cloud overlap decorrelation parameter \\
\hline
{\em taucw} & cloud optical depth, w/o delta scaled \\
\hline
{\em ssacw} & weighted cloud single scattering albedo (ssa = ssacw / taucw) \\
\hline
{\em asycw} & weighted cloud asymmetry factor (asy = asycw / ssacw) \\
\hline
{\em cldfrc} & cloud fraction of grid mean value \\
\hline
{\em cldfmc} & cloud fraction for each sub-\/column \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_General_cldprop}{}\doxysubsubsection{cldprop General Algorithm}\label{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_General_cldprop}

\begin{DoxyItemize}
\item Compute cloud radiative properties for a cloudy column.
\item Compute optical properties for rain and snow. ~\newline
 For rain\+: tauran/ssaran/asyran ~\newline
 For snow\+: tausnw/ssasnw/asysnw
\begin{DoxyItemize}
\item Calculation of absorption coefficients due to water clouds ~\newline
 For water clouds\+: tauliq/ssaliq/asyliq
\item Calculation of absorption coefficients due to ice clouds ~\newline
 For ice clouds\+: tauice/ssaice/asyice
\item For Prognostic cloud scheme\+: sum up the cloud optical property\+: ~\newline
 $ taucw=tauliq+tauice+tauran+tausnw $ ~\newline
 $ ssacw=ssaliq+ssaice+ssaran+ssasnw $ ~\newline
 $ asycw=asyliq+asyice+asyran+asysnw $
\end{DoxyItemize}
\item If use fu\textquotesingle{}s formula it needs to be normalized by snow/ice density. not use snow density = 0.\+1 g/cm$\ast$$\ast$3 = 0.\+1 g/(mu $\ast$ m$\ast$$\ast$2) ~\newline
 use ice density = 0.\+9167 g/cm$\ast$$\ast$3 = 0.\+9167 g/(mu $\ast$ m$\ast$$\ast$2) ~\newline
 1/0.\+9167 = 1.\+09087 ~\newline
 factor 1.\+5396=8/(3$\ast$sqrt(3)) converts reff to generalized ice particle size use newer factor value 1.\+0315
\item Calculation of absorption coefficients due to water clouds.
\item Calculation of absorption coefficients due to ice clouds.
\item ebert and curry approach for all particle sizes though somewhat unjustified for large ice particles.
\item streamer approach for ice effective radius between 5.\+0 and 131.\+0 microns.
\item fu\textquotesingle{}s approach for ice effective radius between 4.\+8 and 135 microns (generalized effective size from 5 to 140 microns).
\item if isubcsw \texorpdfstring{$>$}{>} 0, call \mbox{\hyperlink{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_ga2c3a6663350f2f9d442fb4c3bd7350fc}{mcica\+\_\+subcol()}} to distribute cloud properties to each g-\/point.
\end{DoxyItemize}

References \mbox{\hyperlink{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_ga2c3a6663350f2f9d442fb4c3bd7350fc}{rrtmg\+\_\+sw\+::mcica\+\_\+subcol()}}.



Referenced by \mbox{\hyperlink{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}{rrtmg\+\_\+sw\+::rrtmg\+\_\+sw\+\_\+run()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=334pt]{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=332pt]{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_ga2c3a6663350f2f9d442fb4c3bd7350fc}\label{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_ga2c3a6663350f2f9d442fb4c3bd7350fc}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!mcica\_subcol@{mcica\_subcol}}
\index{mcica\_subcol@{mcica\_subcol}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{mcica\_subcol()}{mcica\_subcol()}}
{\footnotesize\ttfamily subroutine rrtmg\+\_\+sw\+::mcica\+\_\+subcol (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cldf,  }\item[{integer, intent(in)}]{nlay,  }\item[{integer, intent(in)}]{ipseed,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{dz,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{de\+\_\+lgth,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{alpha,  }\item[{integer, intent(in)}]{iovr,  }\item[{logical, dimension(nlay,ngptsw), intent(out)}]{lcloudy }\end{DoxyParamCaption})}


\begin{DoxyParams}{Parameters}
{\em cldf} & layer cloud fraction \\
\hline
{\em nlay} & number of model vertical layers \\
\hline
{\em ipseed} & permute seed for random num generator \\
\hline
{\em dz} & layer thickness (km) \\
\hline
{\em de\+\_\+lgth} & layer cloud decorrelation length (km) \\
\hline
{\em alpha} & EXP/\+ER cloud overlap decorrelation parameter \\
\hline
{\em lcloudy} & sub-\/colum cloud profile flag array \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_mcica_sw_gen}{}\doxysubsubsection{mcica\+\_\+subcol General Algorithm}\label{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_mcica_sw_gen}

\begin{DoxyItemize}
\item Advance randum number generator by ipseed values.
\item Sub-\/column set up according to overlapping assumption.
\item Generate subcolumns for homogeneous clouds.
\end{DoxyItemize}

Referenced by \mbox{\hyperlink{group__module__radsw__main_ga336d1ab636b4392dcb907d0d780e8487_ga336d1ab636b4392dcb907d0d780e8487}{rrtmg\+\_\+sw\+::cldprop()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga2c3a6663350f2f9d442fb4c3bd7350fc_ga2c3a6663350f2f9d442fb4c3bd7350fc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_ga75a4e30460100beb2c2453be850a3ba5}\label{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_ga75a4e30460100beb2c2453be850a3ba5}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!setcoef@{setcoef}}
\index{setcoef@{setcoef}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{setcoef()}{setcoef()}}
{\footnotesize\ttfamily subroutine rrtmg\+\_\+sw\+::setcoef (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{pavel,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{tavel,  }\item[{real (kind=kind\+\_\+phys), dimension(\+:), intent(in)}]{h2ovmr,  }\item[{integer, intent(in)}]{nlay,  }\item[{integer, intent(in)}]{nlp1,  }\item[{integer, intent(out)}]{laytrop,  }\item[{integer, dimension(nlay), intent(out)}]{jp,  }\item[{integer, dimension(nlay), intent(out)}]{jt,  }\item[{integer, dimension(nlay), intent(out)}]{jt1,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{fac00,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{fac01,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{fac10,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{fac11,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{selffac,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{selffrac,  }\item[{integer, dimension(nlay), intent(out)}]{indself,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{forfac,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(out)}]{forfrac,  }\item[{integer, dimension(nlay), intent(out)}]{indfor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}


\begin{DoxyParams}{Parameters}
{\em pavel} & layer pressure (mb) \\
\hline
{\em tavel} & layer temperature (k) \\
\hline
{\em h2ovmr} & layer w.\+v. volumn mixing ratio (kg/kg) \\
\hline
{\em nlay} & total number of vertical layers \\
\hline
{\em nlp1} & total number of vertical levels \\
\hline
{\em laytrop} & tropopause layer index (unitless) \\
\hline
{\em jp} & indices of lower reference pressure \\
\hline
{\em jt,jt1} & indices of lower reference temperatures at levels of jp and jp+1 \\
\hline
{\em fac00,fac01,fac10,fac11} & factors mltiply the reference ks,i,j=0/1 for lower/higher of the 2 appropriate temperature and altitudes. \\
\hline
{\em selffac} & scale factor for w. v. self-\/continuum equals (w.\+v. density)/(atmospheric density at 296k and 1013 mb) \\
\hline
{\em selffrac} & factor for temperature interpolation of reference w.\+v. self-\/continuum data \\
\hline
{\em indself} & index of lower ref temp for selffac \\
\hline
{\em forfac} & scale factor for w. v. foreign-\/continuum \\
\hline
{\em forfrac} & factor for temperature interpolation of reference w.\+v. foreign-\/continuum data \\
\hline
{\em indfor} & index of lower ref temp for forfac \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_setcoef_gen_rw}{}\doxysubsubsection{setcoef General Algorithm}\label{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_setcoef_gen_rw}

\begin{DoxyItemize}
\item Find the two reference pressures on either side of the layer pressure. store them in jp and jp1. store in fp the fraction of the difference (in ln(pressure)) between these two values that the layer pressure lies.
\item Determine, for each reference pressure (jp and jp1), which reference temperature (these are different for each reference pressure) is nearest the layer temperature but does not exceed it. store these indices in jt and jt1, resp. store in ft (resp. ft1) the fraction of the way between jt (jt1) and the next highest reference temperature that the layer temperature falls.
\item We have now isolated the layer ln pressure and temperature, between two reference pressures and two reference temperatures (for each reference pressure). we multiply the pressure fraction fp with the appropriate temperature fractions to get the factors that will be needed for the interpolation that yields the optical depths (performed in routines taugbn for band n).
\item If the pressure is less than $\sim$100mb, perform a different set of species interpolations.
\item Set up factors needed to separately include the water vapor foreign-\/continuum in the calculation of absorption coefficient.
\item Set up factors needed to separately include the water vapor self-\/continuum in the calculation of absorption coefficient.
\end{DoxyItemize}

Referenced by \mbox{\hyperlink{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}{rrtmg\+\_\+sw\+::rrtmg\+\_\+sw\+\_\+run()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=332pt]{group__module__radsw__main_ga75a4e30460100beb2c2453be850a3ba5_ga75a4e30460100beb2c2453be850a3ba5_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97}\label{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!spcvrtc@{spcvrtc}}
\index{spcvrtc@{spcvrtc}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{spcvrtc()}{spcvrtc()}}
{\footnotesize\ttfamily subroutine rrtmg\+\_\+sw\+::spcvrtc (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), intent(in)}]{ssolar,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{cosz,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{sntz,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(in)}]{albbm,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(in)}]{albdf,  }\item[{real (kind=kind\+\_\+phys), dimension(ngptsw), intent(in)}]{sfluxzen,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{cldfrc,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{cf1,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{cf0,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(in)}]{taug,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(in)}]{taur,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{tauae,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{ssaae,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{asyae,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{taucw,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{ssacw,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{asycw,  }\item[{integer, intent(in)}]{nlay,  }\item[{integer, intent(in)}]{nlp1,  }\item[{integer, intent(in)}]{iswmode,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxupc,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxdnc,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxup0,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxdn0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{ftoauc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{ftoau0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{ftoadc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcuc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcu0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcdc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcd0,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfbmc,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfdfc,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfbm0,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfdf0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{suvbfc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{suvbf0 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}


\begin{DoxyParams}{Parameters}
{\em ssolar} & incoming solar flux at top \\
\hline
{\em cosz} & cosine solar zenith angle \\
\hline
{\em sntz} & secant solar zenith angle \\
\hline
{\em albbm} & surface albedo for direct beam radiation \\
\hline
{\em albdf} & surface albedo for diffused radiation \\
\hline
{\em sfluxzen} & spectral distribution of incoming solar flux \\
\hline
{\em cldfrc} & layer cloud fraction \\
\hline
{\em cf1} & \texorpdfstring{$>$}{>}0\+: cloudy sky, otherwise\+: clear sky \\
\hline
{\em cf0} & =1-\/cf1 \\
\hline
{\em taug} & spectral optical depth for gases \\
\hline
{\em taur} & optical depth for rayleigh scattering \\
\hline
{\em tauae} & aerosols optical depth \\
\hline
{\em ssaae} & aerosols single scattering albedo \\
\hline
{\em asyae} & aerosols asymmetry factor \\
\hline
{\em taucw} & weighted cloud optical depth \\
\hline
{\em ssacw} & weighted cloud single scat albedo \\
\hline
{\em asycw} & weighted cloud asymmetry factor \\
\hline
{\em nlay,nlp1} & number of layers/levels \\
\hline
{\em fxupc} & tot sky upward flux \\
\hline
{\em fxdnc} & tot sky downward flux \\
\hline
{\em fxup0} & clr sky upward flux \\
\hline
{\em fxdn0} & clr sky downward flux \\
\hline
{\em ftoauc} & tot sky toa upwd flux \\
\hline
{\em ftoau0} & clr sky toa upwd flux \\
\hline
{\em ftoadc} & toa downward (incoming) solar flux \\
\hline
{\em fsfcuc} & tot sky sfc upwd flux \\
\hline
{\em fsfcu0} & clr sky sfc upwd flux \\
\hline
{\em fsfcdc} & tot sky sfc dnwd flux \\
\hline
{\em fsfcd0} & clr sky sfc dnwd flux \\
\hline
{\em sfbmc} & tot sky sfc dnwd beam flux (nir/uv+vis) \\
\hline
{\em sfdfc} & tot sky sfc dnwd diff flux (nir/uv+vis) \\
\hline
{\em sfbm0} & clr sky sfc dnwd beam flux (nir/uv+vis) \\
\hline
{\em sfdf0} & clr sky sfc dnwd diff flux (nir/uv+vis) \\
\hline
{\em suvbfc} & tot sky sfc dnwd uv-\/b flux \\
\hline
{\em suvbf0} & clr sky sfc dnwd uv-\/b flux \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_General_spcvrtc}{}\doxysubsubsection{spcvrtc General Algorithm}\label{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_General_spcvrtc}

\begin{DoxyItemize}
\item Initialize output fluxes.
\item Loop over all g-\/points in each band.
\item Set up toa direct beam and surface values (beam and diff).
\item Compute clear-\/sky optical parameters, layer reflectance and transmittance.
\item Saving clear-\/sky quantities for later total-\/sky usage.
\item Delta scaling for clear-\/sky condition.
\item Perform general two-\/stream expressions\+: ~\newline
 control parameters provided by host-\/model ~\newline
 ~\newline
 iswmode -\/ control flag for 2-\/stream transfer schemes ~\newline
 ~\newline
 = 1 delta-\/eddington (joseph et al., 1976) ~\newline
 ~\newline
 = 2 pifm (zdunkowski et al., 1980) ~\newline
 ~\newline
 = 3 discrete ordinates (liou, 1973) ~\newline

\item Compute homogeneous reflectance and transmittance for both conservative scattering and non-\/conservative scattering.
\item Calculate direct beam transmittance. use exponential lookup table for transmittance, or expansion of exponential for low optical depth.
\item Calculate pre-\/delta-\/scaling clear and cloudy direct beam transmittance.
\item Call \mbox{\hyperlink{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}{vrtqdr()}}, to compute the upward and downward radiation fluxes.
\item Compute upward and downward fluxes at levels.
\item Compute surface downward beam/diffused flux components.
\item Compute total sky optical parameters, layer reflectance and transmittance.
\item Set up toa direct beam and surface values (beam and diff).
\item Perform delta scaling for total-\/sky condition.
\item Perform general two-\/stream expressions\+: ~\newline
 control parameters provided by host-\/model ~\newline
 iswmode -\/ control flag for 2-\/stream transfer schemes ~\newline
 = 1 delta-\/eddington (joseph et al., 1976) ~\newline
 = 2 pifm (zdunkowski et al., 1980) ~\newline
 = 3 discrete ordinates (liou, 1973)
\item Compute homogeneous reflectance and transmittance for both conservative and non-\/conservative scattering.
\item Calculate pre-\/delta-\/scaling clear and cloudy direct beam transmittance.
\item Call \mbox{\hyperlink{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}{vrtqdr()}}, to compute the upward and downward radiation fluxes.
\item Compute upward and downward fluxes at levels.
\item Process and save outputs.
\begin{DoxyItemize}
\item surface downward beam/diffused flux components
\end{DoxyItemize}
\item uv-\/b surface downward flux
\item surface downward beam/diffused flux components
\item uv-\/b surface downward flux
\item uv-\/b surface downward flux
\item surface downward beam/diffused flux components
\end{DoxyItemize}

References \mbox{\hyperlink{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}{rrtmg\+\_\+sw\+::vrtqdr()}}.



Referenced by \mbox{\hyperlink{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}{rrtmg\+\_\+sw\+::rrtmg\+\_\+sw\+\_\+run()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=298pt]{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=330pt]{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b}\label{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!spcvrtm@{spcvrtm}}
\index{spcvrtm@{spcvrtm}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{spcvrtm()}{spcvrtm()}}
{\footnotesize\ttfamily subroutine rrtmg\+\_\+sw\+::spcvrtm (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), intent(in)}]{ssolar,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{cosz,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{sntz,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(in)}]{albbm,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(in)}]{albdf,  }\item[{real (kind=kind\+\_\+phys), dimension(ngptsw), intent(in)}]{sfluxzen,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(in)}]{cldfmc,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{cf1,  }\item[{real (kind=kind\+\_\+phys), intent(in)}]{cf0,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(in)}]{taug,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(in)}]{taur,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{tauae,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{ssaae,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{asyae,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{taucw,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{ssacw,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,nbdsw), intent(in)}]{asycw,  }\item[{integer, intent(in)}]{nlay,  }\item[{integer, intent(in)}]{nlp1,  }\item[{integer, intent(in)}]{iswmode,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxupc,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxdnc,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxup0,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1,nbdsw), intent(out)}]{fxdn0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{ftoauc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{ftoau0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{ftoadc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcuc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcu0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcdc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{fsfcd0,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfbmc,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfdfc,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfbm0,  }\item[{real (kind=kind\+\_\+phys), dimension(2), intent(out)}]{sfdf0,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{suvbfc,  }\item[{real (kind=kind\+\_\+phys), intent(out)}]{suvbf0 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}


\begin{DoxyParams}{Parameters}
{\em ssolar} & incoming solar flux at top \\
\hline
{\em cosz} & cosine solar zenith angle \\
\hline
{\em sntz} & secant solar zenith angle \\
\hline
{\em albbm} & surface albedo for direct beam radiation \\
\hline
{\em albdf} & surface albedo for diffused radiation \\
\hline
{\em sfluxzen} & spectral distribution of incoming solar flux \\
\hline
{\em cldfmc} & layer cloud fraction for g-\/point \\
\hline
{\em cf1} & \texorpdfstring{$>$}{>}0\+: cloudy sky, otherwise\+: clear sky \\
\hline
{\em cf0} & =1-\/cf1 \\
\hline
{\em taug} & spectral optical depth for gases \\
\hline
{\em taur} & optical depth for rayleigh scattering \\
\hline
{\em tauae} & aerosols optical depth \\
\hline
{\em ssaae} & aerosols single scattering albedo \\
\hline
{\em asyae} & aerosols asymmetry factor \\
\hline
{\em taucw} & weighted cloud optical depth \\
\hline
{\em ssacw} & weighted cloud single scat albedo \\
\hline
{\em asycw} & weighted cloud asymmetry factor \\
\hline
{\em nlay,nlp1} & number of layers/levels \\
\hline
{\em fxupc} & tot sky upward flux \\
\hline
{\em fxdnc} & tot sky downward flux \\
\hline
{\em fxup0} & clr sky upward flux \\
\hline
{\em fxdn0} & clr sky downward flux \\
\hline
{\em ftoauc} & tot sky toa upwd flux \\
\hline
{\em ftoau0} & clr sky toa upwd flux \\
\hline
{\em ftoadc} & toa downward (incoming) solar flux \\
\hline
{\em fsfcuc} & tot sky sfc upwd flux \\
\hline
{\em fsfcu0} & clr sky sfc upwd flux \\
\hline
{\em fsfcdc} & tot sky sfc dnwd flux \\
\hline
{\em fsfcd0} & clr sky sfc dnwd flux \\
\hline
{\em sfbmc} & tot sky sfc dnwd beam flux (nir/uv+vis) \\
\hline
{\em sfdfc} & tot sky sfc dnwd diff flux (nir/uv+vis) \\
\hline
{\em sfbm0} & clr sky sfc dnwd beam flux (nir/uv+vis) \\
\hline
{\em sfdf0} & clr sky sfc dnwd diff flux (nir/uv+vis) \\
\hline
{\em suvbfc} & tot sky sfc dnwd uv-\/b flux \\
\hline
{\em suvbf0} & clr sky sfc dnwd uv-\/b flux \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_spcvrtm_gen}{}\doxysubsubsection{spcvrtm General Algorithm}\label{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_spcvrtm_gen}

\begin{DoxyItemize}
\item Initialize output fluxes.
\item Loop over all g-\/points in each band.
\item Set up toa direct beam and surface values (beam and diff).
\item Compute clear-\/sky optical parameters, layer reflectance and transmittance.
\item Saving clear-\/sky quantities for later total-\/sky usage.
\item Delta scaling for clear-\/sky condition.
\item Perform general two-\/stream expressions\+: ~\newline
 control parameters provided by host-\/model ~\newline
 iswmode -\/ control flag for 2-\/stream transfer schemes ~\newline
 = 1 delta-\/eddington (joseph et al., 1976) ~\newline
 = 2 pifm (zdunkowski et al., 1980) ~\newline
 = 3 discrete ordinates (liou, 1973)
\item Compute homogeneous reflectance and transmittance.
\item Calculate direct beam transmittance. use exponential lookup table for transmittance, or expansion of exponential for low optical depth.
\item Calculate pre-\/delta-\/scaling clear and cloudy direct beam transmittance.
\item Call \mbox{\hyperlink{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}{vrtqdr()}}, to compute the upward and downward radiation fluxes.
\item Compute upward and downward fluxes at levels.
\item Compute surface downward beam/diffuse flux components.
\item Compute total sky optical parameters, layer reflectance and transmittance.
\item Set up toa direct beam and surface values (beam and diff).
\item Perform delta scaling for total-\/sky condition.
\item Perform general two-\/stream expressions.
\item Compute homogeneous reflectance and transmittance for both convertive and non-\/convertive scattering.
\item Calculate pre-\/delta-\/scaling clear and cloudy direct beam transmittance.
\item Call \mbox{\hyperlink{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}{vrtqdr()}}, to perform vertical quadrature
\item Process and save outputs.
\begin{DoxyItemize}
\item surface downward beam/diffused flux components
\end{DoxyItemize}
\item uv-\/b surface downward flux
\item surface downward beam/diffused flux components
\item uv-\/b surface downward flux
\end{DoxyItemize}

References \mbox{\hyperlink{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}{rrtmg\+\_\+sw\+::vrtqdr()}}.



Referenced by \mbox{\hyperlink{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}{rrtmg\+\_\+sw\+::rrtmg\+\_\+sw\+\_\+run()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=302pt]{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=334pt]{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}\label{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!vrtqdr@{vrtqdr}}
\index{vrtqdr@{vrtqdr}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{vrtqdr()}{vrtqdr()}}
{\footnotesize\ttfamily subroutine rrtmg\+\_\+sw\+::vrtqdr (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(in)}]{zrefb,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(in)}]{zrefd,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(in)}]{ztrab,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(in)}]{ztrad,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(in)}]{zldbt,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(in)}]{ztdbt,  }\item[{integer, intent(in)}]{NLAY,  }\item[{integer, intent(in)}]{NLP1,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(out)}]{zfu,  }\item[{real (kind=kind\+\_\+phys), dimension(nlp1), intent(out)}]{zfd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}


\begin{DoxyParams}{Parameters}
{\em zrefb} & layer direct beam reflectivity \\
\hline
{\em zrefd} & layer diffuse reflectivity \\
\hline
{\em ztrab} & layer direct beam transmissivity \\
\hline
{\em ztrad} & layer diffuse transmissivity \\
\hline
{\em zldbt} & layer mean beam transmittance \\
\hline
{\em ztdbt} & total beam transmittance at levels \\
\hline
{\em NLAY,NLP1} & number of layers/levels \\
\hline
{\em zfu} & upward flux at layer interface \\
\hline
{\em zfd} & downward flux at layer interface \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_General_vrtqdr}{}\doxysubsubsection{vrtqdr General Algorithm}\label{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_General_vrtqdr}

\begin{DoxyItemize}
\item Link lowest layer with surface.
\item Pass from bottom to top.
\item Upper boundary conditions
\item Pass from top to bottom
\item Up and down-\/welling fluxes at levels.
\end{DoxyItemize}

Referenced by \mbox{\hyperlink{group__module__radsw__main_gabcbc14a26bd383deffec85ef74354a97_gabcbc14a26bd383deffec85ef74354a97}{rrtmg\+\_\+sw\+::spcvrtc()}}, and \mbox{\hyperlink{group__module__radsw__main_ga9af8942fec8a26e18e27caa0ad93534b_ga9af8942fec8a26e18e27caa0ad93534b}{rrtmg\+\_\+sw\+::spcvrtm()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga77ab92eacea8f9e96653049799c99223_ga77ab92eacea8f9e96653049799c99223_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}\label{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol@{taumol}}
\index{taumol@{taumol}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol()}{taumol()}}
{\footnotesize\ttfamily subroutine rrtmg\+\_\+sw\+::taumol (\begin{DoxyParamCaption}\item[{real (kind=kind\+\_\+phys), dimension(nlay,maxgas), intent(in)}]{colamt,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{colmol,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{fac00,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{fac01,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{fac10,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{fac11,  }\item[{integer, dimension(nlay), intent(in)}]{jp,  }\item[{integer, dimension(nlay), intent(in)}]{jt,  }\item[{integer, dimension(nlay), intent(in)}]{jt1,  }\item[{integer, intent(in)}]{laytrop,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{forfac,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{forfrac,  }\item[{integer, dimension(nlay), intent(in)}]{indfor,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{selffac,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay), intent(in)}]{selffrac,  }\item[{integer, dimension(nlay), intent(in)}]{indself,  }\item[{integer, intent(in)}]{nlay,  }\item[{real (kind=kind\+\_\+phys), dimension(ngptsw), intent(out)}]{sfluxzen,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(out)}]{taug,  }\item[{real (kind=kind\+\_\+phys), dimension(nlay,ngptsw), intent(out)}]{taur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}


\begin{DoxyParams}{Parameters}
{\em colamt} & column amounts of absorbing gases the index are for h2o, co2, o3, n2o, ch4, and o2, respectively $(mol/cm^2)$ \\
\hline
{\em colmol} & total column amount (dry air+water vapor) \\
\hline
{\em fac00,fac01,fac10,fac11} & for each layer, these are factors that are needed to compute the interpolation factors that multiply the appropriate reference k-\/values. a value of 0/1 for i,j indicates that the corresponding factor multiplies reference k-\/value for the lower/higher of the two appropriate temperatures, and altitudes, respectively. \\
\hline
{\em jp} & the index of the lower (in altitude) of the two appropriate ref pressure levels needed for interpolation. \\
\hline
{\em jt,jt1} & the indices of the lower of the two approp ref temperatures needed for interpolation (for pressure levels jp and jp+1, respectively) \\
\hline
{\em laytrop} & tropopause layer index \\
\hline
{\em forfac} & scale factor needed to foreign-\/continuum. \\
\hline
{\em forfrac} & factor needed for temperature interpolation \\
\hline
{\em indfor} & index of the lower of the two appropriate reference temperatures needed for foreign-\/continuum interpolation \\
\hline
{\em selffac} & scale factor needed to h2o self-\/continuum. \\
\hline
{\em selffrac} & factor needed for temperature interpolation of reference h2o self-\/continuum data \\
\hline
{\em indself} & index of the lower of the two appropriate reference temperatures needed for the self-\/continuum interpolation \\
\hline
{\em nlay} & number of vertical layers \\
\hline
{\em sfluxzen} & spectral distribution of incoming solar flux \\
\hline
{\em taug} & spectral optical depth for gases \\
\hline
{\em taur} & opt depth for rayleigh scattering \\
\hline
\end{DoxyParams}
\hypertarget{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gen_al_taumol}{}\doxysubsubsection{taumol General Algorithm}\label{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gen_al_taumol}

\begin{DoxyItemize}
\item Call taumol\#\# (\#\#\+: 16-\/29) to calculate layer optical depth.
\item call \mbox{\hyperlink{group__module__radsw__main_ga8702f5f6285ff1a5cbfad740545fffb6_ga8702f5f6285ff1a5cbfad740545fffb6}{taumol16()}}
\item call \mbox{\hyperlink{group__module__radsw__main_gae46d1c061726bcde426caadd80b1fd80_gae46d1c061726bcde426caadd80b1fd80}{taumol17()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga06f6f2b0ef60df93c267a667a2e1aa36_ga06f6f2b0ef60df93c267a667a2e1aa36}{taumol18()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga776a0d78fda9f4fd0f1153b55be597df_ga776a0d78fda9f4fd0f1153b55be597df}{taumol19()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga6eb9a29728a986ea6b15240adebd4a0c_ga6eb9a29728a986ea6b15240adebd4a0c}{taumol20()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga54619c48147f35da2d7855dc488c0ff4_ga54619c48147f35da2d7855dc488c0ff4}{taumol21()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga3b5392346eee35eb13a2a54175b6338b_ga3b5392346eee35eb13a2a54175b6338b}{taumol22()}}
\item call \mbox{\hyperlink{group__module__radsw__main_gadf5d73763c80ec079b72dda7d74cba94_gadf5d73763c80ec079b72dda7d74cba94}{taumol23()}}
\item call \mbox{\hyperlink{group__module__radsw__main_gae0abf1a08aa5d6ca14bfea83d0603716_gae0abf1a08aa5d6ca14bfea83d0603716}{taumol24()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga21b72d6de9247eccb20de836ea76cf7a_ga21b72d6de9247eccb20de836ea76cf7a}{taumol25()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga20261640145a5d10e091ef3c67763175_ga20261640145a5d10e091ef3c67763175}{taumol26()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga7d2cea6cc0cfde853d25a14ba0efcca2_ga7d2cea6cc0cfde853d25a14ba0efcca2}{taumol27()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga2113c76707f43cf91fe5926ab69d1b8b_ga2113c76707f43cf91fe5926ab69d1b8b}{taumol28()}}
\item call \mbox{\hyperlink{group__module__radsw__main_ga08e2db10432d07392f29a49bc5b5c640_ga08e2db10432d07392f29a49bc5b5c640}{taumol29()}}
\end{DoxyItemize}

References \mbox{\hyperlink{group__module__radsw__main_ga8702f5f6285ff1a5cbfad740545fffb6_ga8702f5f6285ff1a5cbfad740545fffb6}{taumol16()}}, \mbox{\hyperlink{group__module__radsw__main_gae46d1c061726bcde426caadd80b1fd80_gae46d1c061726bcde426caadd80b1fd80}{taumol17()}}, \mbox{\hyperlink{group__module__radsw__main_ga06f6f2b0ef60df93c267a667a2e1aa36_ga06f6f2b0ef60df93c267a667a2e1aa36}{taumol18()}}, \mbox{\hyperlink{group__module__radsw__main_ga776a0d78fda9f4fd0f1153b55be597df_ga776a0d78fda9f4fd0f1153b55be597df}{taumol19()}}, \mbox{\hyperlink{group__module__radsw__main_ga6eb9a29728a986ea6b15240adebd4a0c_ga6eb9a29728a986ea6b15240adebd4a0c}{taumol20()}}, \mbox{\hyperlink{group__module__radsw__main_ga54619c48147f35da2d7855dc488c0ff4_ga54619c48147f35da2d7855dc488c0ff4}{taumol21()}}, \mbox{\hyperlink{group__module__radsw__main_ga3b5392346eee35eb13a2a54175b6338b_ga3b5392346eee35eb13a2a54175b6338b}{taumol22()}}, \mbox{\hyperlink{group__module__radsw__main_gadf5d73763c80ec079b72dda7d74cba94_gadf5d73763c80ec079b72dda7d74cba94}{taumol23()}}, \mbox{\hyperlink{group__module__radsw__main_gae0abf1a08aa5d6ca14bfea83d0603716_gae0abf1a08aa5d6ca14bfea83d0603716}{taumol24()}}, \mbox{\hyperlink{group__module__radsw__main_ga21b72d6de9247eccb20de836ea76cf7a_ga21b72d6de9247eccb20de836ea76cf7a}{taumol25()}}, \mbox{\hyperlink{group__module__radsw__main_ga20261640145a5d10e091ef3c67763175_ga20261640145a5d10e091ef3c67763175}{taumol26()}}, \mbox{\hyperlink{group__module__radsw__main_ga7d2cea6cc0cfde853d25a14ba0efcca2_ga7d2cea6cc0cfde853d25a14ba0efcca2}{taumol27()}}, \mbox{\hyperlink{group__module__radsw__main_ga2113c76707f43cf91fe5926ab69d1b8b_ga2113c76707f43cf91fe5926ab69d1b8b}{taumol28()}}, and \mbox{\hyperlink{group__module__radsw__main_ga08e2db10432d07392f29a49bc5b5c640_ga08e2db10432d07392f29a49bc5b5c640}{taumol29()}}.



Referenced by \mbox{\hyperlink{group__module__radsw__main_ga79995eec6c235ad2c2a479358f3235a8_ga79995eec6c235ad2c2a479358f3235a8}{rrtmg\+\_\+sw\+::rrtmg\+\_\+sw\+\_\+run()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=328pt]{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga8702f5f6285ff1a5cbfad740545fffb6_ga8702f5f6285ff1a5cbfad740545fffb6}\label{group__module__radsw__main_ga8702f5f6285ff1a5cbfad740545fffb6_ga8702f5f6285ff1a5cbfad740545fffb6}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol16@{taumol16}}
\index{taumol16@{taumol16}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol16()}{taumol16()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol16\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga8702f5f6285ff1a5cbfad740545fffb6_ga8702f5f6285ff1a5cbfad740545fffb6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_gae46d1c061726bcde426caadd80b1fd80_gae46d1c061726bcde426caadd80b1fd80}\label{group__module__radsw__main_gae46d1c061726bcde426caadd80b1fd80_gae46d1c061726bcde426caadd80b1fd80}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol17@{taumol17}}
\index{taumol17@{taumol17}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol17()}{taumol17()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol17}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_gae46d1c061726bcde426caadd80b1fd80_gae46d1c061726bcde426caadd80b1fd80_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga06f6f2b0ef60df93c267a667a2e1aa36_ga06f6f2b0ef60df93c267a667a2e1aa36}\label{group__module__radsw__main_ga06f6f2b0ef60df93c267a667a2e1aa36_ga06f6f2b0ef60df93c267a667a2e1aa36}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol18@{taumol18}}
\index{taumol18@{taumol18}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol18()}{taumol18()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol18}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga06f6f2b0ef60df93c267a667a2e1aa36_ga06f6f2b0ef60df93c267a667a2e1aa36_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga776a0d78fda9f4fd0f1153b55be597df_ga776a0d78fda9f4fd0f1153b55be597df}\label{group__module__radsw__main_ga776a0d78fda9f4fd0f1153b55be597df_ga776a0d78fda9f4fd0f1153b55be597df}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol19@{taumol19}}
\index{taumol19@{taumol19}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol19()}{taumol19()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol19}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga776a0d78fda9f4fd0f1153b55be597df_ga776a0d78fda9f4fd0f1153b55be597df_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga6eb9a29728a986ea6b15240adebd4a0c_ga6eb9a29728a986ea6b15240adebd4a0c}\label{group__module__radsw__main_ga6eb9a29728a986ea6b15240adebd4a0c_ga6eb9a29728a986ea6b15240adebd4a0c}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol20@{taumol20}}
\index{taumol20@{taumol20}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol20()}{taumol20()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol20}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga6eb9a29728a986ea6b15240adebd4a0c_ga6eb9a29728a986ea6b15240adebd4a0c_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga54619c48147f35da2d7855dc488c0ff4_ga54619c48147f35da2d7855dc488c0ff4}\label{group__module__radsw__main_ga54619c48147f35da2d7855dc488c0ff4_ga54619c48147f35da2d7855dc488c0ff4}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol21@{taumol21}}
\index{taumol21@{taumol21}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol21()}{taumol21()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol21}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga54619c48147f35da2d7855dc488c0ff4_ga54619c48147f35da2d7855dc488c0ff4_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga3b5392346eee35eb13a2a54175b6338b_ga3b5392346eee35eb13a2a54175b6338b}\label{group__module__radsw__main_ga3b5392346eee35eb13a2a54175b6338b_ga3b5392346eee35eb13a2a54175b6338b}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol22@{taumol22}}
\index{taumol22@{taumol22}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol22()}{taumol22()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol22}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga3b5392346eee35eb13a2a54175b6338b_ga3b5392346eee35eb13a2a54175b6338b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_gadf5d73763c80ec079b72dda7d74cba94_gadf5d73763c80ec079b72dda7d74cba94}\label{group__module__radsw__main_gadf5d73763c80ec079b72dda7d74cba94_gadf5d73763c80ec079b72dda7d74cba94}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol23@{taumol23}}
\index{taumol23@{taumol23}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol23()}{taumol23()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol23}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_gadf5d73763c80ec079b72dda7d74cba94_gadf5d73763c80ec079b72dda7d74cba94_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_gae0abf1a08aa5d6ca14bfea83d0603716_gae0abf1a08aa5d6ca14bfea83d0603716}\label{group__module__radsw__main_gae0abf1a08aa5d6ca14bfea83d0603716_gae0abf1a08aa5d6ca14bfea83d0603716}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol24@{taumol24}}
\index{taumol24@{taumol24}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol24()}{taumol24()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol24}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_gae0abf1a08aa5d6ca14bfea83d0603716_gae0abf1a08aa5d6ca14bfea83d0603716_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga21b72d6de9247eccb20de836ea76cf7a_ga21b72d6de9247eccb20de836ea76cf7a}\label{group__module__radsw__main_ga21b72d6de9247eccb20de836ea76cf7a_ga21b72d6de9247eccb20de836ea76cf7a}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol25@{taumol25}}
\index{taumol25@{taumol25}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol25()}{taumol25()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol25}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga21b72d6de9247eccb20de836ea76cf7a_ga21b72d6de9247eccb20de836ea76cf7a_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga20261640145a5d10e091ef3c67763175_ga20261640145a5d10e091ef3c67763175}\label{group__module__radsw__main_ga20261640145a5d10e091ef3c67763175_ga20261640145a5d10e091ef3c67763175}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol26@{taumol26}}
\index{taumol26@{taumol26}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol26()}{taumol26()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol26}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga20261640145a5d10e091ef3c67763175_ga20261640145a5d10e091ef3c67763175_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga7d2cea6cc0cfde853d25a14ba0efcca2_ga7d2cea6cc0cfde853d25a14ba0efcca2}\label{group__module__radsw__main_ga7d2cea6cc0cfde853d25a14ba0efcca2_ga7d2cea6cc0cfde853d25a14ba0efcca2}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol27@{taumol27}}
\index{taumol27@{taumol27}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol27()}{taumol27()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol27}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga7d2cea6cc0cfde853d25a14ba0efcca2_ga7d2cea6cc0cfde853d25a14ba0efcca2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga2113c76707f43cf91fe5926ab69d1b8b_ga2113c76707f43cf91fe5926ab69d1b8b}\label{group__module__radsw__main_ga2113c76707f43cf91fe5926ab69d1b8b_ga2113c76707f43cf91fe5926ab69d1b8b}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol28@{taumol28}}
\index{taumol28@{taumol28}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol28()}{taumol28()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol28}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga2113c76707f43cf91fe5926ab69d1b8b_ga2113c76707f43cf91fe5926ab69d1b8b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{group__module__radsw__main_ga08e2db10432d07392f29a49bc5b5c640_ga08e2db10432d07392f29a49bc5b5c640}\label{group__module__radsw__main_ga08e2db10432d07392f29a49bc5b5c640_ga08e2db10432d07392f29a49bc5b5c640}} 
\index{GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}!taumol29@{taumol29}}
\index{taumol29@{taumol29}!GFS RRTMG-\/SW Main Module@{GFS RRTMG-\/SW Main Module}}
\doxyparagraph{\texorpdfstring{taumol29()}{taumol29()}}
{\footnotesize\ttfamily subroutine taumol\+::taumol29}



Referenced by \mbox{\hyperlink{group__module__radsw__main_gac639d33a4e94f0183aedd3d43943d52d_gac639d33a4e94f0183aedd3d43943d52d}{rrtmg\+\_\+sw\+::taumol()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{group__module__radsw__main_ga08e2db10432d07392f29a49bc5b5c640_ga08e2db10432d07392f29a49bc5b5c640_icgraph}
\end{center}
\end{figure}
