25 RECURSIVE SUBROUTINE upds3(MBAY,LCDS3,CDS3,NDS3)
31 CHARACTER*6 cds3(*),
adn30
41 CALL x84(lcds3,my_lcds3,1)
42 CALL upds3(mbay,my_lcds3,cds3,nds3)
57 CALL getlens(mbay,3,len0,len1,len2,len3,l4,l5)
58 ipt = len0 + len1 + len2
65 IF(nds3.GT.lcds3)
GOTO 900
66 cds3(nds3) =
adn30(
iupb(mbay,ipt+jj,16),6)
70 900
CALL bort(
'BUFRLIB: UPDS3 - OVERFLOW OF OUTPUT DESCRIPTOR '//
71 .
'ARRAY; TRY A LARGER DIMENSION FOR THIS ARRAY')
character *(*) function adn30(IDN, L30)
Convert a WMO bit-wise representation of an FXY value to a character string of length 5 or 6.
subroutine bort(STR)
Log one error message and abort application program.
recursive subroutine getlens(MBAY, LL, LEN0, LEN1, LEN2, LEN3, LEN4, LEN5)
This subroutine reads the lengths of all of the individual sections of a given BUFR message,...
recursive function iupb(MBAY, NBYT, NBIT)
Decode an integer value from an integer array.
This module declares and initializes the IM8B variable.
logical, public im8b
Status indicator to keep track of whether all future calls to BUFRLIB subroutines and functions from ...
recursive subroutine upds3(MBAY, LCDS3, CDS3, NDS3)
This subroutine returns the sequence of data descriptors contained within Section 3 of a BUFR message...
subroutine wrdlen
Determine important information about the local machine.
subroutine x48(IIN4, IOUT8, NVAL)
Encode one or more 4-byte integer values as 8-byte integer values.
subroutine x84(IIN8, IOUT4, NVAL)
Encode one or more 8-byte integer values as 4-byte integer values.