43 character*128 bort_str
44 character*6 cflwopr,
adn30,fxy
54 IF (
itp(node) .GT. 1 )
THEN
55 IF ( node .EQ.
lstnod )
THEN
66 IF (
ntamc .GT. 0 )
THEN
67 nodtam =
lstjpb( node, lun,
'SUB' )
75 IF ( ( idxta .GT. 0 ) .AND. (
nbtm .GT. 0 ) )
THEN
84 cflwopr =
tag(node)(1:3) //
'000'
86 CALL nemtab( lun,
tag(node), idn, tab, nn )
87 IF ( tab .EQ.
'B' )
THEN
89 IF ( fxy(2:3) .EQ.
'33' ) cflwopr =
'222000'
92 IF ( cflwopr .EQ.
'XXXXXX' )
THEN
104 IF ( (
ctco(idxta,jj) .EQ. cflwopr ) .AND.
105 . (
inodtco(idxta,jj) .GE. inode(lun) ) .AND.
106 . (
inodtco(idxta,jj) .LE.
isc(inode(lun)) ) .AND.
107 . (
inodtco(idxta,jj) .LT. node ) )
110 IF ( nodflw .EQ. 0 )
THEN
122 DO WHILE ( ( jj .LE. ntc ) .AND.
123 . (
inodtco(idxta,jj) .GE. inode(lun) ) .AND.
124 . (
inodtco(idxta,jj) .LE.
isc(inode(lun)) ) .AND.
125 . ( nodbmap .EQ. 0 ) )
126 IF (
ctco(idxta,jj) .EQ.
'236000' )
THEN
128 IF (
inodtco(idxta,jj) .EQ. nodflw )
THEN
131 ELSE IF ( (
ctco(idxta,jj) .EQ.
'235000' ) .OR.
132 . (
ctco(idxta,jj) .EQ.
'237255' ) )
THEN
134 ELSE IF ( (
ctco(idxta,jj) .EQ.
'237000' ) .AND.
135 . (
inodtco(idxta,jj) .EQ. nodflw ) .AND.
136 . ( nodl236 .NE. 0 ) )
THEN
141 IF ( nodbmap .EQ. 0 )
THEN
153 DO WHILE ( ( idxbtm .EQ. 0 ) .AND.
154 . ( nn .LE. nval(lun) ) )
155 IF ( inv( nn, lun ) .GT. nodbmap )
THEN
157 DO WHILE ( ( idxbtm .EQ. 0 ) .AND.
159 IF ( nn .EQ.
istbtm(ii) )
THEN
168 IF ( idxbtm .EQ. 0 )
THEN
184 DO WHILE ( ( nn .GE. 1 ) .AND. (
igetrfel .EQ. 0 ) )
185 nodnn = inv( nn, lun )
186 IF ( nodnn .LE. nodbmap )
THEN
188 IF ( ( nodnn .EQ.
inodtco(idxta,jj) ) .AND.
189 . (
ctco(idxta,jj) .EQ.
'235000' ) )
THEN
194 IF (
itp(nodnn) .GT. 1 )
THEN
196 IF ( iect .EQ. iemrk )
igetrfel = nn
214 IF (
tag(node)(1:3) .EQ.
'225' )
THEN
215 ibt(node) =
ibt(nodrfe) + 1
216 irf(node) = -1 * (2 **
ibt(nodrfe))
220 IF (
nnrv .GT. 0 )
THEN
222 IF ( ( nodrfe .NE.
inodnrv(ii) ) .AND.
223 . (
tag(nodrfe)(1:8) .EQ.
tagnrv(ii) ) .AND.
224 . ( nodrfe .GE.
isnrv(ii) ) .AND.
225 . ( nodrfe .LE.
ienrv(ii) ) )
THEN
238900
WRITE(bort_str,
'("BUFRLB: IGETRFEL - UNABLE TO DETERMINE '//
239 .
'FOLLOW OPERATOR FOR MARKER OPERATOR ",A)')
tag(node)
241901
WRITE(bort_str,
'("BUFRLB: IGETRFEL - UNABLE TO FIND FOLLOW '//
242 .
'OPERATOR ",A," IN SUBSET")') cflwopr
244902
WRITE(bort_str,
'("BUFRLB: IGETRFEL - UNABLE TO FIND BITMAP '//
245 .
'FOR MARKER OPERATOR ",A)')
tag(node)
247903
WRITE(bort_str,
'("BUFRLB: IGETRFEL - UNABLE TO FIND PREVIOUS '//
248 .
'ELEMENT REFERENCED BY MARKER OPERATOR ",A)')
tag(node)
character *(*) function adn30(IDN, L30)
This function converts an FXY value from its bit-wise (integer) representation to its 5 or 6 characte...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
integer function igetrfel(N, LUN)
THIS FUNCTION CHECKS WHETHER THE INPUT ELEMENT REFERS TO A PREVIOUS ELEMENT WITHIN THE SAME SUBSET VI...
integer function imrkopr(NEMO)
This function determines whether a specified mnemonic is a Table C marker operator.
function lstjpb(NODE, LUN, JBTYP)
THIS FUNCTION SEARCHES BACKWARDS, BEGINNING FROM A GIVEN NODE WITHIN THE JUMP/LINK TABLE,...
This module contains array and variable declarations used to store bitmaps internally within a data s...
integer lstnod
Most recent jump/link table entry that was processed by function igetrfel() and whose corresponding v...
integer nbtm
Number of stored bitmaps for the current data subset (up to a maximum of MXBTM).
integer, dimension(:), allocatable iszbtm
Size of bitmap (total number of entries, whether "set" (set to a value of 0) or not).
integer, dimension(:,:), allocatable ibtmse
Ordinal positions in bitmap of bits that were "set" (set to a value of 0); these ordinal positions ca...
integer, dimension(:), allocatable nbtmse
Number of "set" entries (set to a value of 0) in the bitmap.
integer, dimension(:), allocatable inodtamc
Entries within jump/link table which contain Table A mnemonics.
integer lstnodct
Current count of consecutive occurrences of lstnod.
integer, dimension(:,:), allocatable inodtco
Entries within jump/link table which contain Table C operators.
integer, dimension(:), allocatable istbtm
Ordinal position in data subset definition corresponding to the first entry of the bitmap.
integer ntamc
Number of Table A mnemonics in jump/link table (up to a maximum of MXTAMC) which contain at least one...
integer, dimension(:), allocatable ntco
Number of Table C operators (with an XX value of 21 or greater) within the data subset definition of ...
character *6, dimension(:,:), allocatable ctco
Table C operators corresponding to inodtco.
This module contains array and variable declarations for use with any 2-03-YYY (change reference valu...
integer nnrv
Number of entries in the jump/link table which contain new reference values (up to a maximum of MXNRV...
integer, dimension(:), allocatable ienrv
End of entry range in jump/link table, within which the corresponding new reference value in nrv will...
integer, dimension(:), allocatable isnrv
Start of entry range in jump/link table, within which the corresponding new reference value in nrv wi...
integer, dimension(:), allocatable inodnrv
Entries within jump/link table which contain new reference values.
integer *8, dimension(:), allocatable nrv
New reference values corresponding to inodnrv.
character *8, dimension(:), allocatable tagnrv
Table B mnemonic to which the corresponding new reference value in nrv applies.
This module contains array and variable declarations used to store the internal jump/link table.
integer, dimension(:), allocatable itp
Integer type values corresponding to typ:
integer, dimension(:), allocatable isc
Scale factors corresponding to tag and typ:
integer, dimension(:), allocatable ibt
Bit widths corresponding to tag and typ:
character *10, dimension(:), allocatable tag
Mnemonics in the jump/link table.
integer, dimension(:), allocatable irf
Reference values corresponding to tag and typ:
subroutine nemtab(LUN, NEMO, IDN, TAB, IRET)
This subroutine returns information about a descriptor from the internal DX BUFR tables,...