5 * Revision 1.1.1.1 1996/04/01 15:02:26 mclareni
10 SUBROUTINE SPLAN3(B3,X,X4,X5,X6,X7,X8,ND)
11 #include "gen/imp64.inc"
14 ************************************************************************
15 * NORBAS, VERSION: 15.03.1993
16 ************************************************************************
19 * FOR COMPUTING 1-DIMENSIONAL B-SPLINES OF DEGREE K = 3
20 * BY MEANS OF ANALYTIC FORMULAE
22 ************************************************************************
26 IF(ND .LT. -1 .OR. ND .GT. 3) RETURN
27 IF(X .LT. X4 .OR. X .GT. X8) RETURN
29 IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .LT. X7
30 1 .AND. X7 .LT. X8) THEN
33 B3(2)=(X*(((X-X6)*X5+(X-X5)*X6)*(X-X6)*X5+(X-X5)**2*X6**2))/
35 B3(3)=(-X**2*(X*X7*X6+X*X7*X5+X*X6*X5-3*X7*X6*X5))/
41 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
43 B3(2)=(X6-X)**3/(X6**2*(X6-X5))
44 B3(3)=(X*(X-X6)**2*(X7-X5)*X7+((X-X7)*(X-X5)*X6+(X-X6)*
45 1 (X7-X5)*X)*(X-X7)*X6)/((X7-X5)*(X6-X5)*X7*X6**2)
46 B3(4)=(-(((X-X7)*(X5-1)*X-(X-X5)*(X-1)*X7)*(X-X5)*X6+
47 1 (X-X6)*(X7-X5)*(X5-1)*X**2))/((X7-X5)*(X6-X5)*(X5-1)*X7*X6)
48 B3(5)=(X5-X)**3/((X7-X5)*(X6-X5)*(X5-1))
51 ELSE IF(X6 .LE. X .AND. X .LT. X7) THEN
54 B3(3)=(X7-X)**3/(X7*(X7-X6)*(X7-X5))
55 B3(4)=(((X-X7)*(X5-1)*X-(X-X5)*(X-1)*X7)*(X-X7)*(X6-1)+
56 1 (X-X6)*(X-1)**2*(X7-X5)*X7)/
57 2 ((X7-X6)*(X7-X5)*(X6-1)*(X5-1)*X7)
58 B3(5)=(((X-X7)*(X-X5)*(X6-1)-(X-X6)*(X-1)*(X7-X5))*(X-X5)
59 1 *(X6-1)-(X-X6)**2*(X-1)*(X7-X5)*(X5-1))/
60 2 ((X7-X6)*(X7-X5)*(X6-1)**2*(X5-1))
61 B3(6)=(X-X6)**3/((X7-X6)*(X6-1)**2)
67 B3(4)=(X-1)**3/((X7-1)*(X6-1)*(X5-1))
68 B3(5)=(-(((X-X6)*(X5-1)+(X-X5)*(X6-1))*(X7-1)+(X-X7)*
69 1 (X6-1)*(X5-1))*(X-1)**2)/((X7-1)**2*(X6-1)**2*(X5-1))
70 B3(6)=((((X-X7)*(X6-1)+(X-X6)*(X7-1))*(X-X6)*(X7-1)+
71 1 (X-X7)**2*(X6-1)**2)*(X-1))/((X7-1)**3*(X6-1)**2)
72 B3(7)=((X7-X)/(X7-1))**3
74 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .LT. X7
75 1 .AND. X7 .LT. X8) THEN
78 B3(2)=(3*X*(X-X5)**2)/X5**3
79 B3(3)=(-X**2*((X-X7)*X5+2*(X-X5)*X7))/(X7*X5**3)
84 ELSE IF(X5 .LE. X .AND. X .LT. X7) THEN
87 B3(3)=(X7-X)**3/(X7*(X7-X5)**2)
88 B3(4)=(((X-X7)*(X5-1)*X-(X-X5)*(X-1)*X7)*(X-X7)*(X5-1)+
89 1 (X-X5)*(X-1)**2*(X7-X5)*X7)/((X7-X5)**2*(X5-1)**2*X7)
90 B3(5)=(((X-X7)*(X5-1)-2*(X-1)*(X7-X5))*(X-X5)**2)/
92 B3(6)=(X-X5)**3/((X7-X5)*(X5-1)**2)
98 B3(4)=(X-1)**3/((X7-1)*(X5-1)**2)
99 B3(5)=(-((X-X7)*(X5-1)+2*(X-X5)*(X7-1))*(X-1)**2)/
101 B3(6)=((((X-X7)*(X5-1)+(X-X5)*(X7-1))*(X-X5)*(X7-1)+
102 1 (X-X7)**2*(X5-1)**2)*(X-1))/((X7-1)**3*(X5-1)**2)
103 B3(7)=((X7-X)/(X7-1))**3
105 ELSE IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .EQ. X7
106 1 .AND. X7 .LT. X8) THEN
109 B3(2)=(X*(((X-X6)*X5+(X-X5)*X6)*(X-X6)*X5+(X-X5)**2*X6**2))/
111 B3(3)=(-X**2*(2*(X-X6)*X5+(X-X5)*X6))/(X6*X5)**2
112 B3(4)=X**3/(X6**2*X5)
116 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
118 B3(2)=(X6-X)**3/(X6**2*(X6-X5))
119 B3(3)=(((X-X5)*X6+2*(X6-X5)*X)*(X-X6)**2)/((X6-X5)*X6)**2
120 B3(4)=(-(((X-X6)*(X5-1)*X-(X-X5)*(X-1)*X6)*(X-X5)*X6+
121 1 (X-X6)*(X6-X5)*(X5-1)*X**2))/((X6-X5)**2*(X5-1)*X6**2)
122 B3(5)=(X5-X)**3/((X6-X5)**2*(X5-1))
129 B3(4)=(X-1)**3/((X6-1)**2*(X5-1))
130 B3(5)=(-(2*(X-X6)*(X5-1)+(X-X5)*(X6-1))*(X-1)**2)/
132 B3(6)=3*(X-1)*(X6-X)**2/(X6-1)**3
133 B3(7)=((X6-X)/(X6-1))**3
135 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .EQ. X7
136 1 .AND. X7 .LT. X8) THEN
139 B3(2)=3*X*(X5-X)**2/X5**3
140 B3(3)=3*X**2*(X5-X)/X5**3
149 B3(4)=((X-1)/(X5-1))**3
150 B3(5)=3*(X-1)**2*(X5-X)/(X5-1)**3
151 B3(6)=3*(X-1)*(X5-X)**2/(X5-1)**3
152 B3(7)=((X5-X)/(X5-1))**3
155 ELSE IF(ND .EQ. 1) THEN
156 IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .LT. X7
157 1 .AND. X7 .LT. X8) THEN
159 B3(1)=-3*(X-X5)**2/X5**3
160 B3(2)=3*(X**2*(X6**2+X6*X5+X5**2)-2*X*(X6**2*X5+X6*X5**2)
161 . +X6**2*X5**2)/(X6**2*X5**3)
162 B3(3)=-3*(X*(X7*X6+X7*X5+X6*X5)-2*X7*X6*X5)*X/(X7*X6**2*X5**2)
163 B3(4)=3*X**2/(X7*X6*X5)
167 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
169 B3(2)=-3*(X-X6)**2/((X6-X5)*X6**2)
170 B3(3)=3*(X**2*(X7**2+X7*X6-X7*X5+X6**2-X6*X5)+
171 . 2*X*(-X7**2*X6-X7*X6**2+X7*X6*X5)+X7**2*X6**2)/
172 . ((X7-X5)*(X6-X5)*X7*X6**2)
173 B3(4)=3*(X**2*(X7*X6-X7*X5+X7-X6*X5+X6+X5**2-X5)
174 . -2*X*X7*X6+X7*X6*X5)/((X7-X5)*(X6-X5)*(X5-1)*X7*X6)
175 B3(5)=-3*(X-X5)**2/((X7-X5)*(X6-X5)*(X5-1))
178 ELSE IF(X6 .LE. X .AND. X .LT. X7) THEN
181 B3(3)=-3*(X-X7)**2/((X7-X6)*(X7-X5)*X7)
182 B3(4)=3*(X**2*(X7**2-X7*X6-X7*X5+X7+X6*X5-X6-X5+1)+
183 . 2*X*(-X7**2+X7*X6+X7*X5-X7)+X7**2-X7*X6*X5)/
184 . ((X7-X6)*(X7-X5)*(X6-1)*(X5-1)*X7)
185 B3(5)=(((X-X7)*(X-X5)*(X6-1)-(X-X6)*(X-1)*(X7-X5))*
186 . (X6-1)-2*(X*X7-X*X6-X*X5+X-X7+X6*X5)*(X-X5)*(X6-1)-
187 . (X-X6)**2*(X7-X5)*(X5-1)-2*(X-X6)*(X-1)*(X7-X5)*(X5-1))/
188 . ((X7-X6)*(X7-X5)*(X6-1)**2*(X5-1))
189 B3(6)=3*(X-X6)**2/((X7-X6)*(X6-1)**2)
195 B3(4)=3*(X-1)**2/((X7-1)*(X6-1)*(X5-1))
196 B3(5)=-3*(X*(X7*X6+X7*X5-2*X7+X6*X5-2*X6-2*X5+3)
197 . -2*X7*X6*X5+X7*X6+X7*X5+X6*X5-1)*(X-1)/
198 . ((X7-1)**2*(X6-1)**2*(X5-1))
199 B3(6)=3*(X**2*(X7**2+X7*X6-3*X7+X6**2-3*X6+3)+
200 . X*(-2*X7**2*X6-2*X7*X6**2+6*X7*X6-2)
201 . +X7**2*X6**2-3*X7*X6+X7+X6)/((X7-1)**3*(X6-1)**2)
202 B3(7)=-3*(X-X7)**2/(X7-1)**3
204 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .LT. X7
205 1 .AND. X7 .LT. X8) THEN
207 B3(1)=-3*(X-X5)**2/X5**3
208 B3(2)=3*(3*X-X5)*(X-X5)/X5**3
209 B3(3)=(3*X**2*(-2*X7-X5)+6*X*X7*X5)/(X7*X5**3)
210 B3(4)=3*X**2/(X7*X5**2)
214 ELSE IF(X5 .LE. X .AND. X .LT. X7) THEN
217 B3(3)=-3*(X-X7)**2/((X7-X5)**2*X7)
218 B3(4)=3*(X**2*(X7**2-2*X7*X5+X7+X5**2-2*X5+1)+
219 . X*(-2*X7**2+4*X7*X5-2*X7)+X7**2-X7*X5**2)/
220 . ((X7-X5)**2*(X5-1)**2*X7)
221 B3(5)=-3*(X*(2*X7-3*X5+1)-2*X7+X5**2+X5)*(X-X5)/
222 . ((X7-X5)**2*(X5-1)**2)
223 B3(6)=3*(X-X5)**2/((X7-X5)*(X5-1)**2)
229 B3(4)=3*(X-1)**2/((X7-1)*(X5-1)**2)
230 B3(5)=-3*(X*(2*X7+X5-3)-2*X7*X5+X5+1)*(X-1)/
231 . ((X7-1)**2*(X5-1)**2)
232 B3(6)=3*(X**2*(X7**2+X7*X5-3*X7+X5**2-3*X5+3)+
233 . X*(-2*X7**2*X5-2*X7*X5**2+6*X7*X5-2)
234 . +X7**2*X5**2-3*X7*X5+X7+X5)/((X7-1)**3*(X5-1)**2)
235 B3(7)=-3*(X-X7)**2/(X7-1)**3
237 ELSE IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .EQ. X7
238 1 .AND. X7 .LT. X8) THEN
240 B3(1)=-3*(X-X5)**2/X5**3
241 B3(2)=(3*X**2*(X6**2+X6*X5+X5**2)-(6*X*X6*X5)*(X6+X5)+3
242 . *X6**2*X5**2)/(X6**2*X5**3)
243 B3(3)=(3*X**2*(-X6-2*X5)+6*X*X6*X5)/(X6**2*X5**2)
244 B3(4)=3*X**2/(X6**2*X5)
248 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
250 B3(2)=-3*(X-X6)**2/((X6-X5)*X6**2)
251 B3(3)=3*(X*(3*X6-2*X5)-X6**2)*(X-X6)/((X6-X5)**2*X6**2)
252 B3(4)=3*(X**2*(X6**2-2*X6*X5+2*X6+X5**2-X5)
253 . -2*X*X6**2+X6**2*X5)/((X6-X5)**2*(X5-1)*X6**2)
254 B3(5)=-3*(X-X5)**2/((X6-X5)**2*(X5-1))
261 B3(4)=3*(X-1)**2/((X6-1)**2*(X5-1))
262 B3(5)=-3*(X*(X6+2*X5-3)-2*X6*X5+X6+1)*(X-1)/
264 B3(6)=3*(3*X-X6-2)*(X-X6)/(X6-1)**3
265 B3(7)=-3*(X-X6)**2/(X6-1)**3
267 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .EQ. X7
268 1 .AND. X7 .LT. X8) THEN
270 B3(1)=-3*(X-X5)**2/X5**3
271 B3(2)=3*(3*X-X5)*(X-X5)/X5**3
272 B3(3)=-3*(2*(X-X5)+X)*X/X5**3
281 B3(4)=3*(X-1)**2/(X5-1)**3
282 B3(5)=-3*(2*(X-X5)+(X-1))*(X-1)/(X5-1)**3
283 B3(6)=3*(3*X-X5-2)*(X-X5)/(X5-1)**3
284 B3(7)=-3*(X-X5)**2/(X5-1)**3
287 ELSE IF(ND .EQ. 2) THEN
288 IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .LT. X7
289 1 .AND. X7 .LT. X8) THEN
291 B3(1)=6*(-X+X5)/X5**3
292 B3(2)=(6*X*(X6**2+X6*X5+X5**2)-(6*X6*X5)*(X6+X5))/(X6**2*X5**3)
293 B3(3)=(-6*X*(X7*X6+X7*X5+X6*X5)+6*X7*X6*X5)/(X7*X6**2*X5**2)
298 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
300 B3(2)=-6*(X-X6)/((X6-X5)*X6**2)
301 B3(3)=6*(((X6-X5)*X7+X7**2+X6**2-X6*X5)*X-(X6-X5)*X7*
302 . X6-X7**2*X6)/((X7-X5)*(X6-X5)*X7*X6**2)
303 B3(4)=6*(((X6-X5+1)*X7-(X5-1)*X6+X5**2-X5)*X-X7*X6)/
304 . ((X7-X5)*(X6-X5)*(X5-1)*X7*X6)
305 B3(5)=-6*(X-X5)/((X7-X5)*(X6-X5)*(X5-1))
308 ELSE IF(X6 .LE. X .AND. X .LT. X7) THEN
311 B3(3)=-6*(X-X7)/((X7-X6)*(X7-X5)*X7)
312 B3(4)=-6*(((X6+X5-1)*X7-(X5-1)*X6-X7**2+X5-1)*X-
313 . (X6+X5-1)*X7+X7**2)/((X7-X6)*(X7-X5)*(X6-1)*(X5-1)*X7)
314 B3(5)=-6*(X*(X7*X6+X7*X5-2*X7-X6**2-X6*X5+2*X6-X5**2+2*X5-1)
315 . -X7*X6*X5+X7+X6**2*X5+X6*X5**2-2*X6*X5)/
316 . ((X7-X6)*(X7-X5)*(X6-1)**2*(X5-1))
317 B3(6)=6*(X-X6)/((X7-X6)*(X6-1)**2)
323 B3(4)=6*(X-1)/((X7-1)*(X6-1)*(X5-1))
324 B3(5)=-6*(X*(X7*X6+X7*X5-2*X7+X6*X5-2*X6-2*X5+3)
325 . -X7*X6*X5+X7+X6+X5-2)/((X7-1)**2*(X6-1)**2*(X5-1))
326 B3(6)=6*(((X6-3)*X7+X7**2+X6**2-3*X6+3)*X-(X6-3)*
327 . X7*X6-X7**2*X6-1)/((X7-1)**3*(X6-1)**2)
328 B3(7)=-6*(X-X7)/(X7-1)**3
330 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .LT. X7
331 1 .AND. X7 .LT. X8) THEN
333 B3(1)=6*(-X+X5)/X5**3
334 B3(2)=(18*X-12*X5)/X5**3
335 B3(3)=(6*X*(-2*X7-X5)+6*X7*X5)/(X7*X5**3)
340 ELSE IF(X5 .LE. X .AND. X .LT. X7) THEN
343 B3(3)=-6*(X-X7)/((X7-X5)**2*X7)
344 B3(4)=-6*(((2*X5-1)*X7-X7**2-X5**2+2*X5-1)*X-
345 . (2*X5-1)*X7+X7**2)/((X7-X5)**2*(X5-1)**2*X7)
346 B3(5)=-6*(X*(2*X7-3*X5+1)-X7*X5-X7+2*X5**2)/
347 . ((X7-X5)**2*(X5-1)**2)
348 B3(6)=6*(X-X5)/((X7-X5)*(X5-1)**2)
354 B3(4)=6*(X-1)/((X7-1)*(X5-1)**2)
355 B3(5)=-6*(X*(2*X7+X5-3)-X7*X5-X7+2)/((X7-1)**2*(X5-1)**2)
356 B3(6)=6*(((X5-3)*X7+X7**2+X5**2-3*X5+3)*X-(X5-3)*
357 . X7*X5-X7**2*X5-1)/((X7-1)**3*(X5-1)**2)
358 B3(7)=-6*(X-X7)/(X7-1)**3
360 ELSE IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .EQ. X7
361 1 .AND. X7 .LT. X8) THEN
363 B3(1)=6*(-X+X5)/X5**3
364 B3(2)=(6*X*(X6**2+X6*X5+X5**2)-(6*X6*X5)*(X6+X5))/(X6**2*X5**3)
365 B3(3)=(6*X*(-X6-2*X5)+6*X6*X5)/(X6**2*X5**2)
370 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
372 B3(2)=-6*(X-X6)/((X6-X5)*X6**2)
373 B3(3)=6*(3*X*X6-2*X*X5-2*X6**2+X6*X5)/((X6-X5)**2*X6**2)
374 B3(4)=-6*((2*(X5-1)*X6-X6**2-X5**2+X5)*X+X6**2)/
375 . ((X6-X5)**2*(X5-1)*X6**2)
376 B3(5)=-6*(X-X5)/((X6-X5)**2*(X5-1))
383 B3(4)=6*(X-1)/((X6-1)**2*(X5-1))
384 B3(5)=-6*(X*(X6+2*X5-3)-X6*X5-X5+2)/((X6-1)**3*(X5-1))
385 B3(6)=6*(3*X-2*X6-1)/(X6-1)**3
386 B3(7)=-6*(X-X6)/(X6-1)**3
388 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .EQ. X7
389 1 .AND. X7 .LT. X8) THEN
391 B3(1)=6*(-X+X5)/X5**3
392 B3(2)=(18*X-12*X5)/X5**3
393 B3(3)=(-18*X+6*X5)/X5**3
402 B3(4)=6*(X-1)/(X5-1)**3
403 B3(5)=-6*(3*X-X5-2)/(X5-1)**3
404 B3(6)=6*(3*X-2*X5-1)/(X5-1)**3
405 B3(7)=-6*(X-X5)/(X5-1)**3
408 ELSE IF(ND .EQ. 3) THEN
409 IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .LT. X7
410 1 .AND. X7 .LT. X8) THEN
413 B3(2)=6*(X6**2+X6*X5+X5**2)/(X6**2*X5**3)
414 B3(3)=-6*(X7*X6+X7*X5+X6*X5)/(X7*X6**2*X5**2)
419 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
421 B3(2)=-6/(X6**2*(X6-X5))
422 B3(3)=6*((X6-X5)*X7+X7**2+X6**2-X6*X5)/
423 . ((X7-X5)*(X6-X5)*X7*X6**2)
424 B3(4)=6*((X6-X5+1)*X7-(X5-1)*X6+X5**2-X5)/
425 . ((X7-X5)*(X6-X5)*(X5-1)*X7*X6)
426 B3(5)=-6/((X7-X5)*(X6-X5)*(X5-1))
429 ELSE IF(X6 .LE. X .AND. X .LT. X7) THEN
432 B3(3)=-6/((X7-X6)*(X7-X5)*X7)
433 B3(4)=-6*((X6+X5-1)*X7-(X5-1)*X6-X7**2+X5-1)/
434 . ((X7-X6)*(X7-X5)*(X6-1)*(X5-1)*X7)
435 B3(5)=-6*((X6+X5-2)*X7-(X5-2)*X6-X6**2-X5**2+2*X5-1)/
436 . ((X7-X6)*(X7-X5)*(X6-1)**2*(X5-1))
437 B3(6)=6/((X7-X6)*(X6-1)**2)
443 B3(4)=6/((X7-1)*(X6-1)*(X5-1))
444 B3(5)=-6*((X6+X5-2)*X7+(X5-2)*X6-2*X5+3)/
445 . ((X7-1)**2*(X6-1)**2*(X5-1))
446 B3(6)=6*((X6-3)*X7+X7**2+X6**2-3*X6+3)/((X7-1)**3*(X6-1)**2)
449 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .LT. X7
450 1 .AND. X7 .LT. X8) THEN
454 B3(3)=6*(-2*X7-X5)/(X7*X5**3)
459 ELSE IF(X5 .LE. X .AND. X .LT. X7) THEN
462 B3(3)=-6/((X7-X5)**2*X7)
463 B3(4)=-6*((2*X5-1)*X7-X7**2-X5**2+2*X5-1)/
464 . ((X7-X5)**2*(X5-1)**2*X7)
465 B3(5)=-6*(2*X7-3*X5+1)/((X7-X5)**2*(X5-1)**2)
466 B3(6)=6/((X7-X5)*(X5-1)**2)
472 B3(4)=6/((X7-1)*(X5-1)**2)
473 B3(5)=-6*(2*X7+X5-3)/((X7-1)**2*(X5-1)**2)
474 B3(6)=6*((X5-3)*X7+X7**2+X5**2-3*X5+3)/((X7-1)**3*(X5-1)**2)
477 ELSE IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .EQ. X7
478 1 .AND. X7 .LT. X8) THEN
481 B3(2)=6*(X6**2+X6*X5+X5**2)/(X6**2*X5**3)
482 B3(3)=6*(-X6-2*X5)/(X6**2*X5**2)
487 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
489 B3(2)=-6/(X6**2*(X6-X5))
490 B3(3)=6*(3*X6-2*X5)/((X6-X5)**2*X6**2)
491 B3(4)=-6*(2*(X5-1)*X6-X6**2-X5**2+X5)/((X6-X5)**2*(X5-1)*X6**2)
492 B3(5)=-6/((X6-X5)**2*(X5-1))
499 B3(4)=6/((X6-1)**2*(X5-1))
500 B3(5)=-6*(X6+2*X5-3)/((X6-1)**3*(X5-1))
504 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .EQ. X7
505 1 .AND. X7 .LT. X8) THEN
524 ELSE IF(ND .EQ. -1) THEN
525 IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .LT. X7
526 1 .AND. X7 .LT. X8) THEN
528 B3(1)=-(X**2-2*X*X5+2*X5**2)*(X-2*X5)*X/(4*X5**3)
529 B3(2)=((X6**2+X6*X5+X5**2)*X**2-4*(X6+X5)*X*X6*X5+
530 . 6*X6**2*X5**2)*X**2/(4*X6**2*X5**3)
531 B3(3)=-(((X6+X5)*X7+X6*X5)*X-4*X7*X6*X5)*X**3/
533 B3(4)=X**4/(4*X7*X6*X5)
537 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
539 B3(2)=-(X**4-4*X**3*X6+6*X**2*X6**2-4*X*X6**3+X6**3*X5)/
541 B3(3)=(X**4*(X7**2+X7*X6-X7*X5+X6**2-X6*X5)+
542 . X**3*(-4*X7**2*X6-4*X7*X6**2+4*X7*X6*X5)+
543 . 6*X**2**X7**2*X6**2-4*X*X7**2*X6**2*X5+X7**2*X6**2*X5**2)/
544 . (4*(X7-X5)*(X6-X5)*X7*X6**2)
545 B3(4)=(X**4*(X7*X6-X7*X5+X7-X6*X5+X6+X5**2-X5)
546 . -4*X**3*X7*X6+6*X**2*X7*X6*X5-4*X*X7*X6*X5**2+X7*X6*X5**3)/
547 . (4*(X7-X5)*(X6-X5)*(X5-1)*X7*X6)
548 B3(5)=-(X-X5)**4/(4*(X7-X5)*(X6-X5)*(X5-1))
551 ELSE IF(X6 .LE. X .AND. X .LT. X7) THEN
554 B3(3)=-(X**4-4*X**3*X7+6*X**2*X7**2-4*X*X7**3+X7**3*X6
555 . +X7**3*X5-X7**2*X6*X5)/(4*(X7-X6)*(X7-X5)*X7)
556 B3(4)=(X**4*(X7**2-X7*X6-X7*X5+X7+X6*X5-X6-X5+1)+
557 . X**3*(-4*X7**2+4*X7*X6+4*X7*X5-4*X7)+
558 . X**2*(6*X7**2-6*X7*X6*X5)+
559 . X*(4*X7**2*X6*X5-4*X7**2*X6-4*X7**2*X5+4*X7*X6*X5)+
560 . X7**2*(-X6**2*X5+X6**2-X6*X5**2+X6*X5+X5**2)+
561 . X7*(X6**2*X5**2-X6**2*X5-X6*X5**2))/
562 . (4*(X7-X6)*(X7-X5)*(X6-1)*(X5-1)*X7)
563 B3(5)=(-(X**4*(X7*X6+X7*X5-2*X7-X6**2-X6*X5
564 . +2*X6-X5**2+2*X5-1)+
565 . X**3*(-4*X7*X6*X5+4*X7+4*X6**2*X5+4*X6*X5**2-8*X6*X5)+
566 . X**2*(12*X7*X6*X5-6*X7*X6-6*X7*X5-6*X6**2*X5**2+6*X6*X5)+
567 . X*(4*X7*X6**2*X5**2-
568 . 8*X7*X6**2*X5+4*X7*X6**2-8*X7*X6*X5**2+4*X7*X6*X5+
569 . 4*X7*X5**2+8*X6**2*X5**2-4*X6**2*X5-4*X6*X5**2)+
570 . X7*(-X6**3*X5**2+2*X6**3*X5-X6**3-X6**2*X5**3
571 . +2*X6**2*X5**2-X6**2*X5+2*X6*X5**3-X6*X5**2-X5**3)+
572 . X6**3*(X5**3-2*X5**2+X5)+X6**2*(-2*X5**3+X5**2)+X6*X5**3))/
573 . (4*(X7-X6)*(X7-X5)*(X6-1)**2*(X5-1))
574 B3(6)=(X-X6)**4/(4*(X7-X6)*(X6-1)**2)
580 B3(4)=(X**4-4*X**3+6*X**2-4*X+X7*X6*X5-X7*X6-X7*X5+X7-
581 . X6*X5+X6+X5)/(4*(X7-1)*(X6-1)*(X5-1))
582 B3(5)=(-(X**4*(X7*X6+X7*X5-2*X7+X6*X5-2*X6-2*X5+3)+
583 . X**3*(-4*X7*X6*X5+4*X7+4*X6+4*X5-8)+
584 . X**2*(12*X7*X6*X5-6*X7*X6-6*X7*X5-6*X6*X5+6)+
585 . X*(-12*X7*X6*X5+8*X7*X6+8*X7*X5-4*X7+8*X6*X5-4*X6-4*X5)+
586 . X7**2*(X6**2*X5**2-2*X6**2*X5+X6**2-
587 . 2*X6*X5**2+4*X6*X5-2*X6+X5**2-2*X5+1)+
588 . X7*(-2*X6**2*X5**2+4*X6**2*X5-2*X6**2+
589 . 4*X6*X5**2-4*X6*X5+X6-2*X5**2+X5)+X6**2*X5**2
590 . -2*X6**2*X5+X6**2-2*X6*X5**2+X6*X5+X5**2))/
591 . (4*(X7-1)**2*(X6-1)**2*(X5-1))
592 B3(6)=(X**4*(X7**2+X7*X6-3*X7+X6**2-3*X6+3)+
593 . X**3*(-4*X7**2*X6-4*X7*X6**2+12*X7*X6-4)+
594 . X**2*(6*X7**2*X6**2-18*X7*X6+6*X7+6*X6)+
595 . X*(-12*X7**2*X6**2+12*X7**2*X6-4*X7**2
596 . +12*X7*X6**2-4*X7*X6-4*X6**2)+
597 . X7**3*(-X6**3+3*X6**2-3*X6+1)+X7**2*(3*X6**3-3*X6**2+X6)+
598 . X7*(-3*X6**3+X6**2)+X6**3)/(4*(X7-1)**3*(X6-1)**2)
599 B3(7)=-(X-X7)**4/(4*(X7-1)**3)
601 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .LT. X7
602 1 .AND. X7 .LT. X8) THEN
604 B3(1)=-(X**2-2*X*X5+2*X5**2)*(X-2*X5)*X/(4*X5**3)
605 B3(2)=(3*X**2-8*X*X5+6*X5**2)*X**2/(4*X5**3)
606 B3(3)=-((2*X7+X5)*X-4*X7*X5)*X**3/(4*X7*X5**3)
607 B3(4)=X**4/(4*X7*X5**2)
611 ELSE IF(X5 .LE. X .AND. X .LT. X7) THEN
614 B3(3)=-(X**2-2*X*X7+2*X7**2-X7*X5)*(X**2-2*X*X7+X7*X5)/
616 B3(4)=(X**4*(X7**2-2*X7*X5+X7+X5**2-2*X5+1)+
617 . X**3*(-4*X7**2+8*X7*X5-4*X7)+X**2*(6*X7**2-6*X7*X5**2)+
618 . X*(4*X7**2*X5**2-8*X7**2*X5+4*X7*X5**2)+
619 . X7**2*(-2*X5**3+3*X5**2)+X7*(X5**4-2*X5**3))/
620 . (4*(X7-X5)**2*(X5-1)**2*X7)
621 B3(5)=-(2*X*X7-3*X*X5+X+2*X7*X5-4*X7-X5**2+3*X5)*(X-X5)**3/
622 . (4*(X7-X5)**2*(X5-1)**2)
623 B3(6)=(X-X5)**4/(4*(X7-X5)*(X5-1)**2)
629 B3(4)=(X**4-4*X**3+6*X**2-4*X+X7*(X5**2-2*X5+1)-X5**2+2*X5)/
630 . (4*(X7-1)*(X5-1)**2)
631 B3(5)=-(X**4*(2*X7+X5-3)+X**3*(-4*X7*X5-4*X7+8)+
632 . X**2*(12*X7*X5-6*X5-6)+X*(-12*X7*X5+4*X7+8*X5)+
633 . X7**2*(X5**3-3*X5**2+3*X5-1)+
634 . X7*(-2*X5**3+6*X5**2-2*X5)+X5**3-3*X5**2)/
635 . (4*(X7-1)**2*(X5-1)**2)
636 B3(6)=(X**4*(X7**2+X7*X5-3*X7+X5**2-3*X5+3)+
637 . X**3*(-4*X7**2*X5-4*X7*X5**2+12*X7*X5-4)+
638 . X**2*(6*X7**2*X5**2-18*X7*X5+6*X7+6*X5)+
639 . X*(-12*X7**2*X5**2+12*X7**2*X5-4*X7**2
640 . +12*X7*X5**2-4*X7*X5-4*X5**2)+
641 . X7**3*(-X5**3+3*X5**2-3*X5+1)+X7**2*(3*X5**3-3*X5**2+X5)+
642 . X7*(-3**X5**3+X5**2)+X5**3)/(4*(X7-1)**3*(X5-1)**2)
643 B3(7)=-(X-X7)**4/(4*(X7-1)**3)
645 ELSE IF(X4 .LT. X5 .AND. X5 .LT. X6 .AND. X6 .EQ. X7
646 1 .AND. X7 .LT. X8) THEN
648 B3(1)=-(X**2-2*X*X5+2*X5**2)*(X-2*X5)*X/(4*X5**3)
649 B3(2)=(((X6**2+X6*X5+X5**2)*X**2-4*(X6+X5)*X*X6*X5
650 . +6*X6**2*X5**2)*X**2)/(4*X6**2*X5**3)
651 B3(3)=-((X6+2*X5)*X-4*X6*X5)*X**3/(4*X6**2*X5**2)
652 B3(4)=X**4/(4*X6**2*X5)
656 ELSE IF(X5 .LE. X .AND. X .LT. X6) THEN
658 B3(2)=-(X**4-4*X**3*X6+6*X**2*X6**2-4*X*X6**3+X6**3*X5)/
660 B3(3)=(X**4*(3*X6-2*X5)+X**3*(-8*X6**2+4*X6*X5)+
661 . 6*X**2*X6**3-4*X*X6**3*X5+X6**3*X5**2)/(4*(X6-X5)**2*X6**2)
662 B3(4)=(X**4*(X6**2-2*X6*X5+2*X6+X5**2-X5)
663 . -4*X**3*X6**2+6*X**2*X6**2*X5-4*X*X6**2*X5**2+X6**2*X5**3)/
664 . (4*(X6-X5)**2*(X5-1)*X6**2)
665 B3(5)=-(X-X5)**4/(4*(X6-X5)**2*(X5-1))
672 B3(4)=(X**4-4*X**3+6*X**2-4*X+X6**2*X5-X6**2-2*X6*X5+2*X6+X5)/
673 . (4*(X6-1)**2*(X5-1))
674 B3(5)=-(X**4*(X6+2*X5-3)+X**3*(-4*X6*X5-4*X5+8)+
675 . X**2*(12*X6*X5-6*X6-6)+X*(-12*X6*X5+8*X6+4*X5)+
676 . X6**3*(X5**2-2*X5+1)+
677 . X6**2*(-3*X5**2+6*X5-3)+3*X6*X5**2-2*X6*X5-X5**2)/
678 . (4*(X6-1)**3*(X5-1))
679 B3(6)=(3*X+X6-4)*(X-X6)**3/(4*(X6-1)**3)
680 B3(7)=-(X-X6)**4/(4*(X6-1)**3)
682 ELSE IF(X4 .LT. X5 .AND. X5 .EQ. X6 .AND. X6 .EQ. X7
683 1 .AND. X7 .LT. X8) THEN
685 B3(1)=-(X**2-2*X*X5+2*X5**2)*(X-2*X5)*X/(4*X5**3)
686 B3(2)=(3*X**2-8*X*X5+6*X5**2)*X**2/(4*X5**3)
687 B3(3)=-(3*X-4*X5)*X**3/(4*X5**3)
696 B3(4)=(X**4-4*X**3+6*X**2-4*X+X5**3-3*X5**2+3*X5)/(4*(X5-1)**3)
697 B3(5)=-(3*X**2+X*(2*X5-8)+X5**2-4*X5+6)*(X-X5)**2/(4*(X5-1)**3)
698 B3(6)=(3*X+X5-4)*(X-X5)**3/(4*(X5-1)**3)
699 B3(7)=-(X-X5)**4/(4*(X5-1)**3)