diff -up g2clib-1.2.3/drstemplates.c.templates g2clib-1.2.3/drstemplates.c --- g2clib-1.2.3/drstemplates.c.templates 2011-11-10 11:35:05.000000000 -0700 +++ g2clib-1.2.3/drstemplates.c 2012-03-09 12:44:49.190332026 -0700 @@ -2,6 +2,29 @@ #include "grib2.h" #include "drstemplates.h" +const struct drstemplate templatesdrs[MAXDRSTEMP] = { + // 5.0: Grid point data - Simple Packing + { 0, 5, 0, {4,-2,-2,1,1} }, + // 5.2: Grid point data - Complex Packing + { 2, 16, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1} }, + // 5.3: Grid point data - Complex Packing and spatial differencing + { 3, 18, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1,1,1} }, + // 5.50: Spectral Data - Simple Packing + { 50, 5, 0, {4,-2,-2,1,4} }, + // 5.51: Spherical Harmonics data - Complex packing + { 51, 10, 0, {4,-2,-2,1,-4,2,2,2,4,1} }, +// // 5.1: Matrix values at gridpoint - Simple packing +// { 1, 15, 1, {4,-2,-2,1,1,1,4,2,2,1,1,1,1,1,1} }, + // 5.40: Grid point data - JPEG2000 encoding + { 40, 7, 0, {4,-2,-2,1,1,1,1} }, + // 5.41: Grid point data - PNG encoding + { 41, 5, 0, {4,-2,-2,1,1} }, + // 5.40000: Grid point data - JPEG2000 encoding + { 40000, 7, 0, {4,-2,-2,1,1,1,1} }, + // 5.40010: Grid point data - PNG encoding + { 40010, 5, 0, {4,-2,-2,1,1} } +} ; + g2int getdrsindex(g2int number) /*!$$$ SUBPROGRAM DOCUMENTATION BLOCK ! . . . . diff -up g2clib-1.2.3/drstemplates.h.templates g2clib-1.2.3/drstemplates.h --- g2clib-1.2.3/drstemplates.h.templates 2011-11-10 11:35:05.000000000 -0700 +++ g2clib-1.2.3/drstemplates.h 2012-03-09 12:47:11.317245964 -0700 @@ -42,28 +42,8 @@ g2int mapdrs[MAXDRSMAPLEN]; }; - const struct drstemplate templatesdrs[MAXDRSTEMP] = { - // 5.0: Grid point data - Simple Packing - { 0, 5, 0, {4,-2,-2,1,1} }, - // 5.2: Grid point data - Complex Packing - { 2, 16, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1} }, - // 5.3: Grid point data - Complex Packing and spatial differencing - { 3, 18, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1,1,1} }, - // 5.50: Spectral Data - Simple Packing - { 50, 5, 0, {4,-2,-2,1,4} }, - // 5.51: Spherical Harmonics data - Complex packing - { 51, 10, 0, {4,-2,-2,1,-4,2,2,2,4,1} }, -// // 5.1: Matrix values at gridpoint - Simple packing -// { 1, 15, 1, {4,-2,-2,1,1,1,4,2,2,1,1,1,1,1,1} }, - // 5.40: Grid point data - JPEG2000 encoding - { 40, 7, 0, {4,-2,-2,1,1,1,1} }, - // 5.41: Grid point data - PNG encoding - { 41, 5, 0, {4,-2,-2,1,1} }, - // 5.40000: Grid point data - JPEG2000 encoding - { 40000, 7, 0, {4,-2,-2,1,1,1,1} }, - // 5.40010: Grid point data - PNG encoding - { 40010, 5, 0, {4,-2,-2,1,1} } - } ; + extern const struct drstemplate templatesdrs[]; + g2int getdrsindex(g2int number); #endif /* _drstemplates_H */ diff -up g2clib-1.2.3/gridtemplates.c.templates g2clib-1.2.3/gridtemplates.c --- g2clib-1.2.3/gridtemplates.c.templates 2011-11-10 11:35:05.000000000 -0700 +++ g2clib-1.2.3/gridtemplates.c 2012-03-09 12:46:16.725199636 -0700 @@ -2,6 +2,62 @@ #include "grib2.h" #include "gridtemplates.h" +const struct gridtemplate templatesgrid[MAXGRIDTEMP] = { + // 3.0: Lat/Lon grid + { 0, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, + // 3.1: Rotated Lat/Lon grid + { 1, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, + // 3.2: Stretched Lat/Lon grid + { 2, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, + // 3.3: Stretched & Rotated Lat/Lon grid + { 3, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, + // 3.10: Mercator + {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,-4,4,1,4,4,4} }, + // 3.20: Polar Stereographic Projection + {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1} }, + // 3.30: Lambert Conformal + {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, + // 3.31: Albers equal area + {31, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, + // 3.40: Guassian Lat/Lon + {40, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, + // 3.41: Rotated Gaussian Lat/Lon + {41, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, + // 3.42: Stretched Gaussian Lat/Lon + {42, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, + // 3.43: Stretched and Rotated Gaussian Lat/Lon + {43, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, + // 3.50: Spherical Harmonic Coefficients + {50, 5, 0, {4,4,4,1,1} }, + // 3.51: Rotated Spherical Harmonic Coefficients + {51, 8, 0, {4,4,4,1,1,-4,4,4} }, + // 3.52: Stretched Spherical Harmonic Coefficients + {52, 8, 0, {4,4,4,1,1,-4,4,-4} }, + // 3.53: Stretched and Rotated Spherical Harmonic Coefficients + {53, 11, 0, {4,4,4,1,1,-4,4,4,-4,4,-4} }, + // 3.90: Space View Perspective or orthographic + {90, 21, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,4,4,1,4,4,4,4} }, + // 3.100: Triangular grid based on an icosahedron + {100, 11, 0, {1,1,2,1,-4,4,4,1,1,1,4} }, + // 3.110: Equatorial Azimuthal equidistant + {110, 16, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,1,1} }, + // 3.120: Azimuth-range projection + {120, 7, 1, {4,4,-4,4,4,4,1} }, + // 3.204: Curvilinear Orthogonal Grid + {204, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, + // 3.32768: Rot Lat/Lon E-grid (Arakawa) + {32768, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, + // 3.32769: Rot Lat/Lon Non-E Staggered grid (Arakawa) + {32769, 21, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,4,4} }, + // 3.1000: Cross Section Grid + {1000, 20, 1, {1,1,4,1,4,1,4,4,4,4,-4,4,1,4,4,1,2,1,1,2} }, + // 3.1100: Hovmoller Diagram Grid + {1100, 28, 0, {1,1,4,1,4,1,4,4,4,4,-4,4,1,-4,4,1,4,1,-4,1,1,-4,2,1,1,1,1,1} }, + // 3.1200: Time Section Grid + {1200, 16, 1, {4,1,-4,1,1,-4,2,1,1,1,1,1,2,1,1,2} } + +} ; + g2int getgridindex(g2int number) /*!$$$ SUBPROGRAM DOCUMENTATION BLOCK ! . . . . diff -up g2clib-1.2.3/gridtemplates.h.templates g2clib-1.2.3/gridtemplates.h --- g2clib-1.2.3/gridtemplates.h.templates 2011-11-10 11:35:05.000000000 -0700 +++ g2clib-1.2.3/gridtemplates.h 2012-03-09 12:46:52.543918112 -0700 @@ -48,61 +48,8 @@ g2int mapgrid[MAXGRIDMAPLEN]; }; - const struct gridtemplate templatesgrid[MAXGRIDTEMP] = { - // 3.0: Lat/Lon grid - { 0, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, - // 3.1: Rotated Lat/Lon grid - { 1, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, - // 3.2: Stretched Lat/Lon grid - { 2, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, - // 3.3: Stretched & Rotated Lat/Lon grid - { 3, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, - // 3.10: Mercator - {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,-4,4,1,4,4,4} }, - // 3.20: Polar Stereographic Projection - {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1} }, - // 3.30: Lambert Conformal - {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, - // 3.31: Albers equal area - {31, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, - // 3.40: Guassian Lat/Lon - {40, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, - // 3.41: Rotated Gaussian Lat/Lon - {41, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, - // 3.42: Stretched Gaussian Lat/Lon - {42, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, - // 3.43: Stretched and Rotated Gaussian Lat/Lon - {43, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, - // 3.50: Spherical Harmonic Coefficients - {50, 5, 0, {4,4,4,1,1} }, - // 3.51: Rotated Spherical Harmonic Coefficients - {51, 8, 0, {4,4,4,1,1,-4,4,4} }, - // 3.52: Stretched Spherical Harmonic Coefficients - {52, 8, 0, {4,4,4,1,1,-4,4,-4} }, - // 3.53: Stretched and Rotated Spherical Harmonic Coefficients - {53, 11, 0, {4,4,4,1,1,-4,4,4,-4,4,-4} }, - // 3.90: Space View Perspective or orthographic - {90, 21, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,4,4,1,4,4,4,4} }, - // 3.100: Triangular grid based on an icosahedron - {100, 11, 0, {1,1,2,1,-4,4,4,1,1,1,4} }, - // 3.110: Equatorial Azimuthal equidistant - {110, 16, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,1,1} }, - // 3.120: Azimuth-range projection - {120, 7, 1, {4,4,-4,4,4,4,1} }, - // 3.204: Curvilinear Orthogonal Grid - {204, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, - // 3.32768: Rot Lat/Lon E-grid (Arakawa) - {32768, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, - // 3.32769: Rot Lat/Lon Non-E Staggered grid (Arakawa) - {32769, 21, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,4,4} }, - // 3.1000: Cross Section Grid - {1000, 20, 1, {1,1,4,1,4,1,4,4,4,4,-4,4,1,4,4,1,2,1,1,2} }, - // 3.1100: Hovmoller Diagram Grid - {1100, 28, 0, {1,1,4,1,4,1,4,4,4,4,-4,4,1,-4,4,1,4,1,-4,1,1,-4,2,1,1,1,1,1} }, - // 3.1200: Time Section Grid - {1200, 16, 1, {4,1,-4,1,1,-4,2,1,1,1,1,1,2,1,1,2} } - - } ; + extern const struct gridtemplate templatesgrid[]; + g2int getgridindex(g2int number); #endif /* _gridtemplates_H */ diff -up g2clib-1.2.3/pdstemplates.c.templates g2clib-1.2.3/pdstemplates.c --- g2clib-1.2.3/pdstemplates.c.templates 2011-11-10 11:35:05.000000000 -0700 +++ g2clib-1.2.3/pdstemplates.c 2012-03-09 12:49:04.463197056 -0700 @@ -2,6 +2,95 @@ #include "grib2.h" #include "pdstemplates.h" +const struct pdstemplate templatespds[MAXPDSTEMP] = { + // 4.0: Analysis or Forecast at Horizontal Level/Layer + // at a point in time + {0,15,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, + // 4.1: Individual Ensemble Forecast at Horizontal Level/Layer + // at a point in time + {1,18,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} }, + // 4.2: Derived Fcst based on whole Ensemble at Horiz Level/Layer + // at a point in time + {2,17,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1} }, + // 4.3: Derived Fcst based on Ensemble cluster over rectangular + // area at Horiz Level/Layer at a point in time + {3,31,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4} }, + // 4.4: Derived Fcst based on Ensemble cluster over circular + // area at Horiz Level/Layer at a point in time + {4,30,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4} }, + // 4.5: Probablility Forecast at Horiz Level/Layer + // at a point in time + {5,22,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4} }, + // 4.6: Percentile Forecast at Horiz Level/Layer + // at a point in time + {6,16,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1} }, + // 4.7: Analysis or Forecast Error at Horizontal Level/Layer + // at a point in time + {7,15,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, + // 4.8: Ave/Accum/etc... at Horiz Level/Layer + // in a time interval + {8,29,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.9: Probablility Forecast at Horiz Level/Layer + // in a time interval + {9,36,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.10: Percentile Forecast at Horiz Level/Layer + // in a time interval + {10,30,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.11: Individual Ensemble Forecast at Horizontal Level/Layer + // in a time interval + {11,32,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.12: Derived Fcst based on whole Ensemble at Horiz Level/Layer + // in a time interval + {12,31,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.13: Derived Fcst based on Ensemble cluster over rectangular + // area at Horiz Level/Layer in a time interval + {13,45,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.14: Derived Fcst based on Ensemble cluster over circular + // area at Horiz Level/Layer in a time interval + {14,44,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.15: Average, accumulation, extreme values or other statistically-processed values over a + // spatial area at a horizontal level or in a horizontal layer at a point in time + {15,18,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} }, + // 4.20: Radar Product + {20,19,0, {1,1,1,1,1,-4,4,2,4,2,1,1,1,1,1,2,1,3,2} }, + // 4.30: Satellite Product + {30,5,1, {1,1,1,1,1} }, + // 4.31: Satellite Product + {31,5,1, {1,1,1,1,1} }, + // 4.40: Analysis or forecast at a horizontal level or in a horizontal layer + // at a point in time for atmospheric chemical constituents + {40,16,0, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, + // 4.41: Individual ensemble forecast, control and perturbed, at a horizontal level or + // in a horizontal layer at a point in time for atmospheric chemical constituents + {41,19,0, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} }, + // 4.42: Average, accumulation, and/or extreme values or other statistically-processed values + // at a horizontal level or in a horizontal layer in a continuous or non-continuous + // time interval for atmospheric chemical constituents + {42,30,1, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.43: Individual ensemble forecast, control and perturbed, at a horizontal level + // or in a horizontal layer in a continuous or non-continuous + // time interval for atmospheric chemical constituents + {43,33,1, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, + // 4.254: CCITT IA5 Character String + {254,3,0, {1,1,4} }, + // 4.1000: Cross section of analysis or forecast + // at a point in time + {1000,9,0, {1,1,1,1,1,2,1,1,4} }, + // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast + // in a time interval + {1001,16,0, {1,1,1,1,1,2,1,1,4,4,1,1,1,4,1,4} }, + // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast + // over latitude or longitude + {1002,15,0, {1,1,1,1,1,2,1,1,4,1,1,1,4,4,2} }, + // 4.1100: Hovmoller-type grid w/ no averaging or other + // statistical processing + {1100,15,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, + // 4.1100: Hovmoller-type grid with averaging or other + // statistical processing + {1101,22,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,4,1,1,1,4,1,4} } + +} ; + g2int getpdsindex(g2int number) ///$$$ SUBPROGRAM DOCUMENTATION BLOCK // . . . . diff -up g2clib-1.2.3/pdstemplates.h.templates g2clib-1.2.3/pdstemplates.h --- g2clib-1.2.3/pdstemplates.h.templates 2011-11-10 11:35:05.000000000 -0700 +++ g2clib-1.2.3/pdstemplates.h 2012-03-09 12:48:06.644266128 -0700 @@ -48,94 +48,8 @@ g2int mappds[MAXPDSMAPLEN]; }; - const struct pdstemplate templatespds[MAXPDSTEMP] = { - // 4.0: Analysis or Forecast at Horizontal Level/Layer - // at a point in time - {0,15,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, - // 4.1: Individual Ensemble Forecast at Horizontal Level/Layer - // at a point in time - {1,18,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} }, - // 4.2: Derived Fcst based on whole Ensemble at Horiz Level/Layer - // at a point in time - {2,17,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1} }, - // 4.3: Derived Fcst based on Ensemble cluster over rectangular - // area at Horiz Level/Layer at a point in time - {3,31,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4} }, - // 4.4: Derived Fcst based on Ensemble cluster over circular - // area at Horiz Level/Layer at a point in time - {4,30,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4} }, - // 4.5: Probablility Forecast at Horiz Level/Layer - // at a point in time - {5,22,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4} }, - // 4.6: Percentile Forecast at Horiz Level/Layer - // at a point in time - {6,16,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1} }, - // 4.7: Analysis or Forecast Error at Horizontal Level/Layer - // at a point in time - {7,15,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, - // 4.8: Ave/Accum/etc... at Horiz Level/Layer - // in a time interval - {8,29,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.9: Probablility Forecast at Horiz Level/Layer - // in a time interval - {9,36,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.10: Percentile Forecast at Horiz Level/Layer - // in a time interval - {10,30,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.11: Individual Ensemble Forecast at Horizontal Level/Layer - // in a time interval - {11,32,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.12: Derived Fcst based on whole Ensemble at Horiz Level/Layer - // in a time interval - {12,31,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.13: Derived Fcst based on Ensemble cluster over rectangular - // area at Horiz Level/Layer in a time interval - {13,45,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.14: Derived Fcst based on Ensemble cluster over circular - // area at Horiz Level/Layer in a time interval - {14,44,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.15: Average, accumulation, extreme values or other statistically-processed values over a - // spatial area at a horizontal level or in a horizontal layer at a point in time - {15,18,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} }, - // 4.20: Radar Product - {20,19,0, {1,1,1,1,1,-4,4,2,4,2,1,1,1,1,1,2,1,3,2} }, - // 4.30: Satellite Product - {30,5,1, {1,1,1,1,1} }, - // 4.31: Satellite Product - {31,5,1, {1,1,1,1,1} }, - // 4.40: Analysis or forecast at a horizontal level or in a horizontal layer - // at a point in time for atmospheric chemical constituents - {40,16,0, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, - // 4.41: Individual ensemble forecast, control and perturbed, at a horizontal level or - // in a horizontal layer at a point in time for atmospheric chemical constituents - {41,19,0, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} }, - // 4.42: Average, accumulation, and/or extreme values or other statistically-processed values - // at a horizontal level or in a horizontal layer in a continuous or non-continuous - // time interval for atmospheric chemical constituents - {42,30,1, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.43: Individual ensemble forecast, control and perturbed, at a horizontal level - // or in a horizontal layer in a continuous or non-continuous - // time interval for atmospheric chemical constituents - {43,33,1, {1,1,2,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, - // 4.254: CCITT IA5 Character String - {254,3,0, {1,1,4} }, - // 4.1000: Cross section of analysis or forecast - // at a point in time - {1000,9,0, {1,1,1,1,1,2,1,1,4} }, - // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast - // in a time interval - {1001,16,0, {1,1,1,1,1,2,1,1,4,4,1,1,1,4,1,4} }, - // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast - // over latitude or longitude - {1002,15,0, {1,1,1,1,1,2,1,1,4,1,1,1,4,4,2} }, - // 4.1100: Hovmoller-type grid w/ no averaging or other - // statistical processing - {1100,15,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} }, - // 4.1100: Hovmoller-type grid with averaging or other - // statistical processing - {1101,22,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,4,1,1,1,4,1,4} } - - } ; + extern const struct pdstemplate templatespds[]; + g2int getpdsindex(g2int number); #endif /* _pdstemplates_H */