SUBROUTINE TG_SRPT ( nr, mxrpt, lenrpts, mxrptsz, rawrpt, + tszrpt, tidrpt, iret ) C************************************************************************ C* TG_SRPT * C* * C* This subroutine sets tszrpt to the length of the current tide report * C* and stores the report in the tidrpt array. It also writes the first * C* 42 characters of the report to the log message file. * C* * C* TG_SRPT ( NR, MXRPT, LENRPTS, MXRPTSZ, RAWRPT, TSZRPT, TIDRPT, IRET) * C* * C* INPUT PARAMETERS: * C* NR INTEGER Pointer to current report * C* MXRPT INTEGER Maximum number of reports * C* expected in message * C* LENRPTS (NMRPTS) * C* INTEGER Array to hold the length of * C* each report * C* MXRPTSZ INTEGER Maximum report size expected * C* NMRPTS INTEGER Number of reports in CREX msg * C* * C* RAWRPT (MXRPT, MXRPTSZ) * C* CHAR* Array to hold raw reports * C* * C* * C* Output parameters: * C* TSZRPT INTEGER Current report size * C* TIDRPT CHAR* Current report * 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 'BRIDGE.PRM' INCLUDE 'tgcmn.cmn' C* INTEGER tszrpt INTEGER lenrpts ( mxrpt ) C* CHARACTER tidrpt*(*) C* CHARACTER rawrpt ( mxrpt, mxrptsz )*8 C----------------------------------------------------------------------- iret = 0 C tszrpt = lenrpts ( nr ) C C* Store report in character*8 array rawrpt. C nwords = tszrpt / 8 C irem = MOD ( tszrpt, 8 ) C IF ( irem .ne. 0 ) nwords = nwords + 1 C n1 = 1 n2 = 8 C DO j = 1, nwords C IF ( j .lt. nwords ) THEN tidrpt ( n1:n2 ) = rawrpt ( nr,j ) ELSE mm = tszrpt - n1 + 1 tidrpt ( n1:tszrpt ) = rawrpt ( nr,j )(1:mm) END IF C n1 = n1 + 8 n2 = n2 + 8 C END DO C C* Write first 42 characters of raw report to LOG file. C isz = MIN ( 42, tszrpt ) loglvl = 2 CALL DC_WLOG ( loglvl, ' ', 1, tidrpt ( 1:isz ), + ierwlg ) C* RETURN END