NCEPLIBS-bufr  12.1.0
dumpdata.F90 File Reference

Print the contents of a data subset or DX BUFR table. More...

Go to the source code of this file.

Functions/Subroutines

recursive subroutine dxdump (lunit, ldxot)
 Print a copy of the DX BUFR table associated with a specified Fortran logical unit. More...
 
recursive subroutine getabdb (lunit, tabdb, itab, jtab)
 Get Table B and Table D information from the internal DX BUFR tables. More...
 
recursive subroutine ufbdmp (lunin, luprt)
 Print a verbose listing of the contents of a data subset, including all data values and replicated sequences, as well as jump/link table information and other internal subset pointers. More...
 
recursive subroutine ufdump (lunit, luprt)
 Print a verbose listing of the contents of a data subset, including all data values and replicated sequences, as well as the meanings of data values which are code or flag table entries. More...
 

Detailed Description

Print the contents of a data subset or DX BUFR table.

Authors
J. Woollen, J. Ator, D. Keyser
Date
1994-01-06

Definition in file dumpdata.F90.

Function/Subroutine Documentation

◆ dxdump()

recursive subroutine dxdump ( integer, intent(in)  lunit,
integer, intent(in)  ldxot 
)

Print a copy of the DX BUFR table associated with a specified Fortran logical unit.

This subroutine is especially useful for learning the structure of existing BUFR files which contain DX BUFR table information embedded as BUFR messages within those files. The DX BUFR table is printed using the same ASCII format described in the documentation for DX BUFR Tables, so the output file is suitable for use as Fortran logical unit LUNDX in subsequent calls to subroutine openbf() for reading or writing additional BUFR files with the same structure.

Parameters
lunit- Fortran logical unit number for BUFR file
ldxot- Fortran logical unit number for print output

Logical unit lunit must be open for either input or output operations via a previous call to subroutine openbf(). Logical unit ldxot must already be associated with a filename on the local system, typically via a Fortran "OPEN" statement.

Remarks
  • This subroutine only prints the DX BUFR table that is currently in scope for logical unit lunit. Therefore, if logical unit lunit contains multiple embedded DX BUFR tables, then multiple calls to this subroutine must be made to print out all of the tables, once while each table is in scope for a data subset defined within that particular table.
Author
J. Ator
Date
2004-08-18

Definition at line 579 of file dumpdata.F90.

References bort(), moda_nmikrp::irp, moda_nmikrp::krp, moda_nmikrp::nem, nemtbd(), moda_tababd::ntba, moda_tababd::ntbb, moda_tababd::ntbd, status(), strsuc(), moda_tababd::taba, moda_tababd::tabb, moda_tababd::tabd, and x84().

Referenced by fdebufr_c(), and gettab().

◆ getabdb()

recursive subroutine getabdb ( integer, intent(in)  lunit,
character*128, dimension(*), intent(out)  tabdb,
integer, intent(in)  itab,
integer, intent(out)  jtab 
)

Get Table B and Table D information from the internal DX BUFR tables.

The information is returned in a memory array in a pre-defined ASCII format.

Parameters
lunit- Fortran logical unit number for BUFR file
itab- Dimensioned size of tabdb array; used by the subroutine to ensure that it doesn't overflow the tabdb array
tabdb- Internal Table B and Table D information
jtab- Number of entries stored within tabdb
Author
J. Ator
Date
2005-11-29

Definition at line 828 of file dumpdata.F90.

References moda_nmikrp::irp, moda_nmikrp::krp, moda_nmikrp::nem, nemtbd(), moda_tababd::ntbb, moda_tababd::ntbd, status(), moda_tababd::tabb, moda_tababd::tabd, x48(), and x84().

◆ ufbdmp()

recursive subroutine ufbdmp ( integer, intent(in)  lunin,
integer, intent(in)  luprt 
)

Print a verbose listing of the contents of a data subset, including all data values and replicated sequences, as well as jump/link table information and other internal subset pointers.

This subroutine is similar to subroutine ufdump(), but it prints different characteristics of each data subset, and in a slightly different format. However, both subroutines can be useful for different diagnostic purposes, and both can also be run interactively to scroll through the contents of a data subset.

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

Except when luprt = 0, logical unit luprt must already be associated with a filename on the local system, typically via a Fortran "OPEN" statement. When luprt = 0, the subroutine will run interactively and print to standard output, scrolling 20 lines at a time and prompting each time whether to quit and return to the application program (by typing 'q' then '<Enter>') or continue scrolling (by typing anything else).

Parameters
lunin- Absolute value is Fortran logical unit number for BUFR file
  • If lunin > 0, data values are printed to luprt using the format descriptor code 'G15.6', meaning that all values will be printed (since the format adapts to the order of magnitude of each value), but values won't necessarily be lined up with the decimal point in the same column
  • If lunin < 0, data values are printed to luprt using the format descriptor code 'F15.6', meaning that all values will be lined up with the decimal point in the same column, but values exceeding the format width of 15 characters will print as overflow (e.g. '***************')
luprt- Fortran logical unit number for print output:
  • 0 = Run interactively, printing to standard output
Authors
J. Woollen, J. Ator, D. Keyser
Date
1994-01-06

Definition at line 41 of file dumpdata.F90.

References bort(), ibfms(), moda_tables::ibt, icbfms(), moda_msgcwd::inode, moda_usrint::inv, moda_tables::irf, moda_tables::isc, isize(), moda_tables::itp, moda_tables::jmpb, moda_tables::jump, moda_tables::link, nemtab(), moda_usrint::nval, readlc(), status(), moda_tababd::tabb, moda_tables::tag, moda_tables::typ, upftbv(), moda_usrint::val, and x84().

◆ ufdump()

recursive subroutine ufdump ( integer, intent(in)  lunit,
integer, intent(in)  luprt 
)

Print a verbose listing of the contents of a data subset, including all data values and replicated sequences, as well as the meanings of data values which are code or flag table entries.

This subroutine is similar to subroutine ufbdmp(), but it prints different characteristics of each data subset, and in a slightly different format. However, both subroutines can be useful for different diagnostic purposes, and both can also be run interactively to scroll through the contents of a data subset.

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

Except when luprt = 0, logical unit luprt must already be associated with a filename on the local system, typically via a Fortran "OPEN" statement. When luprt = 0, the subroutine will run interactively and print to standard output, scrolling 20 lines at a time and prompting each time whether to quit and return to the application program (by typing 'q' then '<Enter>') or continue scrolling (by typing anything else).

In order for the meanings of code and flag table values to be included in the output, a previous call to subroutine codflg() must have been made with argument cf = 'Y'. Otherwise, only the code and flag table values themselves will be printed.

Parameters
lunit- Fortran logical unit number for BUFR file
luprt- Fortran logical unit number for print output
  • 0 = Run interactively, printing to standard output
Authors
J. Woollen, J. Ator
Date
2002-05-14

Definition at line 227 of file dumpdata.F90.

References bort(), moda_tablef::cdmf, fstag(), ibfms(), moda_tables::ibt, icbfms(), moda_msgcwd::inode, moda_nrv203::inodnrv, moda_usrint::inv, ireadmt(), moda_tables::irf, moda_tables::isc, isize(), moda_tables::itp, nemtab(), moda_nrv203::nnrv, moda_usrint::nrfelm, moda_msgcwd::nsub, numtbd(), moda_usrint::nval, readlc(), status(), strsuc(), moda_tababd::tabb, moda_tables::tag, moda_tables::typ, upftbv(), moda_usrint::val, and x84().

Referenced by fdebufr_c(), readbp(), and readmp().