41 RECURSIVE SUBROUTINE copymg(LUNIN,LUNOT)
59 CALL x84(lunin,my_lunin,1)
60 CALL x84(lunot,my_lunot,1)
61 CALL copymg(my_lunin,my_lunot)
70 CALL status(lunin,lin,il,im)
75 CALL status(lunot,lot,il,im)
85 CALL nemtba(lot,subset,mtyp,msbt,inod)
86 IF(
inode(lin).NE.inod)
THEN
87 IF(
iok2cpy(lin,lot).NE.1)
GOTO 906
109 900
CALL bort(
'BUFRLIB: COPYMG - INPUT BUFR FILE IS CLOSED, IT MUST'//
110 .
' BE OPEN FOR INPUT')
111 901
CALL bort(
'BUFRLIB: COPYMG - INPUT BUFR FILE IS OPEN FOR '//
112 .
'OUTPUT, IT MUST BE OPEN FOR INPUT')
113 902
CALL bort(
'BUFRLIB: COPYMG - A MESSAGE MUST BE OPEN IN INPUT '//
114 .
'BUFR FILE, NONE ARE')
115 903
CALL bort(
'BUFRLIB: COPYMG - OUTPUT BUFR FILE IS CLOSED, IT '//
116 .
'MUST BE OPEN FOR OUTPUT')
117 904
CALL bort(
'BUFRLIB: COPYMG - OUTPUT BUFR FILE IS OPEN FOR '//
118 .
'INPUT, IT MUST BE OPEN FOR OUTPUT')
119 905
CALL bort(
'BUFRLIB: COPYMG - ALL MESSAGES MUST BE CLOSED IN '//
120 .
'OUTPUT BUFR FILE, A MESSAGE IS OPEN')
121 906
CALL bort(
'BUFRLIB: COPYMG - INPUT AND OUTPUT BUFR FILES MUST '//
122 .
'HAVE THE SAME INTERNAL TABLES, THEY ARE DIFFERENT HERE')
subroutine bort(STR)
Log one error message and abort application program.
recursive subroutine copymg(LUNIN, LUNOT)
Copy a BUFR message from one file to another.
integer function iok2cpy(LUI, LUO)
This function determines whether a BUFR message, or a data subset from within a BUFR message,...
recursive function iupbs01(MBAY, S01MNEM)
Read a data value from Section 0 or Section 1 of a BUFR message.
subroutine msgwrt(LUNIT, MESG, MGBYT)
Perform final checks and updates on a BUFR message before writing it to a specified Fortran logical u...
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 declarations for arrays used to store information about the current BUFR message...
integer, dimension(:), allocatable inode
Table A mnemonic for type of BUFR message.
integer, dimension(:), allocatable idate
Section 1 date-time of message.
integer, dimension(:), allocatable nmsg
Current message pointer within logical unit.
integer, dimension(:), allocatable msub
Total number of data subsets in message.
integer, dimension(:), allocatable nsub
Current subset pointer within 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.
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 ...
subroutine nemtba(LUN, NEMO, MTYP, MSBT, INOD)
This subroutine searches for a descriptor within Table A of the internal DX BUFR tables.
recursive subroutine status(LUNIT, LUN, IL, IM)
Check whether a specified Fortran logical unit number is currently connected to the NCEPLIBS-bufr sof...
subroutine x84(IIN8, IOUT4, NVAL)
Encode one or more 8-byte integer values as 4-byte integer values.