Provided by: libg2c-dev_2.1.0-1_amd64 bug

NAME

       gridtemplates.c - Returns grid template information for a specified Grid Definition Template for Section
       3 - the Grid Definition Section (GDS).

SYNOPSIS

       #include 'grib2_int.h'

   Functions
       gtemplate * extgridtemplate (g2int number, g2int *template)
           This subroutine generates the remaining octet map for a given Grid Definition Template, if required.
       int g2c_get_grid_template (int grid_template_num, int *maplen, int *map, int *needext)
           Get grid template information.
       int g2c_get_grid_template_extension (int grid_template_num, int *template, int *extlen, int *ext)
           Get grid template extension information.
       static g2int getgridindex (g2int number)
           This function returns the index of specified Grid Definition Template in array templates for [Section
           3 - the Grid Definition Section
           (GDS)](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_sect3.shtml).
       gtemplate * getgridtemplate (g2int number)
           This subroutine returns grid template information for a specified Grid Definition Template for
           [Section 3 - the Grid Definition Section
           (GDS)](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_sect3.shtml).

   Variables
       static const struct gridtemplate templatesgrid [G2C_MAX_GDS_TEMPLATE]
           Templates grid.

Detailed Description

       Returns grid template information for a specified Grid Definition Template for Section 3 - the Grid
       Definition Section (GDS).

       Each Template has three parts:

       1.  The number of entries in the template (mapgridlen).

       2.  A  map  of  the  template (mapgrid), which contains the number of octets in which to pack each of the
           template values.

       3.  A logical value (needext) that indicates whether the Template needs to be extended.

       In some cases the number of entries in a template  can  vary  depending  upon  values  specified  in  the
       'static' part of the template. (See Template 3.120 as an example).

       Note
           Array  mapgrid  contains  the  number  of  octets  in which the corresponding template values will be
           stored. A negative value in mapgrid is used to indicate that the  corresponding  template  entry  can
           contain negative values. This information is used later when packing (or unpacking) the template data
           values.  Negative  data  values  in GRIB are stored with the left most bit set to one, and a negative
           number of octets value in mapgrid indicates that this possibility should be considered. The number of
           octets used to store the data value in this case would be the absolute value of the negative value in
           mapgrid.

   Program History Log
       Date   Programmer   Comments    2001-06-28   Gilbert   Initial    2007-08-16   Vuong    Added  GDT  3.204
       Curvilinear  Orthogonal  Grid     2008-07-08    Vuong   Added GDT 3.32768 Rotate Lat/Lon E-grid (Arakawa)
       2009-01-14   Vuong   Changed structure name template  to  gtemplate     2010-05-11    Vuong    Added  GDT
       3.32769  Rotate  Lat/Lon Non-E Staggered grid (Arakawa)    2013-08-06   Vuong   Added GDT 3.4, 3.5, 3.12,
       3.101, 3.140    2022-10-16   Hartnett   Added g2c_get_grid_template().    2025-01-06   Stahl   Added  GDT
       3.13, 3.23, 3.33, 3.61, 3.62, 3.63, 3.150

       Author
           Stephen Gilbert

       Date
           2001-06-28

       Definition in file gridtemplates.c.

