GMTB Common Community Physics Package (CCPP) Scientific Documentation  Version 1.0
GFS radlw Main

This module includes NCEP's modifications of the RRTMG-LW radiation code from AER. More...

Detailed Description

The RRTM-LW package includes three files:

Version
NCEP LW v5.1 Nov 2012 -RRTMG-LW v4.82

Argument Table

local_name standard_name long_name units rank type kind intent optional
plyr air_pressure_at_layer_for_radiation_in_hPa air pressure layer hPa 2 real kind_phys in F
plvl air_pressure_at_interface_for_radiation_in_hPa air pressure level hPa 2 real kind_phys in F
tlyr air_temperature_at_layer_for_radiation air temperature layer K 2 real kind_phys in F
tlvl air_temperature_at_interface_for_radiation air temperature level K 2 real kind_phys in F
qlyr water_vapor_specific_humidity_at_layer_for_radiation specific humidity layer kg kg-1 2 real kind_phys in F
olyr ozone_concentration_at_layer_for_radiation ozone concentration layer kg kg-1 2 real kind_phys in F
gasvmr_co2 volume_mixing_ratio_co2 volume mixing ratio co2 kg kg-1 2 real kind_phys in F
gasvmr_n2o volume_mixing_ratio_n2o volume mixing ratio no2 kg kg-1 2 real kind_phys in F
gasvmr_ch4 volume_mixing_ratio_ch4 volume mixing ratio ch4 kg kg-1 2 real kind_phys in F
gasvmr_o2 volume_mixing_ratio_o2 volume mixing ratio o2 kg kg-1 2 real kind_phys in F
gasvmr_co volume_mixing_ratio_co volume mixing ratio co kg kg-1 2 real kind_phys in F
gasvmr_cfc11 volume_mixing_ratio_cfc11 volume mixing ratio cfc11 kg kg-1 2 real kind_phys in F
gasvmr_cfc12 volume_mixing_ratio_cfc12 volume mixing ratio cfc12 kg kg-1 2 real kind_phys in F
gasvmr_cfc22 volume_mixing_ratio_cfc22 volume mixing ratio cfc22 kg kg-1 2 real kind_phys in F
gasvmr_ccl4 volume_mixing_ratio_ccl4 volume mixing ratio ccl4 kg kg-1 2 real kind_phys in F
icseed seed_random_numbers_lw seed for random number generation for longwave radiation none 1 integer in F
aeraod aerosol_optical_depth_for_longwave_bands_01-16 aerosol optical depth for longwave bands 01-16 none 3 real kind_phys in F
aerssa aerosol_single_scattering_albedo_for_longwave_bands_01-16 aerosol single scattering albedo for longwave bands 01-16 frac 3 real kind_phys in F
sfemis surface_longwave_emissivity surface emissivity frac 1 real kind_phys in F
sfgtmp surface_ground_temperature_for_radiation surface ground temperature for radiation K 1 real kind_phys in F
npts horizontal_loop_extent horizontal dimension count 0 integer in F
nlay adjusted_vertical_layer_dimension_for_radiation number of vertical layers for radiation count 0 integer in F
nlp1 adjusted_vertical_level_dimension_for_radiation number of vertical levels for radiation count 0 integer in F
lprnt flag_print flag to print flag 0 logical in F
cld_cf total_cloud_fraction total cloud fraction frac 2 real kind_phys in F
lslwr flag_to_calc_lw flag to calculate LW irradiances flag 0 logical in F
hlwc tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step longwave total sky heating rate K s-1 2 real kind_phys inout F
topflx lw_fluxes_top_atmosphere longwave total sky fluxes at the top of the atm W m-2 1 topflw_type inout F
sfcflx lw_fluxes_sfc longwave total sky fluxes at the Earth surface W m-2 1 sfcflw_type inout F
hlw0 tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step longwave clear sky heating rate K s-1 2 real kind_phys inout T
hlwb lw_heating_rate_spectral longwave total sky heating rate (spectral) K s-1 3 real kind_phys inout T
flxprf lw_fluxes lw fluxes total sky / csk and up / down at levels W m-2 2 proflw_type inout T
cld_lwp cloud_liquid_water_path cloud liquid water path g m-2 2 real kind_phys in T
cld_ref_liq mean_effective_radius_for_liquid_cloud mean effective radius for liquid cloud micron 2 real kind_phys in T
cld_iwp cloud_ice_water_path cloud ice water path g m-2 2 real kind_phys in T
cld_ref_ice mean_effective_radius_for_ice_cloud mean effective radius for ice cloud micron 2 real kind_phys in T
cld_rwp cloud_rain_water_path cloud ice water path g m-2 2 real kind_phys in T
cld_ref_rain mean_effective_radius_for_rain_drop mean effective radius for rain drop micron 2 real kind_phys in T
cld_swp cloud_snow_water_path cloud snow water path g m-2 2 real kind_phys in T
cld_ref_snow mean_effective_radius_for_snow_flake mean effective radius for snow flake micron 2 real kind_phys in T
cld_od cloud_optical_depth cloud optical depth none 2 real kind_phys in T
errmsg error_message error message for error handling in CCPP none 0 character len=* out F
errflg error_flag error flag for error handling in CCPP flag 0 integer out F

