======================================================================
These notes apply to g2clib-1.4.0:

I downloaded g2clib-1.4.0 on July 7, 2013.

The only change I think I need to make is to gridtemplates.h again.

I see that pdstemplates.{h,c} changed between 1.2.3 and 1.4.0, but
it looks like that was to correct some table entries and perhaps
add a few more.

======================================================================
These notes apply to g2clib-1.2.3:

Follow-up: The only file changed in 1.2.3 was gridtemplates.h.
  Here's the svn message:

r13157 | haley | 2012-02-08 21:53:56 -0700 (Wed, 08 Feb 2012) | 2 lines

======================================================================
These notes apply to g2clib-1.2.1 and g2clib-1.2.3:

I don't believe Dave's changes to the gridtemplates.h file made it
into this release, so I will make the change and hand it off to Dave
for review.

I believe Dave's changes to the pdstemplates.c and pdstemplates.h 
file made it into this version. 

======================================================================
These notes apply to g2clib-1.1.9 only:

Dave Brown made additional changes to this library so it could read
a  MET9_IR108_cosmode_0909210000.grib2 satellite file.
See Jira ticket #NCL-293. Here's a comment from Dave:

I have modified version 1.1.9 of the g2clib to allow NCL to read this
file. Changes were required in 3 files. I also had to make a small
change to the NCL GRIB2 reader. Here is the check-in message for
NclGRIB2.c (version 1.59):

Modified Files: 
NclGRIB2.c 
Log Message: 

This makes NCL more flexible with respect to GRIB2 rotated lat/lon
grids.  It seems that the documentation leaves in doubt the question
of whether the lat and lon of the rotated south pole should be
adjusted by the scale factor. Prior to the check in NCL did not apply
a scale factor, and I am thinking that must have worked for some GRIB2
data. Now it checks the absolute value of the number to see whether it
makes sense without applying the scale factor.


Here is a diff of g2clib-1.1.9. The changes to gridtemplates.h do not
directly apply to the lack of recognition of PDS template 4.31 but it
turns out that ECMWF and NCEP have a different idea of whether
longitudes can be negative. The g2clib thinks all longitude values
should be positive, and gives weird results if a longitude is
negative. ECMWF, according to the templates at
http://nwmstest.ecmwf.int/publications/manuals/d/gribapi/fm92/grib2//show/templates
allows negative longitudes (although not everywhere). I think this is
because it is quite inconvenient to always have to use positive
longitudes when you live near the Greenwich Meredian. I should note
that the WMO GRIB2 specification document (at least the versions I
have read) state that longitudes should always be expressed as
positive numbers.

If the past is any guide, we will not be able to get NCEP to update
their code to our liking very quickly. Although I could try.

diff gridtemplates.h~ gridtemplates.h 
52c52 
< { 0, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, 
--- 
> { 0, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,-4,1,-4,-4,4,4,1} }, 
56c56 
< { 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} }, 
--- 
> { 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} }, 
58c58 
< { 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, 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} }, 
60c60 
< {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,-4,4,1,4,4,4} }, 
--- 
> {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,-4,1,-4,-4,-4,1,4,4,4} }, 
68c68 
< {40, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, 
--- 
> {40, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,-4,1,-4,-4,4,4,1} }, 
70c70 
< {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} }, 
--- 
> {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} }, 
72c72 
< {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} }, 
--- 
> {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} }, 
74c74 
< {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} }, 
--- 
> {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} }, 
diff pdstemplates.c~ pdstemplates.c 
267a268,279 
> else if ( number == 31 ) { 
> new->extlen=list[4]*5; 
> new->ext=(g2int *)malloc(sizeof(g2int)*new->extlen); 
> for (i=0;i<list[4];i++) { 
> l=i*5; 
> new->ext[l]=2; 
> new->ext[l+1]=2; 
> new->ext[l+2]=2; 
> new->ext[l+3]=1; 
> new->ext[l+4]=4; 
> } 
> } 
diff pdstemplates.h~ pdstemplates.h 
36c36 
< #define MAXPDSTEMP 23 // maximum number of templates 
--- 
> #define MAXPDSTEMP 24 // maximum number of templates 
96a97,98 
> // 4.31: Satellite Product 
> {31,5,1, {1,1,1,1,1} }, 


======================================================================