function eit_findcalgroup, date, dir, start_date = start_date, end_date = end_date list = eit_calgroups() delim = get_delim() t0 = double(utc2sec(anytim2utc('01-jan-1996 00:00:00'))) cal_start = strmid(list, 18, 20) cal_end = strmid(list, 41, 20) stcal = double(utc2sec(anytim2utc(cal_start))) - t0 etcal = double(utc2sec(anytim2utc(cal_end))) - t0 time = double(utc2sec(anytim2utc(date))) - t0 bake_on = double(utc2sec(anytim2utc((eit_bakeouts())[*, 0]))) - t0 bake_off = double(utc2sec(anytim2utc((eit_bakeouts())[*, 1]))) - t0 if dir ge 0 then begin cal = where((stcal-time) gt 0, ca) if ca ge 1 then begin cal = cal[0] next_bake = where((bake_on-time) ge 0, ba) if ba ge 1 then begin next_bake = next_bake[0] if bake_on[next_bake] lt etcal[cal] then begin bb = 0 cal = -1 endif endif endif endif else begin cal = where((etcal-time) lt 0, cb) if cb ge 1 then begin cal = cal[cb-1] previous_bake = where((bake_off-time) lt 0, bb) if bb ge 1 then begin previous_bake = previous_bake[bb-1] if bake_off[previous_bake] gt stcal[cal] then begin cb = 0 cal = -1 endif endif endif endelse if cal eq -1 then begin if keyword_set(start_date) then start_date = '' if keyword_set(end_date) then end_date = '' return, -1 endif else begin if keyword_set(start_date) then start_date = cal_start[cal] if keyword_set(end_date) then end_date = cal_end[cal] cal = readfits(getenv('SSWDB')+delim+'soho'+delim+'eit'+delim+'calibrate'+$ delim+strmid(list[cal], 0, 15), /silent) return, cal endelse end