Provided by: libg2c-dev_1.6.4-3_amd64 bug

NAME

       g2_unpack7.c - Unpack Section 7 (Data Section) as defined in GRIB Edition 2.

SYNOPSIS

       #include <stdio.h>
       #include <stdlib.h>
       #include <memory.h>
       #include <string.h>
       #include 'grib2.h'

   Functions
       int comunpack (unsigned char *, g2int, g2int, g2int *, g2int, g2float *)
           This subroutine unpacks a data field that was packed using a complex packing algorithm
           as defined in the GRIB2 documention, using info from the GRIB2 Data Representation
           Template 5.2 or 5.3.
       g2int g2_unpack7 (unsigned char *cgrib, g2int *iofst, g2int igdsnum, g2int *igdstmpl,
           g2int idrsnum, g2int *idrstmpl, g2int ndpts, g2float **fld)
           This subroutine unpacks Section 7 (Data Section) as defined in GRIB Edition 2.
       g2int jpcunpack (unsigned char *, g2int, g2int *, g2int, g2float *)
           This subroutine unpacks a data field that was packed into a JPEG2000 code stream using
           info from the GRIB2 Data Representation Template 5.40 or 5.40000.
       g2int pngunpack (unsigned char *, g2int, g2int *, g2int, g2float *)
           This subroutine unpacks a data field that was packed into a PNG image format using
           info from the GRIB2 Data Representation Template 5.41 or 5.40010.
       g2int simunpack (unsigned char *, g2int *, g2int, g2float *)
           This subroutine unpacks a data field that was packed using a simple packing algorithm
           as defined in the GRIB2 documention, using info from the GRIB2 Data Representation
           Template 5.0.
       g2int specunpack (unsigned char *, g2int *, g2int, g2int, g2int, g2int, g2float *)
           This subroutine unpacks a spectral data field that was packed using the complex
           packing algorithm for spherical harmonic data as defined in the GRIB2 documention,
           using info from the GRIB2 Data Representation Template 5.51.

Detailed Description

       Unpack Section 7 (Data Section) as defined in GRIB Edition 2.

       Author
           Stephen Gilbert

       Date
           2002-10-31

       Definition in file g2_unpack7.c.

