NCEPLIBS-bufr 11.7.1
copysb.f File Reference

Copy a BUFR data subset. More...

Go to the source code of this file.

Functions/Subroutines

subroutine copysb (LUNIN, LUNOT, IRET)
 This subroutine copies a BUFR data subset from one Fortran logical unit to another. More...
 

Detailed Description

Copy a BUFR data subset.

Definition in file copysb.f.

Function/Subroutine Documentation

◆ copysb()

subroutine copysb (   LUNIN,
  LUNOT,
  IRET 
)

This subroutine copies a BUFR data subset from one Fortran logical unit to another.

Author
J. Woollen
Date
1994-01-06
Parameters
[in]LUNIN– integer: Fortran logical unit number for source BUFR file
[in]LUNOT– integer: Fortran logical unit number for target BUFR file
[out]IRET– integer: return code
  • 0 = normal return
  • -1 = a BUFR data subset could not be read from the BUFR message in internal arrays for LUNIN

Logical unit LUNIN should have already been opened for input operations via a previous call to subroutine openbf(), and a BUFR message should have already been read into internal arrays for LUNIN via a previous call to one of the message-reading subroutines.

Logical unit LUNOT should have already been opened for output operations via a previous call to subroutine openbf(), and a BUFR message should already be open for output within internal arrays via a previous call to one of the BUFRLIB message-writing subroutines.

The compression status of the data subset (i.e. compressed or uncompressed) will be preserved when copying from LUNIN to LUNOT.

If LUNOT < 0, then a data subset is read from the BUFR message in internal arrays for LUNIN but is not copied to the BUFR message in internal arrays for LUNOT. Otherwise, the DX BUFR Table information associated with each of the logical units LUNIN and LUNOT must contain identical definitions for the type of BUFR message containing the data subset to be copied from LUNIN to LUNOT.

Program history log:

Date Programmer Comments
1994-01-06 J. Woollen Original author
1998-07-08 J. Woollen Replaced call to Cray library routine ABORT with call to new internal routine bort()
1999-11-18 J. Woollen The number of BUFR files which can be opened at one time increased from 10 to 32 (necessary in order to process multiple BUFR files under the MPI)
2000-09-19 J. Woollen Maximum message length increased from 10,000 to 20,000 bytes
2002-05-14 J. Woollen Removed old Cray compiler directives
2004-08-09 J. Ator Maximum message length increased from 20,000 to 50,000 bytes
2005-09-16 J. Woollen Now writes out compressed subset/message if input subset/message is compressed
2009-06-26 J. Ator Use iok2cpy()
2014-11-03 J. Ator Handle oversized (>65530 bytes) subsets
2014-12-10 J. Ator Use modules instead of COMMON blocks

Definition at line 57 of file copysb.f.

References bort(), cmpmsg(), cpyupd(), getlens(), iok2cpy(), moda_bitbuf::mbay, moda_bitbuf::mbyt, mesgbc(), readsb(), status(), moda_tables::tag, ufbcpy(), upb(), and writsb().

Referenced by icopysb().