internal Planck source functions, defined per g-point on the same spectral grid at the atmosphere,
via ty_source_func_lw in module mo_source_functions
boundary conditions: surface emissivity defined per band
optionally, a boundary condition for incident diffuse radiation
optionally, an integer number of angles at which to do Gaussian quadrature if scattering is neglected
If optical properties are supplied via class ty_optical_props_1scl (absorption optical thickenss only)
(ty_optical_props_1scl in module mo_optical_props)
then an emission/absorption solver is called.
If optical properties are supplied via class ty_optical_props_2str
(ty_optical_props_2str in module mo_optical_props)
fluxes are computed via a rescaling by default or, optionally, using two-stream calculations and adding.
Users must ensure that emissivity is on the same spectral grid as the optical properties.
Final output is via user-extensible ty_fluxes
(ty_fluxes in module mo_fluxes)
which must reduce the detailed spectral fluxes to whatever summary the user needs
The routine does error checking and choses which lower-level kernel to invoke based on
what kinds of optical properties are supplied
Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Dervied type for computing spectral integrals from g-point fluxes.
Default computes broadband fluxes at all levels if output arrays are defined. Can be extended per user desires.
real(kind=wp),
intent(in),
optional
dimension(:,:), target
::
inc_flux
incident flux at domain top [W/m2] (ncol, ngpts)
integer,
intent(in),
optional
::
n_gauss_angles
Number of angles used in Gaussian quadrature (max 3, no-scattering solution)
logical,
intent(in),
optional
::
use_2stream
When 2-stream parameters (tau/ssa/g) are provided, use 2-stream methods
Default is to use re-scaled longwave transport
real(kind=wp),
intent(in),
optional
dimension(:,:)
::
lw_Ds
User-specifed 1/cos of transport angle per col, g-point
real(kind=wp),
intent(inout),
optional
dimension(:,:), target
::
flux_up_Jac
surface temperature flux Jacobian [W/m2/K] (ncol, nlay+1)