51 SUBROUTINE tabent(LUN,NEMO,TAB,ITAB,IREP,IKNT,JUM0)
61 COMMON /reptab/ idnr(5,2),typs(5,2),reps(5,2),lens(5)
63 COMMON /tabccc/ icdw,icsc,icrv,incw
65 CHARACTER*128 BORT_STR
79 rtag = reps(irep,1)//nemo
81 IF(rtag(i:i).EQ.
' ')
THEN
82 rtag(i:i) = reps(irep,2)
83 CALL inctab(rtag,typs(irep,1),node)
87 ibt(node) = lens(irep)
90 IF(irep.EQ.1)
irf(node) = iknt
103 CALL nemtbb(lun,itab,unit,iscl,iref,ibit)
104 IF(unit(1:5).EQ.
'CCITT')
THEN
109 CALL inctab(nemo,typt,node)
116 IF(unit(1:4).EQ.
'CODE')
THEN
118 ELSEIF(unit(1:4).EQ.
'FLAG')
THEN
122 IF( (typt.EQ.
'NUM') .AND. (
ibtnrv.NE.0) )
THEN
133 ELSEIF( (typt.EQ.
'NUM') .AND. (nemo(1:3).NE.
'204') )
THEN
134 ibt(node) =
ibt(node) + icdw
135 isc(node) =
isc(node) + icsc
136 irf(node) =
irf(node) * icrv
137 ELSEIF( (typt.EQ.
'CHR') .AND. (incw.GT.0) )
THEN
141 ELSEIF(tab.EQ.
'D')
THEN
148 CALL inctab(nemo,typt,node)
166900
WRITE(bort_str,
'("BUFRLIB: TABENT - REPLICATOR ERROR FOR INPUT '//
167 .
'MNEMONIC ",A,", RTAG IS ",A)') nemo,rtag
169901
WRITE(bort_str,
'("BUFRLIB: TABENT - UNDEFINED TAG (",A,") FOR '//
170 .
'INPUT MNEMONIC ",A)') tab,nemo
172902
CALL bort(
'BUFRLIB: TABENT - MXNRV OVERFLOW')
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
subroutine inctab(ATAG, ATYP, NODE)
THIS SUBROUTINE RETURNS THE NEXT AVAILABLE POSITIONAL INDEX FOR WRITING INTO THE INTERNAL JUMP/LINK T...
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 ipfnrv
A number between 1 and nnrv, denoting the first entry within the module arrays which applies to the c...
integer ibtnrv
Number of bits in Section 4 occupied by each new reference value for the current 2-03-YYY operator in...
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.
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 link
Link indices corresponding to tag, typ and jmpb:
integer, dimension(:), allocatable isc
Scale factors corresponding to tag and typ:
integer, dimension(:), allocatable jump
Jump forward indices corresponding to tag and typ:
integer, dimension(:), allocatable ibt
Bit widths corresponding to tag and typ:
integer, dimension(:), allocatable irf
Reference values corresponding to tag and typ:
integer, dimension(:), allocatable jmpb
Jump backward indices corresponding to tag and typ:
This module declares and initializes the MXNRV variable.
integer mxnrv
Maximum number of entries in the internal jump/link table that can contain new reference values.
subroutine nemtbb(LUN, ITAB, UNIT, ISCL, IREF, IBIT)
This subroutine returns information about a Table B descriptor from the internal DX BUFR tables.
subroutine tabent(LUN, NEMO, TAB, ITAB, IREP, IKNT, JUM0)
THIS SUBROUTINE BUILDS AND STORES AN ENTRY FOR A TABLE B OR TABLE D MNEMONIC (NEMO) WITHIN THE INTERN...