← Back to Documentation Home
CCPP SciDoc v8.0.0  v8.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
module_radiation_aerosols Module Reference

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

Variables

integer, parameter, public nf_aesw = 3
 num of output fields for SW rad
 
integer, parameter, public nf_aelw = 3
 num of output fields for LW rad
 
integer, parameter, public nlwstr = 1
 starting band number in ir region
 
integer, parameter, public nspc = 5
 num of species for output aod (opnl)
 
integer, parameter, public nspc1 = NSPC + 1
 total+species
 
integer, parameter, public nwvsol = 151
 num of wvnum regions where solar flux is constant
 
integer, parameter, public nwvtot = 57600
 total num of wvnum included
 
integer, parameter, public nwvtir = 4000
 total num of wvnum in ir range
 
topospheric aerosol profile distribution
module variables for gocart aerosol optical properties
relative humidity independent aerosol optical properties:

species: du001, du002, du003, du004, du005

relative humidity dependent aerosol optical properties:

species : ss001, ss002, ss003, ss004, ss005, so4, bcphobic, bcphilic, ocphobic, ocphilic

subroutine, public aer_init (nlay, mpicomm, mpirank, mpiroot, iaermdl, iaerflg, lalw1bd, aeros_file, con_pi, con_t0c, con_c, con_boltz, con_plnk, errflg, errmsg)
 
subroutine, public aer_update (iyear, imon, mpicomm, mpirank, mpiroot, iaermdl, aeros_file, errflg, errmsg)
 This subroutine checks and updates time varying climatology aerosol data sets.
 
subroutine, public setaer (prsi, prsl, prslk, tvly, rhlay, slmsk, tracer, aerfld, xlon, xlat, imax, nlay, nlp1, lsswr, lslwr, iaermdl, iaerflg, top_at_1, con_pi, con_rd, con_g, aerosw, aerolw, aerodp, ext550, errflg, errmsg)
 This subroutine computes aerosols optical properties.
 

Detailed Description

This module contains climatological atmospheric aerosol schemes for radiation computations.

Function/Subroutine Documentation

◆ aer_init()

subroutine, public module_radiation_aerosols::aer_init ( integer, intent(in)  nlay,
type(mpi_comm), intent(in)  mpicomm,
integer, intent(in)  mpirank,
integer, intent(in)  mpiroot,
integer, intent(in)  iaermdl,
integer, intent(in)  iaerflg,
logical, intent(in)  lalw1bd,
character(len=26), intent(in)  aeros_file,
real(kind_phys), intent(in)  con_pi,
real(kind_phys), intent(in)  con_t0c,
real(kind_phys), intent(in)  con_c,
real(kind_phys), intent(in)  con_boltz,
real(kind_phys), intent(in)  con_plnk,
integer, intent(out)  errflg,
character(len=*), intent(out)  errmsg 
)
  1. Call wrt_aerlog to write aerosol parameter configuration to output logs.
  1. Call set_spectrum to set up spectral one wavenumber solar/IR fluxes.
  1. Call clim_aerinit() to invoke tropospheric aerosol initialization.
  1. Call set_volcaer to invoke stratospheric volcanic aerosol initialization.

Definition at line 497 of file radiation_aerosols.f.

◆ aer_update()

subroutine, public module_radiation_aerosols::aer_update ( integer, intent(in)  iyear,
integer, intent(in)  imon,
type(mpi_comm), intent(in)  mpicomm,
integer, intent(in)  mpirank,
integer, intent(in)  mpiroot,
integer, intent(in)  iaermdl,
character(len=26), intent(in)  aeros_file,
integer, intent(out)  errflg,
character(len=*), intent(out)  errmsg 
)

This subroutine checks and updates time varying climatology aerosol data sets.

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.
  1. Call volc_update() to update yearly stratospheric volcanic aerosol data.

Definition at line 1806 of file radiation_aerosols.f.

◆ setaer()

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)  aerfld,
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,
integer, intent(in)  iaermdl,
integer, intent(in)  iaerflg,
logical, intent(in)  top_at_1,
real (kind=kind_phys), intent(in)  con_pi,
real (kind=kind_phys), intent(in)  con_rd,
real (kind=kind_phys), intent(in)  con_g,
real (kind=kind_phys), dimension(:,:,:,:), intent(out)  aerosw,
real (kind=kind_phys), dimension(:,:,:,:), intent(out)  aerolw,
real (kind=kind_phys), dimension(:,:), intent(out)  aerodp,
real (kind=kind_phys), dimension(:,:), intent(out)  ext550,
integer, intent(out)  errflg,
character(len=*), intent(out)  errmsg 
)

This subroutine computes aerosols optical properties.

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.
  1. Compute level height and layer thickness.
  1. 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).
  1. 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

Definition at line 2238 of file radiation_aerosols.f.

Variable Documentation

◆ nf_aelw

integer, parameter, public module_radiation_aerosols::nf_aelw = 3

num of output fields for LW rad

Definition at line 155 of file radiation_aerosols.f.

◆ nf_aesw

integer, parameter, public module_radiation_aerosols::nf_aesw = 3

num of output fields for SW rad

Definition at line 153 of file radiation_aerosols.f.

◆ nlwstr

integer, parameter, public module_radiation_aerosols::nlwstr = 1

starting band number in ir region

Definition at line 157 of file radiation_aerosols.f.

◆ nspc

integer, parameter, public module_radiation_aerosols::nspc = 5

num of species for output aod (opnl)

Definition at line 159 of file radiation_aerosols.f.

◆ nspc1

integer, parameter, public module_radiation_aerosols::nspc1 = NSPC + 1

total+species

Definition at line 161 of file radiation_aerosols.f.

◆ nwvsol

integer, parameter, public module_radiation_aerosols::nwvsol = 151

num of wvnum regions where solar flux is constant

Definition at line 198 of file radiation_aerosols.f.

◆ nwvtir

integer, parameter, public module_radiation_aerosols::nwvtir = 4000

total num of wvnum in ir range

Definition at line 203 of file radiation_aerosols.f.

◆ nwvtot

integer, parameter, public module_radiation_aerosols::nwvtot = 57600

total num of wvnum included

Definition at line 201 of file radiation_aerosols.f.