30 implicit real*8 (a-h,o-z)
32 parameter(nstep = 1000, acc = 1.d-15)
35 integer*4,
intent(inout) :: nb_pnt
36 real*8,
dimension(nb_pnt) :: xq, wq
37 real*8,
dimension(nb_pnt) :: dd(nb_pnt,nb_pnt)
42 n2=idint(0.5d0*nb_pnt)
50 do while (iroot .lt. n2)
54 if (dabs(a2) .le. acc)
then
59 if (aa .lt. 0.d0)
then
69 if (n_filt .ne. nb_pnt)
then
72 xq(nb_pnt-i) = -xq(i+1)
76 xq(nb_pnt-i) = -xq(i+1)
82 acost = 2.d0/(xn*(xn+1.d0))
92 den = p2 * (xq(i)-xq(j))
103 dd(1,1) = -0.25d0 * xn * (xn+1.d0)
104 dd(nb_pnt,nb_pnt) = 0.25d0 * xn * (xn+1.d0)
subroutine get_legendre_value(p2, p2der, p1, p1der, n, x)
Computes Legendre polynomial and its derivative on a given point x.
subroutine make_lgl_nw(nb_pnt, xq, wq, dd)
Makes Gauss-Legendre-Lobatto nodes, weigths and spectral derivatives.