SUBROUTINE CX_DLYR ( ist, cxrpt, nmrpts, mxrpt, + mxdatv, nn, numrpl, dataval, iret ) C************************************************************************ C* CX_DLYR * C* * C* This subroutine gets the data item from Section 2 whose value is the * C* number of replications of the data values corresponding to the xx * C* descriptors set referred to in the current delayed replication * C* descriptor. * C* * C* CX_DLYR ( IST, CXRPT, NMRPTS, MXRPT, MXDATV, NN, NUMRP1, DATAVAL, * C* IRET ) * C* * C* Input parameters: * C* CXRPT CHAR* Current CREX report * C* NMRPTS INTEGER Array index to reference the * C* the current report in dataval * C* MXRPT INTEGER Maximum number of reports * C* expected in message * C* MXDATV INTEGER Maximum number of data values * C* expected in a report * C* * C* Input and Output parameters: * C* IST INTEGER Pointer to location in cxrpt of * C* where to get the next data item * C* * C* Output parameters: * C* NUMRPL INTEGER Data value from Section 2 which * C* is set to the number of * C* replications for the set of * C* descriptors xx referred to in * C* the current delayed replication * C* descriptor. * C* NN INTEGER Array index used to store the * C* numrpl value in dataval * C* * C* DATAVAL (MXRPT,MXDATV) * C* REAL Array to hold the Section 2 * C* decoded data values * C* * C* IRET INTEGER Return code * C* 0 = normal return * C* 1 = fatal error * C* * C** * C* Log: * C* R. Hollern/NCEP 8/03 * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'cxcmn.cmn' C* REAL*8 dataval ( mxrpt, mxdatv ) C* INTEGER mxdatv C* CHARACTER*(*) cxrpt CHARACTER odescr*6 CHARACTER expdesc ( mxdatv )*6 CHARACTER ctemp*8, blanks*8, cval*8 CHARACTER field*4 C* LOGICAL bbb C----------------------------------------------------------------------- iret = 0 C C* Skip leading blank(s) before start of delayed replication group. C bbb = .true. C DO WHILE ( bbb ) IF ( cxrpt(ist:ist) .eq. ' ' ) THEN ist = ist + 1 ELSE bbb = .false. END IF END DO C C* Decode integer data and convert to real. C field(1:4) = cxrpt(ist:ist+3) C CALL ST_INTG ( field(1:4), ival, ier ) C IF ( ier .eq. 0 ) THEN numrpl = ival nn = nn + 1 dataval ( nmrpts, nn ) = ival ELSE iret = 1 RETURN END IF C ist = ist + 3 C* RETURN END