5 * Revision 1.1.1.1 1996/02/15 17:48:36 mclareni
9 #include "kernnum/pilot.h"
10 FUNCTION FINT(NARG,ARG,NENT,ENT,TABLE)
12 C INTERPOLATION ROUTINE. AUTHOR C. LETERTRE.
13 C MODIFIED BY B. SCHORR, 1.07.1982.
16 REAL ARG(9), ENT(9), TABLE(9)
21 IF(NARG .LT. 1 .OR. NARG .GT. 5) GOTO 300
33 IF(NDIM .GT. 2) GOTO 10
34 IF(NDIM .EQ. 1) GOTO 100
38 IF(X-ENT(LMIN+1) .EQ. 0.) GOTO 21
40 ETA = H / (ENT(LMIN+1) - ENT(LMIN))
43 11 LOCC = (LOCA+LOCB) / 2
44 IF(X-ENT(LOCC)) 12, 20, 13
48 14 IF(LOCB-LOCA .GT. 1) GOTO 11
49 LOCA = MIN0( MAX0(LOCA,LMIN), LMAX-1 )
50 ISHIFT = (LOCA - LMIN) * ISTEP
51 ETA = (X - ENT(LOCA)) / (ENT(LOCA+1) - ENT(LOCA))
53 20 ISHIFT = (LOCC - LMIN) * ISTEP
55 INDEX(K) = INDEX(K) + ISHIFT
59 INDEX(K) = INDEX(K) + ISHIFT
60 INDEX(K+KNOTS) = INDEX(K) + ISTEP
61 WEIGHT(K+KNOTS) = WEIGHT(K) * ETA
62 WEIGHT(K) = WEIGHT(K) - WEIGHT(K+KNOTS)
65 90 ISTEP = ISTEP * NDIM
69 FINT = FINT + WEIGHT(K) * TABLE(I)
72 300 CALL KERMTR('E104.1',LGFILE,MFLAG,RFLAG)
74 IF(LGFILE .EQ. 0) THEN
77 WRITE(LGFILE,1000) NARG
80 IF(.NOT. RFLAG) CALL ABEND
82 1000 FORMAT( 7X, 24HFUNCTION FINT ... NARG =,I6,
83 + 17H NOT WITHIN RANGE)