;======================== header ===============================================
;+
; NAME:
;   cactus_merge_detectors
; PURPOSE:
;   merges the index and retide data cubes of the different detectors
;
; CATEGORY:
;   cactus
;
; INPUTS:
;   
; KEYWORD PARAMETERS:
;   instrument: 'LASCO' OR 'SECCHI'
; OUTPUTS:
;   retide and index
;
; COMMON BLOCKS: 
;   none
;
; CALLS:
;   concat3D (SSW) 
;   
; MODIFICATION HISTORY:
;   2008/03/20, ER, Created
;   2008/05/16, ER, fixed bug, move lines index=merged_indes and retide=merged_retide after the for-loop 
;   2009/11/09, ER, replace exit statement with GOTO, jump to avoid jumping outside IDL
;
;-
;======================== end header ===========================================
PRO cactus_merge_detectors, instrument=instrument, retide, index, no_logfile=no_logfile

   cactus_preamble, dir,myname
   cactus_loginfo, myname, log, no_logfile=no_logfile, /open

; ------------------------main code ------------------------------------

 ; loop over detectors 
    detectors=cactus_detectors(instrument)

    for d=0,n_elements(detectors)-1 do begin
      IF (NOT FILE_TEST(dir.work+detectors[d]+'retide.sav')) OR (NOT FILE_TEST(dir.work+detectors[d]+'index.sav')) THEN BEGIN
        printf,log, "  Input files do not exist. Jumping to end of program."
        GOTO, jump
      ENDIF
  
    ; get detector data
      restore, dir.work+detectors[d]+'retide.sav' ; retide
      restore, dir.work+detectors[d]+'index.sav'  ; index 
   
      IF d eq 0 THEN BEGIN
      	merged_index=temporary(index)
	merged_retide=temporary(retide)
      ENDIF ELSE BEGIN
        printf, log, '  Merging ',detectors[d],' to ',detectors[d-1]
       	merged_index=[merged_index,temporary(index)]
	merged_retide=concat3D(merged_retide,temporary(retide))  ;concact3D is a ssw routine (soho-cds/util)
      ENDELSE

     endfor ;detectors
 
      index=merged_index
      retide=merged_retide

  jump:
; ------------------------closing remarks-------------------------------
  cactus_loginfo, myname, log, no_logfile=no_logfile, /close


END 
