29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48#include "implicit_f.inc"
49
50
51
52 INTEGER PXI, IDXI, IDXII
54 . INTENT(IN) :: xi
56 . DIMENSION(*), INTENT(IN) :: kxi
58
59
60
61 INTEGER J, JJ, K, L, NDERS
63 . saved, temp, aleft, right
65 . DIMENSION(PXI+1,PXI+1) :: andu
66
67 andu(:,:)=zero
68 andu(idxii,1)=one
69
70
71
72
73
74
75
76
77
78 DO k=1,pxi
79 IF (andu(1,k) == 0) THEN
80 saved = zero
81 ELSE
82 saved = ((xi-kxi(idxi))*andu(1,k))/(kxi(idxi+k)-kxi(idxi))
83 ENDIF
84 DO j=0,pxi-k
85 aleft = kxi(idxi+j+1)
86 right = kxi(idxi+j+k+1)
87 IF (andu(j+2,k) == 0) THEN
88 andu(j+1,k+1) = saved
89 saved = zero
90 ELSE
91 temp = andu(j+2,k)/(right-aleft)
92 andu(j+1,k+1) = saved+(right-xi)*temp
93 saved = (xi-aleft)*temp
94 ENDIF
95 ENDDO
96 ENDDO
97
98 ders1 = andu(1,pxi+1)
99
100 RETURN