Longwave two-stream calculation: - combine RRTMGP-specific sources at levels - compute layer reflectance, transmittance - compute total source function at levels using linear-in-tau - transport
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | nlay | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | ngpt | Number of columns, layers, g-points |
||
logical(kind=wl), | intent(in) | :: | top_at_1 | ilay = 1 is the top of the atmosphere? |
||
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | tau | Optical thickness, single-scattering albedo, asymmetry parameter [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | ssa | Optical thickness, single-scattering albedo, asymmetry parameter [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | g | Optical thickness, single-scattering albedo, asymmetry parameter [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | lay_source | Planck source at layer average temperature [W/m2] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay+1,ngpt) | :: | lev_source | Planck source at layer edge temperature [W/m2] |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | sfc_emis | Surface emissivity [] |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | sfc_src | Surface source function [W/m2] |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | inc_flux | Incident diffuse flux, probably 0 [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt) | :: | flux_up | Fluxes [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt) | :: | flux_dn | Fluxes [W/m2] |
LW transport, no scattering, multi-angle quadrature Users provide a set of weights and quadrature angles Routine sums over single-angle solutions for each sets of angles/weights
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | nlay | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | ngpt | Number of columns, layers, g-points |
||
logical(kind=wl), | intent(in) | :: | top_at_1 | ilay = 1 is the top of the atmosphere? |
||
integer, | intent(in) | :: | nmus | number of quadrature angles |
||
real(kind=wp), | intent(in), | dimension (ncol, ngpt, nmus) | :: | Ds | quadrature secants |
|
real(kind=wp), | intent(in), | dimension(nmus) | :: | weights | quadrature weights |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | tau | Absorption optical thickness [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | lay_source | Planck source at layer average temperature [W/m2] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay+1,ngpt) | :: | lev_source | Planck source at layer edge for radiation[W/m2] |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | sfc_emis | Surface emissivity [] |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | sfc_src | Surface source function [W/m2] |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | inc_flux | Incident diffuse flux, probably 0 [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt), target | :: | flux_up | Fluxes [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt), target | :: | flux_dn | Fluxes [W/m2] |
|
logical(kind=wl), | intent(in) | :: | do_broadband | |||
real(kind=wp), | intent(out), | dimension(ncol,nlay+1 ), target | :: | broadband_up | Spectrally-integrated fluxes [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1 ), target | :: | broadband_dn | Spectrally-integrated fluxes [W/m2] |
|
logical(kind=wl), | intent(in) | :: | do_Jacobians | compute Jacobian with respect to surface temeprature? |
||
real(kind=wp), | intent(in), | dimension(ncol ,ngpt) | :: | sfc_srcJac | surface temperature Jacobian of surface source function [W/m2/K] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1 ), target | :: | flux_upJac | surface temperature Jacobian of Radiances [W/m2-str / K] |
|
logical(kind=wl), | intent(in) | :: | do_rescaling | Approximate treatment of scattering (10.1175/JAS-D-18-0014.1) |
||
real(kind=wp), | intent(in), | dimension(ncol,nlay ,ngpt) | :: | ssa | single-scattering albedo, asymmetry parameter |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay ,ngpt) | :: | g | single-scattering albedo, asymmetry parameter |
Shortwave two-stream calculation: compute layer reflectance, transmittance compute solar source function for diffuse radiation transport
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | nlay | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | ngpt | Number of columns, layers, g-points |
||
logical(kind=wl), | intent(in) | :: | top_at_1 | ilay = 1 is the top of the atmosphere? |
||
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | tau | Optical thickness, single-scattering albedo, asymmetry parameter [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | ssa | Optical thickness, single-scattering albedo, asymmetry parameter [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | g | Optical thickness, single-scattering albedo, asymmetry parameter [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay ) | :: | mu0 | cosine of solar zenith angle |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | sfc_alb_dir | Spectral surface albedo for direct and diffuse radiation |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | sfc_alb_dif | Spectral surface albedo for direct and diffuse radiation |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | inc_flux_dir | Direct beam incident flux |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt), target | :: | flux_up | Fluxes [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt), target | :: | flux_dn | Fluxes [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt), target | :: | flux_dir | Fluxes [W/m2] |
|
logical(kind=wl), | intent(in) | :: | has_dif_bc | Is a boundary condition for diffuse flux supplied? |
||
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | inc_flux_dif | Boundary condition for diffuse flux [W/m2] |
|
logical(kind=wl), | intent(in) | :: | do_broadband | Provide broadband-integrated, not spectrally-resolved, fluxes? |
||
real(kind=wp), | intent(out), | dimension(ncol,nlay+1 ) | :: | broadband_up | Broadband integrated fluxes |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1 ) | :: | broadband_dn | Broadband integrated fluxes |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1 ) | :: | broadband_dir | Broadband integrated fluxes |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ncol | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | nlay | Number of columns, layers, g-points |
||
integer, | intent(in) | :: | ngpt | Number of columns, layers, g-points |
||
logical(kind=wl), | intent(in) | :: | top_at_1 | ilay = 1 is the top of the atmosphere? |
||
real(kind=wp), | intent(in), | dimension(ncol,nlay, ngpt) | :: | tau | Absorption optical thickness [] |
|
real(kind=wp), | intent(in), | dimension(ncol,nlay ) | :: | mu0 | cosine of solar zenith angle |
|
real(kind=wp), | intent(in), | dimension(ncol, ngpt) | :: | inc_flux_dir | Direct beam incident flux [W/m2] |
|
real(kind=wp), | intent(out), | dimension(ncol,nlay+1,ngpt) | :: | flux_dir | Direct-beam flux, spectral [W/m2] |