;Written by Larry Kepko (larry.kepko@unh.edu) function whatindex, data, time direction = 1; tolerance = 0; if (direction gt 0) then begin indi1 = where(data le time); indi2 = where(data ge time); endif else begin indi1 = where(data ge time); indi2 = where(data le time); endelse if (indi1(0) ge 0L) and (indi2(0) ge 0L) then begin ; Find which index is closer to the time we want dt1 = data(indi1(n_elements(indi1)-1L)) - time; dt2 = data(indi2(1L)) - time; if (tolerance gt 0L) then begin indi = indi2(1L); endif else begin if (abs(dt1) gt abs(dt2)) then begin indi = indi2(1L); endif else begin indi = indi1(n_elements(indi1) - 1L); endelse endelse endif else if (indi1(0) < 0L) then begin ; ; No times that are less than time we are looking for ; So return the first point ; indi = 1L; endif else if (indi2(0) lt 0L) then begin ; ; No times greater than time they are looking for ; So return last point indi = n_elements(data) - 1L; endif return, indi end