mo_rte_solver_kernels Module


Uses

  • module~~mo_rte_solver_kernels~3~~UsesGraph module~mo_rte_solver_kernels~3 mo_rte_solver_kernels module~mo_rte_kind mo_rte_kind module~mo_rte_solver_kernels~3->module~mo_rte_kind iso_c_binding iso_c_binding module~mo_rte_solver_kernels~3->iso_c_binding module~mo_rte_util_array mo_rte_util_array module~mo_rte_solver_kernels~3->module~mo_rte_util_array module~mo_rte_kind->iso_c_binding module~mo_rte_util_array->module~mo_rte_kind

Contents


Subroutines

public subroutine lw_solver_2stream(ncol, nlay, ngpt, top_at_1, tau, ssa, g, lay_source, lev_source, sfc_emis, sfc_src, inc_flux, flux_up, flux_dn) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
logical(kind=wl), intent(in) :: top_at_1
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: tau
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: ssa
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: g
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: lay_source
real(kind=wp), intent(in), dimension(ncol,nlay+1,ngpt):: lev_source
real(kind=wp), intent(in), dimension(ncol, ngpt):: sfc_emis
real(kind=wp), intent(in), dimension(ncol, ngpt):: sfc_src
real(kind=wp), intent(in), dimension(ncol, ngpt):: inc_flux
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt):: flux_up
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt):: flux_dn

public subroutine lw_solver_noscat(ncol, nlay, ngpt, top_at_1, nmus, Ds, weights, tau, lay_source, lev_source, sfc_emis, sfc_src, inc_flux, flux_up, flux_dn, do_broadband, broadband_up, broadband_dn, do_Jacobians, sfc_srcJac, flux_upJac, do_rescaling, ssa, g) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
logical(kind=wl), intent(in) :: top_at_1
integer, intent(in) :: nmus
real(kind=wp), intent(in), dimension (ncol, ngpt, nmus):: Ds
real(kind=wp), intent(in), dimension(nmus):: weights
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: tau
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: lay_source
real(kind=wp), intent(in), dimension(ncol,nlay+1,ngpt):: lev_source
real(kind=wp), intent(in), dimension(ncol, ngpt):: sfc_emis
real(kind=wp), intent(in), dimension(ncol, ngpt):: sfc_src
real(kind=wp), intent(in), dimension(ncol, ngpt):: inc_flux
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt), target:: flux_up
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt), target:: flux_dn
logical(kind=wl), intent(in) :: do_broadband
real(kind=wp), intent(inout), dimension(ncol,nlay+1 ), target:: broadband_up
real(kind=wp), intent(inout), dimension(ncol,nlay+1 ), target:: broadband_dn
logical(kind=wl), intent(in) :: do_Jacobians
real(kind=wp), intent(in), dimension(ncol ,ngpt):: sfc_srcJac
real(kind=wp), intent(out), dimension(ncol,nlay+1 ), target:: flux_upJac
logical(kind=wl), intent(in) :: do_rescaling
real(kind=wp), intent(in), dimension(ncol,nlay ,ngpt):: ssa
real(kind=wp), intent(in), dimension(ncol,nlay ,ngpt):: g

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
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
logical(kind=wl), intent(in) :: top_at_1
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: tau
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: ssa
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: g
real(kind=wp), intent(in), dimension(ncol,nlay ):: mu0
real(kind=wp), intent(in), dimension(ncol, ngpt):: sfc_alb_dir
real(kind=wp), intent(in), dimension(ncol, ngpt):: sfc_alb_dif
real(kind=wp), intent(in), dimension(ncol, ngpt):: inc_flux_dir
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt), target:: flux_up
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt), target:: flux_dn
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt), target:: flux_dir
logical(kind=wl), intent(in) :: has_dif_bc
real(kind=wp), intent(in), dimension(ncol, ngpt):: inc_flux_dif
logical(kind=wl), intent(in) :: do_broadband
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

public subroutine sw_solver_noscat(ncol, nlay, ngpt, top_at_1, tau, mu0, inc_flux_dir, flux_dir) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
logical(kind=wl), intent(in) :: top_at_1
real(kind=wp), intent(in), dimension(ncol,nlay, ngpt):: tau
real(kind=wp), intent(in), dimension(ncol,nlay ):: mu0
real(kind=wp), intent(in), dimension(ncol, ngpt):: inc_flux_dir
real(kind=wp), intent(out), dimension(ncol,nlay+1,ngpt):: flux_dir