DDX_LEGENDRE_DP Function

private function DDX_LEGENDRE_DP(L, X) result(DDX_LEGENDRE)

Derivative of the Legendre polynomial, via away from the poles, and the closed-form pole values at .

Returns: evaluated at X.

Arguments

Type IntentOptional Attributes Name
integer(kind=i4), intent(in) :: L

Degree, .

real(kind=dp), intent(in) :: X

Argument, .

Return Value real(kind=dp)


Calls

proc~~ddx_legendre_dp~~CallsGraph proc~ddx_legendre_dp DDX_LEGENDRE_DP interface~legendre LEGENDRE proc~ddx_legendre_dp->interface~legendre proc~legendre_dp LEGENDRE_DP interface~legendre->proc~legendre_dp

Called by

proc~~ddx_legendre_dp~~CalledByGraph proc~ddx_legendre_dp DDX_LEGENDRE_DP interface~ddx_legendre DDX_LEGENDRE interface~ddx_legendre->proc~ddx_legendre_dp

Source Code

  FUNCTION DDX_LEGENDRE_DP(L,X) RESULT(DDX_LEGENDRE)
  IMPLICIT NONE
  REAL(KIND=dp), INTENT(IN) :: X
  INTEGER(KIND=i4), INTENT(IN) :: L
  REAL(KIND=dp) :: DDX_LEGENDRE
  IF (L.EQ.0) THEN
      DDX_LEGENDRE=0.d0
  ELSEIF (L.EQ.1) THEN
      DDX_LEGENDRE=1.d0
  ELSEIF (L.GT.1 .AND. ABS(X).LT.1.d0) THEN
      DDX_LEGENDRE=L*(X*LEGENDRE(L,X)- &
      LEGENDRE(L-1,X))/(X**2-1.d0)
  ELSEIF (L.GT.1 .AND. X.EQ.1.d0) THEN
      DDX_LEGENDRE=L*(L+1)/2.d0
  ELSEIF (L.GT.1 .AND. X.EQ.-1.d0) THEN
      DDX_LEGENDRE=(L*(L+1)/2.d0)*(-1)**L
  ENDIF
  RETURN
  END FUNCTION DDX_LEGENDRE_DP