EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
polint6.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file polint6.F
1  SUBROUTINE polint6 (XA,YA,N,X,Y,DY)
2 
3  IMPLICIT DOUBLE PRECISION (a-h, o-z)
4 C Adapted from "Numerical Recipes"
5  parameter(nmax=10)
6  dimension xa(n),ya(n),c(nmax),d(nmax)
7  ns=1
8  dif=abs(x-xa(1))
9  DO 11 i=1,n
10  dift=abs(x-xa(i))
11  IF (dift.LT.dif) THEN
12  ns=i
13  dif=dift
14  ENDIF
15  c(i)=ya(i)
16  d(i)=ya(i)
17 11 CONTINUE
18  y=ya(ns)
19  ns=ns-1
20  DO 13 m=1,n-1
21  DO 12 i=1,n-m
22  ho=xa(i)-x
23  hp=xa(i+m)-x
24  w=c(i+1)-d(i)
25  den=ho-hp
26  IF(den.EQ.0.)pause
27  den=w/den
28  d(i)=hp*den
29  c(i)=ho*den
30 12 CONTINUE
31  IF (2*ns.LT.n-m)THEN
32  dy=c(ns+1)
33  ELSE
34  dy=d(ns)
35  ns=ns-1
36  ENDIF
37  y=y+dy
38 13 CONTINUE
39  RETURN
40  END