Files
cantera/ext/recipes/splint.f
2003-04-14 17:57:48 +00:00

23 lines
527 B
Fortran
Executable File

SUBROUTINE SPLINT(XA,YA,Y2A,N,X,Y)
implicit double precision (a-h,o-z)
DIMENSION XA(N),YA(N),Y2A(N)
KLO=1
KHI=N
1 IF (KHI-KLO.GT.1) THEN
K=(KHI+KLO)/2
IF(XA(K).GT.X)THEN
KHI=K
ELSE
KLO=K
ENDIF
GOTO 1
ENDIF
H=XA(KHI)-XA(KLO)
IF (H.EQ.0.) PAUSE 'Bad XA input.'
A=(XA(KHI)-X)/H
B=(X-XA(KLO))/H
Y=A*YA(KLO)+B*YA(KHI)+
* ((A**3-A)*Y2A(KLO)+(B**3-B)*Y2A(KHI))*(H**2)/6.d0
RETURN
END