Derivative of the Legendre polynomial, via away from the poles, and the closed-form pole values at .
Returns: evaluated at X.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=i4), | intent(in) | :: | L |
Degree, . |
||
| real(kind=dp), | intent(in) | :: | X |
Argument, . |
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