CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC
GFS RRTMG-SW Main Module

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

Modules

module  module_radsw_parameters
 This module is for specifying the band structures and program parameters used by the RRTMG-SW scheme.
 
module  module_radsw_ref
 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.
 
module  module_radsw_cldprtb
 This module contains cloud radiative property coefficients.
 
module  module_radsw_sflux
 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.
 
module  module_radsw_kgb16
 This module sets up absorption coefficients for band 16: 2600-3250 cm-1 (low - h2o, ch4; high - ch4)
 
module  module_radsw_kgb17
 This module sets up absorption coeffients for band 17: 3250-4000 cm-1 (low - h2o,co2; high - h2o,co2)
 
module  module_radsw_kgb18
 This module sets up absorption coeffients for band 18: 4000-4650 cm-1 (low - h2o,ch4; high - ch4)
 
module  module_radsw_kgb19
 This module sets up absorption coeffients for band 19: 4650-5150 cm-1 (low - h2o,co2; high - co2)
 
module  module_radsw_kgb20
 This module sets up absorption coeffients for band 20: 5150-6150 cm-1 (low - h2o; high - h2o)
 
module  module_radsw_kgb21
 This module sets up absorption coeffients for band 21: 6150-7700 cm-1 (low - h2o,co2; high - h2o,co2)
 
module  module_radsw_kgb22
 This module sets up absorption coeffients for band 22: 7700-8050 cm-1 (low - h2o, o2; high - o2)
 
module  module_radsw_kgb23
 This module sets up absorption coeffients for band 23: 8050-12850 cm-1 (low - h2o; high - nothing)
 
module  module_radsw_kgb24
 This module sets up absorption coeffients for band 24: 12850-16000 cm-1 (low - h2o, o2; high - o2)
 
module  module_radsw_kgb25
 This module sets up absorption coeffients for band 25: 16000-22650 cm-1 (low - h2o; high - nothing)
 
module  module_radsw_kgb26
 This module sets up absorption coeffients for band 26: 22650-29000 cm-1 (low - nothing; high - nothing)
 
module  module_radsw_kgb27
 This module sets up absorption coeffients for band 27: 29000-38000 cm-1 (low - o3; high - o3)
 
module  module_radsw_kgb28
 This module sets up absorption coeffients for band 28: 38000-50000 cm-1 (low - o3,o2; high - o3,o2)
 
module  module_radsw_kgb29
 This module sets up absorption coeffients for band 29: 820-2600 cm-1 (low - h2o; high - co2)
 

Functions/Subroutines

subroutine, public 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, cld_cf, lsswr, 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)
 
subroutine, public rrtmg_sw::rswinit (me)
 This subroutine initializes non-varying module variables, conversion factors, and look-up tables. More...
 
subroutine rrtmg_sw::cldprop (cfrac, cliqp, reliq, cicep, reice, cdat1, cdat2, cdat3, cdat4, cf1, nlay, ipseed, dz, delgth, alpha, taucw, ssacw, asycw, cldfrc, cldfmc)
 This subroutine computes the cloud optical properties for each cloudy layer and g-point interval. More...
 
subroutine rrtmg_sw::mcica_subcol (cldf, nlay, ipseed, dz, de_lgth, alpha, lcloudy)
 This subroutine computes the sub-colum cloud profile flag array. More...
 
subroutine rrtmg_sw::setcoef (pavel, tavel, h2ovmr, nlay, nlp1, laytrop, jp, jt, jt1, fac00, fac01, fac10, fac11, selffac, selffrac, indself, forfac, forfrac, indfor)
 This subroutine computes various coefficients needed in radiative transfer calculation. More...
 
subroutine rrtmg_sw::spcvrtc (ssolar, cosz, sntz, albbm, albdf, sfluxzen, cldfrc, cf1, cf0, taug, taur, tauae, ssaae, asyae, taucw, ssacw, asycw, nlay, nlp1, fxupc, fxdnc, fxup0, fxdn0, ftoauc, ftoau0, ftoadc, fsfcuc, fsfcu0, fsfcdc, fsfcd0, sfbmc, sfdfc, sfbm0, sfdf0, suvbfc, suvbf0)
 This subroutine computes the shortwave radiative fluxes using two-stream method. More...
 
subroutine rrtmg_sw::spcvrtm (ssolar, cosz, sntz, albbm, albdf, sfluxzen, cldfmc, cf1, cf0, taug, taur, tauae, ssaae, asyae, taucw, ssacw, asycw, nlay, nlp1, fxupc, fxdnc, fxup0, fxdn0, ftoauc, ftoau0, ftoadc, fsfcuc, fsfcu0, fsfcdc, fsfcd0, sfbmc, sfdfc, sfbm0, sfdf0, suvbfc, suvbf0)
 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). More...
 
subroutine rrtmg_sw::vrtqdr (zrefb, zrefd, ztrab, ztrad, zldbt, ztdbt, NLAY, NLP1, zfu, zfd)
 This subroutine is called by spcvrtc() and spcvrtm(), and computes the upward and downward radiation fluxes. More...
 
subroutine rrtmg_sw::taumol (colamt, colmol, fac00, fac01, fac10, fac11, jp, jt, jt1, laytrop, forfac, forfrac, indfor, selffac, selffrac, indself, nlay, sfluxzen, taug, taur)
 This subroutine calculates optical depths for gaseous absorption and rayleigh scattering
subroutine called taumol## (## = 16-29) More...
 
subroutine taumol16
 The subroutine computes the optical depth in band 16: 2600-3250 cm-1 (low - h2o,ch4; high - ch4) More...
 
subroutine taumol17
 The subroutine computes the optical depth in band 17: 3250-4000 cm-1 (low - h2o,co2; high - h2o,co2) More...
 
subroutine taumol18
 The subroutine computes the optical depth in band 18: 4000-4650 cm-1 (low - h2o,ch4; high - ch4) More...
 
subroutine taumol19
 The subroutine computes the optical depth in band 19: 4650-5150 cm-1 (low - h2o,co2; high - co2) More...
 
subroutine taumol20
 The subroutine computes the optical depth in band 20: 5150-6150 cm-1 (low - h2o; high - h2o) More...
 
subroutine taumol21
 The subroutine computes the optical depth in band 21: 6150-7700 cm-1 (low - h2o,co2; high - h2o,co2) More...
 
subroutine taumol22
 The subroutine computes the optical depth in band 22: 7700-8050 cm-1 (low - h2o,o2; high - o2) More...
 
subroutine taumol23
 The subroutine computes the optical depth in band 23: 8050-12850 cm-1 (low - h2o; high - nothing) More...
 
subroutine taumol24
 The subroutine computes the optical depth in band 24: 12850-16000 cm-1 (low - h2o,o2; high - o2) More...
 
subroutine taumol25
 The subroutine computes the optical depth in band 25: 16000-22650 cm-1 (low - h2o; high - nothing) More...
 
subroutine taumol26
 The subroutine computes the optical depth in band 26: 22650-29000 cm-1 (low - nothing; high - nothing) More...
 
subroutine taumol27
 The subroutine computes the optical depth in band 27: 29000-38000 cm-1 (low - o3; high - o3) More...
 
subroutine taumol28
 The subroutine computes the optical depth in band 28: 38000-50000 cm-1 (low - o3,o2; high - o3,o2) More...
 
subroutine taumol29
 The subroutine computes the optical depth in band 29: 820-2600 cm-1 (low - h2o; high - co2) More...
 

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. ([41]; [136]). 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

Band # Wavenumber Range Lower Atm (Key) Lower Atm (Minor) Mid/Up Atm (Key) Mid/Up Atm (Minor)
16 2600-3250 H2O,CH4 CH4
17 3250-4000 H2O,CO2 H2O,CO2
18 4000-4650 H2O,CH4 CH4
19 4650-5150 H2O,CO2 CO2
20 5150-6150 H2O CH4 H2O CH4
21 6150-7700 H2O,CO2 H2O,CO2
22 7700-8050 H2O,O2 O2
23 8050-12850 H2O
24 12850-16000 H2O,O2 O3 O2 O3
25 16000-22650 H2O O3 O3
26 22650-29000
27 29000-38000 O3 O3
28 38000-50000 O3,O2 O3,O2
29 820-2600 H2O CO2 CO2 H2O

The RRTMG-SW package includes three files:

Author
Eli J. Mlawer, emlaw.nosp@m.er@a.nosp@m.er.co.nosp@m.m
Jennifer S. Delamere, jdela.nosp@m.mer@.nosp@m.aer.c.nosp@m.om
Michael J. Iacono, miaco.nosp@m.no@a.nosp@m.er.co.nosp@m.m
Shepard A. Clough
Version
NCEP SW v5.1 Nov 2012 -RRTMG-SW v3.8

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.

Argument Table

