calculate_pw01_epsilon Subroutine

private elemental subroutine calculate_pw01_epsilon(pw02_k, comp_k, sqrt_comp_k, pw01_eps)

calculate the auxiliary parameter for the given elliptic modulus

Arguments

Type IntentOptional Attributes Name
real(kind=real128), intent(in) :: pw02_k

real(kind=real128), intent(in) :: comp_k

real(kind=real128), intent(out) :: sqrt_comp_k

real(kind=real128), intent(out) :: pw01_eps

auxiliary parameter


Called by

proc~~calculate_pw01_epsilon~2~~CalledByGraph proc~calculate_pw01_epsilon~2 calculate_pw01_epsilon proc~calculate_pw04_epsilon~2 calculate_pw04_epsilon proc~calculate_pw04_epsilon~2->proc~calculate_pw01_epsilon~2 proc~elliptic_nome_01_real128 elliptic_nome_01_real128 proc~elliptic_nome_01_real128->proc~calculate_pw01_epsilon~2 interface~elliptic_nome_01 elliptic_nome_01 interface~elliptic_nome_01->proc~elliptic_nome_01_real128 proc~elliptic_nome_05_real128 elliptic_nome_05_real128 proc~elliptic_nome_05_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_09_real128 elliptic_nome_09_real128 proc~elliptic_nome_09_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_13_real128 elliptic_nome_13_real128 proc~elliptic_nome_13_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_17_real128 elliptic_nome_17_real128 proc~elliptic_nome_17_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_21_real128 elliptic_nome_21_real128 proc~elliptic_nome_21_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_25_real128 elliptic_nome_25_real128 proc~elliptic_nome_25_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_29_real128 elliptic_nome_29_real128 proc~elliptic_nome_29_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_33_real128 elliptic_nome_33_real128 proc~elliptic_nome_33_real128->proc~calculate_pw04_epsilon~2 proc~elliptic_nome_auto_real128 elliptic_nome_auto_real128 proc~elliptic_nome_auto_real128->proc~calculate_pw04_epsilon~2 interface~elliptic_nome_05 elliptic_nome_05 interface~elliptic_nome_05->proc~elliptic_nome_05_real128 interface~elliptic_nome_09 elliptic_nome_09 interface~elliptic_nome_09->proc~elliptic_nome_09_real128 interface~elliptic_nome_13 elliptic_nome_13 interface~elliptic_nome_13->proc~elliptic_nome_13_real128 interface~elliptic_nome_17 elliptic_nome_17 interface~elliptic_nome_17->proc~elliptic_nome_17_real128 interface~elliptic_nome_21 elliptic_nome_21 interface~elliptic_nome_21->proc~elliptic_nome_21_real128 interface~elliptic_nome_25 elliptic_nome_25 interface~elliptic_nome_25->proc~elliptic_nome_25_real128 interface~elliptic_nome_29 elliptic_nome_29 interface~elliptic_nome_29->proc~elliptic_nome_29_real128 interface~elliptic_nome_33 elliptic_nome_33 interface~elliptic_nome_33->proc~elliptic_nome_33_real128 interface~elliptic_nome_auto elliptic_nome_auto interface~elliptic_nome_auto->proc~elliptic_nome_auto_real128

Variables

Type Visibility Attributes Name Initial
real(kind=real128), private :: pls1_comp_k


Source Code

    elemental subroutine calculate_pw01_epsilon(pw02_k, comp_k, sqrt_comp_k, pw01_eps)
        !! calculate the auxiliary parameter \( \varepsilon \)
        !! for the given elliptic modulus \( k \)

        real(real128), intent(in) :: pw02_k !! \( { k }^{ 2 } \)

        real(real128), intent(in) :: comp_k !! \( { k }^{ \prime } \)

        real(real128), intent(out) :: sqrt_comp_k !! \( \sqrt{ { k }^{ \prime } } \)

        real(real128), intent(out) :: pw01_eps !! auxiliary parameter \( \varepsilon \)



        real(real128) :: pls1_comp_k !! \( 1 + { k }^{ \prime } \)



        pls1_comp_k =      comp_k  + 1.0_real128
        sqrt_comp_k = sqrt(comp_k)

        pw01_eps = 0.5_real128 * pw02_k &!
        &        / ( pls1_comp_k * ( pls1_comp_k + sqrt_comp_k + sqrt_comp_k ) )

    end subroutine calculate_pw01_epsilon