SUBROUTINE TG_SC2D ( kray, mxrpt, mxrptsz, mxdatv, expdesc,
     +                       nmrpts, lenrpts, nmdatval, dataval, nr,
     +                       iret )
C************************************************************************
C* TG_SC2D                                                              *
C*                                                                      *
C* This subroutine gets the tide elevation series data from the arrays	*
C* holding the decoded Section 3 data and stores these data into the	*
C* interface arrays.							*
C*                                                                      *
C*                                                                      *
C* TG_SC2D ( KRAY, MXRPT, MXRPTSZ, MXDATV, EXPDESC, NMRPTS, LENRPTS, 	*
C*           NMDATVAL, DATAVAL, NR, IRET )				*
C*                                                                      *
C*                                                                      *
C* INPUT PARAMETERS:                                                    *
C*	KRAY ( MXDATV)	INTGEGER	Array locations indicate which	*
C*					descriptors in expdesc have	*
C*					already been processed		*
C*	MXRPT		INTEGER		Maximum number of reports	*
C*					expected in message		*
C*	MXRPTSZ		INTEGER		Maximum report size expected	*
C*	MXDATV		REAL		Maximum number of data values	*
C*					expected in report 		*
C*	EXPDESC	(MXDATV)						*
C*			CHAR*		List of descriptors which are in*
C*				        a one-to-one correspondece with	*
C*					data values in dataval array	*
C*	NMRPTS		INTEGER		Number of reports in CREX msg	*
C*									*
C*	LENRPTS (NMRPTS)						*
C*	                INTEGER		Array to store the length of	*
C*					each report			* 
C*                                                                      *
C*	NMDATVAL	INTEGER		Number of data values in	*
C*					Section 2 of CREX message	*
C*									*
C*	DATAVAL (MXRPT,MXDATV)						*
C*			INTEGER		Array to hold the Section 2	*
C*					decoded data values		*
C*	NR		INTEGER		Pointer to where to get the data*
C*					in arrays for current report	*
C*									*
C* OUTPUT PARAMETERS:                                                   *
C*	RIVALS(IRNTID)	REAL		Number of layers in the tide    *
C*					elevation series		*
C*	RIVALS(IRTERC)	REAL		Tidal elevation with respect to	*
C*					local chart datum		*
C*	RIVALS(IRMRTE)	REAL		Meteorological residual tidal	*
C*					elevation (surge or offset)	*
C*	IRET		INTEGER		Return code			*
C*					0 = Normal return		*
C*					1 = Problems			*
C*                                                                      *
C**                                                                     *
C* Log:                                                                 *
C* R. Hollern/NCEP	8/00						*
C************************************************************************
        INCLUDE 	'GEMPRM.PRM'
        INCLUDE 	'tgcmn.cmn'
C* 
        REAL*8    	dataval ( mxrpt, mxdatv )
C*
        INTEGER   	lenrpts ( mxrpt )
        INTEGER   	kray ( mxdatv )
C*
        CHARACTER       expdesc ( mxdatv )*6
C*
        REAL            rval
        INTEGER         ival
        CHARACTER       cval*8,   misng*8
        CHARACTER   	mdescr*6
        LOGICAL   tdata
C*
	DATA  misng / '////////' /
C------------------------------------------------------------------------
        iret = 0
        logflg = 0
        rval = RMISSD
        irepflg = 1
        mm = 0
        nn = 0
C
	tdata = .true.
C
C*	Table B units for tidal data are numeric.
C
	idatty = 0
C
C
        DO WHILE ( tdata )
C
C*	   Tidal elevation with respect to local chart datum.
C
	   mdescr = 'B22038'
C
           CALL TG_GETV( kray, irepflg, mdescr, nr, loglvl, mxrpt, 
     +                  mxrptsz, mxdatv, nmrpts, expdesc, nmdatval,
     +                  dataval, idatty, rval, cval, iret )
C
	    IF ( iret .eq. 0  ) THEN
	       IF ( cval .eq. misng ) THEN
	          nn = nn + 1
	       ELSE
	          nn = nn + 1
                  rivals ( irterc( nn ) ) = rval
	       END IF
	    ELSE
C
C*	       Number of tidal data values.
C
	       IF ( nn .gt. 0 ) THEN
	          rivals ( irntid ) = nn
	          iret = 0
	       END IF
	       RETURN
	    END IF
C
C*	   Meteorological residual tidal elevation.
C
	   mdescr = 'B22039'
C
           CALL TG_GETV( kray, irepflg, mdescr, nr, loglvl, mxrpt, 
     +                  mxrptsz, mxdatv, nmrpts, expdesc, nmdatval,
     +                  dataval, idatty, rval, cval, iret )
C
	    IF ( iret .eq. 0  ) THEN
	       IF ( cval .eq. misng ) THEN
	          mm = mm + 1
	       ELSE
	          tdata = .true.
	          mm = mm + 1
	          rivals ( irmrte( mm ) ) = rval
	       END IF
	    ELSE
	       IF ( nn .gt. 0 ) THEN
	          rivals ( irntid ) = nn
	          iret = 0
	       END IF
	       RETURN
	    END IF
	END DO
C*
	RETURN
	END