28 RECURSIVE SUBROUTINE ufbcup(LUBIN,LUBOT)
48 CALL x84(lubin,my_lubin,1)
49 CALL x84(lubot,my_lubot,1)
50 CALL ufbcup(my_lubin,my_lubot)
59 CALL status(lubin,lui,il,im)
63 IF(
inode(lui).NE.
inv(1,lui))
GOTO 903
65 CALL status(lubot,luo,il,im)
77 IF(
itp(nin).GE.2)
THEN
87 IF(ntag.EQ.0)
GOTO 907
96 IF(
ttmp(nv).EQ.tago)
THEN
107 900
CALL bort(
'BUFRLIB: UFBCUP - INPUT BUFR FILE IS CLOSED, IT '//
108 .
'MUST BE OPEN FOR INPUT')
109 901
CALL bort(
'BUFRLIB: UFBCUP - INPUT BUFR FILE IS OPEN FOR '//
110 .
'OUTPUT, IT MUST BE OPEN FOR INPUT')
111 902
CALL bort(
'BUFRLIB: UFBCUP - A MESSAGE MUST BE OPEN IN INPUT '//
112 .
'BUFR FILE, NONE ARE')
113 903
CALL bort(
'BUFRLIB: UFBCUP - LOCATION OF INTERNAL TABLE FOR '//
114 .
'INPUT BUFR FILE DOES NOT AGREE WITH EXPECTED LOCATION IN '//
115 .
'INTERNAL SUBSET ARRAY')
116 904
CALL bort(
'BUFRLIB: UFBCUP - OUTPUT BUFR FILE IS CLOSED, IT '//
117 .
'MUST BE OPEN FOR OUTPUT')
118 905
CALL bort(
'BUFRLIB: UFBCUP - OUTPUT BUFR FILE IS OPEN FOR '//
119 .
'INPUT, IT MUST BE OPEN FOR OUTPUT')
120 906
CALL bort(
'BUFRLIB: UFBCUP - A MESSAGE MUST BE OPEN IN OUTPUT '//
121 .
'BUFR FILE, NONE ARE')
122 907
CALL bort(
'BUFRLIB: UFBCUP - THERE ARE NO ELEMENTS (TAGS) IN '//
123 .
'INPUT SUBSET BUFFER')
subroutine bort(STR)
Log one error message and abort application program.
This module contains arrays which provide working space in several subprograms (usrtpl() and ufbcup()...
character *10, dimension(:), allocatable ttmp
tag array elements for new sections of a growing subset buffer.
integer, dimension(:), allocatable itmp
inv array elements for new sections of a growing subset buffer.
This module contains declarations for arrays used to store information about the current BUFR message...
integer, dimension(:), allocatable inode
Table A mnemonic for type of BUFR message.
This module contains array and variable declarations used to store the internal jump/link table.
character *10, dimension(:), allocatable tag
Mnemonics in the jump/link table.
integer, dimension(:), allocatable itp
Integer type values corresponding to typ:
This module contains declarations for arrays used to store data values and associated metadata for th...
integer, dimension(:), allocatable nval
Number of data values in BUFR data subset.
real *8, dimension(:,:), allocatable, target val
Data values.
integer, dimension(:,:), allocatable, target inv
Inventory pointer which links each data value to its corresponding node in the internal jump/link tab...
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 status(LUNIT, LUN, IL, IM)
Check whether a specified Fortran logical unit number is currently connected to the NCEPLIBS-bufr sof...
recursive subroutine ufbcup(LUBIN, LUBOT)
Copy unique elements of a data subset.
subroutine x84(IIN8, IOUT4, NVAL)
Encode one or more 8-byte integer values as 4-byte integer values.