sw_solver_2stream Interface

interface

Shortwave two-stream calculation: compute layer reflectance, transmittance compute solar source function for diffuse radiation transport


public subroutine sw_solver_2stream(ncol, nlay, ngpt, top_at_1, tau, ssa, g, mu0, sfc_alb_dir, sfc_alb_dif, inc_flux_dir, flux_up, flux_dn, flux_dir, has_dif_bc, inc_flux_dif, do_broadband, broadband_up, broadband_dn, broadband_dir) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
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
real(kind=wp), intent(out), dimension(ncol,nlay+1 ):: broadband_dn
real(kind=wp), intent(out), dimension(ncol,nlay+1 ):: broadband_dir