DeltaBeta_Vector_Mod Module


Uses

  • module~~deltabeta_vector_mod~~UsesGraph module~deltabeta_vector_mod DeltaBeta_Vector_Mod Cons_Pack Cons_Pack module~deltabeta_vector_mod->Cons_Pack Kind_Pack Kind_Pack module~deltabeta_vector_mod->Kind_Pack Math_Pack Math_Pack module~deltabeta_vector_mod->Math_Pack module~deltageom_vector_mod DeltaGeom_Vector_Mod module~deltabeta_vector_mod->module~deltageom_vector_mod module~rand_pack Rand_Pack module~deltabeta_vector_mod->module~rand_pack module~deltageom_vector_mod->Kind_Pack module~rand_pack->Kind_Pack

Used by

  • module~~deltabeta_vector_mod~~UsedByGraph module~deltabeta_vector_mod DeltaBeta_Vector_Mod proc~init_phsmattab~2 init_PhsMatTab proc~init_phsmattab~2->module~deltabeta_vector_mod

Contents


Variables

Type Visibility Attributes Name Initial
real(kind=krs), private, parameter :: qsc = 0.5_krs*pi_Value
real(kind=krs), private, parameter :: fac = 0.5_krs

Derived Types

type, public, extends(DeltaGeom_Vector_T) ::  DeltaBeta_Vector_T

Beta truncation approximation of phase matrices for vector radiative transfer simulation

Read more…

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 :: qscl(4)
real(kind=krs), public :: alph(4)
real(kind=krs), public :: beta(4)
real(kind=krs), public :: gamm(4)
real(kind=krs), public :: fu1
real(kind=krs), public :: d(5)

Type-Bound Procedures

procedure , public , non_overridable :: setup_GeomParm Subroutine
procedure , public , non_overridable :: calc_GeomFdmax Subroutine
procedure , public :: pick_GeomAng => pick_BetaAng Subroutine
procedure , public :: calc_GeomPhs => calc_BetaPhs Function
procedure , public :: init_GeomParm => init_BetaParm Subroutine
procedure , public :: make_GeomParm => make_BetaParm Subroutine

Functions

private function calc_BetaPhs(DeltaGeom, q, istokes) result(phs)

calculate angular distribution function of Beta truncated phase matrices

Arguments

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

Return Value real(kind=krs)


Subroutines

private subroutine pick_BetaAng(DeltaGeom, q, sinq, cosq)

pick scattering angle from Beta truncated phase matrices randomly using BB* algorithm and accept-reject methods.

Read more…

Arguments

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

private subroutine init_BetaParm(geom, g1)

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

Arguments

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

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

calculate truncation parameters of Beta truncated phase matrices

Arguments

Type IntentOptional Attributes Name
class(DeltaBeta_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