|
NCEPLIBS-g2
3.4.7
|
Pack up Sections 4 through 7 for a given field and add them to a GRIB2 message. More...
Go to the source code of this file.
Functions/Subroutines | |
| subroutine | addfield (cgrib, lcgrib, ipdsnum, ipdstmpl, ipdstmplen, coordlist, numcoord, idrsnum, idrstmpl, idrstmplen, fld, ngrdpts, ibmap, bmap, ierr) |
| Pack up Sections 4 through 7 for a given field and add them to a GRIB2 message. More... | |
Pack up Sections 4 through 7 for a given field and add them to a GRIB2 message.
Definition in file addfield.f.
| subroutine addfield | ( | character(len=1), dimension(lcgrib), intent(inout) | cgrib, |
| integer, intent(in) | lcgrib, | ||
| integer, intent(in) | ipdsnum, | ||
| integer, dimension(*), intent(in) | ipdstmpl, | ||
| integer, intent(in) | ipdstmplen, | ||
| real, dimension(numcoord), intent(in) | coordlist, | ||
| integer, intent(in) | numcoord, | ||
| integer, intent(in) | idrsnum, | ||
| integer, dimension(*), intent(inout) | idrstmpl, | ||
| integer, intent(in) | idrstmplen, | ||
| real, dimension(ngrdpts), intent(in), target | fld, | ||
| integer, intent(in) | ngrdpts, | ||
| integer, intent(in) | ibmap, | ||
| logical*1, dimension(ngrdpts), intent(in) | bmap, | ||
| integer, intent(out) | ierr | ||
| ) |
Pack up Sections 4 through 7 for a given field and add them to a GRIB2 message.
They are the Product Definition Section, Data Representation Section, Bit-Map Section and Data Sections.
This routine is used with routines gribcreate(), addlocal(), addgrid(), and gribend() to create a complete GRIB2 message. Subroutine gribcreate() must be called first to initialize a new GRIB2 message. Subroutine addgrid() must be called after gribcreate() and before this routine to add the appropriate grid description to the GRIB2 message. A call to gribend() is required to complete GRIB2 message after all fields have been added.
| [in,out] | cgrib | Character array to contain the GRIB2 message. |
| [in] | lcgrib | Maximum length (bytes) of array cgrib. |
| [in] | ipdsnum | Product Definition Template Number (see Code Table 4.0). |
| [in] | ipdstmpl | Contains the data values for the Product Definition Template specified by ipdsnum. |
| [in] | ipdstmplen | Max dimension of ipdstmpl. |
| [out] | coordlist | Array containg floating point values intended to document the vertical discretisation associated to model data on hybrid coordinate vertical levels (part of Section 4). |
| [in] | numcoord | - number of values in array coordlist. |
| [in] | idrsnum | - Data Representation Template Number (see Code Table 5.0). |
| [in] | idrstmpl | Contains the data values for the Data Representation Template specified by idrsnum. Note that some values in this template (eg. reference values, number of bits, etc...) may be changed by the data packing algorithms. Use this to specify scaling factors and order of spatial differencing, if desired. |
| [in] | idrstmplen | Max dimension of idrstmpl. This must be at least as large as the length of the selected PDS template. |
| [in] | fld | Array of data points to pack. |
| [out] | ngrdpts | Number of data points in grid. i.e. size of fld and bmap. |
| [out] | ibmap | Bitmap indicator (see Code Table 6.0).
|
| [out] | bmap | Logical*1 array containing bitmap to be added (if ibmap=0 or ibmap=254). |
| [out] | ierr | Error return code.
|
Definition at line 72 of file addfield.f.
References cmplxpack(), pdstemplates::extpdstemplate(), g2_gbytec(), g2_sbytec(), g2_sbytesc(), getdim(), drstemplates::getdrstemplate(), pdstemplates::getpdstemplate(), getpoly(), jpcpack(), mkieee(), pngpack(), simpack(), and specpack().
Referenced by putgb2().