RRTMG Longwave Radiation Scheme General Algorithm

Modules

module  module_radlw_parameters
 This module contains LW band parameters set up.
 
module  module_radlw_avplank
 This module contains plank flux data.
 
module  module_radlw_ref
 This module contains reference temperature and pressure.
 
module  module_radlw_cldprlw
 This module contains cloud property coefficients.
 
module  module_radlw_kgb01
 This module sets up absorption coefficients for band 01: 10-250 cm-1 (low - h2o; high - h2o)
 
module  module_radlw_kgb02
 This module sets up absorption coefficients for band 02: 250-500 cm-1 (low - h2o; high - h2o)
 
module  module_radlw_kgb03
 This module sets up absorption coefficients for band 03: 500-630 cm-1 (low - h2o, co2; high - h2o, co2)
 
module  module_radlw_kgb04
 This module sets up absorption coefficients for band 04: 630-700 cm-1 (low - h2o, co2; high - co2, o3)
 
module  module_radlw_kgb05
 This module sets up absorption coefficients for band 05: 700-820 cm-1 (low - h2o, co2; high - co2, o3)
 
module  module_radlw_kgb06
 This module sets up absorption coefficients for band 06: 820-980 cm-1 (low - h2o; high - /)
 
module  module_radlw_kgb07
 This module sets up absorption coefficients for band 07: 980-1080 cm-1 (low - h2o, o3; high - o3)
 
module  module_radlw_kgb08
 This module sets up absorption coefficients for band 08: 1080-1180 cm-1 (low - h2o; high - o3)
 
module  module_radlw_kgb09
 This module sets up absorption coefficients for band 09: 1180-1390 cm-1 (low - h2o, ch4; high - ch4)
 
module  module_radlw_kgb10
 This module sets up absorption coefficients for band 10: 1390-1480 cm-1 (low - h2o; high - h2o)
 
module  module_radlw_kgb11
 This module sets up absorption coefficients for band 11: 1480-1800 cm-1 (low - h2o; high - h2o)
 
module  module_radlw_kgb12
 This module sets up absorption coefficients for band 12: 1800-2080 cm-1 (low - h2o, co2; high - /)
 
module  module_radlw_kgb13
 This module sets up absorption coefficients for band 13: 2080-2250 cm-1 (low - h2o, n2o; high - /)
 
module  module_radlw_kgb14
 This module sets up absorption coefficients for band 14: 2250-2380 cm-1 (low - co2; high - co2)
 
module  module_radlw_kgb15
 This module sets up absorption coefficients for band 15: 2380-2600 cm-1 (low - n2o, co2; high - /)
 
module  module_radlw_kgb16
 This module sets up absorption coefficients for band 16: 2600-3000 cm-1 (low - h2o, ch4; high - /)
 

Functions/Subroutines

subroutine, public rrtmg_lw::rrtmg_lw_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, sfemis, sfgtmp, npts, nlay, nlp1, lprnt, cld_cf, lslwr, hlwc, topflx, sfcflx, HLW0, HLWB, FLXPRF, cld_lwp, cld_ref_liq, cld_iwp, cld_ref_ice, cld_rwp, cld_ref_rain, cld_swp, cld_ref_snow, cld_od, errmsg, errflg )
 
subroutine, public rrtmg_lw::rlwinit (me)
 This subroutine performs calculations necessary for the initialization of the longwave model. lookup tables are computed for use in the lw radiative transfer, and input absorption coefficient data for each spectral band are reduced from 256 g-point intervals to 140. More...
 
subroutine rrtmg_lw::mcica_subcol (cldf, nlay, ipseed, lcloudy )
 This suroutine computes sub-colum cloud profile flag array. More...
 
