SUBROUTINE CX_SC01( lenmsg, crexmsg, jpos, ctbla, ctblds, + iret ) C************************************************************************ C* CX_SC01 * C* * C* This subroutine gets the CREX table descriptor and the CREX Table A * C* reference from Section 1 - the Data description section. * C* * C* CX_SC01 ( LENMSG, CREXMSG, JPOS, CTBLA, CTBLDS, JRET ) * C* * C* Input parameters: * C* LENMSG INTEGER CREX message length * C* CREXMSG CHAR* CREX message * C* * C* Input and output parameters: * C* JPOS INTEGER Points to start of Section 1 on * C* input; to start of 1st data * C* descriptor on output * C* * C* Output parameters: * C* CTBLDS CHAR* CREX table descriptor * C* CTBLA CHAR* 3-digit CREX table A reference * C* IRET INTEGER Return code * C* 0 = normal return * C* 1 = CREX message rejected * C* * C** * C* Log: * C* R. Hollern/NCEP 8/03 * C************************************************************************ INCLUDE 'cxcmn.cmn' C* INTEGER lenmsg, jpos, iret C* LOGICAL blanks C* CHARACTER*(*) crexmsg C* CHARACTER ctbla*4, ctblds*7 C----------------------------------------------------------------------- iret = 0 loglvl = 2 C C* Skip leading blank(s) before start of next group. C blanks = .true. C DO WHILE ( blanks ) IF ( crexmsg(jpos:jpos) .eq. ' ' ) THEN jpos = jpos + 1 ELSE blanks = .false. END IF END DO C C* CREX table descriptor. C ctblds = crexmsg(jpos:jpos+6) C IF ( ctblds(1:1) .ne. 'T' ) THEN C C* Reject message. C iret = 1 logmsg(1:38) = 'CREX Table descriptor Ttteevv problem ' logmsg(39:50) = 'in Section 1' CALL DC_WLOG( loglvl, 'CX', 2, logmsg, ierwlg ) RETURN END IF C jpos = jpos + 8 C C* Skip leading blank(s) before start of next group. C blanks = .true. C DO WHILE ( blanks ) IF ( crexmsg(jpos:jpos) .eq. ' ' ) THEN jpos = jpos + 1 ELSE blanks = .false. END IF END DO C C* CREX table A descriptor. C ctbla = crexmsg(jpos:jpos+3) C IF ( ctbla(1:1) .ne. 'A' ) THEN C C* Reject message. C iret = 1 logmsg = ' ' logmsg(1:32) = 'CREX Table A descriptor problem ' logmsg(33:44) = 'in Section 1' CALL DC_WLOG( loglvl, 'CX', 2, logmsg, ierwlg ) logmsg = ' ' logmsg(1:12) = 'Fatal error ' CALL DC_WLOG( loglvl, 'CX', 2, logmsg, ierwlg ) END IF C jpos = jpos + 5 C* RETURN END