p_coeff Function

private function p_coeff(total_angular_momentum_, j_, l_, omega_) result(p_coeff_)

calculates the P coefficients from Eq. (3) in "Solution of coupled equations"

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: total_angular_momentum_

total angular momentum

integer(kind=int32), intent(in) :: j_

rotational quantum number

integer(kind=int32), intent(in) :: l_

orbital angular momentum

integer(kind=int32), intent(in) :: omega_

projection of j on the BF-Z axis

Return Value real(kind=dp)

result - P function (Eq. (3) in "Solution of coupled equations")


Calls

proc~~p_coeff~~CallsGraph proc~p_coeff p_coeff fwig3jj fwig3jj proc~p_coeff->fwig3jj

Called by

proc~~p_coeff~~CalledByGraph proc~p_coeff p_coeff proc~calculate_single_sf_element calculate_single_SF_element proc~calculate_single_sf_element->proc~p_coeff proc~calculate_sf_matrix_from_bf_matrix calculate_sf_matrix_from_bf_matrix proc~calculate_sf_matrix_from_bf_matrix->proc~calculate_single_sf_element program~scattering SCATTERING program~scattering->proc~calculate_sf_matrix_from_bf_matrix

Contents

Source Code


Variables

Type Visibility Attributes Name Initial
real(kind=dp), private :: delta_

Source Code

      function p_coeff(total_angular_momentum_,j_,l_,omega_) result(p_coeff_)
         !! calculates the P coefficients from Eq. (3) in
         !! "Solution of coupled equations" 
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: total_angular_momentum_
            !! total angular momentum
         integer(int32), intent(in) :: j_
            !! rotational quantum number
         integer(int32), intent(in) :: l_
            !! orbital angular momentum
         integer(int32), intent(in) :: omega_
            !! projection of j on the BF-Z axis
         real(dp) :: p_coeff_
            !! result - P function (Eq. (3) in "Solution of coupled equations")
         !---------------------------------------------------------------------!
         real(dp) :: delta_
         !---------------------------------------------------------------------!
         delta_ = 0.0_dp
         if (omega_ == 0) delta_ = 1.0_dp
         p_coeff_ = (-1.0_dp)**(total_angular_momentum_+omega_) * dsqrt(2.0_dp)&
            * dsqrt(real(2*l_+1, dp))                                          &
            * fwig3jj(2* j_, 2* total_angular_momentum_, 2* l_,                &
            2 * omega_, -2* omega_, 0) / dsqrt(1.0_dp + delta_)
         !---------------------------------------------------------------------!
      end function p_coeff