NCEPLIBS-bufr 11.7.1
debufr.f File Reference

Fortran language code for debufr utility. More...

Go to the source code of this file.

Modules

module  share_table_info
 This module is used within the debufr utility to share information between subroutine fdebufr() and subroutine openbt(), since the latter is not called by the former but rather is called directly from within the BUFRLIB software.
 

Functions/Subroutines

subroutine fdebufr (ofile, tbldir, lentd, tblfil, prmstg, basic, forcemt, cfms)
 This subroutine reads, decodes, and generates a verbose output listing of the contents of every BUFR message from within the input file that was previously opened via a call to subroutine cobfl() with io = 'r'. More...
 
subroutine openbt (lundx, mtyp)
 This subroutine overrides the placeholder subroutine of the same name within the BUFRLIB distribution package. More...
 

Detailed Description

Fortran language code for debufr utility.

Definition in file debufr.f.

Function/Subroutine Documentation

◆ fdebufr()

subroutine fdebufr ( character*(*)  ofile,
character*(*)  tbldir,
  lentd,
character*(*)  tblfil,
character*(*)  prmstg,
character*1  basic,
character*1  forcemt,
character*1  cfms 
)

This subroutine reads, decodes, and generates a verbose output listing of the contents of every BUFR message from within the input file that was previously opened via a call to subroutine cobfl() with io = 'r'.

Author
J. Ator
Date
2009-07-01
Parameters
[in]ofile– character*(*): File to contain verbose output listing of contents of each decoded BUFR message
[in]tbldir– character*(*): Directory containing DX and/or master BUFR tables to be used for decoding
[in]lentd– integer: length of tbldir string
[in]tblfil– character*(*): File containing DX BUFR table information to be used for decoding
  • 'NULLFILE' = No such file will be used
[in]prmstg– character*(*): String of up to 20 comma-separated PARAMETER=VALUE pairs to be used to dynamically allocate memory within the BUFRLIB software, overriding the default VALUE that would otherwise be used for each such PARAMETER.
  • 'NULLPSTG' = No such pairs will be used
[in]basic– character: Indicator as to whether only "basic" information in Sections 0-3 should be decoded from each BUFR message:
  • 'Y' = Yes
  • 'N' = No
[in]forcemt– character: Indicator as to whether master BUFR tables should be used for decoding, regardless of whether the input file contains any embedded DX BUFR table messages:
  • 'Y' = Yes
  • 'N' = No
[in]cfms– character: Indicator as to whether code and flag table meanings should be read from master BUFR tables and included in the print output:
  • 'Y' = Yes
  • 'N' = No
Remarks
  • See BUFRLIB function isetprm() for a complete list of parameters that can be dynamically sized via prmstg.
  • Fortran logical unit numbers 51, 90, 91, 92 and 93 are reserved for use within this subroutine.

Program history log:

Date Programmer Comments
2009-07-01 J. Ator Original author
2012-06-18 J. Ator Added tblfil argument and options to decode files according to DX dictionary information
2012-12-07 J. Ator Added forcemt and lentd arguments
2013-10-07 J. Ator Print Section 1 tank receipt time information for NCEP/NCO BUFR messages if available
2013-11-15 J. Ator Added check for missing or unreadable tblfil
2014-09-15 J. Ator Confirm BUFR file was opened (i.e. at least one good return from crbmg() before calling dxdump()
2018-01-19 J. Ator Added print of code and flag table meanings
2018-03-01 J. Ator Added print of data types and subtypes from code and flag tables
2018-09-05 J. Ator Added prmstg argument
2019-02-01 J. Ator Remove limit on length of prmstg
2021-02-24 J. Ator Use all formatted writes, for consistent output between builds using 4-byte vs. 8-byte integers

Definition at line 86 of file debufr.f.

References codflg(), crbmg(), datelen(), dxdump(), getcfmng(), idxmsg(), ireadsb(), isetprm(), iupbs01(), iupbs3(), mtinfo(), openbf(), parstr(), readerme(), rtrcptb(), strnum(), strsuc(), ufdump(), and upds3().

◆ openbt()

subroutine openbt (   lundx,
  mtyp 
)

This subroutine overrides the placeholder subroutine of the same name within the BUFRLIB distribution package.

Given the data category for a BUFR message, it opens the appropriate DX BUFR tables file to use in reading/decoding the message.

Author
J. Ator
Date
2012-12-07
Parameters
[in]mtyp– integer: Data category of BUFR message
[out]lundx– integer: Fortran logical unit number for DX BUFR tables file to use in reading/decoding the message
  • 0 = No such file is available

Program history log:

  • 2012-12-07 J. Ator – Original author

Definition at line 485 of file debufr.f.