NCEPLIBS-g2c  1.6.4
pdstemplates.c File Reference

Functions for GRIB2 Product Definition Templates used in Section 4 - the Product Definition Section (PDS). More...

#include <stdlib.h>
#include "grib2.h"
#include "pdstemplates.h"

Go to the source code of this file.

Functions

gtemplateextpdstemplate (g2int number, g2int *list)
 This subroutine generates the remaining octet map for a given Product Definition Template, if required. More...
 
g2int getpdsindex (g2int number)
 This function returns the index of specified Product Definition Template in array templates. More...
 
gtemplategetpdstemplate (g2int number)
 This subroutine returns PDS template information for a specified Product Definition Template. More...
 

Detailed Description

Functions for GRIB2 Product Definition Templates used in Section 4 - the Product Definition Section (PDS).

Program History Log

Date Programmer Comments
2001-06-28 Gilbert Initial
2009-01-14 Vuong Changed structure name template to gtemplate
2009-12-15 Vuong Added Product Definition Templates 4.31, 4.15
2010-08-03 Vuong Added Product Definition Template 4.42 and 4.43
2010-12-08 Vuong Corrected Product Definition Template 4.42 and 4.43
2012-03-29 Vuong Added Templates 4.44,4.45,4.46,4.47,4.48,4.50, 4.51,4.91,4.32 and 4.52
2013-08-05 Vuong Corrected 4.91 and added Templates 4.33,4.34,4.53,4.54
2015-10-07 Vuong Added Templates 4.57, 4.60, 4.61 and allow a forecast time to be negative
Author
Stephen Gilbert
Date
2001-06-28

Definition in file pdstemplates.c.

Function Documentation

◆ extpdstemplate()

gtemplate* extpdstemplate ( g2int  number,
g2int list 
)

This subroutine generates the remaining octet map for a given Product Definition Template, if required.

Some Templates can vary depending on data values given in an earlier part of the Template, and it is necessary to know some of the earlier entry values to generate the full octet map of the Template.

This function allocates memory in the ext field of the gtemplate struct. This memory must be freed by the caller.

Parameters
numbernumber of the Product Definition Template 4.NN that is being requested.
listThe list of values for each entry in the the Product Definition Template.
Returns
Pointer to the returned template struct. Returns NULL pointer if template not found.
Author
Stephen Gilbert
Date
2000-05-11

Definition at line 121 of file pdstemplates.c.

References getpdsindex(), and getpdstemplate().

Referenced by g2_addfield(), and g2_unpack4().

◆ getpdsindex()

g2int getpdsindex ( g2int  number)

This function returns the index of specified Product Definition Template in array templates.

Parameters
numberThe number of the Product Definition Template that is being requested.
Returns
Index of PDT in array templates, if template exists. -1, otherwise.
Author
Stephen Gilbert
Date
2001-06-28

Definition at line 38 of file pdstemplates.c.

References MAXPDSTEMP, and templatespds.

Referenced by extpdstemplate(), and getpdstemplate().

◆ getpdstemplate()

gtemplate* getpdstemplate ( g2int  number)

This subroutine returns PDS template information for a specified Product Definition Template.

The number of entries in the template is returned along with a map of the number of octets occupied by each entry. Also, a flag is returned to indicate whether the template would need to be extended.

This function allocates memory for the gtemplate struct, which must be freed by the caller.

Parameters
numberthe number of the Product Definition Template that is being requested.
Returns
Pointer to the returned template struct. Returns NULL pointer if template not found.
Author
Stephen Gilbert
Date
2000-05-11

Definition at line 73 of file pdstemplates.c.

References getpdsindex(), pdstemplate::mappdslen, pdstemplate::needext, pdstemplate::template_num, and templatespds.

Referenced by extpdstemplate(), g2_addfield(), and g2_unpack4().