;+ ; lint.c ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; Linear interpolation: lint will interpolate on tables. ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; SMM C/P HAO/NCAR ; Fortran author: Kevin Cole ; converted to C by Andrew L. Stanger ; 1 March 1984 ; 17 June 1998: Conversion from C to IDL. ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;- ;* ------------------------------------------------------------------------- */ FUNCTION lint, x, xtable, ytable, ntab ;float x; ;float xtable [], ytable []; ;int ntab; ;int i, k; ;float y; FOR i = 1, ntab-1 DO $ BEGIN ;{ k = i - 1; IF (x LT xtable [i]) THEN $ BEGIN ;{ y = ytable [k] + (ytable [k+1] - ytable [k]) * ((x - xtable [k]) $ / (xtable [k+1] - xtable [k])); RETURN, y END $ ;} ELSE $ IF (x EQ xtable [i]) THEN RETURN, ytable [i] END ;} RETURN, -1.0 END