5 &( w_leg , x_leg , npoin )
38 INTEGER ,
INTENT(IN) :: NPOIN
39 DOUBLE PRECISION ,
INTENT(INOUT) :: W_LEG(npoin) , X_LEG(npoin)
44 DOUBLE PRECISION Z , P1 , P2 , P3 , PP , Z1
45 DOUBLE PRECISION,
PARAMETER :: EPS = 3.d-14
49 z=cos(
pi*(dble(i)-0.25d0)/(dble(npoin)+0.5d0))
56 p1=((2.d0*dble(j)-1.d0)*z*p2-(dble(j)-1.d0)*p3)/dble(j)
58 pp=dble(npoin)*(z*p1-p2)/(z*z-1.d0)
61 IF (abs(z-z1).GT.eps)
GOTO 1
64 w_leg(i)=2.d0/((1.d0-z**2)*pp**2)
65 w_leg(npoin+1-i)=w_leg(i)
subroutine gauleg(W_LEG, X_LEG, NPOIN)