ldep Function

public function ldep(l, order)

Function that calculates the higher order terms, in the self-force expansion over .

Arguments

Type IntentOptional AttributesName
integer(kind=ip), intent(in) :: l

The -value.

integer(kind=ip), intent(in) :: order

The order of the higher order term, .

Return Value real(kind=wp)

The return value is .


Called by

proc~~ldep~~CalledByGraph proc~ldep ldep proc~correct_for_higher_modes correct_for_higher_modes proc~correct_for_higher_modes->proc~ldep proc~sf_extract sf_extract proc~sf_extract->proc~correct_for_higher_modes interface~sf_extract sf_extract interface~sf_extract->proc~sf_extract

Contents

Source Code


Source Code

  function ldep ( l, order )
  !! Function that calculates the higher order terms, \(c_n(\ell)\) in the
  !! self-force expansion over \(\ell\).

    integer(ip), intent(in) :: l
    !! The \(\ell\)-value.
    integer(ip), intent(in) :: order
    !! The order of the higher order term, \(n\).
    real(wp) :: ldep
    !! The return value is \[c_n(\ell)=\begin{cases}
    !!   \frac{1}{(2\ell-1)(2\ell+3)}, & n=2 \\
    !!   \frac{1}{(2\ell-3)(2\ell-1)(2\ell+3)(2\ell+5)}, & n=3 \\
    !!   \frac{1}{(2\ell-5)(2\ell-3)(2\ell-1)(2\ell+3)(2\ell+5)(2\ell+7)}, & n=4
    !! \end{cases} \].

    real(wp) :: lm

    lm = real(l,wp)
    select case (order)
    case (2)
      ldep = 1.0_wp/((2*lm-1)*(2*lm+3))
    case (4)
      ldep = 1.0_wp/((2*lm-3)*(2*lm-1)*(2*lm+3)*(2*lm+5))
    case (6)
      ldep = 1.0_wp/((2*lm-5)*(2*lm-3)*(2*lm-1)*(2*lm+3)*(2*lm+5)*(2*lm+7))
    case default
      stop "error: ldep called with unsupported order"
    end select
  end function ldep