subroutine rrtmg_lw::setcoef (pavel, tavel, tz, stemp, h2ovmr, colamt, coldry, colbrd, nlay, nlp1, laytrop, pklay, pklev, jp, jt, jt1, rfrate, fac00, fac01, fac10, fac11, selffac, selffrac, indself, forfac, forfrac, indfor, minorfrac, scaleminor, scaleminorn2, indminor )
 This subroutine computes various coefficients needed in radiative transfer calculations. More...
 
subroutine rrtmg_lw::rtrn (semiss, delp, cldfrc, taucld, tautot, pklay, pklev, fracs, secdif, nlay, nlp1, totuflux, totdflux, htr, totuclfl, totdclfl, htrcl, htrb )
 This subroutine computes the upward/downward radiative fluxes, and heating rates for both clear or cloudy atmosphere. Clouds assumed as randomly overlaping in a vertical column. More...
 
subroutine rrtmg_lw::taumol (laytrop, pavel, coldry, colamt, colbrd, wx, tauaer, rfrate, fac00, fac01, fac10, fac11, jp, jt, jt1, selffac, selffrac, indself, forfac, forfrac, indfor, minorfrac, scaleminor, scaleminorn2, indminor, nlay, fracs, tautot )
 This subroutine contains optical depths developed for the rapid radiative transfer model. \ It contains the subroutines taugbn (where n goes from 1 to 16). taugbn calculates the optical depths and planck fractions per g-value and layer for band n. More...
 
subroutine taugb01
 band 1: 10-350 cm-1 (low key - h2o; low minor - n2); (high key - h2o; high minor - n2)
 
subroutine taugb02
 Band 2: 350-500 cm-1 (low key - h2o; high key - h2o)
 
subroutine taugb03
 Band 3: 500-630 cm-1 (low key - h2o,co2; low minor - n2o); (high key - h2o,co2; high minor - n2o)
 
subroutine taugb04
 Band 4: 630-700 cm-1 (low key - h2o,co2; high key - o3,co2)
 
subroutine taugb05
 Band 5: 700-820 cm-1 (low key - h2o,co2; low minor - o3, ccl4) (high key - o3,co2)
 
subroutine taugb06
 Band 6: 820-980 cm-1 (low key - h2o; low minor - co2) (high key - none; high minor - cfc11, cfc12)
 
subroutine taugb07
 Band 7: 980-1080 cm-1 (low key - h2o,o3; low minor - co2) (high key - o3; high minor - co2)
 
subroutine taugb08
 Band 8: 1080-1180 cm-1 (low key - h2o; low minor - co2,o3,n2o) (high key - o3; high minor - co2, n2o)
 
subroutine taugb09
 Band 9: 1180-1390 cm-1 (low key - h2o,ch4; low minor - n2o) (high key - ch4; high minor - n2o)
 
subroutine taugb10
 Band 10: 1390-1480 cm-1 (low key - h2o; high key - h2o)
 
subroutine taugb11
 Band 11: 1480-1800 cm-1 (low - h2o; low minor - o2) (high key - h2o; high minor - o2)
 
subroutine taugb12
 Band 12: 1800-2080 cm-1 (low - h2o,co2; high - nothing)
 
subroutine taugb13
 Band 13: 2080-2250 cm-1 (low key-h2o,n2o; high minor-o3 minor)
 
subroutine taugb14
 Band 14: 2250-2380 cm-1 (low - co2; high - co2)
 
subroutine taugb15
 Band 15: 2380-2600 cm-1 (low - n2o,co2; low minor - n2) (high - nothing)
 
subroutine taugb16
 Band 16: 2600-3250 cm-1 (low key- h2o,ch4; high key - ch4)
 
subroutine rrtmg_lw::cldprop (cfrac, cliqp, reliq, cicep, reice, cdat1, cdat2, cdat3, cdat4, nlay, nlp1, ipseed, cldfmc, taucld )
 This subroutine computes the cloud optical depth(s) for each cloudy layer and g-point interval. More...
 
subroutine rrtmg_lw::rtrnmr (semiss, delp, cldfrc, taucld, tautot, pklay, pklev, fracs, secdif, nlay, nlp1, totuflux, totdflux, htr, totuclfl, totdclfl, htrcl, htrb )
 This subroutine computes the upward/downward radiative fluxes, and heating rates for both clear or cloudy atmosphere. Clouds are assumed as in maximum-randomly overlaping in a vertical column. More...
 
subroutine rrtmg_lw::rtrnmc (semiss, delp, cldfmc, taucld, tautot, pklay, pklev, fracs, secdif, nlay, nlp1, totuflux, totdflux, htr, totuclfl, totdclfl, htrcl, htrb )
 This subroutine computes the upward/downward radiative fluxes, and heating rates for both clear or cloudy atmosphere.Clouds are treated with the mcica stochastic approach. More...
 

Function/Subroutine Documentation

subroutine rrtmg_lw::cldprop ( real (kind=kind_phys), dimension(0:nlp1), intent(in)  cfrac,
real (kind=kind_phys), dimension(nlay), intent(in)  cliqp,
real (kind=kind_phys), dimension(nlay), intent(in)  reliq,
real (kind=kind_phys), dimension(nlay), intent(in)  cicep,
real (kind=kind_phys), dimension(nlay), intent(in)  reice,
real (kind=kind_phys), dimension(nlay), intent(in)  cdat1,
real (kind=kind_phys), dimension(nlay), intent(in)  cdat2,
real (kind=kind_phys), dimension(nlay), intent(in)  cdat3,
real (kind=kind_phys), dimension(nlay), intent(in)  cdat4,
integer, intent(in)  nlay,
integer, intent(in)  nlp1,
integer, intent(in)  ipseed,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(out)  cldfmc,
real (kind=kind_phys), dimension(nbands,nlay), intent(out)  taucld 
)
private
Parameters
cfraclayer cloud fraction
— for ilwcliq > 0 (prognostic cloud scheme) - - -
cliqplayer in-cloud liq water path ( \(g/m^2\))
reliqmean eff radius for liq cloud (micron)
ciceplayer in-cloud ice water path ( \(g/m^2\))
reicemean eff radius for ice cloud (micron)
cdat1layer rain drop water path ( \(g/m^2\))
cdat2effective radius for rain drop (micron)
cdat3layer snow flake water path( \(g/m^2\))
cdat4mean effective radius for snow flake(micron)
— for ilwcliq = 0 (diagnostic cloud scheme) - - -
cliqpnot used
cicepnot used
reliqnot used
reicenot used
cdat1layer cloud optical depth
cdat2layer cloud single scattering albedo
cdat3layer cloud asymmetry factor
cdat4optional use
nlaynumber of layer number
nlp1number of veritcal levels
ipseedpermutation seed for generating random numbers (isubclw>0)
cldfmccloud fraction for each sub-column
taucldcloud optical depth for bands (non-mcica)

General Algorithm

  1. Compute cloud radiative properties for a cloudy column:
    - Compute cloud radiative properties for rain and snow (tauran,tausnw)
    - Calculation of absorption coefficients due to water clouds(tauliq)
    - Calculation of absorption coefficients due to ice clouds (tauice).
    - For prognostic cloud scheme: sum up the cloud optical property:
    \( taucld=tauice+tauliq+tauran+tausnw \)
  2. if physparam::isubclw > 0, call mcica_subcol() to distribute cloud properties to each g-point.

References rrtmg_lw::mcica_subcol().

Referenced by rrtmg_lw::rrtmg_lw_run().

Here is the call graph for this function:

subroutine rrtmg_lw::mcica_subcol ( real (kind=kind_phys), dimension(nlay), intent(in)  cldf,
integer, intent(in)  nlay,
integer, intent(in)  ipseed,
logical, dimension(ngptlw,nlay), intent(out)  lcloudy 
)
private
Parameters
cldflayer cloud fraction
nlaynumber of model vertical layers
ipseedpermute seed for random num generator
lcloudysub-colum cloud profile flag array

Referenced by rrtmg_lw::cldprop().

subroutine, public rrtmg_lw::rlwinit ( integer, intent(in)  me)
Parameters
meprint control for parallel process
subroutine, public rrtmg_lw::rrtmg_lw_run ( real (kind=kind_phys), dimension(npts,nlay), intent(in)  plyr,
real (kind=kind_phys), dimension(npts,nlp1), intent(in)  plvl,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  tlyr,
real (kind=kind_phys), dimension(npts,nlp1), intent(in)  tlvl,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  qlyr,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  olyr,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_co2,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_n2o,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_ch4,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_o2,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_co,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_cfc11,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_cfc12,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_cfc22,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  gasvmr_ccl4,
integer, dimension(npts), intent(in)  icseed,
real (kind=kind_phys), dimension(npts,nlay,nbands), intent(in)  aeraod,
real (kind=kind_phys), dimension(npts,nlay,nbands), intent(in)  aerssa,
real (kind=kind_phys), dimension(npts), intent(in)  sfemis,
real (kind=kind_phys), dimension(npts), intent(in)  sfgtmp,
integer, intent(in)  npts,
integer, intent(in)  nlay,
integer, intent(in)  nlp1,
logical, intent(in)  lprnt,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  cld_cf,
logical, intent(in)  lslwr,
real (kind=kind_phys), dimension(npts,nlay), intent(inout)  hlwc,
type (topflw_type), dimension(npts), intent(inout)  topflx,
type (sfcflw_type), dimension(npts), intent(inout)  sfcflx,
real (kind=kind_phys), dimension(npts,nlay), intent(inout), optional  HLW0,
real (kind=kind_phys), dimension(npts,nlay,nbands), intent(inout), optional  HLWB,
type (proflw_type), dimension(npts,nlp1), intent(inout), optional  FLXPRF,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_lwp,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_ref_liq,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_iwp,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_ref_ice,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_rwp,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_ref_rain,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_swp,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_ref_snow,
real (kind=kind_phys), dimension(npts,nlay), intent(in), optional  cld_od,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)
  1. Change random number seed value for each radiation invocation (isubclw =1 or 2).
  2. Read surface emissivity.
  3. Prepare atmospheric profile for use in rrtm.
  4. Set absorber amount for h2o, co2, and o3.
  5. Set up column amount for rare gases n2o,ch4,o2,co,ccl4,cf11,cf12, cf22, convert from volume mixing ratio to molec/cm2 based on coldry (scaled to 1.0e-20).
  6. Set aerosol optical properties.
  7. Read cloud optical properties.
  8. Compute precipitable water vapor for diffusivity angle adjustments.
  9. Compute column amount for broadening gases.
  10. Compute diffusivity angle adjustments.
  11. For cloudy atmosphere, call cldprop() to set cloud optical properties.
  12. Calling setcoef() to compute various coefficients needed in radiative transfer calculations.
  13. Call taumol() to calculte the gaseous optical depths and Plank fractions for each longwave spectral band.
  14. Call the radiative transfer routine based on cloud scheme selection. Compute the upward/downward radiative fluxes, and heating rates for both clear or cloudy atmosphere.
    - call rtrn(): clouds are assumed as randomly overlaping in a vertical column
    - call rtrnmr(): clouds are assumed as in maximum-randomly overlaping in a vertical column;
    - call rtrnmc(): clouds are treated with the mcica stochastic approach.
  15. Save outputs.

References rrtmg_lw::cldprop(), rrtmg_lw::rtrn(), rrtmg_lw::rtrnmc(), rrtmg_lw::rtrnmr(), rrtmg_lw::setcoef(), and rrtmg_lw::taumol().

Here is the call graph for this function:

subroutine rrtmg_lw::rtrn ( real (kind=kind_phys), dimension(nbands), intent(in)  semiss,
real (kind=kind_phys), dimension(nlay), intent(in)  delp,
real (kind=kind_phys), dimension(0:nlp1), intent(in)  cldfrc,
real (kind=kind_phys), dimension(nbands,nlay), intent(in)  taucld,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(in)  tautot,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(in)  pklay,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(in)  pklev,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(in)  fracs,
real (kind=kind_phys), dimension(nbands), intent(in)  secdif,
integer, intent(in)  nlay,
integer, intent(in)  nlp1,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totuflux,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totdflux,
real (kind=kind_phys), dimension(nlay), intent(out)  htr,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totuclfl,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totdclfl,
real (kind=kind_phys), dimension(nlay), intent(out)  htrcl,
real (kind=kind_phys), dimension(nlay,nbands), intent(out)  htrb 
)
private

Original Code Description: this program calculates the upward fluxes, downward fluxes, and heating rates for an arbitrary clear or cloudy atmosphere. The input to this program is the atmospheric profile, all Planck function information, and the cloud fraction by layer. A variable diffusivity angle (secdif) is used for the angle integration. Bands 2-3 and 5-9 use a value for secdif that varies from 1.50 to 1.80 as a function of the column water vapor, and other bands use a value of 1.66. The gaussian weight appropriate to this angle (wtdiff =0.5) is applied here. Note that use of the emissivity angle for the flux integration can cause errors of 1 to 4 \(W/m^2\) within cloudy layers. Clouds are treated with a random cloud overlap method.

Parameters
semisslw surface emissivity
delplayer pressure thickness (mb)
cldfrclayer cloud fraction
taucldlayer cloud opt depth
tautottotal optical depth (gas+aerosols)
pklayintegrated planck function at lay temp
pklevintegrated planck func at lev temp
fracsplanck fractions
secdifsecant of diffusivity angle
nlaynumber of vertical layers
nlp1number of vertical levels (interfaces)
totufluxtotal sky upward flux \((w/m^2)\)
totdfluxtotal sky downward flux \((w/m^2)\)
htrtotal sky heating rate (k/sec or k/day)
totuclflclear sky upward flux \((w/m^2)\)
totdclflclear sky downward flux \((w/m^2)\)
htrclclear sky heating rate (k/sec or k/day)
htrbspectral band lw heating rate (k/day)
  1. Downward radiative transfer loop.
  2. Compute spectral emissivity & reflectance, include the contribution of spectrally varying longwave emissivity and reflection from the surface to the upward radiative transfer.
  3. Compute total sky radiance.
  4. Compute clear sky radiance
  5. Upward radiative transfer loop.
  6. Process longwave output from band for total and clear streams. Calculate upward, downward, and net flux.

Referenced by rrtmg_lw::rrtmg_lw_run().

subroutine rrtmg_lw::rtrnmc ( real (kind=kind_phys), dimension(nbands), intent(in)  semiss,
real (kind=kind_phys), dimension(nlay), intent(in)  delp,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(in)  cldfmc,
real (kind=kind_phys), dimension(nbands,nlay), intent(in)  taucld,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(in)  tautot,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(in)  pklay,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(in)  pklev,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(in)  fracs,
real (kind=kind_phys), dimension(nbands), intent(in)  secdif,
integer, intent(in)  nlay,
integer, intent(in)  nlp1,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totuflux,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totdflux,
real (kind=kind_phys), dimension(nlay), intent(out)  htr,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totuclfl,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totdclfl,
real (kind=kind_phys), dimension(nlay), intent(out)  htrcl,
real (kind=kind_phys), dimension(nlay,nbands), intent(out)  htrb 
)
private
Parameters
semisslw surface emissivity
delplayer pressure thickness (mb)
cldfmclayer cloud fraction (sub-column)
taucldlayer cloud opt depth
tautottotal optical depth (gas+aerosols)
pklayintegrated planck func at lay temp
pklevintegrated planck func at lev temp
fracsplanck fractions
secdifsecant of diffusivity angle
nlaynumber of vertical layers
nlp1number of vertical levels (interfaces)
totufluxtotal sky upward flux \((w/m^2)\)
totdfluxtotal sky downward flux \((w/m^2)\)
htrtotal sky heating rate (k/sec or k/day)
totuclflclear sky upward flux \((w/m^2)\)
totdclflclear sky downward flux \((w/m^2)\)
htrclclear sky heating rate (k/sec or k/day)
htrbspectral band lw heating rate (k/day)

General Algorithm

  1. Downward radiative transfer loop.
    - Clear sky, gases contribution
    - Total sky, gases+clouds contribution
    - Cloudy layer
    - Total sky radiance
    - Clear sky radiance
  2. Compute spectral emissivity & reflectance, include the contribution of spectrally varying longwave emissivity and reflection from the surface to the upward radiative transfer.
  3. Compute total sky radiance
  4. Compute clear sky radiance
  5. Upward radiative transfer loop
    - Compute total sky radiance
    - Compute clear sky radiance
  6. Process longwave output from band for total and clear streams. Calculate upward, downward, and net flux.

Referenced by rrtmg_lw::rrtmg_lw_run().

subroutine rrtmg_lw::rtrnmr ( real (kind=kind_phys), dimension(nbands), intent(in)  semiss,
real (kind=kind_phys), dimension(nlay), intent(in)  delp,
real (kind=kind_phys), dimension(0:nlp1), intent(in)  cldfrc,
real (kind=kind_phys), dimension(nbands,nlay), intent(in)  taucld,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(in)  tautot,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(in)  pklay,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(in)  pklev,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(in)  fracs,
real (kind=kind_phys), dimension(nbands), intent(in)  secdif,
integer, intent(in)  nlay,
integer, intent(in)  nlp1,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totuflux,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totdflux,
real (kind=kind_phys), dimension(nlay), intent(out)  htr,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totuclfl,
real (kind=kind_phys), dimension(0:nlay), intent(out)  totdclfl,
real (kind=kind_phys), dimension(nlay), intent(out)  htrcl,
real (kind=kind_phys), dimension(nlay,nbands), intent(out)  htrb 
)
private
Parameters
semisslw surface emissivity
delplayer pressure thickness (mb)
cldfrclayer cloud fraction
taucldlayer cloud opt depth
tautottotal optical depth (gas+aerosols)
pklayintegrated planck func at lay temp
pklevintegrated planck func at lev temp
fracsplanck fractions
secdifsecant of diffusivity angle
nlaynumber of vertical layers
nlp1number of vertical levels (interfaces)
totufluxtotal sky upward flux ( \(w/m^2\))
totdfluxtotal sky downward flux ( \(w/m^2\))
htrtotal sky heating rate (k/sec or k/day)
totuclflclear sky upward flux ( \(w/m^2\))
totdclflclear sky downward flux ( \(w/m^2\))
htrclclear sky heating rate (k/sec or k/day)
htrbspectral band lw heating rate (k/day)

