120 SUBROUTINE parutg(LUN,IO,UTG,NOD,KON,VAL)
125 COMMON /utgprm/ picky
128 CHARACTER*128 BORT_STR1,BORT_STR2
130 CHARACTER*3 ATYP,BTYP
132 dimension btyp(8),iok(8)
136 DATA btyp /
'SUB',
'SEQ',
'REP',
'RPC',
'RPS',
'DRB',
'DRP',
'DRS'/
137 DATA iok / -1 , -1 , -1 , -1 , -1 , 0 , 0 , 0 /
156 ltg = min(20,len(utg))
166 IF((utg(1:1).EQ.
'<').AND.(index(utg(3:),
'>').NE.0))
THEN
172 IF(utg(i:i).EQ.
' ')
GOTO 1
174 IF(utg(i:i).EQ.cond(j))
THEN
187 DO nod=inod,
isc(inod)
188 IF(atag.EQ.
tag(nod))
GOTO 2
205 IF(kon.EQ.0 .AND. (io.EQ.0.OR.atag.EQ.
'NUL'.OR..NOT.picky))
THEN
225 IF(
typ(nod-1).NE.
'DRP' .AND.
typ(nod-1).NE.
'DRS')
GOTO 901
226 ELSEIF(kon.NE.6)
THEN
230 IF(atyp.EQ.btyp(i) .AND. io.GT.iok(i))
GOTO 902
238 CALL strnum(utg(icv:ltg),num)
239 IF(num.LT.0)
GOTO 903
247900
WRITE(bort_str1,
'("BUFRLIB: PARUTG - TRYING TO WRITE A MNEMONIC'//
248 .
' (",A,") WHICH DOES NOT EXIST IN SUBSET TABLE")') atag
249 WRITE(bort_str2,
'(18X,"(UPON INPUT, IT CONTAINED THE CONDITION '//
250 .
'CHARACTER ",A,")")') utg(icv-1:icv-1)
251 CALL bort2(bort_str1,bort_str2)
252901
WRITE(bort_str1,
'("BUFRLIB: PARUTG - BUMP NODE (MNEMONIC ",A,")'//
253 .
' MUST REFER TO A DELAYED REPLICATION SEQUENCE, HERE TYPE IS "'//
254 .
',A)') atag,
typ(nod-1)
256902
WRITE(bort_str1,
'("BUFRLIB: PARUTG - ILLEGAL NODE TYPE: ",A," '//
257 .
'FOR MNEMONIC ",A)') atyp,atag
259903
WRITE(bort_str1,
'("BUFRLIB: PARUTG - CONDITION VALUE IN '//
260 .
'MNEMONIC ",A," ILLEGAL BECAUSE ALL OTHER CHARACTERS IN '//
261 .
'MNEMONIC MUST BE NUMERIC")') utg
subroutine bort2(STR1, STR2)
This subroutine calls subroutine errwrt() to log two error messages, then calls subroutine bort_exit(...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
This module contains array and variable declarations used to store the internal jump/link table.
integer, dimension(:), allocatable isc
Scale factors corresponding to tag and typ:
character *3, dimension(:), allocatable typ
Type indicators corresponding to tag:
character *10, dimension(:), allocatable tag
Mnemonics in the jump/link table.
subroutine parutg(LUN, IO, UTG, NOD, KON, VAL)
THIS SUBROUTINE PARSES A USER-SPECIFIED TAG (MNEMONIC) (UTG) THAT REPRESENTS A VALUE EITHER BEING DEC...
subroutine strnum(STR, NUM)
This subroutine decodes an integer from a character string.