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