Commit 288199f4 authored by Uwe Schulzweida's avatar Uwe Schulzweida
Browse files

cgribexlib update

parent 25f52e6f
/* Automatically generated by m214003 at 2015-11-22, do not edit */
/* Automatically generated by m214003 at 2015-12-11, do not edit */
/* CGRIBEXLIB_VERSION="1.7.4" */
......@@ -9607,7 +9607,6 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
int ReducedGrid = FALSE, VertCoorTab = FALSE;
int locnv = 0, locnl;
int jlenl;
long i;
int iexp, imant;
int ipvpl, ipl;
int gdsLen = 0;
......@@ -9659,7 +9658,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
{
*numGridVals = 0;
ISEC2_Reduced = TRUE;
for ( i = 0; i < jlenl; i++ )
for ( int i = 0; i < jlenl; i++ )
{
ISEC2_RowLon(i) = GET_UINT2(gds[locnl+2*i], gds[locnl+2*i+1]);
*numGridVals += ISEC2_RowLon(i);
......@@ -9809,7 +9808,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
igrib = &gds[locnv];
if ( ISEC2_NumVCP > 0 ) (void) UNPACK_GRIB(igrib, lgrib, lGribLen, -1L);
for ( i = 0; i < ISEC2_NumVCP; i++ )
for ( int i = 0; i < ISEC2_NumVCP; i++ )
{
iexp = (lgrib[4*i ]);
imant =((lgrib[4*i+1]) << 16) +
......@@ -9820,7 +9819,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
Free(lgrib);
#else
for ( i = 0; i < ISEC2_NumVCP; i++ )
for ( int i = 0; i < ISEC2_NumVCP; i++ )
{
iexp = (gds[locnv+4*i ]);
imant =((gds[locnv+4*i+1]) << 16) +
......@@ -9831,7 +9830,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
#endif
}
return (gdsLen);
return gdsLen;
}
static
......@@ -9843,8 +9842,6 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
int lcompress;
int jup, kup, mup;
int locnd;
long jlend;
long i;
int bds_flag, jscale, imiss;
int bds_ubits;
int ioff = 0;
......@@ -9992,7 +9989,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
ioff = (jup+1)*(jup+2);
if ( dfunc != 'J' )
for ( i = 0; i < ioff; i++ )
for ( int i = 0; i < ioff; i++ )
{
if ( imiss )
*fpdata++ = 0.0;
......@@ -10017,7 +10014,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
*iret = 1999;
gprintf(__func__, " Second order packed grids unsupported!");
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
}
......@@ -10026,7 +10023,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
/* Take into account that spherical harmonics can be packed */
/* simple (lcomplex = 0) or complex (lcomplex = 1) */
jlend = bdsLen - locnd;
int jlend = bdsLen - locnd;
if ( ISEC4_NumBits == 0 )
{
......@@ -10035,7 +10032,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
*iret = 2001;
gprintf(__func__, " Number of bits per data value = 0!");
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
if ( numGridVals == 0 )
......@@ -10043,7 +10040,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
*iret = 2002;
gprintf(__func__, " Constant field unsupported for this grid type!");
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
jlend = numGridVals;
......@@ -10077,7 +10074,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
}
}
if ( dfunc == 'J' ) return (bdsLen);
if ( dfunc == 'J' ) return bdsLen;
/* check length of output array. */
......@@ -10087,7 +10084,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
gprintf(__func__, " Output array too small. Length = %d", fsec4len);
gprintf(__func__, " Number of values = %d", ISEC4_NumValues);
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
if ( imiss ) memset((char *)fpdata, 0, jlend*sizeof(T));
......@@ -10114,17 +10111,17 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
if ( IS_NOT_EQUAL(fsec4[1], 0.0) )
{
T zserr = fsec4[1];
for ( i = 1; i < ISEC4_NumValues; i++ ) fsec4[i] -= zserr;
for ( int i = 1; i < ISEC4_NumValues; i++ ) fsec4[i] -= zserr;
}
}
if ( decscale )
{
T scale = (T) pow(10.0, (double)-decscale);
for ( i = 0; i < ISEC4_NumValues; i++ ) fsec4[i] *= scale;
for ( int i = 0; i < ISEC4_NumValues; i++ ) fsec4[i] *= scale;
}
return (bdsLen);
return bdsLen;
}
......@@ -10134,7 +10131,6 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
{
UCHAR *is = NULL, *pds = NULL, *gds = NULL, *bms = NULL, *bds = NULL;
int isLen = 0, pdsLen = 0, gdsLen = 0, bmsLen = 0, bdsLen = 0, esLen = 0;
int gribLen = 0;
int gdsIncluded = FALSE;
int bmsIncluded = FALSE;
int bitmapSize = 0;
......@@ -10334,16 +10330,12 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
if ( dfunc != 'J' || bitmapSize == ISEC4_NumNonMissValues )
{
long i, j;
GRIBPACK *pbitmap;
GRIBPACK bitmap;
GRIBPACK *imask;
/*
unsigned char *bitmap;
bitmap = BMS_Bitmap;
j = ISEC4_NumNonMissValues;
for ( i = ISEC4_NumValues-1; i >= 0; i-- )
int j = ISEC4_NumNonMissValues;
for ( int i = ISEC4_NumValues-1; i >= 0; i-- )
{
if ( (bitmap[i/8]>>(7-(i&7)))&1 )
fsec4[i] = fsec4[--j];
......@@ -10352,13 +10344,13 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
}
*/
imask = (GRIBPACK*) Malloc(imaskSize*sizeof(GRIBPACK));
GRIBPACK *imask = (GRIBPACK*) Malloc(imaskSize*sizeof(GRIBPACK));
#if defined (VECTORCODE)
(void) UNPACK_GRIB(BMS_Bitmap, imask, imaskSize/8, -1L);
pbitmap = imask;
GRIBPACK *pbitmap = imask;
#else
pbitmap = BMS_Bitmap;
GRIBPACK *pbitmap = BMS_Bitmap;
#endif
#if defined (CRAY)
......@@ -10370,7 +10362,7 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
#ifdef __uxpch__
#pragma loop novrec
#endif
for ( i = imaskSize/8-1; i >= 0; i-- )
for ( int i = imaskSize/8-1; i >= 0; i-- )
{
bitmap = pbitmap[i];
imask[i*8+0] = 1 & (bitmap >> 7);
......@@ -10383,8 +10375,8 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
imask[i*8+7] = 1 & (bitmap);
}
j = 0;
for ( i = 0; i < ISEC4_NumValues; i++ )
int j = 0;
for ( int i = 0; i < ISEC4_NumValues; i++ )
if ( imask[i] ) j++;
if ( ISEC4_NumNonMissValues != j )
......@@ -10407,7 +10399,7 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
#ifdef __uxpch__
#pragma loop novrec
#endif
for ( i = ISEC4_NumValues-1; i >= 0; i-- )
for ( int i = ISEC4_NumValues-1; i >= 0; i-- )
fsec4[i] = imask[i] ? fsec4[--j] : FSEC3_MissVal;
}
......@@ -10417,24 +10409,18 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
if ( ISEC2_Reduced )
{
int nlon, nlat;
int lperio = 1, lveggy;
int ilat;
int nvalues = 0;
nlat = ISEC2_NumLat;
nlon = ISEC2_RowLonPtr[0];
for ( ilat = 0; ilat < nlat; ++ilat ) nvalues += ISEC2_RowLon(ilat);
for ( ilat = 1; ilat < nlat; ++ilat )
int nlat = ISEC2_NumLat;
int nlon = ISEC2_RowLonPtr[0];
for ( int ilat = 0; ilat < nlat; ++ilat ) nvalues += ISEC2_RowLon(ilat);
for ( int ilat = 1; ilat < nlat; ++ilat )
if ( ISEC2_RowLon(ilat) > nlon ) nlon = ISEC2_RowLon(ilat);
// int dlon = ISEC2_LastLon-ISEC2_FirstLon;
// if ( dlon < 0 ) dlon += 360000;
if ( nvalues != ISEC4_NumValues )
{
*iret = -801;
}
if ( nvalues != ISEC4_NumValues ) *iret = -801;
//printf("nlat %d nlon %d \n", nlat, nlon);
//printf("nvalues %d %d\n", nvalues, ISEC4_NumValues);
......@@ -10449,18 +10435,20 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
ISEC4_NumValues = nlon*nlat;
lsect3 = bitmapSize > 0;
lveggy = (ISEC1_CodeTable == 128) && (ISEC1_CenterID == 98) &&
((ISEC1_Parameter == 27) || (ISEC1_Parameter == 28) ||
(ISEC1_Parameter == 29) || (ISEC1_Parameter == 30));
int lperio = 1;
int lveggy = (ISEC1_CodeTable == 128) && (ISEC1_CenterID == 98) &&
((ISEC1_Parameter == 27) || (ISEC1_Parameter == 28) ||
(ISEC1_Parameter == 29) || (ISEC1_Parameter == 30) ||
(ISEC1_Parameter == 39) || (ISEC1_Parameter == 40) ||
(ISEC1_Parameter == 41) || (ISEC1_Parameter == 42) ||
(ISEC1_Parameter == 43));
(void) TEMPLATE(qu2reg3,T)(fsec4, ISEC2_RowLonPtr, nlat, nlon, FSEC3_MissVal, iret, lsect3, lperio, lveggy);
if ( bitmapSize > 0 )
{
long i;
int j = 0;
for ( i = 0; i < ISEC4_NumValues; i++ )
int j = 0;
for ( int i = 0; i < ISEC4_NumValues; i++ )
if ( IS_NOT_EQUAL(fsec4[i], FSEC3_MissVal) ) j++;
ISEC4_NumNonMissValues = j;
......@@ -10472,7 +10460,7 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
if ( ISEC0_GRIB_Version == 1 ) isLen = 8;
esLen = 4;
gribLen = isLen + pdsLen + gdsLen + bmsLen + bdsLen + esLen;
int gribLen = isLen + pdsLen + gdsLen + bmsLen + bdsLen + esLen;
if ( ISEC0_GRIB_Len )
if ( ISEC0_GRIB_Len < gribLen )
......@@ -10539,7 +10527,6 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
int ReducedGrid = FALSE, VertCoorTab = FALSE;
int locnv = 0, locnl;
int jlenl;
long i;
int iexp, imant;
int ipvpl, ipl;
int gdsLen = 0;
......@@ -10591,7 +10578,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
{
*numGridVals = 0;
ISEC2_Reduced = TRUE;
for ( i = 0; i < jlenl; i++ )
for ( int i = 0; i < jlenl; i++ )
{
ISEC2_RowLon(i) = GET_UINT2(gds[locnl+2*i], gds[locnl+2*i+1]);
*numGridVals += ISEC2_RowLon(i);
......@@ -10741,7 +10728,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
igrib = &gds[locnv];
if ( ISEC2_NumVCP > 0 ) (void) UNPACK_GRIB(igrib, lgrib, lGribLen, -1L);
for ( i = 0; i < ISEC2_NumVCP; i++ )
for ( int i = 0; i < ISEC2_NumVCP; i++ )
{
iexp = (lgrib[4*i ]);
imant =((lgrib[4*i+1]) << 16) +
......@@ -10752,7 +10739,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
Free(lgrib);
#else
for ( i = 0; i < ISEC2_NumVCP; i++ )
for ( int i = 0; i < ISEC2_NumVCP; i++ )
{
iexp = (gds[locnv+4*i ]);
imant =((gds[locnv+4*i+1]) << 16) +
......@@ -10763,7 +10750,7 @@ int TEMPLATE(decodeGDS,T)(unsigned char *gds, int *isec0, int *isec2, T *fsec2,
#endif
}
return (gdsLen);
return gdsLen;
}
static
......@@ -10775,8 +10762,6 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
int lcompress;
int jup, kup, mup;
int locnd;
long jlend;
long i;
int bds_flag, jscale, imiss;
int bds_ubits;
int ioff = 0;
......@@ -10924,7 +10909,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
ioff = (jup+1)*(jup+2);
if ( dfunc != 'J' )
for ( i = 0; i < ioff; i++ )
for ( int i = 0; i < ioff; i++ )
{
if ( imiss )
*fpdata++ = 0.0;
......@@ -10949,7 +10934,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
*iret = 1999;
gprintf(__func__, " Second order packed grids unsupported!");
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
}
......@@ -10958,7 +10943,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
/* Take into account that spherical harmonics can be packed */
/* simple (lcomplex = 0) or complex (lcomplex = 1) */
jlend = bdsLen - locnd;
int jlend = bdsLen - locnd;
if ( ISEC4_NumBits == 0 )
{
......@@ -10967,7 +10952,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
*iret = 2001;
gprintf(__func__, " Number of bits per data value = 0!");
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
if ( numGridVals == 0 )
......@@ -10975,7 +10960,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
*iret = 2002;
gprintf(__func__, " Constant field unsupported for this grid type!");
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
jlend = numGridVals;
......@@ -11009,7 +10994,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
}
}
if ( dfunc == 'J' ) return (bdsLen);
if ( dfunc == 'J' ) return bdsLen;
/* check length of output array. */
......@@ -11019,7 +11004,7 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
gprintf(__func__, " Output array too small. Length = %d", fsec4len);
gprintf(__func__, " Number of values = %d", ISEC4_NumValues);
gprintf(__func__, " Return code = %d", *iret);
return (0);
return 0;
}
if ( imiss ) memset((char *)fpdata, 0, jlend*sizeof(T));
......@@ -11046,17 +11031,17 @@ int TEMPLATE(decodeBDS,T)(int decscale, unsigned char *bds, int *isec2, int *ise
if ( IS_NOT_EQUAL(fsec4[1], 0.0) )
{
T zserr = fsec4[1];
for ( i = 1; i < ISEC4_NumValues; i++ ) fsec4[i] -= zserr;
for ( int i = 1; i < ISEC4_NumValues; i++ ) fsec4[i] -= zserr;
}
}
if ( decscale )
{
T scale = (T) pow(10.0, (double)-decscale);
for ( i = 0; i < ISEC4_NumValues; i++ ) fsec4[i] *= scale;
for ( int i = 0; i < ISEC4_NumValues; i++ ) fsec4[i] *= scale;
}
return (bdsLen);
return bdsLen;
}
......@@ -11066,7 +11051,6 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
{
UCHAR *is = NULL, *pds = NULL, *gds = NULL, *bms = NULL, *bds = NULL;
int isLen = 0, pdsLen = 0, gdsLen = 0, bmsLen = 0, bdsLen = 0, esLen = 0;
int gribLen = 0;
int gdsIncluded = FALSE;
int bmsIncluded = FALSE;
int bitmapSize = 0;
......@@ -11266,16 +11250,12 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
if ( dfunc != 'J' || bitmapSize == ISEC4_NumNonMissValues )
{
long i, j;
GRIBPACK *pbitmap;
GRIBPACK bitmap;
GRIBPACK *imask;
/*
unsigned char *bitmap;
bitmap = BMS_Bitmap;
j = ISEC4_NumNonMissValues;
for ( i = ISEC4_NumValues-1; i >= 0; i-- )
int j = ISEC4_NumNonMissValues;
for ( int i = ISEC4_NumValues-1; i >= 0; i-- )
{
if ( (bitmap[i/8]>>(7-(i&7)))&1 )
fsec4[i] = fsec4[--j];
......@@ -11284,13 +11264,13 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
}
*/
imask = (GRIBPACK*) Malloc(imaskSize*sizeof(GRIBPACK));
GRIBPACK *imask = (GRIBPACK*) Malloc(imaskSize*sizeof(GRIBPACK));
#if defined (VECTORCODE)
(void) UNPACK_GRIB(BMS_Bitmap, imask, imaskSize/8, -1L);
pbitmap = imask;
GRIBPACK *pbitmap = imask;
#else
pbitmap = BMS_Bitmap;
GRIBPACK *pbitmap = BMS_Bitmap;
#endif
#if defined (CRAY)
......@@ -11302,7 +11282,7 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
#ifdef __uxpch__
#pragma loop novrec
#endif
for ( i = imaskSize/8-1; i >= 0; i-- )
for ( int i = imaskSize/8-1; i >= 0; i-- )
{
bitmap = pbitmap[i];
imask[i*8+0] = 1 & (bitmap >> 7);
......@@ -11315,8 +11295,8 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
imask[i*8+7] = 1 & (bitmap);
}
j = 0;
for ( i = 0; i < ISEC4_NumValues; i++ )
int j = 0;
for ( int i = 0; i < ISEC4_NumValues; i++ )
if ( imask[i] ) j++;
if ( ISEC4_NumNonMissValues != j )
......@@ -11339,7 +11319,7 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
#ifdef __uxpch__
#pragma loop novrec
#endif
for ( i = ISEC4_NumValues-1; i >= 0; i-- )
for ( int i = ISEC4_NumValues-1; i >= 0; i-- )
fsec4[i] = imask[i] ? fsec4[--j] : FSEC3_MissVal;
}
......@@ -11349,24 +11329,18 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
if ( ISEC2_Reduced )
{
int nlon, nlat;
int lperio = 1, lveggy;
int ilat;
int nvalues = 0;
nlat = ISEC2_NumLat;
nlon = ISEC2_RowLonPtr[0];
for ( ilat = 0; ilat < nlat; ++ilat ) nvalues += ISEC2_RowLon(ilat);
for ( ilat = 1; ilat < nlat; ++ilat )
int nlat = ISEC2_NumLat;
int nlon = ISEC2_RowLonPtr[0];
for ( int ilat = 0; ilat < nlat; ++ilat ) nvalues += ISEC2_RowLon(ilat);
for ( int ilat = 1; ilat < nlat; ++ilat )
if ( ISEC2_RowLon(ilat) > nlon ) nlon = ISEC2_RowLon(ilat);
// int dlon = ISEC2_LastLon-ISEC2_FirstLon;
// if ( dlon < 0 ) dlon += 360000;
if ( nvalues != ISEC4_NumValues )
{
*iret = -801;
}
if ( nvalues != ISEC4_NumValues ) *iret = -801;
//printf("nlat %d nlon %d \n", nlat, nlon);
//printf("nvalues %d %d\n", nvalues, ISEC4_NumValues);
......@@ -11381,18 +11355,20 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
ISEC4_NumValues = nlon*nlat;
lsect3 = bitmapSize > 0;
lveggy = (ISEC1_CodeTable == 128) && (ISEC1_CenterID == 98) &&
((ISEC1_Parameter == 27) || (ISEC1_Parameter == 28) ||
(ISEC1_Parameter == 29) || (ISEC1_Parameter == 30));
int lperio = 1;
int lveggy = (ISEC1_CodeTable == 128) && (ISEC1_CenterID == 98) &&
((ISEC1_Parameter == 27) || (ISEC1_Parameter == 28) ||
(ISEC1_Parameter == 29) || (ISEC1_Parameter == 30) ||
(ISEC1_Parameter == 39) || (ISEC1_Parameter == 40) ||
(ISEC1_Parameter == 41) || (ISEC1_Parameter == 42) ||
(ISEC1_Parameter == 43));
(void) TEMPLATE(qu2reg3,T)(fsec4, ISEC2_RowLonPtr, nlat, nlon, FSEC3_MissVal, iret, lsect3, lperio, lveggy);
if ( bitmapSize > 0 )
{
long i;
int j = 0;
for ( i = 0; i < ISEC4_NumValues; i++ )
int j = 0;
for ( int i = 0; i < ISEC4_NumValues; i++ )
if ( IS_NOT_EQUAL(fsec4[i], FSEC3_MissVal) ) j++;
ISEC4_NumNonMissValues = j;
......@@ -11404,7 +11380,7 @@ void TEMPLATE(grib_decode,T)(int *isec0, int *isec1, int *isec2, T *fsec2, int *
if ( ISEC0_GRIB_Version == 1 ) isLen = 8;
esLen = 4;
gribLen = isLen + pdsLen + gdsLen + bmsLen + bdsLen + esLen;
int gribLen = isLen + pdsLen + gdsLen + bmsLen + bdsLen + esLen;
if ( ISEC0_GRIB_Len )
if ( ISEC0_GRIB_Len < gribLen )
......@@ -14123,7 +14099,7 @@ void encode_dummy(void)
(void) encode_array_unrolled_double(0, 0, 0, NULL, NULL, 0, 0, NULL);
(void) encode_array_unrolled_float(0, 0, 0, NULL, NULL, 0, 0, NULL);
}
static const char grb_libvers[] = "1.7.4" " of ""Nov 22 2015"" ""11:46:40";
static const char grb_libvers[] = "1.7.4" " of ""Dec 11 2015"" ""14:05:53";
const char *
cgribexLibraryVersion(void)
{
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment