Loading web-font TeX/Main/Regular
GMTB Common Community Physics Package (CCPP) Scientific Documentation  Version 1.0
All Classes Namespaces Functions Variables Modules Pages
RRTMG Aerosols Module

This module contains climatological atmospheric aerosol schemes for radiation computations. More...

Detailed Description

Version
NCEP-Radiation_aerosols v5.2 Jan 2013


This module has three externally callable subroutines:


References:

subroutine, public module_radiation_aerosols::aer_init (NLAY, me)
 The initialization program is to set up necessary parameters and working arrays. More...
 
subroutine wrt_aerlog
 This subroutine writes aerosol parameter configuration to run log file.
 
subroutine set_spectrum
 This subroutine defines the one wavenumber solar fluxes based on toa solar spectral distribution, and define the one wavenumber IR fluxes based on black-body emission distribution at a predefined temperature. More...
 
subroutine set_volcaer
 The initialization program for stratospheric volcanic aerosols.
 
subroutine module_radiation_aerosols::clim_aerinit (solfwv, eirfwv, me )
 This subroutine is the opac-climatology aerosol initialization program to set up necessary parameters and working arrays. More...
 
subroutine set_aercoef
 The initialization program for climatological aerosols. The program reads and maps the pre-tabulated aerosol optical spectral data onto corresponding SW radiation spectral bands. More...
 
subroutine optavg
 This subroutine computes mean aerosols optical properties over each SW radiation spectral band for each of the species components. This program follows GFDL's approach for thick cloud optical property in SW radiation scheme (2000).
 
subroutine, public module_radiation_aerosols::aer_update (iyear, imon, me)
 This subroutine checks and updates time varying climatology aerosol data sets. More...
 
subroutine trop_update
 This subroutine updates the monthly global distribution of aerosol profiles in five degree horizontal resolution.
 
subroutine volc_update
 This subroutine searches historical volcanic data sets to find and read in monthly 45-degree lat-zone band of optical depth.
 
subroutine, public module_radiation_aerosols::setaer (prsi, prsl, prslk, tvly, rhlay, slmsk, tracer, xlon, xlat, IMAX, NLAY, NLP1, lsswr, lslwr, aerosw, aerolw , aerodp )
 This subroutine computes aerosols optical properties. More...
 

Function/Subroutine Documentation

subroutine, public module_radiation_aerosols::aer_init ( integer, intent(in)  NLAY,
integer, intent(in)  me 
)
Parameters
NLAYnumber of model vertical layers (not used)
meprint message control flag

General Algorithm

  1. Call wrt_aerlog() to write aerosol parameter configuration to output logs.
  2. Call set_spectrum() to set up spectral one wavenumber solar/IR fluxes.
  3. Call clim_aerinit() to invoke tropospheric aerosol initialization.
  4. Call set_volcaer() to invoke stratospheric volcanic aerosol initialization.

References clim_aerinit(), set_spectrum(), set_volcaer(), and wrt_aerlog().

Here is the call graph for this function:

subroutine, public module_radiation_aerosols::aer_update ( integer, intent(in)  iyear,
integer, intent(in)  imon,
integer, intent(in)  me 
)
Parameters
iyear4-digit calender year
imonmonth of the year
meprint message control flag

General Algorithm

  1. Call trop_update() to update monthly tropospheric aerosol data.
  2. Call volc_update() to update yearly stratospheric volcanic aerosol data.

References trop_update(), and volc_update().

Here is the call graph for this function:

subroutine module_radiation_aerosols::clim_aerinit ( real (kind=kind_phys), dimension(:)  solfwv,
real (kind=kind_phys), dimension(:)  eirfwv,
integer, intent(in)  me 
)
private
Parameters
solfwv(NWVTOT), solar flux for each individual wavenumber (w/m^2)
eirfwv(NWVTIR), IR flux(273k) for each individual wavenumber (w/m^2)
meprint message control flag

General Algorithm

  • call set_aercoef() to invoke tropospheric aerosol initialization.

References set_aercoef().

Referenced by aer_init().

Here is the call graph for this function:

subroutine clim_aerinit::set_aercoef ( )
private

General Algorithm

  1. Reading climatological aerosols optical data from aeros_file, including:
    • ending wave num for 61 aerosol spectral bands
    • atmos scale height for 5 domains, 7 profs
    • reference pressure for 5 domains, 7 profs
    • rh independent ext coef for 61 bands, 6 species
    • rh independent sca coef for 61 bands, 6 species
    • rh independent ssa coef for 61 bands, 6 species
    • rh independent asy coef for 61 bands, 6 species
    • rh dependent ext coef for 61 bands, 8 rh lev, 4 species
    • rh dependent sca coef for 61 bands, 8 rh lev, 4 species
    • rh dependent ssa coef for 61 bands, 8 rh lev, 4 species
    • rh dependent asy coef for 61 bands, 8 rh lev, 4 species
    • stratospheric background aeros for 61 bands
  2. Convert pressure reference level (in mb) to sigma reference level assume an 1000mb reference surface pressure.
  3. Compute solar flux weights and interval indices for mapping spectral bands between SW radiation and aerosol data.
  4. Compute LW flux weights and interval indices for mapping spectral bands between lw radiation and aerosol data.
  5. Call optavg() to compute spectral band mean properties for each species.

References optavg().

Referenced by clim_aerinit().

Here is the call graph for this function:

subroutine aer_init::set_spectrum ( )
private

General Algorithm

  • inputs: (module constants)
    • NWVTOT: total num of wave numbers used in sw spectrum
    • NWVTIR: total num of wave numbers used in the ir region
  • outputs: (in-scope variables)
    • solfwv(NWVTOT): solar flux for each individual wavenumber ( W/m^2)
    • eirfwv(NWVTIR): ir flux(273k) for each individual wavenumber ( W/m^2)

Referenced by aer_init().

subroutine, public module_radiation_aerosols::setaer ( real (kind=kind_phys), dimension(:,:), intent(in)  prsi,
real (kind=kind_phys), dimension(:,:), intent(in)  prsl,
real (kind=kind_phys), dimension(:,:), intent(in)  prslk,
real (kind=kind_phys), dimension(:,:), intent(in)  tvly,
real (kind=kind_phys), dimension(:,:), intent(in)  rhlay,
real (kind=kind_phys), dimension(:), intent(in)  slmsk,
real (kind=kind_phys), dimension(:,:,:), intent(in)  tracer,
real (kind=kind_phys), dimension(:), intent(in)  xlon,
real (kind=kind_phys), dimension(:), intent(in)  xlat,
integer, intent(in)  IMAX,
integer, intent(in)  NLAY,
integer, intent(in)  NLP1,
logical, intent(in)  lsswr,
logical, intent(in)  lslwr,
real (kind=kind_phys), dimension(:,:,:,:), intent(out)  aerosw,
real (kind=kind_phys), dimension(:,:,:,:), intent(out)  aerolw,
real (kind=kind_phys), dimension(:,:), intent(out)  aerodp 
)
Parameters
prsi(IMAX,NLP1), pressure at interface in mb
prsl(IMAX,NLAY), layer mean pressure in mb
prslk(IMAX,NLAY), exner function = (p/p0)^{rocp}
tvly(IMAX,NLAY), layer virtual temperature in K
rhlay(IMAX,NLAY), layer mean relative humidity
slmsk(IMAX), sea/land mask (sea:0,land:1,sea-ice:2)
tracer(IMAX,NLAY,NTRAC), aerosol tracer concentration
xlon(IMAX), longitude of given points in radiance, ok for both 0->2pi or -pi->+pi ranges
xlat(IMAX), latitude of given points in radiance, default to pi/2 -> -pi/2, otherwise see in-line comment
IMAX1, horizontal dimension of arrays
NLAY,NLP11, vertical dimensions of arrays
lsswr,lslwrlogical flags for sw/lw radiation calls
aerosw(IMAX,NLAY,NBDSW,NF_AESW), aeros opt properties for sw
(:,:,:,1): optical depth
(:,:,:,2): single scattering albedo
(:,:,:,3): asymmetry parameter
aerolw(IMAX,NLAY,NBDLW,NF_AELW), aeros opt properties for lw
(:,:,:,1): optical depth
(:,:,:,2): single scattering albedo
(:,:,:,3): asymmetry parameter
aerodp(IMAX,NSPC1), vertically integrated optical depth

General Algorithm

  1. Convert lat/lon from radiance to degree.
  2. Compute level height and layer thickness.
  3. Calculate SW aerosol optical properties for the corresponding frequency bands:
    • if opac aerosol climatology is used, call aer_property(): this subroutine maps the 5 degree global climatological aerosol data set onto model grids, and compute aerosol optical properties for SW and LW radiations.
    • if gocart aerosol scheme is used, call setgocartaer(): this subroutine computes sw + lw aerosol optical properties for gocart aerosol species (merged from fcst and clim fields).
  4. Compute stratosphere volcanic forcing:
    • select data in 4 lat bands, interpolation at the boundaries
    • Find lower boundary of stratosphere: polar, fixed at 25000pa (250mb); tropic, fixed at 15000pa (150mb); mid-lat, interpolation
    • SW: add volcanic aerosol optical depth to the background value
    • Smoothing profile at boundary if needed
    • LW: add volcanic aerosol optical depth to the background value