NCEPLIBS-bufr  11.5.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:

  • 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 39 of file stndrd.f.

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

Referenced by msgwrt().