NCEPLIBS-bufr  11.6.0
 All Data Structures Files Functions Variables Pages
stndrd.f File Reference

Standardize a BUFR message. More...

Go to the source code of this file.

Functions/Subroutines

subroutine stndrd (LUNIT, MSGIN, LMSGOT, MSGOT)
 This subroutine performs the same function as subroutine stdmsg(), except that it operates on a BUFR message passed in via a memory array and returns its output via a separate memory array, whereas stdmsg() operates on BUFR messages stored internally within the software. More...
 

Detailed Description

Standardize a BUFR message.

Definition in file stndrd.f.

Function/Subroutine Documentation

subroutine stndrd (   LUNIT,
dimension(*)  MSGIN,
  LMSGOT,
dimension(*)  MSGOT 
)

This subroutine performs the same function as subroutine stdmsg(), except that it operates on a BUFR message passed in via a memory array and returns its output via a separate memory array, whereas stdmsg() operates on BUFR messages stored internally within the software.

Author
J. Ator
Date
2004-08-18
Parameters
[in]LUNIT– integer: Fortran logical unit number for BUFR file
[in]MSGIN– integer(*): BUFR message
[in]LMSGOT– integer: Dimensioned size (in integers) of MSGOT; used by the subroutine to ensure that it doesn't overflow the MSGOT array
[out]MSGOT– integer(*): Standardized copy of MSGIN
Remarks
  • MSGIN and MSGOT must be separate arrays.
  • Standardized messages are usually longer in length than their non-standard counterparts, so it's usually a good idea to allow for extra space when allocating MSGOT within the application program.

Program history log:

Date Programmer Comments
2004-08-18 J. Ator Original author
2005-11-29 J. Ator Use getlens() and iupbs01(); ensure that byte 4 of Section 4 is zeroed out in MSGOT; check edition number of BUFR message before padding to an even byte count
2009-03-23 J. Ator Use iupbs3() and nemtbax(); don't assume that compressed messages are already fully standardized within Section 3
2014-02-04 J. Ator Account for subsets with byte count > 65530
2020-07-16 J. Ator Fix bug in ISLEN computation when NSUB = 1

Definition at line 36 of file stndrd.f.

References bort(), getlens(), istdesc(), iupb(), iupbs01(), iupbs3(), mvb(), nemtbax(), numtab(), pkb(), pkc(), restd(), status(), upb(), and upc().

Referenced by msgwrt().