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, K
62 my_real saved, temp, aleft, right
63 my_real,
DIMENSION(PXI+1,PXI+1) :: andu
64
65 andu(:,:)=zero
66 andu(idxii,1)=one
67
68
69
70
71
72
73
74
75
76 DO k=1,pxi
77 IF (andu(1,k) == 0) THEN
78 saved = zero
79 ELSE
80 saved = ((xi-kxi(idxi))*andu(1,k))/(kxi(idxi+k)-kxi(idxi))
81 ENDIF
82 DO j=0,pxi-k
83 aleft = kxi(idxi+j+1)
84 right = kxi(idxi+j+k+1)
85 IF (andu(j+2,k) == 0) THEN
86 andu(j+1,k+1) = saved
87 saved = zero
88 ELSE
89 temp = andu(j+2,k)/(right-aleft)
90 andu(j+1,k+1) = saved+(right-xi)*temp
91 saved = (xi-aleft)*temp
92 ENDIF
93 ENDDO
94 ENDDO
95
96 ders1 = andu(1,pxi+1)
97
98 RETURN