diff -up g2clib-1.4.0/drstemplates.c.templates g2clib-1.4.0/drstemplates.c
--- g2clib-1.4.0/drstemplates.c.templates 2012-02-15 06:54:35.000000000 -0700
+++ g2clib-1.4.0/drstemplates.c 2012-10-16 21:08:27.865161369 -0600
@@ -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.4.0/drstemplates.h.templates g2clib-1.4.0/drstemplates.h
--- g2clib-1.4.0/drstemplates.h.templates 2012-02-15 06:54:35.000000000 -0700
+++ g2clib-1.4.0/drstemplates.h 2012-10-16 21:08:27.866161370 -0600
@@ -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.4.0/gridtemplates.c.templates g2clib-1.4.0/gridtemplates.c
--- g2clib-1.4.0/gridtemplates.c.templates 2012-02-15 06:54:37.000000000 -0700
+++ g2clib-1.4.0/gridtemplates.c 2012-10-16 21:08:27.866161370 -0600
@@ -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.4.0/gridtemplates.h.templates g2clib-1.4.0/gridtemplates.h
--- g2clib-1.4.0/gridtemplates.h.templates 2012-02-15 06:54:37.000000000 -0700
+++ g2clib-1.4.0/gridtemplates.h 2012-10-16 21:08:27.867161370 -0600
@@ -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.4.0/pdstemplates.c.templates g2clib-1.4.0/pdstemplates.c
--- g2clib-1.4.0/pdstemplates.c.templates 2012-07-05 06:55:00.000000000 -0600
+++ g2clib-1.4.0/pdstemplates.c 2012-10-16 21:14:56.852259098 -0600
@@ -2,6 +2,135 @@
#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} },
+ // 4.32:Simulate (synthetic) Satellite Product
+ {32,10,1, {1,1,1,1,1,2,1,1,2,1} },
+ // 4.44: Analysis or forecast at a horizontal level or in a horizontal layer
+ // at a point in time for Aerosol
+ {44,21,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,2,1,-1,-4,1,-1,-4} },
+ // 4.45: Individual ensemble forecast, control and
+ // perturbed, at a horizontal level or in a horizontal layer
+ // at a point in time for Aerosol
+ {45,24,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} },
+ // 4.46: Ave or Accum or Extreme value at level/layer
+ // at horizontal level or in a horizontal in a continuous or
+ // non-continuous time interval for Aerosol
+ {46,35,1, {1,1,2,1,-1,-4,-1,-4,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.47: Individual ensemble forecast, control and
+ // perturbed, at horizontal level or in a horizontal
+ // in a continuous or non-continuous time interval for Aerosol
+ {47,38,1, {1,1,1,2,1,-1,-4,-1,-4,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} },
+
+ // VALIDATION --- PDT 4.48
+ // 4.48: Analysis or forecast at a horizontal level or in a horizontal layer
+ // at a point in time for Optical Properties of Aerosol
+ {48,26,0, {1,1,2,1,-1,-4,-1,-4,1,-1,-4,-1,-4,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} },
+
+ // VALIDATION --- PDT 4.50
+ // 4.50: Analysis or forecast of multi component parameter or
+ // matrix element at a point in time
+ {50,21,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,4,4,4,4} },
+
+ // VALIDATIONi --- PDT 4.52
+ // 4.52: Analysis or forecast of Wave parameters
+ // at the Sea surface at a point in time
+ {52,15,0, {1,1,1,1,1,1,1,1,2,1,1,4,1,-1,-4} },
+
+ // 4.51: Categorical forecasts at a horizontal level or
+ // in a horizontal layer at a point in time
+ {51,16,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1} },
+ // 4.91: Categorical forecasts at a horizontal level or
+ // in a horizontal layer at a point in time
+ // in a continuous or non-continuous time interval
+ {91,16,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1} }
+
+} ;
+
g2int getpdsindex(g2int number)
///$$$ SUBPROGRAM DOCUMENTATION BLOCK
// . . . .
diff -up g2clib-1.4.0/pdstemplates.h.templates g2clib-1.4.0/pdstemplates.h
--- g2clib-1.4.0/pdstemplates.h.templates 2012-07-05 06:55:00.000000000 -0600
+++ g2clib-1.4.0/pdstemplates.h 2012-10-16 21:14:43.084255843 -0600
@@ -51,134 +51,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} },
- // 4.32:Simulate (synthetic) Satellite Product
- {32,10,1, {1,1,1,1,1,2,1,1,2,1} },
- // 4.44: Analysis or forecast at a horizontal level or in a horizontal layer
- // at a point in time for Aerosol
- {44,21,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,2,1,-1,-4,1,-1,-4} },
- // 4.45: Individual ensemble forecast, control and
- // perturbed, at a horizontal level or in a horizontal layer
- // at a point in time for Aerosol
- {45,24,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,1} },
- // 4.46: Ave or Accum or Extreme value at level/layer
- // at horizontal level or in a horizontal in a continuous or
- // non-continuous time interval for Aerosol
- {46,35,1, {1,1,2,1,-1,-4,-1,-4,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.47: Individual ensemble forecast, control and
- // perturbed, at horizontal level or in a horizontal
- // in a continuous or non-continuous time interval for Aerosol
- {47,38,1, {1,1,1,2,1,-1,-4,-1,-4,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} },
-
- // VALIDATION --- PDT 4.48
- // 4.48: Analysis or forecast at a horizontal level or in a horizontal layer
- // at a point in time for Optical Properties of Aerosol
- {48,26,0, {1,1,2,1,-1,-4,-1,-4,1,-1,-4,-1,-4,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4} },
-
- // VALIDATION --- PDT 4.50
- // 4.50: Analysis or forecast of multi component parameter or
- // matrix element at a point in time
- {50,21,0, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1,1,4,4,4,4} },
-
- // VALIDATIONi --- PDT 4.52
- // 4.52: Analysis or forecast of Wave parameters
- // at the Sea surface at a point in time
- {52,15,0, {1,1,1,1,1,1,1,1,2,1,1,4,1,-1,-4} },
-
- // 4.51: Categorical forecasts at a horizontal level or
- // in a horizontal layer at a point in time
- {51,16,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1} },
- // 4.91: Categorical forecasts at a horizontal level or
- // in a horizontal layer at a point in time
- // in a continuous or non-continuous time interval
- {91,16,1, {1,1,1,1,1,2,1,1,4,1,-1,-4,1,-1,-4,1} }
-
- } ;
-
+ extern const struct pdstemplate templatespds[];
+
+ g2int getpdsindex(g2int number);
#endif /* _pdstemplates_H */