rrtmg_sw_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
plyrair_pressure_at_layer_for_radiation_in_hpaair pressure layerhPareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
plvlair_pressure_at_interface_for_radiation_in_hpaair pressure levelhPareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_level_dimension_for_radiation)kind_physin
tlyrair_temperature_at_layer_for_radiationair temperature layerKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
tlvlair_temperature_at_interface_for_radiationair temperature levelKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_level_dimension_for_radiation)kind_physin
qlyrwater_vapor_specific_humidity_at_layer_for_radiationspecific humidity layerkg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
olyrozone_concentration_at_layer_for_radiationozone concentration layerkg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_co2volume_mixing_ratio_of_co2volume mixing ratio co2m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_n2ovolume_mixing_ratio_of_n2ovolume mixing ratio no2m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_ch4volume_mixing_ratio_of_ch4volume mixing ratio ch4m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_o2volume_mixing_ratio_of_o2volume mixing ratio o2m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_covolume_mixing_ratio_of_covolume mixing ratio com3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_cfc11volume_mixing_ratio_of_cfc11volume mixing ratio cfc11m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_cfc12volume_mixing_ratio_of_cfc12volume mixing ratio cfc12m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_cfc22volume_mixing_ratio_of_cfc22volume mixing ratio cfc22m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
gasvmr_ccl4volume_mixing_ratio_of_ccl4volume mixing ratio ccl4m3 m-3real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
icseedrandom_number_seed_for_mcica_shortwaveseed for random number generation for shortwave radiationnoneinteger(ccpp_constant_one:horizontal_loop_extent)in
aeraodaerosol_optical_depth_for_shortwave_bands_01_16aerosol optical depth for shortwave bands 01-16nonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation, ccpp_constant_one:number_of_aerosol_bands_for_shortwave_radiation)kind_physin
aerssaaerosol_single_scattering_albedo_for_shortwave_bands_01_16aerosol single scattering albedo for shortwave bands 01-16fracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation, ccpp_constant_one:number_of_aerosol_bands_for_shortwave_radiation)kind_physin
aerasyaerosol_asymmetry_parameter_for_shortwave_bands_01_16aerosol asymmetry paramter for shortwave bands 01-16nonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation, ccpp_constant_one:number_of_aerosol_bands_for_shortwave_radiation)kind_physin
sfcalb_nir_dirsurface_albedo_due_to_near_ir_directsurface albedo due to near IR direct beamfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfcalb_nir_difsurface_albedo_due_to_near_ir_diffusedsurface albedo due to near IR diffused beamfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfcalb_uvis_dirsurface_albedo_due_to_uv_and_vis_directsurface albedo due to UV+VIS direct beamfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sfcalb_uvis_difsurface_albedo_due_to_uv_and_vis_diffusedsurface albedo due to UV+VIS diffused beamfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
dzlyrlayer_thickness_for_radiationlayer thicknesskmreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
delpinlayer_pressure_thickness_for_radiationlayer pressure thicknesshPareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
de_lgthcloud_decorrelation_lengthcloud decorrelation lengthkmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
alphacloud_overlap_decorrelation_parametercloud overlap decorrelation parameterfracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
coszcosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestepcosine of the solar zenit anglenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
solconsolar_constantsolar constantW m-2real()kind_physin
ndaydaytime_points_dimensiondaytime points dimensioncountinteger()in
idxdaydaytime_pointsdaytime pointsindexinteger(ccpp_constant_one:horizontal_loop_extent)in
nptshorizontal_loop_extenthorizontal dimensioncountinteger()in
nlayadjusted_vertical_layer_dimension_for_radiationnumber of vertical layers for radiationcountinteger()in
nlp1adjusted_vertical_level_dimension_for_radiationnumber of vertical levels for radiationcountinteger()in
lprntflag_printflag to printflaglogical()in
cld_cftotal_cloud_fractiontotal cloud fractionfracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
lsswrflag_for_calling_shortwave_radiationflag to calculate SW irradiancesflaglogical()in
hswctendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levelsshortwave total sky heating rateK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physinout
topflxsw_fluxes_top_atmosphereshortwave total sky fluxes at the top of the atmW m-2topfsw_type(ccpp_constant_one:horizontal_loop_extent)topfsw_typeinout
sfcflxsurface_sw_fluxes_assuming_total_and_clear_sky_on_radiation_timestepshortwave total sky fluxes at the Earth surfaceW m-2sfcfsw_type(ccpp_constant_one:horizontal_loop_extent)sfcfsw_typeinout
cldtaucloud_optical_depth_layers_at_0p55mu_bandapprox .55mu band layer cloud optical depthnonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physinout
hsw0tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levelsshortwave clear sky heating rateK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physinout
fdncmpcomponents_of_surface_downward_shortwave_fluxesderived type for special components of surface downward shortwave fluxesW m-2cmpfsw_type(ccpp_constant_one:horizontal_loop_extent)cmpfsw_typeinout
cld_lwpcloud_liquid_water_pathcloud liquid water pathg m-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
cld_ref_liqmean_effective_radius_for_liquid_cloudmean effective radius for liquid cloudumreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
cld_iwpcloud_ice_water_pathcloud ice water pathg m-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
cld_ref_icemean_effective_radius_for_ice_cloudmean effective radius for ice cloudumreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
cld_rwpcloud_rain_water_pathcloud rain water pathg m-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
cld_ref_rainmean_effective_radius_for_rain_dropmean effective radius for rain dropumreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
cld_swpcloud_snow_water_pathcloud snow water pathg m-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
cld_ref_snowmean_effective_radius_for_snow_flakemean effective radius for snow flakeumreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:adjusted_vertical_layer_dimension_for_radiation)kind_physin
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

RRTMG Shortwave Radiation Scheme General Algorithm