DeltaFlat_Vector_T Derived Type

type, public, extends(DeltaGeom_Vector_T) :: DeltaFlat_Vector_T


Inherits

type~~deltaflat_vector_t~~InheritsGraph type~deltaflat_vector_t DeltaFlat_Vector_T type~deltageom_vector_t DeltaGeom_Vector_T type~deltaflat_vector_t->type~deltageom_vector_t

Contents


Components

Type Visibility Attributes Name Initial
real(kind=krs), public :: fdc
real(kind=krs), public :: ftt
real(kind=krs), public :: qtf(4)
real(kind=krs), public :: gtc
real(kind=krs), public :: atf(4)

Type-Bound Procedures

procedure, public, non_overridable :: setup_GeomParm

  • private subroutine setup_GeomParm(Geom, csa, ang, cump, phs, pdf, dph, g1, fde)

    setup truncation parameter lookup table for geometrical truncated phase matrices

    Arguments

    Type IntentOptional Attributes Name
    class(DeltaGeom_Vector_T), intent(out) :: Geom
    real(kind=krs), intent(in) :: csa(:)
    real(kind=krs), intent(in) :: ang(:)
    real(kind=krs), intent(in) :: cump(:,:)
    real(kind=krs), intent(in) :: phs(:,:)
    real(kind=krs), intent(in) :: pdf(:,:)
    real(kind=krs), intent(in) :: dph(:,:)
    real(kind=krs), intent(in) :: g1
    real(kind=krs), intent(in) :: fde

procedure, public, non_overridable :: calc_GeomFdmax

  • private subroutine calc_GeomFdmax(Geom, cosa, ang, phs, pdf, dph, g1, qmax, phsmin, fdmax)

    calculate maximum value of delta fraction for geometrical truncated phase matrices

    Arguments

    Type IntentOptional Attributes Name
    class(DeltaGeom_Vector_T), intent(out) :: Geom
    real(kind=krs), intent(in) :: cosa(:)
    real(kind=krs), intent(in) :: ang(:)
    real(kind=krs), intent(in) :: phs(:,:)
    real(kind=krs), intent(in) :: pdf(:,:)
    real(kind=krs), intent(in) :: dph(:,:)
    real(kind=krs), intent(in) :: g1
    real(kind=krs), intent(in), optional :: qmax
    real(kind=krs), intent(in), optional :: phsmin
    real(kind=krs), intent(out) :: fdmax

procedure, public :: pick_GeomAng => pick_FlatAng

  • private subroutine pick_FlatAng(DeltaGeom, q, sinq, cosq)

    pick scattering angle from Flat truncated phase matrices randomly using the inverse methods

    Arguments

    Type IntentOptional Attributes Name
    class(DeltaFlat_Vector_T), intent(in) :: DeltaGeom
    real(kind=krs), intent(out) :: q
    real(kind=krs), intent(out) :: sinq
    real(kind=krs), intent(out) :: cosq

procedure, public :: calc_GeomPhs => calc_FlatPhs

  • private function calc_FlatPhs(DeltaGeom, q, istokes) result(phs)

    calculate angular distribution function of Flat truncated phase matrices

    Arguments

    Type IntentOptional Attributes Name
    class(DeltaFlat_Vector_T), intent(in) :: DeltaGeom
    real(kind=krs), intent(in) :: q
    integer(kind=kis), intent(in) :: istokes

    Return Value real(kind=krs)

procedure, public :: init_GeomParm => init_FlatParm

  • private subroutine init_FlatParm(geom, g1)

    initialize necessary parameters of Flat truncated phase matrices for non-truncation case

    Arguments

    Type IntentOptional Attributes Name
    class(DeltaFlat_Vector_T), intent(out) :: geom
    real(kind=krs), intent(in) :: g1

procedure, public :: make_GeomParm => make_FlatParm

  • private subroutine make_FlatParm(geom, g1, g0f, g1f, angf, cosf, phsf, dphf, fdel, is_save, istokes)

    calculate truncation parameters of Flat truncated phase matrices

    Arguments

    Type IntentOptional Attributes Name
    class(DeltaFlat_Vector_T), intent(inout) :: geom
    real(kind=krs), intent(in) :: g1
    real(kind=krs), intent(in) :: g0f
    real(kind=krs), intent(in) :: g1f
    real(kind=krs), intent(in) :: angf
    real(kind=krs), intent(in) :: cosf
    real(kind=krs), intent(in) :: phsf
    real(kind=krs), intent(in) :: dphf
    real(kind=krs), intent(out) :: fdel
    logical, intent(in) :: is_save
    integer(kind=kis), intent(in) :: istokes