27 COMMON /usrstr/ nnod,ncon,nods(20),nodc(10),ivls(10),kons(10)
31 CHARACTER*128 BORT_STR1,BORT_STR2
44 IF(len(str).GT.80)
GOTO 900
52 CALL parstr(ust,utg,maxusr,ntot,
' ',.true.)
59 CALL parutg(lun,io,utg(n),nod,kon,val)
63 IF(ncon.GT.maxcon)
GOTO 901
66 ivls(ncon) = nint(val)
70 IF(nnod.GT.maxnod)
GOTO 902
80 IF(nodc(i).GT.nodc(j))
THEN
102 IF(kons(n).EQ.5)
THEN
104 IF(n.NE.ncon)
GOTO 904
112 IF(.NOT.bump .AND. nnod.EQ.0)
GOTO 905
113 IF(nnod.GT.i1)
GOTO 906
117 IF(nods(i).GT.0)
THEN
118 IF(irpc.LT.0) irpc =
lstjpb(nods(i),lun,
'RPC')
119 IF(irpc.NE.
lstjpb(nods(i),lun,
'RPC').AND.iac.EQ.0)
GOTO 907
127 900
WRITE(bort_str1,
'("BUFRLIB: PARUSR - INPUT STRING (",A,") HAS ")')
129 WRITE(bort_str2,
'(18X,"LENGTH (",I4,"), > LIMIT OF 80 CHAR.")')
131 CALL bort2(bort_str1,bort_str2)
132 901
WRITE(bort_str1,
'("BUFRLIB: PARUSR - THE NUMBER OF CONDITION '//
133 .
'NODES IN INPUT STRING")')
134 WRITE(bort_str2,
'(18X,A,") EXCEEDS THE MAXIMUM (",I3,")")')
136 CALL bort2(bort_str1,bort_str2)
137 902
WRITE(bort_str1,
'("BUFRLIB: PARUSR - THE NUMBER OF STORE NODES '//
138 .
'IN INPUT STRING")')
139 WRITE(bort_str2,
'(18X,A,") EXCEEDS THE MAXIMUM (",I3,")")')
141 CALL bort2(bort_str1,bort_str2)
142 903
WRITE(bort_str1,
'("BUFRLIB: PARUSR - BUMP NODE (^ IN INPUT '//
144 WRITE(bort_str2,
'(18X,"IS SPECIFIED FOR A BUFR FILE OPEN FOR '//
145 .
'INPUT, THE BUFR FILE MUST BE OPEN FOR OUTPUT")')
146 CALL bort2(bort_str1,bort_str2)
147 904
WRITE(bort_str1,
'("BUFRLIB: PARUSR - INPUT STRING (",A,") '//
149 WRITE(bort_str2,
'(18X,"CONDITIONAL NODES IN ADDITION TO BUMP '//
150 .
'NODE - THE BUMP MUST BE ON THE INNER NODE")')
151 CALL bort2(bort_str1,bort_str2)
152 905
WRITE(bort_str1,
'("BUFRLIB: PARUSR - INPUT STRING (",A,") HAS")')
154 WRITE(bort_str2,
'(18X,"NO STORE NODES")')
155 CALL bort2(bort_str1,bort_str2)
156 906
WRITE(bort_str1,
'("BUFRLIB: PARUSR - INPUT STRING (",A,")")') str
157 WRITE(bort_str2,
'(18X,"HAS",I5," STORE NODES (MNEMONICS) - THE '//
158 .
'LIMIT {THIRD (INPUT) ARGUMENT} IS",I5)') nnod,i1
159 CALL bort2(bort_str1,bort_str2)
160 907
WRITE(bort_str1,
'("BUFRLIB: PARUSR - INPUT STRING (",A,") '//
162 WRITE(bort_str2,
'(18X,"STORE NODES (MNEMONICS) THAT ARE IN MORE'//
163 .
' THAN ONE REPLICATION GROUP")')
164 CALL bort2(bort_str1,bort_str2)
subroutine bort2(STR1, STR2)
Log two error messages and abort application program.
function lstjpb(NODE, LUN, JBTYP)
This function searches backwards, beginning from a given node within the jump/link table,...
subroutine parstr(STR, TAGS, MTAG, NTAG, SEP, LIMIT80)
Parse a string containing one or more substrings into an array of substrings.
subroutine parusr(STR, LUN, I1, IO)
Initate the process to parse out mnemonics from a character string.
subroutine parutg(LUN, IO, UTG, NOD, KON, VAL)
Parse a mnemonic from a character string.