97 USE yomhook
,ONLY : lhook, dr_hook
98 USE parkind1
,ONLY : jprb
104 INTEGER,
INTENT(IN) :: kn
108 REAL,
INTENT(IN) :: px1, px2
112 REAL,
DIMENSION(KN),
INTENT(OUT) :: px, pw
119 REAL,
PARAMETER :: ppeps = 3.0e-14
126 REAL zxm, zxl, zz, zp1, zp2, zp3, zpp, zz1
128 REAL(KIND=JPRB) :: zhook_handle
135 IF (lhook) CALL dr_hook(
'GAULEG',0,zhook_handle)
141 im_point_loop:
DO ji = 1,im
142 zz = cos(xpi*(float(ji)-.250)/(float(kn)+.50))
146 iteration_loop:
DO jk = 1,100
152 zp1 = ((2.*(jj)-1.)*zz*zp2-(float(jj)-1.)*zp3)/jj
154 zpp = float(kn)*(zz*zp1-zp2)/(zz*zz-1.)
157 IF(abs(zz-zz1).LE.ppeps)
EXIT
158 END DO iteration_loop
164 px(ji) = zxm - zxl*zz
165 px(kn+1-ji) = zxm + zxl*zz
169 pw(ji) = 2.0*zxl/((1.0-zz*zz)*zpp*zpp)
173 IF (lhook) CALL dr_hook(
'GAULEG',1,zhook_handle)