mirror of https://github.com/ecmwf/eccodes.git
ECC-992: Adjust min. limit for 247
This commit is contained in:
parent
a6ad6990ca
commit
9222fe2873
|
@ -70,7 +70,7 @@ concept param_value_min(default_min_val) {
|
||||||
170 = { paramId=228096; }
|
170 = { paramId=228096; }
|
||||||
170 = { paramId=228095; }
|
170 = { paramId=228095; }
|
||||||
0 = { paramId=43; }
|
0 = { paramId=43; }
|
||||||
0 = { paramId=247; }
|
-0.01 = { paramId=247; }
|
||||||
0 = { paramId=246; }
|
0 = { paramId=246; }
|
||||||
-0.1 = { paramId=133; }
|
-0.1 = { paramId=133; }
|
||||||
43000 = { paramId=134; }
|
43000 = { paramId=134; }
|
||||||
|
|
|
@ -59,50 +59,54 @@ int main(int argc, char** argv)
|
||||||
while (fscanf(fin, "%ld %g %g", &iid, &lat, &lon) != EOF)
|
while (fscanf(fin, "%ld %g %g", &iid, &lat, &lon) != EOF)
|
||||||
npoints++;
|
npoints++;
|
||||||
fclose(fin);
|
fclose(fin);
|
||||||
|
if (npoints==0) {
|
||||||
|
fprintf(stderr, "No input points found!\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
id = (long*)calloc(npoints, sizeof(long));
|
id = (long*)calloc(npoints, sizeof(long));
|
||||||
if (!id) {
|
if (!id) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(long)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(long)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
vlat = (double*)calloc(npoints, sizeof(double));
|
vlat = (double*)calloc(npoints, sizeof(double));
|
||||||
if (!vlat) {
|
if (!vlat) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
vlon = (double*)calloc(npoints, sizeof(double));
|
vlon = (double*)calloc(npoints, sizeof(double));
|
||||||
if (!vlon) {
|
if (!vlon) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
outlats = (double*)calloc(npoints, sizeof(double));
|
outlats = (double*)calloc(npoints, sizeof(double));
|
||||||
if (!outlats) {
|
if (!outlats) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
outlons = (double*)calloc(npoints, sizeof(double));
|
outlons = (double*)calloc(npoints, sizeof(double));
|
||||||
if (!outlons) {
|
if (!outlons) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
values = (double*)calloc(npoints, sizeof(double));
|
values = (double*)calloc(npoints, sizeof(double));
|
||||||
if (!values) {
|
if (!values) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
lsm_values = (double*)calloc(npoints, sizeof(double));
|
lsm_values = (double*)calloc(npoints, sizeof(double));
|
||||||
if (!lsm_values) {
|
if (!lsm_values) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
distances = (double*)calloc(npoints, sizeof(double));
|
distances = (double*)calloc(npoints, sizeof(double));
|
||||||
if (!distances) {
|
if (!distances) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(double)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
indexes = (int*)calloc(npoints, sizeof(int));
|
indexes = (int*)calloc(npoints, sizeof(int));
|
||||||
if (!indexes) {
|
if (!indexes) {
|
||||||
printf("unable to allocate %ld bytes\n", (long)(npoints * sizeof(int)));
|
fprintf(stderr, "unable to allocate %ld bytes\n", (long)(npoints * sizeof(int)));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,7 +136,7 @@ int main(int argc, char** argv)
|
||||||
}
|
}
|
||||||
h = codes_handle_new_from_file(0, fin, PRODUCT_GRIB, &ret);
|
h = codes_handle_new_from_file(0, fin, PRODUCT_GRIB, &ret);
|
||||||
if (!h || ret != CODES_SUCCESS) {
|
if (!h || ret != CODES_SUCCESS) {
|
||||||
printf(" unable to create handle\n");
|
fprintf(stderr, "unable to create handle\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -316,24 +316,24 @@ static void _push_handle(grib_handle *h,int *gid)
|
||||||
|
|
||||||
static void _push_index(grib_index *h,int *gid)
|
static void _push_index(grib_index *h,int *gid)
|
||||||
{
|
{
|
||||||
l_grib_index* current= index_set;
|
l_grib_index* current= NULL;
|
||||||
l_grib_index* previous= index_set;
|
l_grib_index* previous= index_set;
|
||||||
l_grib_index* the_new= NULL;
|
l_grib_index* the_new= NULL;
|
||||||
int myindex= 1;
|
int myindex= 1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (*gid > 0 ) {
|
if (*gid > 0 ) {
|
||||||
while(current) {
|
while(current) {
|
||||||
if(current->id == *gid) break;
|
if(current->id == *gid) break;
|
||||||
current = current->next;
|
current = current->next;
|
||||||
|
}
|
||||||
|
if (current) {
|
||||||
|
grib_index_delete(current->h);
|
||||||
|
current->h=h;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (current) {
|
*/
|
||||||
grib_index_delete(current->h);
|
|
||||||
current->h=h;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(!index_set){
|
if(!index_set){
|
||||||
index_set = (l_grib_index*)malloc(sizeof(l_grib_index));
|
index_set = (l_grib_index*)malloc(sizeof(l_grib_index));
|
||||||
|
@ -374,24 +374,24 @@ static void _push_index(grib_index *h,int *gid)
|
||||||
|
|
||||||
static void _push_multi_handle(grib_multi_handle *h,int *gid)
|
static void _push_multi_handle(grib_multi_handle *h,int *gid)
|
||||||
{
|
{
|
||||||
l_grib_multi_handle* current= multi_handle_set;
|
l_grib_multi_handle* current= NULL;
|
||||||
l_grib_multi_handle* previous= multi_handle_set;
|
l_grib_multi_handle* previous= multi_handle_set;
|
||||||
l_grib_multi_handle* the_new= NULL;
|
l_grib_multi_handle* the_new= NULL;
|
||||||
int myindex= 1;
|
int myindex= 1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (*gid > 0 ) {
|
if (*gid > 0 ) {
|
||||||
while(current) {
|
while(current) {
|
||||||
if(current->id == *gid) break;
|
if(current->id == *gid) break;
|
||||||
current = current->next;
|
current = current->next;
|
||||||
|
}
|
||||||
|
if (current) {
|
||||||
|
grib_multi_handle_delete(current->h);
|
||||||
|
current->h=h;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (current) {
|
*/
|
||||||
grib_multi_handle_delete(current->h);
|
|
||||||
current->h=h;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(!multi_handle_set){
|
if(!multi_handle_set){
|
||||||
multi_handle_set = (l_grib_multi_handle*)malloc(sizeof(l_grib_multi_handle));
|
multi_handle_set = (l_grib_multi_handle*)malloc(sizeof(l_grib_multi_handle));
|
||||||
|
|
|
@ -27,8 +27,10 @@ int compute_bufr_key_rank(grib_handle* h, grib_string_list* keys, const char* ke
|
||||||
}
|
}
|
||||||
if (!next) {
|
if (!next) {
|
||||||
DebugAssert(prev);
|
DebugAssert(prev);
|
||||||
prev->next = (grib_string_list*)grib_context_malloc_clear(c, sizeof(grib_string_list));
|
if (prev) {
|
||||||
next = prev->next;
|
prev->next = (grib_string_list*)grib_context_malloc_clear(c, sizeof(grib_string_list));
|
||||||
|
next = prev->next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!next->value) {
|
if (!next->value) {
|
||||||
next->value = strdup(key);
|
next->value = strdup(key);
|
||||||
|
|
|
@ -430,7 +430,7 @@ int grib_accessor_notify_change(grib_accessor* a, grib_accessor* changed)
|
||||||
return c->notify_change(a, changed);
|
return c->notify_change(a, changed);
|
||||||
c = c->super ? *(c->super) : NULL;
|
c = c->super ? *(c->super) : NULL;
|
||||||
}
|
}
|
||||||
if (a)
|
if (a && a->cclass)
|
||||||
printf("notify_change not implemented for %s %s\n", a->cclass->name, a->name);
|
printf("notify_change not implemented for %s %s\n", a->cclass->name, a->name);
|
||||||
Assert(0);
|
Assert(0);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -325,8 +325,10 @@ int grib_section_adjust_sizes(grib_section* s, int update, int depth)
|
||||||
else {
|
else {
|
||||||
if (!s->h->partial) {
|
if (!s->h->partial) {
|
||||||
if (length >= plen) {
|
if (length >= plen) {
|
||||||
grib_context_log(s->h->context, GRIB_LOG_ERROR, "Invalid size %ld found for %s, assuming %ld",
|
if (s->owner) {
|
||||||
|
grib_context_log(s->h->context, GRIB_LOG_ERROR, "Invalid size %ld found for %s, assuming %ld",
|
||||||
(long)plen, s->owner->name, (long)length);
|
(long)plen, s->owner->name, (long)length);
|
||||||
|
}
|
||||||
plen = length;
|
plen = length;
|
||||||
}
|
}
|
||||||
s->padding = plen - length;
|
s->padding = plen - length;
|
||||||
|
|
|
@ -249,7 +249,6 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
|
||||||
|
|
||||||
self->dirty = 0;
|
self->dirty = 0;
|
||||||
|
|
||||||
n_vals = 0;
|
|
||||||
err = grib_value_count(a, &nn);
|
err = grib_value_count(a, &nn);
|
||||||
n_vals = nn;
|
n_vals = nn;
|
||||||
if (err)
|
if (err)
|
||||||
|
|
|
@ -167,7 +167,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
|
||||||
long numberOfPoints = 0;
|
long numberOfPoints = 0;
|
||||||
|
|
||||||
if (*len < 1)
|
if (*len < 1)
|
||||||
ret = GRIB_ARRAY_TOO_SMALL;
|
return GRIB_ARRAY_TOO_SMALL;
|
||||||
|
|
||||||
if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), self->directionIncrementGiven, &directionIncrementGiven)) != GRIB_SUCCESS)
|
if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), self->directionIncrementGiven, &directionIncrementGiven)) != GRIB_SUCCESS)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -174,7 +174,6 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len)
|
||||||
grib_iterator* iter = NULL;
|
grib_iterator* iter = NULL;
|
||||||
|
|
||||||
self->save = 1;
|
self->save = 1;
|
||||||
size = 0;
|
|
||||||
ret = value_count(a, &count);
|
ret = value_count(a, &count);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -1378,6 +1378,7 @@ static void test_string_splitting()
|
||||||
char input[80] = "Born|To|Be|Wild";
|
char input[80] = "Born|To|Be|Wild";
|
||||||
char** list = 0;
|
char** list = 0;
|
||||||
list = string_split(input, "|");
|
list = string_split(input, "|");
|
||||||
|
assert(list);
|
||||||
for (i = 0; list[i] != NULL; ++i) {} /* count how many tokens */
|
for (i = 0; list[i] != NULL; ++i) {} /* count how many tokens */
|
||||||
assert(i == 4);
|
assert(i == 4);
|
||||||
if (strcmp(list[0], "Born") != 0) assert(0);
|
if (strcmp(list[0], "Born") != 0) assert(0);
|
||||||
|
@ -1391,6 +1392,7 @@ static void test_string_splitting()
|
||||||
|
|
||||||
strcpy(input, "12345|a gap|");
|
strcpy(input, "12345|a gap|");
|
||||||
list = string_split(input, "|");
|
list = string_split(input, "|");
|
||||||
|
assert(list);
|
||||||
for (i = 0; list[i] != NULL; ++i) {} /* count how many tokens */
|
for (i = 0; list[i] != NULL; ++i) {} /* count how many tokens */
|
||||||
assert(i == 2);
|
assert(i == 2);
|
||||||
if (strcmp(list[0], "12345") != 0) assert(0);
|
if (strcmp(list[0], "12345") != 0) assert(0);
|
||||||
|
@ -1402,6 +1404,7 @@ static void test_string_splitting()
|
||||||
|
|
||||||
strcpy(input, "Steppenwolf");
|
strcpy(input, "Steppenwolf");
|
||||||
list = string_split(input, ",");
|
list = string_split(input, ",");
|
||||||
|
assert(list);
|
||||||
for (i = 0; list[i] != NULL; ++i) {} /* count how many tokens */
|
for (i = 0; list[i] != NULL; ++i) {} /* count how many tokens */
|
||||||
assert(i == 1);
|
assert(i == 1);
|
||||||
if (strcmp(list[0], "Steppenwolf") != 0) assert(0);
|
if (strcmp(list[0], "Steppenwolf") != 0) assert(0);
|
||||||
|
|
Loading…
Reference in New Issue