NCEPLIBS-w3emc 2.12.0
|
Find and unpack a grib message. More...
Go to the source code of this file.
Functions/Subroutines | |
subroutine | getgbm (lugb, lugi, jf, j, jpds, jgds, mbuf, cbuf, nlen, nnum, mnum, kf, k, kpds, kgds, lb, f, iret) |
Read a grib index file (or optionally the grib file itself) to get the index buffer (i.e. | |
subroutine getgbm | ( | lugb, | |
lugi, | |||
jf, | |||
j, | |||
integer, dimension(200) | jpds, | ||
integer, dimension(200) | jgds, | ||
mbuf, | |||
character, dimension(mbuf) | cbuf, | ||
nlen, | |||
nnum, | |||
mnum, | |||
kf, | |||
k, | |||
integer, dimension(200) | kpds, | ||
integer, dimension(200) | kgds, | ||
logical*1, dimension(jf) | lb, | ||
real, dimension(jf) | f, | ||
iret | |||
) |
Read a grib index file (or optionally the grib file itself) to get the index buffer (i.e.
table of contents) for the grib file. Find in the index buffer a reference to the grib message requested. The grib message request specifies the number of messages to skip and the unpacked pds and gds parameters. A requested parameter of -1 means to allow any value of this parameter to be found.) If the requested grib message is found, then it is read from the grib file and unpacked. Its message number is returned along with the unpacked pds and gds parameters, the unpacked bitmap (if any), and the unpacked data. If the grib message is not found, then the return code will be nonzero.
Program history log:
[in] | lugb | integer unit of the unblocked grib data file. |
[in] | lugi | integer unit of the unblocked grib index file (=0 to get index buffer from the grib file). |
[in] | jf | integer maximum number of data points to unpack. |
[in] | j | integer number of messages to skip (=0 to search from beginning) (<0 to read index buffer and skip -1-j messages). |
[in] | jpds | integer (200) pds parameters for which to search (=-1 for wildcard).
|
[in] | jgds | integer (200) gds parameters for which to search (only searched if jpds(3)=255) (=-1 for wildcard).
|
[in] | mbuf | integer length of index buffer in bytes. |
[in,out] | cbuf | character*1 (mbuf) index buffer (initialize by setting j=-1). |
[in,out] | nlen | integer length of each index record in bytes (initialize by setting j=-1). |
[in,out] | nnum | integer number of index records (initialize by setting j=-1). |
[in,out] | mnum | integer number of index records skipped (initialize by setting j=-1). |
[out] | kf | integer number of data points unpacked. |
[out] | k | integer message number unpacked (can be same as j in calling program in order to facilitate multiple searches). |
[out] | kpds | integer (200) unpacked pds parameters. |
[out] | kgds | integer (200) unpacked gds parameters. |
[out] | lb | logical*1 (kf) unpacked bitmap if present. |
[out] | f | real (kf) unpacked data. |
[out] | iret | integer return code.
|