NCEPLIBS-g2c  1.8.0
g2_create.c File Reference

Initializes a new GRIB2 message and packs GRIB2 sections 0 (Indicator Section) and 1 (Identification Section). More...

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

Go to the source code of this file.

Macros

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

Functions

g2int g2_create (unsigned char *cgrib, g2int *listsec0, g2int *listsec1)
 This routine initializes a new GRIB2 message and packs GRIB2 Section 0 (Indicator Section) and Section 1 (Identification Section). More...
 

Detailed Description

Initializes a new GRIB2 message and packs 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 
)

This routine initializes a new GRIB2 message and packs 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]cgribCharacter array to contain the GRIB2 message. Must be allocated large enough to store the entire GRIB2 message.
[in]listsec0Contains information needed for GRIB Indicator Section 0. Must be dimensioned >= 2.
  • listsec0[0] Discipline-GRIB Master Table Number (Code Table 0.0).
  • listsec0[1] GRIB Edition Number (currently 2).
[in]listsec1Contains information needed for GRIB Identification Section 1. Must be dimensioned >= 13.
  • listsec1[0] Id of orginating centre (Table 0).
  • listsec1[1] Id of orginating sub-centre (Table C).
  • listsec1[2] GRIB Master Tables Version Number (Table 1.0).
  • listsec1[3] GRIB Local Tables Version Number (Table 1.1).
  • listsec1[4] Significance of Reference Time (Table 1.2)
  • 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).
  • listsec1[12] Type of processed data (Table 1.4).
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().