General Algorithm

  1. Setup maximum/random cloud overlap.
  2. Initialize for radiative transfer
  3. Downward radiative transfer loop:
    • cloudy layer
    • total sky radiance
    • clear sky radiance
  4. Compute spectral emissivity & reflectance, include the contribution of spectrally varying longwave emissivity and reflection from the surface to the upward radiative transfer.
  5. Compute total sky radiance.
  6. Compute clear sky radiance.
  7. Upward radiative transfer loop:
    • cloudy layer radiance
    • total sky radiance
    • clear sky radiance
  8. Process longwave output from band for total and clear streams. calculate upward, downward, and net flux.

Referenced by rrtmg_lw::rrtmg_lw_run().

subroutine rrtmg_lw::setcoef ( real (kind=kind_phys), dimension(nlay), intent(in)  pavel,
real (kind=kind_phys), dimension(nlay), intent(in)  tavel,
real (kind=kind_phys), dimension(0:nlay), intent(in)  tz,
real (kind=kind_phys), intent(in)  stemp,
real (kind=kind_phys), dimension(nlay), intent(in)  h2ovmr,
real (kind=kind_phys), dimension(nlay,maxgas), intent(in)  colamt,
real (kind=kind_phys), dimension(nlay), intent(in)  coldry,
real (kind=kind_phys), dimension(nlay), intent(in)  colbrd,
integer, intent(in)  nlay,
integer, intent(in)  nlp1,
integer, intent(out)  laytrop,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(out)  pklay,
real (kind=kind_phys), dimension(nbands,0:nlay), intent(out)  pklev,
integer, dimension(nlay), intent(out)  jp,
integer, dimension(nlay), intent(out)  jt,
integer, dimension(nlay), intent(out)  jt1,
real (kind=kind_phys), dimension(nlay,nrates,2), intent(out)  rfrate,
real (kind=kind_phys), dimension(nlay), intent(out)  fac00,
real (kind=kind_phys), dimension(nlay), intent(out)  fac01,
real (kind=kind_phys), dimension(nlay), intent(out)  fac10,
real (kind=kind_phys), dimension(nlay), intent(out)  fac11,
real (kind=kind_phys), dimension(nlay), intent(out)  selffac,
real (kind=kind_phys), dimension(nlay), intent(out)  selffrac,
integer, dimension(nlay), intent(out)  indself,
real (kind=kind_phys), dimension(nlay), intent(out)  forfac,
real (kind=kind_phys), dimension(nlay), intent(out)  forfrac,
integer, dimension(nlay), intent(out)  indfor,
real (kind=kind_phys), dimension(nlay), intent(out)  minorfrac,
real (kind=kind_phys), dimension(nlay), intent(out)  scaleminor,
real (kind=kind_phys), dimension(nlay), intent(out)  scaleminorn2,
integer, dimension(nlay), intent(out)  indminor 
)
private
Parameters
pavellayer pressure (mb)
tavellayer temperature (K)
tzlevel(interface) temperatures (K)
stempsurface ground temperature (K)
h2ovmrlayer w.v. volumn mixing ratio (kg/kg)
colamtcolumn amounts of absorbing gases. 2nd indices range: 1-maxgas, for watervapor,carbon dioxide, ozone, nitrous oxide, methane,oxigen, carbon monoxide,etc. \((mol/cm^2)\)
coldrydry air column amount
colbrdcolumn amount of broadening gases
nlaytotal number of vertical layers
nlp1total number of vertical levels
laytroptropopause layer index (unitless)
pklayintegrated planck func at lay temp
pklevintegrated planck func at lev temp
jpindices of lower reference pressure
jt,jt1indices of lower reference temperatures
rfrateref ratios of binary species param
(:,m,:)m=1-h2o/co2,2-h2o/o3,3-h2o/n2o, 4-h2o/ch4,5-n2o/co2,6-o3/co2
(:,:,n)n=1,2: the rates of ref press at the 2 sides of the layer
facijfactors multiply the reference ks, i,j=0/1 for lower/higher of the 2 appropriate temperatures and altitudes.
selffacscale factor for w. v. self-continuum equals (w. v. density)/(atmospheric density at 296k and 1013 mb)
selffracfactor for temperature interpolation of reference w. v. self-continuum data
indselfindex of lower ref temp for selffac
forfacscale factor for w. v. foreign-continuum
forfracfactor for temperature interpolation of reference w.v. foreign-continuum data
indforindex of lower ref temp for forfac
minorfracfactor for minor gases
scaleminor,scaleminorn2scale factors for minor gases
indminorindex of lower ref temp for minor gases

