CCPP Scientific Documentation
v5.0.0
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,
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

References aer_property(), aer_property_gocart(), physcons::con_g, f_one, f_zero, physparam::iaerflg, physparam::iaermdl, physparam::ivflip, ivolae, kmonsav, kyrsav, lalwflg, laswflg, lavoflg, module_radlw_parameters::nbdlw, module_radsw_parameters::nbdsw, nf_aelw, nf_aesw, nlwbnd, nspc1, module_radsw_parameters::nswstr, wvn_lw1, wvn_lw2, wvn_sw1, and wvn_sw2.

Referenced by gfs_rrtmg_pre::gfs_rrtmg_pre_run().

Here is the call graph for this function: