	PRO LOAD_DATA, RASTER, DATAWIN, EXPOSURE, DATA
;+
; Project     : SOHO - CDS
;
; Name        : LOAD_DATA
;
; Purpose     : Loads science data into raster arrays.
;
; Explanation : Stores the decompressed science data from a single exposure
;		into the window arrays within the raster structure.
;
; Use         : LOAD_DATA, RASTER, DATAWIN, EXPOSURE, DATA
;
; Inputs      : RASTER	 = Structure variable defined by FORM_RASTER.
;		DATAWIN	 = Data window array defined by FORM_RASTER.
;		EXPOSURE = Exposure number.
;		DATA	 = Decompressed science data from DECOMP_SCIENCE.
;
; Opt. Inputs : None.
;
; Outputs     : DATAWIN	 = This variable is updated by this routine.
;
; Opt. Outputs: None.
;
; Keywords    : None.
;
; Calls       : None.
;
; Common      : None.
;
; Restrictions: None.
;
; Side effects: None.
;
; Category    : Data Handling, Telemetry.
;
; Prev. Hist. : Taken from earlier routine called READ_VDS_RASTER, written
;		by William Thompson, GSFC, February 1993.
;
; Written     : William Thompson, GSFC, 5 April 1993.
;
; Modified    : Version 1, William Thompson, GSFC, 5 April 1993.
;		Version 2, William Thompson, GSFC, 16 November 1993.
;			Split off DATAWIN from RASTER structure.
;			Force orientation to be by column.
;		Version 3, William Thompson, GSFC, 19 August 1994
;			Implemented WIDTH1 and WIDTH2 in RASTER structure.
;			No longer force orientation to be by column.
;
; Version     : Version 3, 19 August 1994
;-
;
	ON_ERROR, 2
;
;  Check the number of parameters.
;
	IF N_PARAMS() NE 4 THEN MESSAGE,	$
		'Syntax:  LOAD_DATA, RASTER, DATAWIN, EXPOSURE, DATA'
;
;
;  Parse out the individual windows, depending on whether the instrument is NIS
;  or GIS.
;
	START = 0
	FOR I_WINDOW = 0,RASTER.HEADER.NWINDOWS-1 DO BEGIN
;
;  GIS windows are one-dimensional.
;
		IF RASTER.INSTRUMENT EQ 'GIS' THEN BEGIN
			N1 = RASTER.WIDTH1(I_WINDOW)
			DATAWIN(0,I_WINDOW,EXPOSURE) = DATA(START:START+N1-1)
			START = START + N1
;
;  VDS windows are two-dimensional.
;
		END ELSE BEGIN
			N1 = LONG(RASTER.WIDTH1(I_WINDOW))
			N2 = LONG(RASTER.WIDTH2(I_WINDOW))
			DATAWIN(0,0,I_WINDOW,EXPOSURE) =	$
				REFORM(DATA(START:START+N1*N2-1),N1,N2)
			START = START + N1*N2
		ENDELSE
	ENDFOR
;
	RETURN
	END
