Radiation Scheme in CCPP
The Longwave Ratiative Transfer Routine

Original code description:
SUBROUTINE rtrnmr in module_radlw_main computes 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 Plank function information, and the cloud fraction by layer. a variable difffusivity 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 maximum-random cloud overlap method.


Usage:
call rtrnmr
! — inputs:
& ( semiss,delp,cldfrc,taucld,tautot,pklay,pklev, &
& fracs,secdif, nlay,nlp1, &
! — outputs:
& totuflux,totdflux,htr, totuclfl,totdclfl,htrcl, htrb &
& )

Parameters
[in]semiss- real, (nbands), lw surface emissivity
[in]delp- real, (nlay), layer pressure thickness (mb)
[in]cldfrc- real, (0:nlp1), layer cloud fraction
[in]taucld- real, (nbands,nlay), layer cloud opt depth
[in]tautot- real, (ngptlw,nlay), total optical depth (gas+aerosols)
[in]pklay- real, (nbands*0:nlay), integrated planck func at lay temp
[in]pklev- real, (nbands*0:nlay), integrated planck func at lev temp
[in]fracs- real, (ngptlw,nlay), planck fractions
[in]secdif- real, (nbands), secant of diffusivity angle
[in]nlay- integer, 1, number of vertical layers
[in]nlp1- integer, 1, number of vertical levels (interfaces)
[out]totuflux- real, (0:nlay), total sky upward flux ( \(w/m^2\))
[out]totdflux- real, (0:nlay), total sky downward flux ( \(w/m^2\))
[out]htr- real, (nlay), total sky heating rate (k/sec or k/day)
[out]totuclfl- real, (0:nlay), clear sky upward flux ( \(w/m^2\))
[out]totdclfl- real, (0:nlay), clear sky downward flux ( \(w/m^2\))
[out]htrcl- real, (nlay), clear sky heating rate (k/sec or k/day)
[out]htrb- real, (nlay*nbands), spectral 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 sky
    - total sky radiance
    - clear sky radiance
  4. Spectral emissivity & reflectance
  5. Calculate total sky radiance
    + toturad - real, 0:nlay*nbands, total sky upward radiance by layer
  6. Calculate clear sky radiance
    + clrurad - real, 0:nlay*nbands, clear sky upward radiance by layer
  7. Upward radiative transfer loop:
    - cloudy layer
    - total sky radiance
    - clear sky radiance
  8. Process longwave output