pro rdsumerext,  file1, exten=exten, head_only=head_only

@rdsumerext_block

if n_elements(file1) ne 0 then begin
f=findfile(file1, count=count)
if count ge 1 then file=file1 else file=sumer_full_filename(file1)
if n_elements(exten) eq 0 then exten=1
defsysv, '!textout', 1
defsysv, '!textunit', 1
fits_info, file, silent=1, textout=1, n_ext=next
h=headfits(file)

endif


if exten gt next then begin
  print, ' The file : '+file+ '  has only '+ strtrim(string(next),2) $
     +' binary extension tables.'
return
endif


fxbopen, unit, file, exten, bh
if keyword_set(head_only) then begin
 fxbclose, unit
  return
endif 
data=0
obs_seq = fxpar(h, 'OBS_SEQ')
exptime=fxpar(h, 'EXPTIME')
slit = fix(strmid(strtrim(fxpar(h, 'SLIT'), 2),1,1))
extname=fxpar(bh, 'EXTNAME')
ncol = fxpar(bh,'TFIELDS')
ndata = ncol-5
fxbfind, unit, 'TTYPE', indgen(ndata)+1, data_names, n_found
data_names=data_names(0:ndata-1)

descr = fxbtdim(fxpar(bh, 'TDESC1'))
dim  = fix(fxbtdim(fxpar(bh,'TDIM1')))

fxbfind, unit, 'TRPIX',indgen(ndata)+1, srefpixels,n_found
srefpixles=srefpixels(0:ndata-1)

fxbfind, unit, 'TRVAL', indgen(ndata)+1, srefpos, n_found
srefpos=srefpos(0:ndata-1)

fxbfind, unit, 'TDELT', indgen(ndata)+1, sdeltas, n_found
sdeltas=sdeltas(0:ndata-1)


case  n_elements(dim) of
      1 :  begin
           data=make_array(dim(0), ndata)
           for i=0, ndata-1 do begin
             fxbread, unit, data1, i+1
             data(*, i) = data1*10
           endfor
         end
      2 :  begin
           data=intarr(dim(0),dim(1),1, ndata)
           deltas=fltarr(3, ndata)
           refpos = fltarr(3, ndata)
           refpixels = intarr(3, ndata)
           for i=0, ndata-1 do begin
             fxbread, unit, data1, i+1
             data(*,*,0, i) = data1*10
             tmp=  float(fxbtdim(sdeltas(i))) 
             deltas(0:n_elements(tmp)-1, i) =  tmp
             tmp = float(fxbtdim(srefpos(i)))  
             refpos(0:n_elements(tmp)-1,i) =  tmp
              tmp = fix(fxbtdim(srefpixels(i)))  
             refpixels(0:n_elements(tmp)-1,i) = tmp 
           endfor
          dim = [dim, 1]  
          descr=[descr]
       
         end
      3 :  begin
           if ndata gt 1 then begin
           data=intarr(dim(0),dim(1), dim(2), ndata, /nozero)
           deltas = fltarr(3, ndata, /nozero)      
           refpos = fltarr(3, ndata, /nozero)
           refpixels = intarr(3, ndata, /nozero)
           for i=0, ndata-1 do begin
             fxbread, unit, data1, i+1
             
             data(*,*,*, i) = temporary(data1)
             deltas(*, i) = float(fxbtdim(sdeltas(i)))
             refpos(*,i) = float(fxbtdim(srefpos(i)))
             refpixels(*,i) = fix(fxbtdim(srefpixels(i)))
           endfor
           endif else begin
            i=0
            fxbread, unit, data, i+1
            deltas = float(fxbtdim(sdeltas(i)))
            refpos = float(fxbtdim(srefpos(i)))
            refpixels = fix(fxbtdim(srefpixels(i)))
           endelse
         end
     else : begin
         print, 'Data dimension does not fit.'
          end
endcase

dim=[dim, ndata]
descr=[descr,'COLUMN']
fxbread, unit, sum_status, ncol-4
fxbread, unit, del_time, ncol-3
fxbread, unit,exptime, ncol-2
fxbread, unit, solar_x, ncol-1
fxbread, unit, solar_y, ncol
fxbclose, unit
end
