NCEPLIBS-bufr  12.0.1
ufbin3.f File Reference

Read one or more data values from an NCEP prepfits file. More...

Go to the source code of this file.

Functions/Subroutines

recursive subroutine ufbin3 (LUNIT, USR, I1, I2, I3, IRET, JRET, STR)
 Read one or more data values from an NCEP prepfits file. More...
 

Detailed Description

Read one or more data values from an NCEP prepfits file.

Author
J. Woollen
Date
2003-11-04

Definition in file ufbin3.f.

Function/Subroutine Documentation

◆ ufbin3()

recursive subroutine ufbin3 (   LUNIT,
real*8, dimension(i1,i2,i3)  USR,
  I1,
  I2,
  I3,
  IRET,
  JRET,
character*(*)  STR 
)

Read one or more data values from an NCEP prepfits file.

This subroutine reads one or more data values from the BUFR data subset that is currently open within the BUFRLIB internal arrays. It is specifically designed for use with NCEP prepfits files, which contain a third dimension of data events for every reported data value at every replicated vertical level. It is similar to subroutine ufbevn(), except that ufbevn() is used for NCEP prepbufr files and stores the maximum number of data events for any data value within an internal COMMON block, whereas this subroutine is used for NCEP prepfits files and has one extra argument which returns the same information to the calling program.

It is the user's responsibility to ensure that USR is dimensioned sufficiently large enough to accommodate the number of data values that are to be read from the data subset. Note also that USR is an array of real*8 values; therefore, any character (i.e. CCITT IA5) value in the data subset will be returned in real*8 format and must be converted back into character format by the application program before it can be used as such.

"Missing" values in USR are always denoted by a unique placeholder value. This placeholder value is initially set to a default value of 10E10_8, but it can be reset to any substitute value of the user's choice via a separate call to subroutine setbmiss(). In any case, any returned value in USR can be easily checked for equivalence to the current placeholder value via a call to function ibfms(), and a positive result means that the value for the corresponding mnemonic was encoded as "missing" in BUFR (i.e. all bits set to 1) within the original data subset.

Parameters
[in]LUNIT– integer: Fortran logical unit number for NCEP prepfits file
[out]USR– real*8(*,*): Data values
[in]I1– integer: First dimension of USR as allocated within the calling program
[in]I2– integer: Second dimension of USR as allocated within the calling program
[in]I3– integer: Third dimension of USR as allocated within the calling program
[out]IRET– integer: Number of replications of STR that were read from the data subset, corresponding to the second dimension of USR
[out]JRET– integer: Maximum number of data events for any data value that was read from the data subset at any replicated vertical level, and corresponding to the third dimension of USR
[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 the data subset within the first dimension of USR (see DX BUFR Tables for further information about Table B mnemonics)
Author
J. Woollen
Date
2003-11-04

Definition at line 64 of file ufbin3.f.

References modv_bmiss::bmiss, bort(), conwin(), errwrt(), getwin(), modv_im8b::im8b, moda_msgcwd::inode, moda_usrint::inv, nevn(), nxtwin(), status(), string(), x48(), and x84().