 pro ver_safety_flag, stfile, nfile, rep, quiet=quiet, hc=hc
 ;+
 ;NAME:
 ;        ver_safety_flag
 ;PURPOSE:
 ;        Verify Safety Flag operation
 ;SAMPLE CALLING SEQUENCE:
 ;        ver_safety_flag,'/td10/log/rawimage/971103/971103_190927_DPM.safety_chk_001.fits',7
 ;HISTORY:
 ;        Written 5-Dec-97 by F.Zele
 ;-

 progver = 'VER_SAFETY_FLAG Ver 1.1'
 rep=[progver + ' Run ' + ut_time() + ' UT',              $
      'Starting with file ' + stfile,' ']
 if nfile lt 1 then stop, ' illegal number of files'
 rep=[rep,'  Description        Stored-values    Computed-values',' ']
 file1=strmid(stfile,0,strpos(stfile,'.fits')-3)
 file2=strmid(stfile,strpos(stfile,'.fits')-3,3)
 ifile2=fix(file2)
 safe_frame_cnt=0
 danger_frame_cnt=0
 safe_frame_thrshld=3
 danger_frame_thrshld=2
 thrsh=intarr(4)
 thrsh=[100,100,100,100]
 bin=intarr(4)
 bin=[0,0,0,0]
 bf=intarr(4)
 bf=[8,4,2,1]
 for f=1, nfile do begin
   file2=string(format='(i3.3)',ifile2)
   rd_trace_i0, file1+file2+'.fits', -1, bh, img, fh
   dw=bh.dp_header(297)
   dw=ishft(dw,9)
   dw=ishft(dw,-15)
   rep=[rep,string('SQFRM Fr.No.in Seq. ',bh.dp_header(201))]
   rep=[rep,string('DW Danger Wavelngth ',dw)]
   cm=bh.dp_header(295)
   cm=ishft(cm,-13)
   rep=[rep,string('CM Camera Mode      ',cm)]
   if cm gt 3 then cm = 0
   rep=[rep,string('Image Size      ',n_elements(img(0,*)),'       ',n_elements(img(*,0)))]
   a=rebin(img,n_elements(img(0,*))/bf(cm),n_elements(img(*,0))/bf(cm))

; Construct a 128 bin image histogram
   ximg=a/32
   img_hist=lonarr(128)
   for i = 0, 127 do begin
      x = where(ximg eq i)
      b = size(x)
      if b(0) ne 0 then img_hist(i) = img_hist(i) + b(1)
   endfor
; Construct a cumulative image histogram
   img_chist = lonarr(128)
   img_chist(0) = img_hist(0)
   for i = 1, 127 do img_chist(i) = img_chist(i-1) + img_hist(i)

   hb=bin(cm)
   sfe='Clear Safety Flag'
   rep=[rep,string('Compare thresholds  ',thrsh(cm),'       ',img_chist(127-hb))]
   if dw eq 1 then begin
     if img_chist(127-hb) gt thrsh(cm) then danger_frame_cnt=danger_frame_cnt+1 else safe_frame_cnt=safe_frame_cnt+1
     if safe_frame_cnt ge safe_frame_thrshld then danger_frame_cnt=0 
     if danger_frame_cnt ge danger_frame_thrshld then sfe='Set Safety Flag'
   end
   rep=[rep,string('Safety Flag         ',bh.dp_header(409),'        ',sfe),' ']
   ifile2=ifile2+1
 endfor
 if (keyword_set(hc)) then prstr, rep, /hc
 if (not keyword_set(quiet)) then  prstr, rep, /nomore
 end
