CCPP Scientific Documentation
v4.1.0
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,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  dzlyr,
real (kind=kind_phys), dimension(npts,nlay), intent(in)  delpin,
real (kind=kind_phys), dimension(npts), intent(in)  de_lgth,
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)  cldtau,
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 a0, a1, a2, amdo3, amdw, cldprop(), physcons::con_amd, physcons::con_amw, physcons::con_avgd, physcons::con_g, eps, f_one, f_zero, physparam::ilwcliq, physparam::ilwrgas, physparam::iovrlw, ipsdlw0, physparam::isubclw, physparam::ivflip, lflxprf, lhlw0, lhlwb, module_radlw_parameters::maxgas, module_radlw_parameters::nbands, rtrn(), rtrnmc(), rtrnmr(), semiss0, setcoef(), and taumol().

Here is the call graph for this function: