CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ 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 )
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 2178 of file radiation_aerosols.f.