Initial commit
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
FUNCTION plgndr(l,m,x)
|
||||
INTEGER l,m
|
||||
REAL plgndr,x
|
||||
INTEGER i,ll
|
||||
REAL fact,pll,pmm,pmmp1,somx2
|
||||
if(m.lt.0.or.m.gt.l.or.abs(x).gt.1.)pause
|
||||
*'bad arguments in plgndr'
|
||||
pmm=1.
|
||||
if(m.gt.0) then
|
||||
somx2=sqrt((1.-x)*(1.+x))
|
||||
fact=1.
|
||||
do 11 i=1,m
|
||||
pmm=-pmm*fact*somx2
|
||||
fact=fact+2.
|
||||
11 continue
|
||||
endif
|
||||
if(l.eq.m) then
|
||||
plgndr=pmm
|
||||
else
|
||||
pmmp1=x*(2*m+1)*pmm
|
||||
if(l.eq.m+1) then
|
||||
plgndr=pmmp1
|
||||
else
|
||||
do 12 ll=m+2,l
|
||||
pll=(x*(2*ll-1)*pmmp1-(ll+m-1)*pmm)/(ll-m)
|
||||
pmm=pmmp1
|
||||
pmmp1=pll
|
||||
12 continue
|
||||
plgndr=pll
|
||||
endif
|
||||
endif
|
||||
return
|
||||
END
|
||||
Reference in New Issue
Block a user