blob: 273e670fcee82c575ac0ca40f2f9dbb48016c706 [file] [log] [blame]
MODULE spherical_harmonics
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND ( 14, 200 )
CONTAINS
FUNCTION dlegendre (x, l, m) RESULT (dplm)
SELECT CASE ( l )
CASE ( 0 )
dplm = 0.0_dp
CASE ( 1 )
dplm = 1.0_dp
CASE DEFAULT
IF ( mm > 0 ) THEN
dpmm = -m
DO im = 1, mm
dpmm = -dpmm
END DO
IF ( l == mm + 1 ) THEN
DO il = mm + 2, l
dpll = dpmm
END DO
dplm = dpll
END IF
END IF
END SELECT
END FUNCTION dlegendre
END MODULE spherical_harmonics