pro mobad_summ, logdir=logdir,lastmo=lastmo, hc=hc
;
;+
;   Name: mobad_summ
;
;   Purpose: produce summary listing of mo_check logs
;
;   Calling Sequence:
;      mobad_summ [,/hc]
;
;   History:
;      7-Jul-1994 (SLF) Written
;-
if not keyword_set(logdir) then logdir='$DIR_SITE_MOLOGS'
;
; ---------------- start a new summary log file -------------------
sumfile=concat_dir(logdir,'mo_summary.log')
message,/info,'Generating MO summary file: ' + sumfile + ' ...'
file_delete,sumfile,status
if not status then begin
   message,/info,"Cannot overwrite existing version of: " + sumfile
   return
endif
file_append,sumfile,/new , $
   ['mobad_summ run at: ' + !stime + ' by: ' + get_user(),'']
; -----------------------------------------------------------------

; ----------- setup - log file names, MO data base ------------------
badlogs=file_list(logdir,'mochk_bad.????')
monum=strsplit(badlogs,'.',/tail)
modb=rd_modb(uniq_sides=allsides)
nlogs=n_elements(badlogs)
badnum=intarr(nlogs)				; will keep bad# count
; ---------------------------------------------------------------------

; ------------- for each log file, read and parse ----------------
for i=0,nlogs-1 do begin
   baddat=rd_tfile(badlogs(i))			; rd_tfile
   nrecs=n_elements(baddat)
   sumrec=baddat(nrecs-1)			; last rec has number bad
   nbad=str2cols(sumrec)
   badnum(i)=fix(nbad(n_elements(nbad)-1))	; update badnum array
endfor
; -----------------------------------------------------------------
; --------------- summary file header statistics ----------------
goodones=where(badnum eq 0,gcnt)
badones=where(badnum,bcnt)
pbad=float(bcnt)/(total([gcnt,bcnt]))*100
file_append,sumfile, $
  ['Number MOs Checked: ' + strtrim(nlogs,2),	$
   'Number of Good MOS: ' + strtrim(gcnt,2),		$
   'Number of Bad  MOS: ' + strtrim(bcnt,2),		$
   'Percentage Bad MOS: ' + string(pbad,format='(f4.1,"%")'),'']
;
; ----------------------------------------------------------------
; ---------- identify MOs not yet verified -------------------
notchecked=''
if keyword_set(lastmo) then begin
   ss=where(allsides le lastmo,sscnt)
   if sscnt gt 0 then allsides=allsides(ss)
endif
remchk=rem_elem(allsides,monum)
if remchk(0) ne -1 then notchecked=allsides(remchk)

file_append,sumfile,$
   ['Range of MOs included >>>  ' + allsides(0) + ' through ' + allsides(n_elements(allsides)-1),'']
if notchecked(0) ne '' then begin
   message,/info,"The following MOs have not yet been verified..."
   nochk=string(notchecked,format='(8a6)')
   file_append,sumfile, $
   ['The following MOs have not yet been checked...',nochk,'']
endif else file_append,sumfile, $
   ['(All MOs within the above range have been checked)','']
; ---------------------------------------------------------------------
;
; ------------- flag MOs with 1 or more missing/bad sizes ---------------
if bcnt gt 0 then begin
   file_append,sumfile, $
   ['The following MOs have one or more missing or bad files...', '', $
    'MO# ' +  monum(badones) + ' Number of bad/missing files: ' + $
	string(badnum(badones),format='(i3)')]
endif else begin
   file_append,sumfile, $
      ['No Bad MOs were found!']
endelse
file_append,sumfile,['','---------------- end of summary -----------------']
; -----------------------------------------------------------------------

prstr,rd_tfile(sumfile)		; echo file to terminal

if keyword_set(hc) then dprint,sumfile

return
end

