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