mo_optical_props_kernels Module


Uses

  • module~~mo_optical_props_kernels~3~~UsesGraph module~mo_optical_props_kernels~3 mo_optical_props_kernels module~mo_rte_kind mo_rte_kind module~mo_optical_props_kernels~3->module~mo_rte_kind iso_c_binding iso_c_binding module~mo_optical_props_kernels~3->iso_c_binding module~mo_rte_kind->iso_c_binding

Contents


Interfaces

public interface delta_scale_2str_kernel

  • public subroutine delta_scale_2str_f_k(ncol, nlay, ngpt, tau, ssa, g, f) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol
    integer, intent(in) :: nlay
    integer, intent(in) :: ngpt
    real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: tau
    real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: ssa
    real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: g
    real(kind=wp), intent(in), dimension(ncol, nlay, ngpt):: f
  • public subroutine delta_scale_2str_k(ncol, nlay, ngpt, tau, ssa, g) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol
    integer, intent(in) :: nlay
    integer, intent(in) :: ngpt
    real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: tau
    real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: ssa
    real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: g

public interface extract_subset

  • public subroutine extract_subset_dim1_3d(ncol, nlay, ngpt, array_in, colS, colE, array_out) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol
    integer, intent(in) :: nlay
    integer, intent(in) :: ngpt
    real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: array_in
    integer, intent(in) :: colS
    integer, intent(in) :: colE
    real(kind=wp), intent(out), dimension(colE-colS+1, nlay,ngpt):: array_out
  • public subroutine extract_subset_dim2_4d(nmom, ncol, nlay, ngpt, array_in, colS, colE, array_out) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: nmom
    integer, intent(in) :: ncol
    integer, intent(in) :: nlay
    integer, intent(in) :: ngpt
    real(kind=wp), intent(in), dimension(nmom,ncol,nlay,ngpt):: array_in
    integer, intent(in) :: colS
    integer, intent(in) :: colE
    real(kind=wp), intent(out), dimension(nmom,colE-colS+1, nlay,ngpt):: array_out
  • public subroutine extract_subset_absorption_tau(ncol, nlay, ngpt, tau_in, ssa_in, colS, colE, tau_out) bind(C, name="0")

    Arguments

    TypeIntentOptionalAttributesName
    integer, intent(in) :: ncol
    integer, intent(in) :: nlay
    integer, intent(in) :: ngpt
    real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau_in
    real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa_in
    integer, intent(in) :: colS
    integer, intent(in) :: colE
    real(kind=wp), intent(out), dimension(colE-colS+1, nlay,ngpt):: tau_out

Subroutines

public subroutine delta_scale_2str_f_k(ncol, nlay, ngpt, tau, ssa, g, f) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: tau
real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: ssa
real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: g
real(kind=wp), intent(in), dimension(ncol, nlay, ngpt):: f

public subroutine delta_scale_2str_k(ncol, nlay, ngpt, tau, ssa, g) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: tau
real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: ssa
real(kind=wp), intent(inout), dimension(ncol, nlay, ngpt):: g

public subroutine extract_subset_absorption_tau(ncol, nlay, ngpt, tau_in, ssa_in, colS, colE, tau_out) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau_in
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa_in
integer, intent(in) :: colS
integer, intent(in) :: colE
real(kind=wp), intent(out), dimension(colE-colS+1, nlay,ngpt):: tau_out

public subroutine extract_subset_dim1_3d(ncol, nlay, ngpt, array_in, colS, colE, array_out) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: array_in
integer, intent(in) :: colS
integer, intent(in) :: colE
real(kind=wp), intent(out), dimension(colE-colS+1, nlay,ngpt):: array_out

public subroutine extract_subset_dim2_4d(nmom, ncol, nlay, ngpt, array_in, colS, colE, array_out) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: nmom
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(in), dimension(nmom,ncol,nlay,ngpt):: array_in
integer, intent(in) :: colS
integer, intent(in) :: colE
real(kind=wp), intent(out), dimension(nmom,colE-colS+1, nlay,ngpt):: array_out

public subroutine inc_1scalar_by_1scalar_bybnd(ncol, nlay, ngpt, tau1, tau2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_1scalar_by_2stream_bybnd(ncol, nlay, ngpt, tau1, tau2, ssa2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: ssa2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_1scalar_by_nstream_bybnd(ncol, nlay, ngpt, tau1, tau2, ssa2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: ssa2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_2stream_by_1scalar_bybnd(ncol, nlay, ngpt, tau1, ssa1, tau2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_2stream_by_2stream_bybnd(ncol, nlay, ngpt, tau1, ssa1, g1, tau2, ssa2, g2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: g1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: ssa2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: g2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_2stream_by_nstream_bybnd(ncol, nlay, ngpt, nmom2, tau1, ssa1, g1, tau2, ssa2, p2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
integer, intent(in) :: nmom2
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: g1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: ssa2
real(kind=wp), intent(in), dimension(nmom2, ncol,nlay,nbnd):: p2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_nstream_by_1scalar_bybnd(ncol, nlay, ngpt, tau1, ssa1, tau2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_nstream_by_2stream_bybnd(ncol, nlay, ngpt, nmom1, tau1, ssa1, p1, tau2, ssa2, g2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
integer, intent(in) :: nmom1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(nmom1, ncol,nlay,ngpt):: p1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: ssa2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: g2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine inc_nstream_by_nstream_bybnd(ncol, nlay, ngpt, nmom1, nmom2, tau1, ssa1, p1, tau2, ssa2, p2, nbnd, gpt_lims) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
integer, intent(in) :: nmom1
integer, intent(in) :: nmom2
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(nmom1, ncol,nlay,ngpt):: p1
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,nbnd):: ssa2
real(kind=wp), intent(in), dimension(nmom2, ncol,nlay,nbnd):: p2
integer, intent(in) :: nbnd
integer, intent(in), dimension(2,nbnd):: gpt_lims

public subroutine increment_1scalar_by_1scalar(ncol, nlay, ngpt, tau1, tau2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2

public subroutine increment_1scalar_by_2stream(ncol, nlay, ngpt, tau1, tau2, ssa2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa2

public subroutine increment_1scalar_by_nstream(ncol, nlay, ngpt, tau1, tau2, ssa2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa2

public subroutine increment_2stream_by_1scalar(ncol, nlay, ngpt, tau1, ssa1, tau2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2

public subroutine increment_2stream_by_2stream(ncol, nlay, ngpt, tau1, ssa1, g1, tau2, ssa2, g2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: g1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: g2

public subroutine increment_2stream_by_nstream(ncol, nlay, ngpt, nmom2, tau1, ssa1, g1, tau2, ssa2, p2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
integer, intent(in) :: nmom2
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: g1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa2
real(kind=wp), intent(in), dimension(nmom2, ncol,nlay,ngpt):: p2

public subroutine increment_nstream_by_1scalar(ncol, nlay, ngpt, tau1, ssa1, tau2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2

public subroutine increment_nstream_by_2stream(ncol, nlay, ngpt, nmom1, tau1, ssa1, p1, tau2, ssa2, g2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
integer, intent(in) :: nmom1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(nmom1, ncol,nlay,ngpt):: p1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: g2

public subroutine increment_nstream_by_nstream(ncol, nlay, ngpt, nmom1, nmom2, tau1, ssa1, p1, tau2, ssa2, p2) bind(C, name="0")

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: ncol
integer, intent(in) :: nlay
integer, intent(in) :: ngpt
integer, intent(in) :: nmom1
integer, intent(in) :: nmom2
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: tau1
real(kind=wp), intent(inout), dimension(ncol,nlay,ngpt):: ssa1
real(kind=wp), intent(inout), dimension(nmom1, ncol,nlay,ngpt):: p1
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: tau2
real(kind=wp), intent(in), dimension(ncol,nlay,ngpt):: ssa2
real(kind=wp), intent(in), dimension(nmom2, ncol,nlay,ngpt):: p2