pro load_sher, flare=flare, intime=intime, detids=detids, rsher=rsher, $
    drm_sp=drm_sp, dsel=dsel, prob_dsel=prob_dsel, $
    drm_files = drm_files, sdrm_files= sdrm_files, sher_files=sher_files,$
    sherb_file = sherb_file, auto=auto, noplot=noplot


;


checkvar,detids,[0,1,2]
ndet = n_elements(detids)

nchan = 256
@flare_catalog
batse_read_cat

if n_elements(intime) ne 0 then begin
    intime=anytim(intime,/utime) 
    a = min( abs(fldata.start_secs - intime), min_in )
    flare = fldata(min_in).flare_num ;select the closest flare to INTIME
endif

fld = fldata(flare-1)
checkvar, intime, fld.start_secs

;Return the id's of the brightest LADS in channel 1(0-3)
;These should be the burst memory selected detectors
if keyword_set(prob_dsel) then begin
    
    peaktime = utime( tjd2ymd( fld.burst_tjd))+fld.burst_trig_secs
    endtime = peaktime > (fld.startsecs + 300.)
    fdbread, ut, y, flare=flare, endtime=atime(/hxrbs,endtime)
    a = min( abs(fld.burst_trig_secs+fld.burst_tjd - ut ), min_in)
    dsel = (reverse( sort(y(1,*,min_in))))(0:3)
        printx, string(/print,'Detectors probably selected for memory accumulation are:',dsel)
    return

endif

@drm_sp_str
@rsher_str

drm_sp = replicate( drm_sp_str, ndet)
rsher  = rsher_str

;rsher_str = {rsher, det_id:0, rate:fltarr(256),start_time:0.d0,$
;       end_time:0.d0, units:'counts'}


break_file, sher_files, sher_disk, sher_dir, fshername, extsher
break_file, drm_files, drm_disk, drm_dir, fdrmname
break_file, sdrm_files, drm_disk, drm_dir, fsdrmname

for ii = 0,ndet-1 do begin 
       wibdb = where( strpos( strupcase(fshername),'IBDB') ne -1, nibdb)
    if  nibdb ge 1 then $
       isher =  where(strpos(STRUPCASE(fshername),$
        'IBDB_'+strtrim(detids(ii),2)) ne -1,ns) else $
        isher = where( extsher eq '.'+strtrim(detids(ii),2) ,ns) 
       idrm =   where(strpos(fdrmname,$ 
        '_'+strtrim(detids(ii),2)+'_') ne -1,  ndrm)
       isdrm =  where(strpos(fsdrmname,$    
        '_'+strtrim(detids(ii),2)+'_') ne -1,  nsdrm)

shers_load, det_id=detids(ii), nsher=nsher, area=area, evec=evec,$
    sher_file=sher_files(isher), sherb_file = sherb_file(0), timerange=timerange,$
    seconds=seconds, dsel=dsel, auto=auto, noplot=noplot

edge_products, evec, width=wvec, mean=emvec
        
r = replicate( rsher_str, n_elements(nsher(0,*)))
start_time = (seconds(0,*))(*)
end_time = (seconds(1,*))(*)
deltat = end_time-start_time
    r.det_id = detids(ii)
    r.start_time = start_time
    r.end_time = end_time
    for k=0,n_elements(deltat)-1 do $
        r(k).rate = f_div(float(nsher(*,k))/area/deltat(k),wvec)
    r.units = 'counts cm!u-2!n s!u-1!n keV!u-1!n'

if ndrm eq 1 then begin
    read_bdas_drm, file=drm_files(idrm), drm=drm_in, $
        head=hd, area=area_sp
    read_bdas_drm, file=sdrm_files(isdrm), drm=sdrm_in, $
        head=shd, area=area_sp
;There is a bug in the smoothing parameter!!!!!!!
;   add_scatter_drm, ddrm= drm_in, sdrm= sdrm_in, new_drm=drm_in,$
;       shead = shd, dhead=hd, nsmooth=4

    add_scatter_drm, ddrm= drm_in, sdrm= sdrm_in, new_drm=drm_in,$
        shead = shd, dhead=hd, nsmooth=1
                                                                                        
    drm_sp(ii).drm=  x_eout_drm(in_drm=drm_in,out_e_out=evec, $
            in_e_out=hd.e_out(*,0:hd.nobins_out-1), nsub=10)
    drm_sp(ii).head = hd
    drm_sp(ii).head.nobins_out = nchan
    drm_sp(ii).head.e_out = evec
    
endif else printx,string(/print,'No DRM availabel for ',detids(ii))

rsher = temporary( [rsher, r])
endfor
rsher = rsher(1:*)
    
end