NCEPLIBS-g2  3.4.8
gettemplates.F90 File Reference

This subroutine returns the Grid Definition, and Product Definition for a given data field. More...

Go to the source code of this file.

Functions/Subroutines

subroutine gettemplates (cgrib, lcgrib, ifldnum, igds, igdstmpl, igdslen, ideflist, idefnum, ipdsnum, ipdstmpl, ipdslen, coordlist, numcoord, ierr)
 This subroutine returns the Grid Definition, and Product Definition for a given data field. More...
 

Detailed Description

This subroutine returns the Grid Definition, and Product Definition for a given data field.

Author
Stephen Gilbert
Date
2000-05-26

Definition in file gettemplates.F90.

Function/Subroutine Documentation

◆ gettemplates()

subroutine gettemplates ( character(len = 1), dimension(lcgrib), intent(in)  cgrib,
integer, intent(in)  lcgrib,
integer, intent(in)  ifldnum,
integer, dimension(*), intent(out)  igds,
integer, dimension(*), intent(out)  igdstmpl,
integer  igdslen,
integer, dimension(*), intent(out)  ideflist,
integer, intent(out)  idefnum,
integer, intent(out)  ipdsnum,
integer, dimension(*), intent(out)  ipdstmpl,
integer  ipdslen,
real, dimension(*), intent(out)  coordlist,
integer, intent(out)  numcoord,
integer, intent(out)  ierr 
)

This subroutine returns the Grid Definition, and Product Definition for a given data field.

Since there can be multiple data fields packed into a GRIB2 message, the calling routine indicates which field is being requested with the ifldnum argument.

Parameters
[in]cgribCharacter array that contains the GRIB2 message
[in]lcgribLength (in bytes) of GRIB message array cgrib.
[in]ifldnumSpecifies which field in the GRIB2 message to return.
[out]igdsContains information read from the appropriate GRIB Grid Definition Section 3 for the field being returned. Must be dimensioned >= 5.
  • igds(1) Source of grid definition (see Code Table 3.0)
  • igds(2) Number of grid points in the defined grid.
  • igds(3) Number of octets needed for each additional grid points definition. Used to define number of points in each row (or column) for non-regular grids. = 0, if using regular grid.
  • igds(4) Interpretation of list for optional points definition. (Code Table 3.11)
  • igds(5) Grid Definition Template Number (Code Table 3.1)
[out]igdstmplContains the data values for the specified Grid Definition Template (NN=igds(5)). Each element of this integer array contains an entry (in the order specified) of Grid Defintion Template 3.NN.
[out]igdslenNumber of elements in igdstmpl. i.e. number of entries in Data Representation Template 5.N (N=idrsnum).
[out]ideflist(Used if igds(3) .ne. 0) This array contains the number of grid points contained in each row (or column). (part of Section 3).
[out]idefnum(Used if igds(3) .ne. 0) The number of entries in array ideflist. i.e. number of rows (or columns) for which optional grid points are defined.
[out]ipdsnumProduct Definition Template Number (see Code Table 4.0).
[out]ipdstmplContains the data values for the specified Product Definition Template (N=ipdsnum). Each element of this integer array contains an entry (in the order specified) of Product Defintion Template 4.N. A safe dimension for this array can be obtained in advance from maxvals(4), which is returned from subroutine gribinfo().
[out]ipdslenNumber of elements in ipdstmpl. i.e. number of entries in Product Defintion Template 4.N (N=ipdsnum).
[out]coordlistArray containg floating point values intended to document the vertical discretisation associated to model data on hybrid coordinate vertical levels. (part of Section 4) The dimension of this array can be obtained in advance from maxvals(5), which is returned from subroutine gribinfo().
[out]numcoordnumber of values in array coordlist.
[out]ierrError return code.
  • 0 no error.
  • 1 Beginning characters "GRIB" not found.
  • 2 GRIB message is not Edition 2.
  • 3 The data field request number was not positive.
  • 4 End string "7777" found, but not where expected.
  • 5 End string "7777" not found at end of message.
  • 6 GRIB message did not contain the requested number of data fields.
  • 7 End string "7777" not found at end of message.
  • 9 Data Representation Template 5.NN not yet implemented.
  • 10 Error unpacking Section 3.
  • 11 Error unpacking Section 4.
  • 12 Error unpacking Section 5.
  • 13 Error unpacking Section 6.
  • 14 Error unpacking Section 7.
Note
Note that subroutine gribinfo can be used to first determine how many data fields exist in a given GRIB message.
Author
Stephen Gilbert
Date
2000-05-26

Definition at line 66 of file gettemplates.F90.

References g2_gbytec(), unpack3(), and unpack4().