NCEPLIBS-bufr  12.0.1
cpyupd.f File Reference

Copy a BUFR data subset. More...

Go to the source code of this file.

Functions/Subroutines

subroutine cpyupd (LUNIT, LIN, LUN, IBYT)
 This subroutine copies a BUFR data subset from one unit to another within internal memory and resets the pointers. More...
 

Detailed Description

Copy a BUFR data subset.

pointers.

Author
Woollen
Date
1994-01-06

Definition in file cpyupd.f.

Function/Subroutine Documentation

◆ cpyupd()

subroutine cpyupd (   LUNIT,
  LIN,
  LUN,
  IBYT 
)

This subroutine copies a BUFR data subset from one unit to another within internal memory and resets the pointers.

If the subset will not fit into the output message, or if the subset byte count exceeds 65530 (sufficiently close to the 16-bit byte counter upper limit of 65535), then that message is flushed to lunit and a new one is created in order to hold the copied subset. Any subset with byte count > 65530 will be written into its own one-subset message. If the subset to be copied is larger than the maximum message length, then a call is issued to subroutine bort().

Parameters
[in]LUNIT- integer: Fortran logical unit number for BUFR file associated with output unit.
[in]LIN- integer: I/O stream index into internal memory arrays for input unit
[in]LUN- integer: I/O stream index into internal memory arrays for output unit.
[in]IBYT- integer: length (in bytes) of data subset
Author
Woollen
Date
1994-01-06

Definition at line 28 of file cpyupd.f.

References bort(), errwrt(), iupb(), moda_bitbuf::maxbyt, moda_bitbuf::mbay, moda_bitbuf::mbyt, msgini(), msgwrt(), mvb(), moda_msgcwd::nsub, and pkb().

Referenced by copysb().