22 COMMON /reptab/ idnr(5,2),typs(5,2),reps(5,2),lens(5)
24 CHARACTER*128 BORT_STR1,BORT_STR2
25 CHARACTER*80 CARD,SEQS
26 CHARACTER*12 ATAG,TAGS(250)
27 CHARACTER*8 NEMO,NEMA,NEMB
28 CHARACTER*6 ADN30,CLEMON
54 CALL nemtab(lun,nemo,idn,tab,iseq)
55 IF(tab.NE.
'D')
GOTO 900
56 CALL parstr(seqs,tags,maxtgs,ntag,
' ',.true.)
57 IF(ntag.EQ.0 )
GOTO 901
67 IF(atag(1:1).EQ.reps(i,1))
THEN
76 IF(atag(j:j).EQ.reps(i,2))
THEN
77 IF(j.EQ.maxtag)
GOTO 902
88 CALL strnum(atag(j+1:maxtag),numr,ier)
89 IF(i.EQ.1 .AND. numr.LE.0 )
GOTO 903
90 IF(i.EQ.1 .AND. numr.GT.255)
GOTO 904
91 IF(i.NE.1 .AND. numr.NE.0 )
GOTO 905
105 IF(iret.EQ.-1)
GOTO 906
106 IF(iret.EQ.-2)
GOTO 907
107 CALL nemtab(lun,atag,idn,tab,iret)
116 IF(tab.EQ.
'B' .AND. irep.NE.0)
GOTO 908
117 IF(atag(1:1).EQ.
'.')
THEN
125 IF(n.EQ.ntag)
GOTO 910
126 nemb = tags(n+1)(1:8)
128 CALL numtab(lun,idn,nema,tab,itab)
129 CALL nemtab(lun,nemb,jdn,tab,iret)
131 IF(nema.NE.atag)
GOTO 909
132 IF(tab.NE.
'B')
GOTO 911
141 IF(irep.GT.0)
CALL pktdd(iseq,lun,idnr(irep,1)+numr,iret)
142 IF(iret.LT.0)
GOTO 913
143 CALL pktdd(iseq,lun,idn,iret)
144 IF(iret.LT.0)
GOTO 914
152 900
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
153 WRITE(bort_str2,
'(18X,"MNEMONIC ",A," IS NOT A TABLE D ENTRY '//
154 .
'(UNDEFINED, TAB=",A,")")') nemo,tab
155 CALL bort2(bort_str1,bort_str2)
156 901
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
157 WRITE(bort_str2,
'(18X,"TABLE D SEQUENCE (PARENT) MNEMONIC ",A,'//
158 .
'" DOES NOT CONTAIN ANY CHILD MNEMONICS")') nemo
159 CALL bort2(bort_str1,bort_str2)
160 902
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
161 WRITE(bort_str2,
'(18X,"TABLE D SEQUENCE (PARENT) MNEMONIC ",A,'//
162 .
'" CONTAINS A BADLY FORMED CHILD MNEMONIC ",A)') nemo,tags(n)
163 CALL bort2(bort_str1,bort_str2)
164 903
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
165 WRITE(bort_str2,
'(9X,"TBL D MNEM. ",A," CONTAINS REG. REPL. '//
166 .
'CHILD MNEM. ",A," W/ INVALID # OF REPLICATIONS (",I3,") AFTER'//
167 .
' 2ND QUOTE")') nemo,tags(n),numr
168 CALL bort2(bort_str1,bort_str2)
169 904
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
170 WRITE(bort_str2,
'(18X,"TBL D MNEM. ",A," CONTAINS REG. REPL. '//
171 .
'CHILD MNEM. ",A," W/ # OF REPLICATIONS (",I3,") > LIMIT OF '//
172 .
'255")') nemo,tags(n),numr
173 CALL bort2(bort_str1,bort_str2)
174 905
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
175 WRITE(bort_str2,
'(18X,"TBL D MNEM. ",A," CONTAINS DELAYED REPL.'//
176 .
' CHILD MNEM. ",A," W/ # OF REPL. (",I3,") SPECIFIED - A NO-'//
177 .
'NO")') nemo,tags(n),numr
178 CALL bort2(bort_str1,bort_str2)
179 906
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
180 WRITE(bort_str2,
'(18X,"TABLE D (PARENT) MNEMONIC ",A," CONTAINS'//
181 .
' A CHILD MNEMONIC ",A," NOT BETWEEN 1 & 8 CHARACTERS")')
183 CALL bort2(bort_str1,bort_str2)
184 907
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
185 WRITE(bort_str2,
'(18X,"TABLE D (PARENT) MNEMONIC ",A," CONTAINS'//
186 .
' A CHILD MNEMONIC ",A," WITH INVALID CHARACTERS")') nemo,tags(n)
187 CALL bort2(bort_str1,bort_str2)
188 908
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
189 WRITE(bort_str2,
'(18X,"TABLE D (PARENT) MNEMONIC ",A," CONTAINS'//
190 .
' A REPLICATED CHILD TABLE B MNEMONIC ",A," - A NO-NO")')
192 CALL bort2(bort_str1,bort_str2)
193 909
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
194 WRITE(bort_str2,
'(18X,"TBL D (PARENT) MNEM. ",A," CONTAINS AN '//
195 .
'INVALID ''FOLLOWING VALUE'' MNEMONIC ",A,"(SHOULD BE ",A,")")')
197 CALL bort2(bort_str1,bort_str2)
198 910
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
199 WRITE(bort_str2,
'(18X,"TBL D (PARENT) MNEM. ",A," CONTAINS A '//
200 .
'''FOLLOWING VALUE'' MNEMONIC WHICH IS LAST IN THE '//
202 CALL bort2(bort_str1,bort_str2)
203 911
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
204 WRITE(bort_str2,
'(18X,"TBL D (PARENT) MNEM. ",A,", THE MNEM. ",'//
205 .
'A," FOLLOWING A ''FOLLOWING VALUE'' MNEM. IS NOT A TBL B '//
206 .
'ENTRY")') nemo,nemb
207 CALL bort2(bort_str1,bort_str2)
208 912
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
209 WRITE(bort_str2,
'(18X,"TABLE D SEQUENCE (PARENT) MNEMONIC ",A,'//
210 .
'" CONTAINS A CHILD MNEMONIC ",A," NOT FOUND IN ANY TABLE")')
212 CALL bort2(bort_str1,bort_str2)
213 913 clemon = adn30(idnr(irep,1)+numr,6)
214 WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
215 WRITE(bort_str2,
'(9X,"TBL D (PARENT) MNEM. ",A," - BAD RETURN '//
216 .
'FROM PKTDD TRYING TO STORE REPL. DESC. ",A,", SEE PREV. '//
217 .
'WARNING MSG")') nemo,clemon
218 CALL bort2(bort_str1,bort_str2)
219 914
WRITE(bort_str1,
'("BUFRLIB: SEQSDX - CARD READ IN IS: ",A)') card
220 WRITE(bort_str2,
'(9X,"TBL D (PARENT) MNEM. ",A," - BAD RETURN '//
221 .
'FROM PKTDD TRYING TO STORE CHILD MNEM. ",A,", SEE PREV. '//
222 .
'WARNING MSG")') nemo,tags(n)
223 CALL bort2(bort_str1,bort_str2)
subroutine bort2(STR1, STR2)
Log two error messages 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 nemtab(LUN, NEMO, IDN, TAB, IRET)
Get information about a descriptor, based on the mnemonic.
subroutine numtab(LUN, IDN, NEMO, TAB, IRET)
Get information about a descriptor, based on the WMO bit-wise representation of an FXY value.
subroutine parstr(STR, TAGS, MTAG, NTAG, SEP, LIMIT80)
Parse a string containing one or more substrings into an array of substrings.
subroutine pktdd(ID, LUN, IDN, IRET)
Store information about a child mnemonic within the internal arrays.
subroutine rsvfvm(NEM1, NEM2)
This subroutine steps through the "following value" mnemonic NEM1 and, for each "....
subroutine seqsdx(CARD, LUN)
Decode the sequence information from a Table D mnemonic definition.
recursive subroutine strnum(str, num, iret)
Decode an integer from a character string.