24 CHARACTER*6 CDS3(MAXNC),NUMB,ADN30
40 IF (
ireadmt( lun ) .EQ. 1 )
THEN
54 CALL upds3 (
mbay(1,lun), maxnc, cds3, ncds3 )
56 ids3(ii) =
ifxy( cds3(ii) )
68 IF (
ncnem .GT. 0 )
THEN
70 DO WHILE ( (.NOT.incach) .AND. (ii.LE.
ncnem) )
71 IF ( ncds3 .EQ.
ndc(ii) )
THEN
74 DO WHILE ( (incach) .AND. (jj.LE.ncds3) )
75 IF ( ids3(jj) .EQ.
idcach(ii,jj) )
THEN
87 IF ( iprt .GE. 2 )
THEN
88 CALL errwrt(
'+++++++++++++++++++++++++++++++++++++++++++++++++')
89 errstr =
'BUFRLIB: READS3 - RE-USED CACHE LIST FOR ' //
cnem(ii)
91 CALL errwrt(
'+++++++++++++++++++++++++++++++++++++++++++++++++')
108 WRITE (
tamnem(lun),
'(A5,I3.3)')
'MSTTB', n
109 cseq =
'TABLE A MNEMONIC ' //
tamnem(lun)
114 IF (
ncnem .GT. mxcnem )
GOTO 900
120 IF ( iprt .GE. 2 )
THEN
121 CALL errwrt(
'+++++++++++++++++++++++++++++++++++++++++++++++++')
122 errstr =
'BUFRLIB: READS3 - STORED CACHE LIST FOR ' //
125 CALL errwrt(
'+++++++++++++++++++++++++++++++++++++++++++++++++')
132 numb = adn30( idn, 6 )
150 900
CALL bort(
'BUFRLIB: READS3 - MXCNEM OVERFLOW')
subroutine bort(STR)
Log one error message and abort application program.
subroutine dxinit(LUN, IOI)
This subroutine initializes the internal arrays (in module moda_tababd) holding the DX BUFR table.
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
function ifxy(ADSC)
Convert an FXY value from its 6 character representation to its WMO bit-wise representation.
function igetntbi(LUN, CTB)
This function returns the next available index for storing an entry within a specified internal DX BU...
function igettdi(IFLAG)
Get the next usable Table D index for the current master table, or reset the index.
integer function ireadmt(LUN)
Check whether master BUFR tables need to be read from the local file system.
subroutine makestab
This subroutine constructs the internal jump/link table within module tables, using all of the intern...
Wrap C NCEPLIBS-bufr functions so they can be called from within the Fortran part of the library.
This module contains array and variable declarations used to store BUFR messages internally for multi...
integer, dimension(:,:), allocatable mbay
Current BUFR message for each internal I/O stream.
This module contains array and variable declarations for the internal Table A mnemonic cache that is ...
character *8, dimension(mxcnem) cnem
Table A mnemonics.
integer, dimension(mxcnem, maxnc) idcach
Bit-wise representations of the child descriptors for the corresponding Table A mnemonic in cnem.
integer ncnem
Number of entries in the internal Table A mnemonic cache (up to a maximum of MXCNEM).
integer, dimension(mxcnem) ndc
Number of child descriptors for the corresponding Table A mnemonic in cnem.
This module contains an array declaration used to store a switch for each internal I/O stream index,...
character *8, dimension(:), allocatable tamnem
Table A mnemonic most recently read from each internal I/O stream index, if isc3 = 1 for that stream.
subroutine reads3(LUN)
This subroutine reads the Section 3 descriptors from the BUFR message in mbay(1,lun).
subroutine stntbia(N, LUN, NUMB, NEMO, CELSQ)
This subroutine stores a new entry within internal BUFR Table A.
recursive subroutine upds3(MBAY, LCDS3, CDS3, NDS3)
This subroutine returns the sequence of data descriptors contained within Section 3 of a BUFR message...