SUBROUTINE INTRV(XT,LXT,X,ILO,ILEFT,MFLAG) C***BEGIN PROLOGUE INTRV C***DATE WRITTEN 800901 (YYMMDD) C***REVISION DATE 820801 (YYMMDD) C***CATEGORY NO. E3,K6 C***KEYWORDS B-SPLINE,DATA FITTING,INTERPOLATION,SPLINE C***AUTHOR AMOS, D. E., (SNLA) C***PURPOSE Computes the largest integer ILEFT in 1.LE.ILEFT.LE.LXT C such that XT(ILEFT).LE.X where XT(*) is a subdivision C of the X interval. C***DESCRIPTION C C Written by Carl de Boor and modified by D. E. Amos C C Reference C SIAM J. Numerical Analysis, 14, No. 3, June 1977, pp. 441-472. C C Abstract C INTRV is the INTERV routine of the reference. C C INTRV computes the largest integer ILEFT in 1 .LE. ILEFT .LE. C LXT such that XT(ILEFT) .LE. X where XT(*) is a subdivision of C the X interval. Precisely, C C X .LT. XT(1) 1 -1 C if XT(I) .LE. X .LT. XT(I+1) then ILEFT=I , MFLAG=0 C XT(LXT) .LE. X LXT 1, C C That is, when multiplicities are present in the break point C to the left of X, the largest index is taken for ILEFT. C C Description of Arguments C Input C XT - XT is a knot or break point vector of length LXT C LXT - length of the XT vector C X - argument C ILO - an initialization parameter which must be set C to 1 the first time the spline array XT is C processed by INTRV. C C Output C ILO - ILO contains information for efficient process- C ing after the initial call, and ILO must not be C changed by the user. Distinct splines require C distinct ILO parameters. C ILEFT - largest integer satisfying XT(ILEFT) .LE. X C MFLAG - signals when X lies out of bounds C C Error Conditions C None C***REFERENCES C. DE BOOR, *PACKAGE FOR CALCULATING WITH B-SPLINES*, C SIAM JOURNAL ON NUMERICAL ANALYSIS, VOLUME 14, NO. 3, C JUNE 1977, PP. 441-472. C***ROUTINES CALLED (NONE) C***END PROLOGUE INTRV