26 SUBROUTINE sntbfe ( LUNT, IFXYN, LINE )
31 character*160 cline, tags(4), cdstr(2), adsc(10), cval(25)
32 character*128 bort_str1, bort_str2
33 character*6
adn30, clemon, cdsc
34 dimension idfxy(10), idval(25)
51 DO WHILE ( .NOT. done )
53 IF (
igetntbl( lunt, cline ) .NE. 0 )
THEN
54 bort_str2 =
' IS INCOMPLETE'
58 CALL
parstr( cline, tags, 4, ntag,
'|', .false. )
59 IF ( ( ntag .LT. 2 ) .OR. ( ntag .GT. 3 ) )
THEN
60 bort_str2 =
' HAS BAD CARD'
64 IF ( ntag .EQ. 2 )
THEN
68 CALL
parstr( tags(2), cdstr, 2, ntag,
'=', .false. )
69 IF ( ntag .NE. 2 )
THEN
70 bort_str2 =
' HAS BAD DEPENDENCY CARD'
76 CALL
parstr( cdstr(1), adsc, 10, nidfxy,
',', .false. )
77 IF ( nidfxy .EQ. 0 )
THEN
78 bort_str2 =
' HAS BAD DEPENDENCY LIST (FXY)'
82 IF (
igetfxy( adsc(ii), cdsc ) .NE. 0 )
THEN
83 bort_str2 =
' HAS BAD DEPENDENCY (FXY)'
86 idfxy(ii) =
ifxy( cdsc )
91 CALL
parstr( cdstr(2), cval, 25, nidval,
',', .false. )
92 IF ( nidval .EQ. 0 )
THEN
93 bort_str2 =
' HAS BAD DEPENDENCY LIST (VAL)'
97 CALL
jstchr( cval(ii), ier )
98 CALL
strnum( cval(ii), ival )
107 ipt = index( tags(2),
' >' )
108 IF ( ipt .EQ. 0 )
THEN
114 tags(2)(ipt+1:ipt+1) =
' '
117 CALL
jstchr( tags(2), ier )
118 CALL
strnum( tags(2), ival )
122 CALL
jstchr( tags(3), ier )
125 DO WHILE ( ( lt3 .GT. 0 ) .AND. ( .NOT. lstnblk ) )
126 IF ( tags(3)(lt3:lt3) .NE.
' ' )
THEN
136 IF ( ( nidfxy .EQ. 0 ) .AND. ( nidval .EQ. 0 ) )
THEN
137 CALL
strtbfe( ifxyn, ival, tags(3), lt3, -1, -1 )
141 CALL
strtbfe( ifxyn, ival, tags(3), lt3,
142 + idfxy(ii), idval(jj) )
153 900 clemon =
adn30( ifxyn, 6 )
154 WRITE(bort_str1,
'("BUFRLIB: SNTBFE - TABLE F ENTRY FOR' //
155 .
' ELEMENT DESCRIPTOR: ",5A)')
156 . clemon(1:1),
'-', clemon(2:3),
'-', clemon(4:6)
157 CALL
bort2(bort_str1,bort_str2)
subroutine parstr(STR, TAGS, MTAG, NTAG, SEP, LIMIT80)
THIS SUBROUTINE PARSES A STRING CONTAINING ONE OR MORE SUBSTRINGS INTO AN ARRAY OF SUBSTRINGS...
subroutine bort2(STR1, STR2)
This subroutine calls subroutine errwrt() to log two error messages, then calls subroutine bort_exit(...
subroutine strnum(STR, NUM)
THIS SUBROUTINE DECODES AN INTEGER FROM A CHARACTER STRING.
function igetfxy(STR, CFXY)
THIS FUNCTION LOOKS FOR AND RETURNS A VALID FXY NUMBER FROM WITHIN THE GIVEN INPUT STRING...
void strtbfe(f77int *, f77int *, char *, f77int *, f77int *, f77int *)
This subroutine adds a new entry to the internal memory structure for storage of master Code/Flag tab...
character *(*) function adn30(IDN, L30)
This function converts a descriptor from its bit-wise (integer) representation to its 5 or 6 characte...
function ifxy(ADSC)
THIS FUNCTION RETURNS THE INTEGER CORRESPONDING TO THE BIT-WISE REPRESENTATION OF AN INPUT CHARACTER ...
function igetntbl(LUNT, LINE)
THIS FUNCTION GETS THE NEXT LINE FROM THE ASCII MASTER TABLE FILE SPECIFIED BY LUNT, IGNORING ANY BLANK LINES OR COMMENT LINES IN THE PROCESS.
subroutine jstchr(STR, IRET)
THIS SUBROUTINE LEFT-JUSTIFIES (I.E.
subroutine sntbfe(LUNT, IFXYN, LINE)
THIS SUBROUTINE READS A COMPLETE ENTRY (CORRESPONDING TO THE INPUT FXY NUMBER) FROM AN ASCII MASTER C...