34 SUBROUTINE sntbbe ( IFXYN, LINE, MXMTBB,
35 . NMTBB, IMFXYN, CMSCL, CMSREF, CMBW,
36 . CMUNIT, CMMNEM, CMDSC, CMELEM )
39 CHARACTER*200 TAGS(10), WKTAG
40 CHARACTER*128 BORT_STR1, BORT_STR2
42 CHARACTER CMELEM(120,*)
43 CHARACTER CMUNIT(24,*)
44 CHARACTER CMSREF(12,*)
46 CHARACTER CMSCL(4,*), CMBW(4,*)
53 IF ( nmtbb .GE. mxmtbb )
GOTO 900
58 imfxyn( nmtbb ) = ifxyn
62 CALL parstr ( line, tags, 10, ntag,
'|', .false. )
63 IF ( ntag .LT. 4 )
THEN
64 bort_str2 =
' HAS TOO FEW FIELDS'
70 tags(2) = adjustl( tags(2) )
71 IF ( tags(2) .EQ.
' ' )
THEN
72 bort_str2 =
' HAS MISSING SCALE FACTOR'
75 tags(2)(1:4) = adjustr( tags(2)(1:4) )
77 cmscl( ii, nmtbb ) = tags(2)(ii:ii)
82 tags(3) = adjustl( tags(3) )
83 IF ( tags(3) .EQ.
' ' )
THEN
84 bort_str2 =
' HAS MISSING REFERENCE VALUE'
87 tags(3)(1:12) = adjustr( tags(3)(1:12) )
89 cmsref( ii, nmtbb ) = tags(3)(ii:ii)
94 tags(4) = adjustl( tags(4) )
95 IF ( tags(4) .EQ.
' ' )
THEN
96 bort_str2 =
' HAS MISSING BIT WIDTH'
99 tags(4)(1:4) = adjustr( tags(4)(1:4) )
101 cmbw( ii, nmtbb ) = tags(4)(ii:ii)
106 IF ( ntag .GT. 4 )
THEN
107 tags(5) = adjustl( tags(5) )
109 cmunit( ii, nmtbb ) = tags(5)(ii:ii)
113 cmunit( ii, nmtbb ) =
' '
121 cmmnem( ii, nmtbb ) =
' '
124 cmelem( ii, nmtbb ) =
' '
126 IF ( ntag .GT. 5 )
THEN
128 CALL parstr ( wktag, tags, 10, ntag,
';', .false. )
129 IF ( ntag .GT. 0 )
THEN
131 tags(1) = adjustl( tags(1) )
133 IF ( ( tags(1) .NE.
' ' ) .AND.
134 . (
nemock( tags(1) ) .NE. 0 ) )
THEN
135 bort_str2 =
' HAS ILLEGAL MNEMONIC'
139 cmmnem( ii, nmtbb ) = tags(1)(ii:ii)
142 IF ( ntag .GT. 1 )
THEN
144 tags(2) = adjustl( tags(2) )
145 cmdsc( nmtbb ) = tags(2)(1:4)
147 IF ( ntag .GT. 2 )
THEN
149 tags(3) = adjustl( tags(3) )
151 cmelem( ii, nmtbb ) = tags(3)(ii:ii)
157 900
CALL bort(
'BUFRLIB: SNTBBE - OVERFLOW OF MERGED ARRAYS')
158 901 bort_str1 =
'BUFRLIB: SNTBBE - CARD BEGINNING WITH: ' //
160 CALL bort2(bort_str1,bort_str2)
subroutine bort2(STR1, STR2)
Log two error messages and abort application program.
subroutine bort(STR)
Log one error message and abort application program.
function nemock(NEMO)
This function checks a mnemonic to verify that it has a length of between 1 and 8 characters and that...
subroutine parstr(STR, TAGS, MTAG, NTAG, SEP, LIMIT80)
Parse a string containing one or more substrings into an array of substrings.
subroutine sntbbe(IFXYN, LINE, MXMTBB, NMTBB, IMFXYN, CMSCL, CMSREF, CMBW, CMUNIT, CMMNEM, CMDSC, CMELEM)
This subroutine stores an entry that was previously read from an ASCII master Table B file into a set...