;+
; Project     : SOHO - CDS     
;                   
; Name        : CHOP_TEMP_LOG
;               
; Purpose     : Chops data from CDS temperature log.
;               
; Explanation : Cuts data off end of temperature log in case someone has added
;               data out of order.
;               
; Use         : IDL> chop_temp_log, start=start [/query]
;    
; Inputs      : start - time after which to chop the log. Must be in CDS string
;                       format eq '1996-01-12 12:00'
;               
; Opt. Inputs : None
;               
; Outputs     : Save file is updated.
;               
; Opt. Outputs: None
;               
; Keywords    : None
;
; Calls       : None
;
; Common      : None
;               
; Restrictions: Requires CDS_ENG_DATA_W to be defined.
;               
; Side effects: None
;               
; Category    : Telemetry
;               
; Prev. Hist. : None
;
; Written     : C D Pike, RAL, 16-Jan-96
;               
; Modified    : 
;
; Version     : Version 1, 16-Jan-96
;-            

pro chop_temp_log, start_time=start_time, query=query

;
; check start time defined
;
if (not keyword_set(start_time)) and (not keyword_set(query)) then begin
   print,'Must enter a start time or use the QUERY keyword'
   return
endif

;
;  does log file already exist?
;
if file_exist(concat_dir('$CDS_ENG_DATA_W','temperature_log')) then begin
   cds_temp_log = 0
   restore,concat_dir('$CDS_ENG_DATA_W','temperature_log')

;
;  only after time range?
;
   if keyword_set(query) then begin
      nel = n_elements(cds_temp_log(0).time)
      t1 = anytim2cal(tai2utc(cds_temp_log(0).time(0)),f=11)
      t2 = anytim2cal(tai2utc(cds_temp_log(0).time(nel-1)),f=11)

      print,'Current time range is'
      print,t1+'  to:'
      print,t2
      return
   endif

;
;  convert start time to TAI
;
   mintime = utc2tai(str2utc(start_time))

;
;  find which bits to keep
;
   nkeep = where(cds_temp_log(0).time le mintime)
   if nkeep(0) ge 0 then begin

      ntot = n_elements(nkeep) 
      
;
;  prepare new blank structure
;
      d1 = {name:'',time:dblarr(ntot),value:intarr(ntot)}
      temp_str = replicate(d1,48)
;
;  replace
;
      temp_str.name = cds_temp_log.name
      for i=0,47 do begin
         temp_str(i).time = cds_temp_log(i).time(nkeep)
         temp_str(i).value = cds_temp_log(i).value(nkeep)
      endfor
      cds_temp_log = temp_str
      save,/xdr,cds_temp_log,$
                     file=concat_dir('$CDS_ENG_DATA_W','temperature_log')
   endif else begin
      bell
      print,'No data after that time.'
   endelse
endif 

end