Referenced by rrtmg_lw::rrtmg_lw_run().

subroutine rrtmg_lw::taumol ( integer, intent(in)  laytrop,
real (kind=kind_phys), dimension(nlay), intent(in)  pavel,
real (kind=kind_phys), dimension(nlay), intent(in)  coldry,
real (kind=kind_phys), dimension(nlay,maxgas), intent(in)  colamt,
real (kind=kind_phys), dimension(nlay), intent(in)  colbrd,
real (kind=kind_phys), dimension(nlay,maxxsec), intent(in)  wx,
real (kind=kind_phys), dimension(nbands,nlay), intent(in)  tauaer,
real (kind=kind_phys), dimension(nlay,nrates,2), intent(in)  rfrate,
real (kind=kind_phys), dimension(nlay), intent(in)  fac00,
real (kind=kind_phys), dimension(nlay), intent(in)  fac01,
real (kind=kind_phys), dimension(nlay), intent(in)  fac10,
real (kind=kind_phys), dimension(nlay), intent(in)  fac11,
integer, dimension(nlay), intent(in)  jp,
integer, dimension(nlay), intent(in)  jt,
integer, dimension(nlay), intent(in)  jt1,
real (kind=kind_phys), dimension(nlay), intent(in)  selffac,
real (kind=kind_phys), dimension(nlay), intent(in)  selffrac,
integer, dimension(nlay), intent(in)  indself,
real (kind=kind_phys), dimension(nlay), intent(in)  forfac,
real (kind=kind_phys), dimension(nlay), intent(in)  forfrac,
integer, dimension(nlay), intent(in)  indfor,
real (kind=kind_phys), dimension(nlay), intent(in)  minorfrac,
real (kind=kind_phys), dimension(nlay), intent(in)  scaleminor,
real (kind=kind_phys), dimension(nlay), intent(in)  scaleminorn2,
integer, dimension(nlay), intent(in)  indminor,
integer, intent(in)  nlay,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(out)  fracs,
real (kind=kind_phys), dimension(ngptlw,nlay), intent(out)  tautot 
)
private
Parameters
laytroptropopause layer index (unitless) layer at which switch is made for key species
pavellayer pressures (mb)
coldrycolumn amount for dry air \((mol/cm^2)\)
colamtcolumn amounts of h2o, co2, o3, n2o, ch4,o2, co \((mol/cm^2)\)
colbrdcolumn amount of broadening gases
wxcross-section amounts \((mol/cm^2)\)
tauaeraerosol optical depth
rfratereference ratios of binary species parameter
(:,m,:)m=1-h2o/co2,2-h2o/o3,3-h2o/n2o,4-h2o/ch4, 5-n2o/co2,6-o3/co2
(:,:,n)n=1,2: the rates of ref press at the 2 sides of the layer
facijfactors multiply the reference ks, i,j of 0/1 for lower/higher of the 2 appropriate temperatures and altitudes
jpindex of lower reference pressure
jt,jt1indices of lower reference temperatures for pressure levels jp and jp+1, respectively
selffacscale factor for water vapor self-continuum equals (water vapor density)/(atmospheric density at 296k and 1013 mb)
selffracfactor for temperature interpolation of reference water vapor self-continuum data
indselfindex of lower reference temperature for the self-continuum interpolation
forfacscale factor for w. v. foreign-continuum
forfracfactor for temperature interpolation of reference w.v. foreign-continuum data
indforindex of lower reference temperature for the foreign-continuum interpolation
minorfracfactor for minor gases
scaleminor,scaleminorn2scale factors for minor gases
indminorindex of lower reference temperature for minor gases
nlaytotal number of layers
fracsplanck fractions
tautottotal optical depth (gas+aerosols)

References taugb01(), taugb02(), taugb03(), taugb04(), taugb05(), taugb06(), taugb07(), taugb08(), taugb09(), taugb10(), taugb11(), taugb12(), taugb13(), taugb14(), taugb15(), and taugb16().

Referenced by rrtmg_lw::rrtmg_lw_run().

Here is the call graph for this function: