wigner_d Interface

public interface wigner_d

Interface to access the routines to calculate the matrix D(α,β,γ) or d(β) based on the number of arguments


Module Procedures

private module function wigner_big_D_jint(j, euler_alpha, euler_beta, euler_gamma, use_analytic) result(D)

Return the wigner D-matrix for integer j

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: j

The angular momentum

real(kind=rp), intent(in) :: euler_alpha

The Euler angle α

real(kind=rp), intent(in) :: euler_beta

The Euler angle β

real(kind=rp), intent(in) :: euler_gamma

The Euler angle γ

logical, intent(in), optional :: use_analytic

Force the use of the analytic expression to obtain ?

Return Value complex(kind=rp), allocatable, (:,:)

The Wigner D-matrix

private module function wigner_big_D_jreal(j, euler_alpha, euler_beta, euler_gamma, use_analytic) result(D)

Return the wigner D-matrix for real j

Arguments

Type IntentOptional Attributes Name
real(kind=rp), intent(in) :: j

The angular momentum

real(kind=rp), intent(in) :: euler_alpha

The Euler angle α

real(kind=rp), intent(in) :: euler_beta

The Euler angle β

real(kind=rp), intent(in) :: euler_gamma

The Euler angle γ

logical, intent(in), optional :: use_analytic

Force the use of the analytic expression to obtain ?

Return Value complex(kind=rp), allocatable, (:,:)

The Wigner D-matrix

private module function wigner_little_d_jint(j, euler_beta, use_analytic) result(d)

Return the Wigner d-matrix for integer j

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: j

The angular momentum

real(kind=rp), intent(in) :: euler_beta

The euler angle β

logical, intent(in), optional :: use_analytic

Force the use of the analytic expression to obtain ?

Return Value real(kind=rp), allocatable, (:,:)

The matrix

private module function wigner_little_d_jreal(j, euler_beta, use_analytic) result(d)

Return the Wigner d-matrix for real j

Arguments

Type IntentOptional Attributes Name
real(kind=rp), intent(in) :: j

The angular momentum

real(kind=rp), intent(in) :: euler_beta

The euler angle β

logical, intent(in), optional :: use_analytic

Force the use of the analytic expression to obtain ?

Return Value real(kind=rp), allocatable, (:,:)

The matrix