Function Documentation

   gtemplate * extgridtemplate (g2int number, g2int * template)
       This subroutine generates the remaining octet map for a given Grid 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 for the extension. The pointer ext in the gtemplate struct must be freed
       to prevent memory leaks.

       Parameters
           number The number of the Grid Definition Template that is being requested.
           template The grid definition template array.

       Returns
           Pointer to the returned template struct. Returns NULL pointer, if template not found.

       Author
           Stephen Gilbert

       Date
           2000-05-09

       Definition at line 241 of file gridtemplates.c.

       References getgridindex(), and getgridtemplate().

       Referenced by g2_addgrid(), g2_unpack3(), and g2c_get_grid_template_extension().

   int g2c_get_grid_template (int grid_template_num, int * maplen, int * map, int * needext)
       Get grid template information. The grid template consists of a template map, its length,  and,  for  some
       templates,   an   extra   extension   map,   and   its   length.   If   an   extension   is  needed,  use
       g2c_get_grid_template_extension() to get it.

       Parameters
           grid_template_num The grid template number.
           maplen Pointer that gets the length of the map. Ignored if NULL.
           map Pointer that gets the map as an array of int. Memory must be  allocated  by  caller.  Ignored  if
           NULL.
           needext Pointer that a non-zero value if an extension to this template is needed. Ignored if NULL.

       ReturnsG2C_NOERROR No error.

           • G2C_ENOTEMPLATE Template not found.

       Author
           Ed Hartnett

       Date
           10/16/22

       Definition at line 391 of file gridtemplates.c.

       References G2C_ENOTEMPLATE, G2C_MAX_GDS_TEMPLATE, G2C_NOERROR, and templatesgrid.

       Referenced by g2c_rw_section3_metadata().

   int g2c_get_grid_template_extension (int grid_template_num, int * template, int * extlen, int * ext)
       Get grid template extension information.

       Parameters
           grid_template_num The grid template number.
           template Pointer to array that contains the template values.
           extlen Pointer that gets the length of the extension. Ignored if NULL.
           ext  Pointer  that  gets  template  extension array, if there is one. Memory must be allocated by the
           caller. Ignored if NULL.

       ReturnsG2C_NOERROR No error.

           • G2C_EINVAL Invalid input.

           • G2C_ENOTEMPLATE Template not found.

           • G2C_ENOMEM Out of memory.

       Author
           Ed Hartnett

       Date
           10/16/22

       Definition at line 316 of file gridtemplates.c.

       References gtemplate::ext, extgridtemplate(), gtemplate::extlen, G2C_EINVAL, G2C_ENOMEM, G2C_ENOTEMPLATE,
       G2C_MAX_GDS_TEMPLATE, G2C_NOERROR, and templatesgrid.

   static g2int getgridindex (g2int number) [static]
       This function returns the index of specified Grid Definition Template in array templates for [Section 3 -
       the                           Grid                           Definition                           Section
       (GDS)](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_sect3.shtml).

       Parameters
           number The number of the Grid Definition Template being requested.

       Returns
           Index of the Grid Definition Template(GDT) in array templates, if template exists. -1, otherwise.

       Author
           Stephen Gilbert

       Date
           2001-06-28

       Definition at line 155 of file gridtemplates.c.

       References G2C_MAX_GDS_TEMPLATE, getgridindex(), and templatesgrid.

       Referenced by extgridtemplate(), getgridindex(), and getgridtemplate().

   gtemplate * getgridtemplate (g2int number)
       This subroutine returns grid template information for a specified Grid Definition Template for [Section 3
       -                    the                    Grid                    Definition                    Section
       (GDS)](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_sect3.shtml). 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 storage for the template. The returned pointer must be freed by the caller.

       Parameters
           number The number of the Grid Definition Template that is being requested.

       Returns
           Pointer  to the returned template struct (must be freed by caller). Returns NULL pointer, if template
           not found.

       Author
           Stephen Gilbert

       Date
           2000-05-09

       Definition at line 193 of file gridtemplates.c.

       References getgridindex(), and templatesgrid.

       Referenced by extgridtemplate(), g2_addgrid(), and g2_unpack3().

Variable Documentation

   const struct gridtemplate templatesgrid[G2C_MAX_GDS_TEMPLATE] [static]
       Templates grid.

       Definition at line 58 of file gridtemplates.c.

       Referenced   by   g2c_get_grid_template(),   g2c_get_grid_template_extension(),    getgridindex(),    and
       getgridtemplate().

Author

       Generated automatically by Doxygen for NCEPLIBS-g2c from the source code.

NCEPLIBS-g2c                                      Version 2.1.0                               gridtemplates.c(3)