;+
; Project     : SOLAR-B - EIS
;
; Name        : EIS_CPT_COMPLETE
;
; Purpose     : Outputs data generated by EIS_CPT.
;
; Explanation : Writes output from EIS_CPT to files.
;
; Use         : < result = eis_cpt_complete(orl, obstbl_stamp, orl_stamp, jside) >
;
; Inputs      : orl               : OBJECT of class structure EIS_CPT_orl
;               obstbl_stamp      : STRING used for labelling OBSTBL files.
;               orl_stamp         : STRING used for labelling ORL files.
;               jside             : INT controlling JSIDE file output
;                                    1 : output ORL, DR, OBSTBL and MAP files
;                                    2 : output ORL, DR files
;
; Opt. Inputs : None.
;
; Outputs     : result   : INT flag :
;                            1 : processed science plan OK.
;                            0 : processing failed.
;
; Opt. Outputs: None.
;
; Keywords    : None.
;
; Calls       : None.
;
; Common      : None.
;
; Restrictions: None.
;
; Side effects: May output ASCII files.
;
; Category    : EIS_CPT.
;
; Prev. Hist. : None.
;
; Written     : Martin Carter RAL 21/10/04
;
; Modified    : Version 0.0, 21/10/04, MKC
;               Version 0.1, 03/02/05, MKC
;                 Used eis cpt obstbl.
;                 Removed obstbl from common block.
;               Version 0.2, 01/03/05, MKC
;                 Used EIS CPT op, dv and real
;                 Removed COMMON block.
;                 Added output of timestamped version of OBSTBL.
;                 Changed format of timestamp.
;               Version 0.3, 23/03/05, MKC
;                 Added TIMESTAMP versions of DV and REAL.
;                 Added command store check.
;                 Used eis cpt command store.
;                 Added JSIDE keyword.
;               Version 0.4, 03/04/05, MKC
;                 Added TIMESTAMP keyword.
;               Version 0.5, 16/05/05, MKC
;                 Changed eis cpt command store arguments.
;               Version 0.6, 13/09/05, MKC
;                 Added PASS keyword.
;                 Changed so that only produces one output version.
;                 Changed TIMESTAMP keyword to STAMP.
;               Version 0.7, 16/09/05, MKC
;                 Changed behaviour of STAMP keyword.
;                 Added data rate file processing.
;               Version 0.8, 07/10/05, MKC
;                 Moved command store check.
;                 Removed JSIDE keyword.
;               Version 0.9, 20/05/06, MKC
;                 Added argument check.
;               Version 1.0, 20/08/06, MKC
;                 Changed arguments.
;               Version 1.1, 03/10/06, MKC
;                 Changed upload structure.
;                 Changed arguments.
;                 Changed TIMESTAMP keyword to STAMP.
;                 Changed names of internal obstbl files.
;               Version 1.2, 08/02/07, MKC
;                 Added jside argument to control JSIDE file output.
;               Version 1.3, 01/05/07, MKC
;                 Added orl argument.
;                 Replaced eis cpt command store with orl object.
;                 Added TEST keyword to ORL output.
;               Version 1.4, 26/06/07, MKC
;                 Removed "test_" from ORL and DR output file names for jside=2
;               Version 1.5, 26/02/08, MKC
;                 Replace stamp with OBSTBL and ORL stamps.
;               Version 1.6, 01/07/08, MKC
;                 Used INTERNAL keyword for outputs.
;               Version 1.7, 01/10/08, MKC
;                 Change so that outputs external OBSTBL if test set
;                 Output OBSTBL and ORL files to LATEST directory.
;
; Version     : 1.7, 01/10/08
;-
;**********************************************************

FUNCTION eis_cpt_complete, orl, obstbl_stamp, orl_stamp, jside

  ; output internal versions of OBSTBL and OBSTBL_MAP

  IF jside EQ 1 THEN IF NOT eis_cpt_obstbl(/OUTPUT, STAMP='internal', /INTERNAL) THEN GOTO, error

  ; output JSIDE versions of files

  ; output timestamped versions of OBSTBL and OBSTBL_MAP

  IF NOT eis_cpt_obstbl(/OUTPUT, STAMP=obstbl_stamp) THEN GOTO, error

  ; output ORL file with timestamp
  ; NB ORL test output has LOAD OBSTBL REAL command sequence commented out

  IF NOT orl->output(STAMP=orl_stamp, TEST=jside EQ 2) THEN GOTO, error

  ; output 'latest' versions of OBSTBL and ORL

  IF NOT eis_cpt_obstbl(/OUTPUT, STAMP=obstbl_stamp, /LATEST) THEN GOTO, error

  IF NOT orl->output(STAMP=orl_stamp, TEST=jside EQ 2, /LATEST) THEN GOTO, error

  ; output data rate file with timestamp

  IF NOT eis_cpt_data_rate(/OUTPUT, STAMP=obstbl_stamp) THEN GOTO, error

  ; return finished OK flag

  RETURN, 1

error :

  ; issue routine name

  MESSAGE, 'ERROR', /INFORMATIONAL

  ; return error flag

  RETURN, 0

END





