5 &(ni,xi,yi,no,xostep,yo)
32 DOUBLE PRECISION :: XI(ni),YI(ni)
33 DOUBLE PRECISION :: XOSTEP,XO,YO(no)
36 DOUBLE PRECISION :: A1,A2,A3,A4,A5,A6
37 DOUBLE PRECISION :: RMIN,R,R2,U
42 xostep = (xi(ni) - xi(1)) / float(no-1)
50 a3 = ( yi(3)-yi(1) )/( xi(3)-xi(1) )/( xi(3)-xi(2) ) -
51 & ( yi(2)-yi(1) )/( xi(2)-xi(1) )/( xi(3)-xi(2) )
52 a2 = ( yi(2)-yi(1) )/( xi(2)-xi(1) ) - a3*( xi(2)+xi(1) )
53 a1 = yi(1) - ( a2 + a3*xi(1) )*xi(1)
55 a4 = ( yi(ni-2)-yi(ni) )/( xi(ni-2)-xi(ni) )/( xi(ni-2)-xi(ni-1) )
56 & - ( yi(ni-1)-yi(ni) )/( xi(ni-1)-xi(ni) )/( xi(ni-2)-xi(ni-1) )
57 a5 = ( yi(ni-1)-yi(ni) )/( xi(ni-1)-xi(ni) )
58 & - a4*( xi(ni-1)+xi(ni) )
59 a6 = yi(ni) - ( a5 + a4*xi(ni) )*xi(ni)
66 xo = xi(1)+float(i-1)*xostep
72 r = ( xo - xi(iv) ) / ( xi(iv+1) - xi(iv) )
73 IF( dabs(r).LE.dabs(rmin) )
THEN 78 r = ( xo - xi(ni) ) / ( xi(ni) - xi(ni-1) )
79 IF( dabs(r).LE.dabs(rmin) )
THEN 89 yo(i) = a1 + a2*xo + a3*xo**2
94 ELSEIF( ivp.EQ.3 .OR. ivp.EQ.ni-2 )
THEN 96 yo(i) = ( r2-r )*yi(ivp-1)/2.d0 +
97 & ( 1.d0-r2 )*yi(ivp) + ( r2+r )*yi(ivp+1)/2.d0
102 ELSEIF( ivp.EQ.ni-1 .OR. ivp.EQ.ni )
THEN 103 yo(i) = a6 + a5*xo + a4*xo**2
109 u = r*( (r**2)-1.d0 )/12.d0
110 yo(i) = u*( (r/2.d0)-1.d0 ) * yi(ivp-2) +
111 & (1.d0-r)*(2.d0*u-(r/2.d0)) * yi(ivp-1) +
112 & ( r*(3.d0*u-r) + 1.d0 ) * yi(ivp) +
113 & (1.d0+r)*(-2.d0*u+(r/2.d0)) * yi(ivp+1) +
114 & u*( (r/2.d0)+1.d0 ) * yi(ivp+2)
subroutine stirling(NI, XI, YI, NO, XOSTEP, YO)