Function Documentation

   int comunpack (unsigned char * cpack, g2int lensec, g2int idrsnum, g2int * idrstmpl, g2int
       ndpts, g2float * fld)
       This subroutine unpacks a data field that was packed using a complex packing algorithm as
       defined in the GRIB2 documention, using info from the GRIB2 Data Representation Template
       5.2 or 5.3. Supports GRIB2 complex packing templates with or without spatial differences
       (i.e. DRTs 5.2 and 5.3).

       PROGRAM HISTORY LOG:

       • 2002-10-29 Gilbert

       • 2004-12-16 Gilbert Added test (provided by Arthur Taylor/MDL) to verify that group
         widths and lengths are consistent with section length.

       Parameters
           cpack pointer to the packed data field.
           lensec length of section 7 (used for error checking).
           idrsnum Data Representation Template number 5.N Must equal 2 or 3.
           idrstmpl pointer to the array of values for Data Representation Template 5.2 or 5.3
           ndpts The number of data values to unpack
           fld Contains the unpacked data values. fld must be allocated with at least
           ndpts*sizeof(g2float) bytes before calling this routine.

       Returns
           0 for success, error code otherwise.

       Author
           Stephen Gilbert

       Date
           2002-10-29

       Definition at line 39 of file comunpack.c.

       References gbit(), gbits(), int_power(), and rdieee().

       Referenced by g2_unpack7().

   g2int g2_unpack7 (unsigned char * cgrib, g2int * iofst, g2int igdsnum, g2int * igdstmpl, g2int
       idrsnum, g2int * idrstmpl, g2int ndpts, g2float ** fld)
       This subroutine unpacks Section 7 (Data Section) as defined in GRIB Edition 2. PROGRAM
       HISTORY LOG:

       • 2002-10-31 Gilbert

       • 2002-12-20 Gilbert - Added GDT info to arguments and added 5.51 processing.

       • 2003-08-29 Gilbert - Added support for new templates using PNG and JPEG2000
         algorithms/templates.

       • 2004-11-29 Gilbert - JPEG2000 now allowed to use WMO Template no. 5.40 PNG now allowed
         to use WMO Template no. 5.41

       • 2004-12-16 Taylor - Added check on comunpack return code.

       • 2008-12-23 Wesley - Initialize Number of data points unpacked

       Parameters
           cgrib char array containing Section 7 of the GRIB2 message
           iofst Bit offset of the beginning of Section 7 in cgrib.
           igdsnum Grid Definition Template Number (see Code Table 3.0) (Only used for DRS
           Template 5.51)
           igdstmpl Pointer to an integer array containing the data values for the specified Grid
           Definition Template (N=igdsnum). Each element of this integer array contains an entry
           (in the order specified) of Grid Definition Template 3.N. (Only used for DRS Template
           5.51).
           idrsnum Data Representation Template Number (see Code Table 5.0)
           idrstmpl Pointer to an integer array containing the data values for the specified Data
           Representation Template (N=idrsnum). Each element of this integer array contains an
           entry (in the order specified) of Data Representation Template 5.N
           ndpts Number of data points unpacked and returned.
           fld Pointer to a float array containing the unpacked data field.

       Returns

           • 0 no error

           • 2 Not section 7

           • 4 Unrecognized Data Representation Template

           • 5 need one of GDT 3.50 through 3.53 to decode DRT 5.51

           • 6 memory allocation error

           • 7 corrupt section 7.

       Author
           Stephen Gilbert

       Date
           2002-10-31

       Definition at line 66 of file g2_unpack7.c.

       References comunpack(), gbit(), jpcunpack(), pngunpack(), rdieee(), simunpack(), and
       specunpack().

       Referenced by g2_getfld().

   g2int jpcunpack (unsigned char * cpack, g2int len, g2int * idrstmpl, g2int ndpts, g2float *
       fld)
       This subroutine unpacks a data field that was packed into a JPEG2000 code stream using
       info from the GRIB2 Data Representation Template 5.40 or 5.40000.

       Parameters
           cpack The packed data field (character*1 array).
           len length of packed field cpack.
           idrstmpl Pointer to array of values for Data Representation Template 5.40 or 5.40000.
           ndpts The number of data values to unpack.
           fld Contains the unpacked data values.

       Returns
           0 for success, 1 for memory allocation error.

       Author
           Stephem Gilbert

       Date
           2003-08-27

       Definition at line 29 of file jpcunpack.c.

       References dec_jpeg2000(), int_power(), and rdieee().

       Referenced by g2_unpack7().

   g2int pngunpack (unsigned char * cpack, g2int len, g2int * idrstmpl, g2int ndpts, g2float *
       fld)
       This subroutine unpacks a data field that was packed into a PNG image format using info
       from the GRIB2 Data Representation Template 5.41 or 5.40010.

       Parameters
           cpack The packed data field (character*1 array).
           len length of packed field cpack().
           idrstmpl Pointer to array of values for Data Representation Template 5.41 or 5.40010.
           ndpts The number of data values to unpack.
           fld Contains the unpacked data values.

       Returns
           0 for success, 1 for memory allocation error.

       Author
           Stephen Gilbert

       Date
           2003-08-27

       Definition at line 27 of file pngunpack.c.

       References dec_png(), gbits(), int_power(), and rdieee().

       Referenced by g2_unpack7().

   g2int simunpack (unsigned char * cpack, g2int * idrstmpl, g2int ndpts, g2float * fld)
       This subroutine unpacks a data field that was packed using a simple packing algorithm as
       defined in the GRIB2 documention, using info from the GRIB2 Data Representation Template
       5.0.

       Parameters
           cpack pointer to the packed data field.
           idrstmpl pointer to the array of values for Data Representation Template 5.0.
           ndpts The number of data values to unpack.
           fld Contains the unpacked data values. fld must be allocated with at least
           ndpts*sizeof(g2float) bytes before calling this routine.

       Returns
           0 for success, error code otherwise.

       Author
           Stephen Gilbert

       Date
           2002-10-29

       Definition at line 26 of file simunpack.c.

       References gbits(), int_power(), and rdieee().

       Referenced by g2_unpack7().

   g2int specunpack (unsigned char * cpack, g2int * idrstmpl, g2int ndpts, g2int JJ, g2int KK,
       g2int MM, g2float * fld)
       This subroutine unpacks a spectral data field that was packed using the complex packing
       algorithm for spherical harmonic data as defined in the GRIB2 documention, using info from
       the GRIB2 Data Representation Template 5.51.

       Parameters
           cpack pointer to the packed data field.
           idrstmpl pointer to the array of values for Data Representation Template 5.51.
           ndpts The number of data values to unpack (real and imaginary parts).
           JJ pentagonal resolution parameter.
           KK pentagonal resolution parameter.
           MM pentagonal resolution parameter.
           fld Contains the unpacked data values. fld must be allocated with at least
           ndpts*sizeof(g2float) bytes before calling this routine.

       Returns
           0 for success, -3 for wrong type.

       Author
           Stephen Gilbert

       Date
           2000-06-21

       Definition at line 34 of file specunpack.c.

       References gbits(), int_power(), and rdieee().

       Referenced by g2_unpack7().

Author

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