5 * Revision 1.1.1.1 1996/04/01 15:02:26 mclareni
10 SUBROUTINE SPLAN2(B2,X,X3,X4,X5,X6,ND)
11 #include "gen/imp64.inc"
14 ************************************************************************
15 * NORBAS, VERSION: 15.03.1993
16 ************************************************************************
19 * FOR COMPUTING 1-DIMENSIONAL B-SPLINES OF DEGREE K = 2
20 * BY MEANS OF ANALYTIC FORMULAE
22 ************************************************************************
26 IF(ND .LT. -1 .OR. ND .GT. 2) RETURN
27 IF(X .LT. X3 .OR. X .GT. X6) RETURN
29 IF(X3 .LT. X4 .AND. X4 .LT. X5 .AND. X5 .LT. X6) THEN
32 B2(2)=X*(-X*(X4+X5)+2*X4*X5)/(X4**2*X5)
36 ELSE IF(X4 .LE. X .AND. X .LT. X5) THEN
38 B2(2)=-(X-X5)**2/(X5*(X4-X5))
39 B2(3)=(X**2*(X4-X5-1)+2*X*X5-X4*X5)/(X5*(X4-1)*(X4-X5))
40 B2(4)=(X-X4)**2/((X4-1)*(X4-X5))
45 B2(3)=(X-1)**2/((X4-1)*(X5-1))
46 B2(4)=(X-1)*(X*(2-X4-X5)+2*X4*X5-X4-X5)/((X4-1)*(X5-1)**2)
47 B2(5)=((X-X5)/(X5-1))**2
49 ELSE IF(X3 .LT. X4 .AND. X4 .EQ. X5 .AND. X5 .LT. X6) THEN
52 B2(2)=-2*(X-X4)*X/X4**2
59 B2(3)=((X-1)/(X4-1))**2
60 B2(4)=-2*(X-X4)*(X-1)/(X4-1)**2
61 B2(5)=((X-X4)/(X4-1))**2
64 ELSE IF(ND .EQ. 1) THEN
65 IF(X3 .LT. X4 .AND. X4 .LT. X5 .AND. X5 .LT. X6) THEN
68 B2(2)=-2*(X*(X4+X5)-X4*X5)/(X4**2*X5)
72 ELSE IF(X4 .LE. X .AND. X .LT. X5) THEN
74 B2(2)=-2*(X-X5)/((X4-X5)*X5)
75 B2(3)=2*(X*(X4-X5-1)+X5)/((X4-X5)*(X4-1)*X5)
76 B2(4)=2*(X-X4)/((X4-X5)*(X4-1))
81 B2(3)=2*(X-1)/((X4-1)*(X5-1))
82 B2(4)=-2*(X*(X4+X5-2)-X4*X5+1)/((X4-1)*(X5-1)**2)
83 B2(5)=2*(X-X5)/(X5-1)**2
85 ELSE IF(X3 .LT. X4 .AND. X4 .EQ. X5 .AND. X5 .LT. X6) THEN
88 B2(2)=-2*(2*X-X4)/X4**2
95 B2(3)=2*(X-1)/(X4-1)**2
96 B2(4)=-2*((X-X4)+(X-1))/(X4-1)**2
97 B2(5)=2*(X-X4)/(X4-1)**2
100 ELSE IF(ND .EQ. 2) THEN
101 IF(X3 .LT. X4 .AND. X4 .LT. X5 .AND. X5 .LT. X6) THEN
104 B2(2)=-2*(X4+X5)/(X4**2*X5)
108 ELSE IF(X4 .LE. X .AND. X .LT. X5) THEN
110 B2(2)=-2/((X4-X5)*X5)
111 B2(3)=2*(X4-X5-1)/((X4-X5)*(X4-1)*X5)
112 B2(4)=2/((X4-X5)*(X4-1))
117 B2(3)=2/((X4-1)*(X5-1))
118 B2(4)=-2*(X4+X5-2)/((X4-1)*(X5-1)**2)
121 ELSE IF(X3 .LT. X4 .AND. X4 .EQ. X5 .AND. X5 .LT. X6) THEN
136 ELSE IF(ND .EQ. -1) THEN
137 IF(X3 .LT. X4 .AND. X4 .LT. X5 .AND. X5 .LT. X6) THEN
139 B2(1)=(X**2/3-X*X4+X4**2)*X/X4**2
140 B2(2)=-((X4+X5)*X-3*X4*X5)*X**2/(3*X4**2*X5)
144 ELSE IF(X4 .LE. X .AND. X .LT. X5) THEN
146 B2(2)=-(X**3-3*X**2*X5+3*X*X5**2-X4*X5**2)/(3*(X4-X5)*X5)
147 B2(3)=(X**3*(X4-X5-1)+3*X**2*X5-3*X*X4*X5+X4**2*X5)/
148 1 (3*(X4-X5)*(X4-1)*X5)
149 B2(4)=(X-X4)**3/(3*(X4-X5)*(X4-1))
154 B2(3)=(X**3-3*X**2+3*X+X4*X5-X4-X5)/(3*(X4-1)*(X5-1))
155 B2(4)=(X**3*(-X4-X5+2)+3*X**2*(X4*X5-1)+3*X*(-2*X4*
156 1 X5+X4+X5)-X4**2*X5**2+2*X4**2*X5-X4**2+2*X4*X5**2-
157 2 X4*X5-X5**2)/(3*(X4-1)*(X5-1)**2)
158 B2(5)=(X-X5)**3/(3*(X5-1)**2)
160 ELSE IF(X3 .LT. X4 .AND. X4 .EQ. X5 .AND. X5 .LT. X6) THEN
162 B2(1)=(X**2/3-X*X4+X4**2)*X/X4**2
163 B2(2)=-(2*X-3*X4)*X**2/(3*X4**2)
170 B2(3)=(X**3-3*X**2+3*X+X4**2-2*X4)/(3*(X4-1)**2)
171 B2(4)=-(2*X+X4-3)*(X-X4)**2/(3*(X4-1)**2)
172 B2(5)=(X-X4)**3/(3*(X4-1)**2)