pro read_rmf,fname,e_lo,e_hi,matrix,h1,ch,e_min,e_max,h2,h=h if n_params(0) eq 0 then begin print,'read_rmf,fname,e_lo,e_hi,matrix,h1,ch,e_min,e_max,h2,h=h' retall endif @fxbintable openr,unit,fname,/block,/get_lun FXHREAD,unit,h free_lun,unit fxbopen,unit,fname,1,h1 n = sxpar(h1,'naxis2') dchan = sxpar(h1,'detchans') if n eq 0 then return e_lo = fltarr(n) & e_hi = e_lo matrix = fltarr(n,dchan) back = string(replicate(8b,4)) step = n/10. for i=0,n-1 do begin if i/step eq fix(i/step) then print, "$(i3,a,$)",100.*i/n,'%'+back fxbread,unit,d,1,i+1 e_lo(i) = d fxbread,unit,d,2,i+1 e_hi(i) = d n_chan = 0 fxbread,unit,grp,3,i+1 ; print,i+1,e_lo(i),e_hi(i),grp fxbread,unit,n_chan,5,i+1 if max(n_chan) gt 0 then begin fxbread,unit,f_chan,4,i+1 fxbread,unit,d,6,i+1 k=0 for j=0,grp-1 do begin matrix(i,f_chan(j)-1:f_chan(j)+n_chan(j)-2) = d(k:k+n_chan(j)-1) k = k+n_chan(j) endfor ; print,i+1,f_chan,n_chan,d endif endfor fxbclose,unit ; print,'Finished reading first extention' fxbopen,unit,fname,2,h2 n = sxpar(h2,'naxis2') if n eq 0 then return fxbread,unit,ch,1 fxbread,unit,e_min,2 fxbread,unit,e_max,3 fxbclose,unit return end