************************************ * Legendre 多項式計算サブルーチン * ************************************ * 使い方 * n=次数(0次から指定可能) * nmax=空間格子点数 * p=p(0:n,nmax) の2次元配列 ************************************ subroutine LEGENDRE(n, nmax, x, p) real p(0:n,nmax), x(nmax) *-- 初項の設定 --- do 10 i=1,nmax p(0,i)=1.0 10 continue if(n.eq.0)then go to 100 end if do 20 i=1,nmax p(1,i)=x(i) 20 continue if(n.eq.1)then go to 100 end if *-- 漸化式の計算 --- do 30 j=1,n-1 do 40 i=1,nmax p(j+1,i)=(1.0/real(j+1))*(p(j,i)*(2.0*j+1)*(p(1,i)) & -real(j)*p(j-1,i)) 40 continue 30 continue 100 return end