subroutine colpnt(k,rho) c from * a practical guide to splines * by c. de boor c the k collocation points for the standard interval (-1,1) are sup- c plied here as the zeros of the legendre polynomial of degree k , c provided k .le. 8 . otherwise, uniformly spaced points are given. integer k, j real rho(k), fkm1o2 if (k .gt. 8) go to 99 go to (10,20,30,40,50,60,70,80),k 10 rho(1) = 0. return 20 rho(2) = .57735 02691 89626 d0 rho(1) = - rho(2) return 30 rho(3) = .77459 66692 41483 d0 rho(1) = - rho(3) rho(2) = 0. return 40 rho(3) = .33998 10435 84856 d0 rho(2) = - rho(3) rho(4) = .86113 63115 94053 d0 rho(1) = - rho(4) return 50 rho(4) = .53846 93101 05683 d0 rho(2) = - rho(4) rho(5) = .90617 98459 38664 d0 rho(1) = - rho(5) rho(3) = 0. return 60 rho(4) = .23861 91860 83197 d0 rho(3) = - rho(4) rho(5) = .66120 93864 66265 d0 rho(2) = - rho(5) rho(6) = .93246 95142 03152 d0 rho(1) = - rho(6) return 70 rho(5) = .40584 51513 77397 d0 rho(3) = - rho(5) rho(6) = .74153 11855 99394 d0 rho(2) = - rho(6) rho(7) = .94910 79123 42759 d0 rho(1) = - rho(7) rho(4) = 0. return 80 rho(5) = .18343 46424 95650 d0 rho(4) = - rho(5) rho(6) = .52553 24099 16329 d0 rho(3) = - rho(6) rho(7) = .79666 64774 13627 d0 rho(2) = - rho(7) rho(8) = .96028 98564 97536 d0 rho(1) = - rho(8) return c if k .gt. 8, use equispaced points, but print warning 99 print 699,k 699 format(11h **********/ * 49h equispaced collocation points are used since k =,i2, * 19h is greater than 8.) fkm1o2 = float(k-1)/2. do 100 j=1,k 100 rho(j) = float(j-1)/fkm1o2 - 1. return end