NAME:
	interp
 PURPOSE: (one line)
	One dimensional interpolation onto a new x grid (both irregular)
 DESCRIPTION:
 CATEGORY:
	Mathematical
 CALLING SEQUENCE:
	interp,x1,y1,x2,y2,e2,E1=e1
 INPUTS:
	x1 - Input X array.
	y1 - Matching input Y array.
	x2 - New X array to interpolate Y to.
 OPTIONAL INPUT PARAMETERS:
 KEYWORD PARAMETERS:
	E1 - Array of uncertainties for Y.  Default=equal uncertainties.
 OUTPUTS:
	y2 - Interpolated values of y1 that match the x2 array.
	e2 - Array of uncertainties for interpolated values.  For each
          interpolation point, uncertainties are calculated using the
          left and the right uncertainties.  The minimum of these
          becomes the final uncertainty.  Returned only if E1 is specified.
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 MODIFICATION HISTORY:
	Written by Marc W. Buie, Lowell Observatory, 1992 Sep 28.
    5/19/93, DWL, Modified the uncertainty computation.
   97/11/13, MWB, Moved e1 to a keyword, uncertainties are now optional.
   98/4/2, MWB, Fixed bug in returned e2 value.
   2000/01/31, MWB, Fixed minor bug in loop index, now converted to long.
   2017/11/16, MWB, added trimrank call for scalar input so that output
                is also scalar