NCEPLIBS-bufr
12.0.0
|
Read one or more data values from an NCEP prepbufr file. More...
Go to the source code of this file.
Functions/Subroutines | |
recursive subroutine | ufbevn (LUNIT, USR, I1, I2, I3, IRET, STR) |
Read one or more data values from an NCEP prepbufr file. More... | |
Read one or more data values from an NCEP prepbufr file.
Definition in file ufbevn.f.
recursive subroutine ufbevn | ( | LUNIT, | |
real*8, dimension(i1,i2,i3) | USR, | ||
I1, | |||
I2, | |||
I3, | |||
IRET, | |||
character*(*) | STR | ||
) |
Read one or more data values from an NCEP prepbufr 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 prepbufr files, which contain a third dimension of data events for every reported data value at every replicated vertical level. It is similar to subroutine ufbin3(), except that ufbin3() is used for NCEP prepfits files and has one extra argument containing the maximum number of data events for any data value, whereas this subroutine is used for NCEP prepbufr files and stores the same information internally within a COMMON block.
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.
[in] | LUNIT | - integer: Fortran logical unit number for NCEP prepbufr 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. |
[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). |
Definition at line 56 of file ufbevn.f.
References modv_bmiss::bmiss, bort(), conwin(), errwrt(), getwin(), modv_im8b::im8b, moda_msgcwd::inode, moda_usrint::inv, nvnwin(), nxtwin(), status(), string(), moda_usrint::val, x48(), and x84().