NCEPLIBS-bufr  12.0.1
ufbtam.f File Reference

Read one or more data values from every data subset in internal arrays. More...

Go to the source code of this file.

Functions/Subroutines

recursive subroutine ufbtam (TAB, I1, I2, IRET, STR)
 This subroutine reads through every data subset in internal arrays and returns one or more specified data values from each subset. More...
 

Detailed Description

Read one or more data values from every data subset in internal arrays.

Author
J. Woollen
Date
1994-01-06

Definition in file ufbtam.f.

Function/Subroutine Documentation

◆ ufbtam()

recursive subroutine ufbtam ( real*8, dimension(i1,i2)  TAB,
  I1,
  I2,
  IRET,
character*(*)  STR 
)

This subroutine reads through every data subset in internal arrays and returns one or more specified data values from each subset.

This provides a useful way to scan the ranges of one or more specified data values across all of the data subsets in the internal arrays. It is similar to subroutine ufbtab(), except that ufbtab() works on data subsets in a BUFR file.

It is the user's responsibility to ensure that TAB is dimensioned sufficiently large enough to accommodate the number of data values that are to be read from the internal arrays. Specifically, each row of TAB will contain the data values read from a different data subset, so the value I2 must be at least as large as the total number of data subsets in the internal arrays.

The internal arrays must have already been populated via a previous call to subroutine ufbmem().

There are a few additional special mnemonics that can be included within STR when calling this subroutine, and which in turn will result in special information being returned within the corresponding location in TAB:

  • IREC - returns the number of the BUFR message within the internal arrays (counting from the beginning of the internal arrays) in which the current data subset resides.
  • ISUB - returns the number of the current data subset within the BUFR message pointed to by IREC, counting from the beginning of the message.
  • ITBL - returns the number of the DX BUFR table that is in scope for the current data subset.

This subroutine will not work on compressed data subsets.

Parameters
[out]TAB– real*8(*,*): Data values.
[in]I1– integer: First dimension of TAB as allocated within the calling program.
[in]I2– integer: Second dimension of TAB as allocated within the calling program.
[out]IRET– integer: Number of data subsets in internal arrays.
[in]STR– character*(*): String of blank-separated Table B mnemonics, in one-to-one correspondence with the number of data values that will be read from each data subset within the first dimension of TAB (see DX BUFR Tables for further information about Table B mnemonics).
Author
J. Woollen
Date
1994-01-06

Definition at line 54 of file ufbtam.f.

References modv_bmiss::bmiss, bort(), errwrt(), moda_bitbuf::ibit, moda_tables::ibt, modv_im8b::im8b, moda_usrint::inv, moda_tables::itp, moda_msgmem::ldxts, moda_bitbuf::mbay, moda_bitbuf::mbyt, moda_msgmem::msgp, moda_msgcwd::msub, moda_msgmem::munit, moda_msgcwd::nmsg, nmsub(), moda_msgcwd::nsub, moda_usrint::nval, parstr(), rdmemm(), status(), string(), upb(), upb8(), upc(), ups(), usrtpl(), x48(), and x84().