Loading...
Searching...
No Matches
g2_create.c File Reference

Initialize a new GRIB2 message and pack GRIB2 sections 0 (Indicator Section) and 1 (Identification Section). More...

`#include "grib2_int.h"`
`#include <stdio.h>`

Go to the source code of this file.

## Macros

#define | LENSEC0 16
| Length of GRIB Section 0.
#define | MAPSEC1LEN 13
| Length of Map Section 1.

## Functions

g2int | g2_create (unsigned char *cgrib, g2int *listsec0, g2int *listsec1)
| Initialize a new GRIB2 message and pack GRIB2 Section 0 (Indicator Section) and Section 1 (Identification Section).

## Detailed Description

Initialize a new GRIB2 message and pack GRIB2 sections 0 (Indicator Section) and 1 (Identification Section).

Author
  Stephen Gilbert

Date
  2002-10-31

Definition in file g2_create.c.

## Macro Definition Documentation

## LENSEC0

#define LENSEC0 16

Length of GRIB Section 0.

Definition at line 11 of file g2_create.c.

## MAPSEC1LEN

#define MAPSEC1LEN 13

Length of Map Section 1.

Definition at line 10 of file g2_create.c.

## Function Documentation

## g2_create()

g2int g2_create | ( | unsigned char * | cgrib,
|  | g2int * | listsec0,
|  | g2int * | listsec1
| ) |  |

Initialize a new GRIB2 message and pack GRIB2 Section 0 (Indicator Section) and Section 1 (Identification Section).

This routine is used with routines g2_addlocal(), g2_addgrid(), g2_addfield(), and g2_gribend() to create a complete GRIB2 message. g2_create() must be called first to initialize a new GRIB2 message. A call to g2_gribend() is required to complete GRIB2 message after all fields have been added.

Parameters

  [in] | cgrib | Character array to contain the GRIB2 message. Must be allocated large enough to store the entire GRIB2 message.

  [in]

  listsec0

  Contains information needed for GRIB Indicator Section 0. Must be dimensioned >= 2.
  - listsec0[0] Discipline-GRIB Master Table Number ([Code Table 0.0] (https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table0-0.shtml)).
  - listsec0[1] GRIB Edition Number (currently 2).

  [in]

  listsec1

  Contains information needed for GRIB Identification Section 1. Must be dimensioned >= 13.
  - listsec1[0] Id of orginating centre ([Table 0] (https://www.nco.ncep.noaa.gov/pmb/docs/on388/table0.html)).
  - listsec1[1] Id of orginating sub-centre ([Table C] (https://www.nco.ncep.noaa.gov/pmb/docs/on388/tablec.html)).
  - listsec1[2] GRIB Master Tables Version Number ([Table 1.0] (https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table1-0.shtml)).
  - listsec1[3] GRIB Local Tables Version Number ([Table 1.1] (https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table1-1.shtml)).
  - listsec1[4] Significance of Reference Time ([Table 1.2] (https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table1-2.shtml))
  - listsec1[5] Reference Time - Year (4 digits)
  - listsec1[6] Reference Time - Month
  - listsec1[7] Reference Time - Day
  - listsec1[8] Reference Time - Hour
  - listsec1[9] Reference Time - Minute
  - listsec1[10] Reference Time - Second
  - listsec1[11] Production status of data ([Table 1.3] (https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table1-3.shtml)).
  - listsec1[12] Type of processed data ([Table 1.4] (https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table1-4.shtml)).

Returns
  - > 0 Current size of new GRIB2 message
  - G2_CREATE_GRIB_VERSION Tried to use for version other than GRIB Edition 2

This routine is intended for use with routines g2_addlocal(), g2_addgrid(), g2_addfield(), and g2_gribend() to create a complete GRIB2 message.

Author
  Stephen Gilbeert

Date
  2002-10-31

Definition at line 68 of file g2_create.c.

References G2_CREATE_GRIB_VERSION, LENSEC0, MAPSEC1LEN, and sbit().