spectral Derived Type

type, public, extends(opticalProp_base) :: spectral


Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: albedo

type(piecewise1D), private :: flux
real(kind=wp), public :: g2

g factor squared

real(kind=wp), public :: hgg

g factor

type(piecewise1D), private :: hgg_a
real(kind=wp), public :: kappa

real(kind=wp), public :: mua

absoprtion coeff.

type(piecewise1D), private :: mua_a
real(kind=wp), public :: mus

scattering coeff.

type(piecewise1D), private :: mus_a
real(kind=wp), public :: n

refractive index

type(piecewise1D), private :: n_a

Constructor

public interface spectral

  • private function init_spectral(mus, mua, hgg, n, flux) result(res)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in), allocatable :: mus(:,:)
    real(kind=wp), intent(in), allocatable :: mua(:,:)
    real(kind=wp), intent(in), allocatable :: hgg(:,:)
    real(kind=wp), intent(in), allocatable :: n(:,:)
    real(kind=wp), intent(in), allocatable :: flux(:,:)

    Return Value type(spectral)


Type-Bound Procedures

procedure, public :: update => updateSpectral

  • private subroutine updateSpectral(this, wavelength)

    Arguments

    Type IntentOptional Attributes Name
    class(spectral), intent(inout) :: this
    real(kind=wp), intent(out) :: wavelength

Source Code

    type, extends(opticalProp_base) :: spectral
        type(piecewise1D), private :: mus_a, mua_a, hgg_a, n_a, flux
        contains
            procedure :: update => updateSpectral
    end type spectral