Viewing contents of file '../idllib/contrib/icur/averagespec.pro'
;*******************************************
function AVerageSPEC,FILE,i1,i2,w,save=save,helpme=helpme,noweight=noweight
if n_params(0) lt 2 then helpme=1
if keyword_set(helpme) then begin
   print,' '
   print,'* AVERAGESPEC - average spectra in .ICD file '
   print,'* calling sequence: f=averagespec(file,i1,i2,w) or f=averagespec(file,rec,w)'
   print,'* default uses time weighting'
   print,'*    FILE: name of .ICD file'
   print,'*    I1,I2: first and last records to be averaged'
   print,'*    REC:  list of records to be averaged'
   print,'*    W:    output wavelength vector (optional)'
   print,'* '
   print,'* KEYWORDS'
   print,'*    NOWEIGHT: if set, do straight average, default weights by times'
   print,'*    SAVE: if set, append average spectrum to end of input .ICD file'
   print,' '
   return,0
   end
;
ext=get_ext(file)
if strlen(ext) eq 0 then ext='.icd'
if not ffile(file+ext) then begin
   ic=getenv('icurdata')
   if ffile(ic+file+ext) then file=ic+file else begin
      print,' file ',file,' not found - returning'
      return,0
      endelse
   endif
if n_elements(i1) gt 1 then irec=1 else irec=0
if irec then k=i1 else k=i1+indgen(i2-i1+1)
nr=n_elements(k)
if nr lt 2 then begin
   print,' AVERAGESPEC error: less than 2 files specified - returning'
   if keyword_set(stp) then stop,'AVERAGESPEC>>>'
   return,0
   endif
gdat,file,h,w,f,e,k(0)
time=h(5)
if time lt 0 then time=-60.*time
if time eq 0 then noweight=0
if not keyword_set(noweight) then f=f*time
for j=1,nr-1 do begin
   i=k(j)
   gdat,file,h,w1,f1,e,i
   f1=interpol(f1,w1,w)
   if not keyword_set(noweight) then f1=f1*time
   f=f+f1
   t=h(5)
   if t lt 0 then t=-60.*t
   time=time+t
   endfor
f=f/nr
if not keyword_set(noweight) then f=f/time
if irec then i2=w
print,'Total time in average spectrum = ',time,' seconds'
if keyword_set(save) then begin
   if time gt 32767 then time=-fix(time/60.) else time=fix(time)
   h(5)=time
   h(100)=byte('Average of records '+strtrim(i1,2)+' - '+strtrim(i2,2))
   kdat,file,h,w,f,e,-1
   endif
if keyword_set(stp) then stop,'AVERAGESPEC>>>'
return,f
end