mirror of https://github.com/ecmwf/eccodes.git
Merge branch 'develop' into release/2.35.0
This commit is contained in:
commit
e66391440d
|
@ -3824,6 +3824,55 @@
|
|||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
}
|
||||
#Lake surface temperature
|
||||
'lslt' = {
|
||||
discipline = 1 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfSecondFixedSurface = 255 ;
|
||||
}
|
||||
#Surface bulk Richardson number
|
||||
'sbrn' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 7 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Time-maximum 2 metre relative humidity
|
||||
'mx2r' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 2 ;
|
||||
}
|
||||
#Time-minimum 2 metre relative humidity
|
||||
'mn2r' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 3 ;
|
||||
}
|
||||
#Surface roughness for heat
|
||||
'srhe' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 47 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Surface roughness for moisture
|
||||
'srmo' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 48 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Burned area
|
||||
'fba' = {
|
||||
discipline = 2 ;
|
||||
|
@ -6710,6 +6759,13 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 19 ;
|
||||
}
|
||||
#Leaf Area Index
|
||||
'lai' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 28 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Accumulated surface upward short-wave radiation flux, clear sky
|
||||
'auswrf_cs' = {
|
||||
discipline = 0 ;
|
||||
|
|
|
@ -930,7 +930,7 @@
|
|||
parameterNumber = 197 ;
|
||||
}
|
||||
#Leaf Area Index
|
||||
'~' = {
|
||||
'Numeric' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 7 ;
|
||||
parameterNumber = 198 ;
|
||||
|
|
|
@ -3824,6 +3824,55 @@
|
|||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
}
|
||||
#Lake surface temperature
|
||||
'Lake surface temperature' = {
|
||||
discipline = 1 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfSecondFixedSurface = 255 ;
|
||||
}
|
||||
#Surface bulk Richardson number
|
||||
'Surface bulk Richardson number' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 7 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Time-maximum 2 metre relative humidity
|
||||
'Time-maximum 2 metre relative humidity' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 2 ;
|
||||
}
|
||||
#Time-minimum 2 metre relative humidity
|
||||
'Time-minimum 2 metre relative humidity' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 3 ;
|
||||
}
|
||||
#Surface roughness for heat
|
||||
'Surface roughness for heat' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 47 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Surface roughness for moisture
|
||||
'Surface roughness for moisture' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 48 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Burned area
|
||||
'Burned area' = {
|
||||
discipline = 2 ;
|
||||
|
@ -6710,6 +6759,13 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 19 ;
|
||||
}
|
||||
#Leaf Area Index
|
||||
'Leaf Area Index' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 28 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Accumulated surface upward short-wave radiation flux, clear sky
|
||||
'Accumulated surface upward short-wave radiation flux, clear sky' = {
|
||||
discipline = 0 ;
|
||||
|
|
|
@ -3824,6 +3824,55 @@
|
|||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
}
|
||||
#Lake surface temperature
|
||||
'231059' = {
|
||||
discipline = 1 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfSecondFixedSurface = 255 ;
|
||||
}
|
||||
#Surface bulk Richardson number
|
||||
'231060' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 7 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Time-maximum 2 metre relative humidity
|
||||
'231061' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 2 ;
|
||||
}
|
||||
#Time-minimum 2 metre relative humidity
|
||||
'231062' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 3 ;
|
||||
}
|
||||
#Surface roughness for heat
|
||||
'231063' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 47 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Surface roughness for moisture
|
||||
'231064' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 48 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Burned area
|
||||
'232000' = {
|
||||
discipline = 2 ;
|
||||
|
@ -6710,6 +6759,13 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 19 ;
|
||||
}
|
||||
#Leaf Area Index
|
||||
'260373' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 28 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Accumulated surface upward short-wave radiation flux, clear sky
|
||||
'260427' = {
|
||||
discipline = 0 ;
|
||||
|
|
|
@ -3824,6 +3824,55 @@
|
|||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
}
|
||||
#Lake surface temperature
|
||||
'lslt' = {
|
||||
discipline = 1 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfSecondFixedSurface = 255 ;
|
||||
}
|
||||
#Surface bulk Richardson number
|
||||
'sbrn' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 7 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Time-maximum 2 metre relative humidity
|
||||
'mx2r' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 2 ;
|
||||
}
|
||||
#Time-minimum 2 metre relative humidity
|
||||
'mn2r' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 3 ;
|
||||
}
|
||||
#Surface roughness for heat
|
||||
'srhe' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 47 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Surface roughness for moisture
|
||||
'srmo' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 48 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Burned area
|
||||
'fba' = {
|
||||
discipline = 2 ;
|
||||
|
@ -6710,6 +6759,13 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 19 ;
|
||||
}
|
||||
#Leaf Area Index
|
||||
'lai' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 28 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Accumulated surface upward short-wave radiation flux, clear sky
|
||||
'auswrf_cs' = {
|
||||
discipline = 0 ;
|
||||
|
|
|
@ -3824,6 +3824,55 @@
|
|||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfStatisticalProcessing = 1 ;
|
||||
}
|
||||
#Lake surface temperature
|
||||
'K' = {
|
||||
discipline = 1 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
typeOfSecondFixedSurface = 255 ;
|
||||
}
|
||||
#Surface bulk Richardson number
|
||||
'Numeric' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 7 ;
|
||||
parameterNumber = 16 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Time-maximum 2 metre relative humidity
|
||||
'%' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 2 ;
|
||||
}
|
||||
#Time-minimum 2 metre relative humidity
|
||||
'%' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 1 ;
|
||||
parameterNumber = 1 ;
|
||||
typeOfFirstFixedSurface = 103 ;
|
||||
scaledValueOfFirstFixedSurface = 2 ;
|
||||
scaleFactorOfFirstFixedSurface = 0 ;
|
||||
typeOfStatisticalProcessing = 3 ;
|
||||
}
|
||||
#Surface roughness for heat
|
||||
'm' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 47 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Surface roughness for moisture
|
||||
'm' = {
|
||||
discipline = 0 ;
|
||||
parameterCategory = 2 ;
|
||||
parameterNumber = 48 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Burned area
|
||||
'%' = {
|
||||
discipline = 2 ;
|
||||
|
@ -6710,6 +6759,13 @@
|
|||
parameterCategory = 3 ;
|
||||
parameterNumber = 19 ;
|
||||
}
|
||||
#Leaf Area Index
|
||||
'Numeric' = {
|
||||
discipline = 2 ;
|
||||
parameterCategory = 0 ;
|
||||
parameterNumber = 28 ;
|
||||
typeOfFirstFixedSurface = 1 ;
|
||||
}
|
||||
#Accumulated surface upward short-wave radiation flux, clear sky
|
||||
'J m**-2' = {
|
||||
discipline = 0 ;
|
||||
|
|
|
@ -1339,16 +1339,15 @@ void grib_print_file_statistics(grib_runtime_options* options, grib_tools_file*
|
|||
file->name);
|
||||
if (!failed)
|
||||
return;
|
||||
/*
|
||||
fprintf(dump_file,"Following bad messages found in %s\n", file->name);
|
||||
fprintf(dump_file,"N Error\n");
|
||||
while (failed){
|
||||
fprintf(dump_file,"%-*d %s\n", 7,failed->count,
|
||||
grib_get_error_message(failed->error));
|
||||
failed=failed->next;
|
||||
}
|
||||
fprintf(dump_file,"\n");
|
||||
*/
|
||||
|
||||
// fprintf(dump_file,"Following bad messages found in %s\n", file->name);
|
||||
// fprintf(dump_file,"N Error\n");
|
||||
// while (failed){
|
||||
// fprintf(dump_file,"%-*d %s\n", 7,failed->count,
|
||||
// grib_get_error_message(failed->error));
|
||||
// failed=failed->next;
|
||||
// }
|
||||
// fprintf(dump_file,"\n");
|
||||
}
|
||||
|
||||
void grib_print_full_statistics(grib_runtime_options* options)
|
||||
|
@ -1422,7 +1421,7 @@ void grib_tools_write_message(grib_runtime_options* options, grib_handle* h)
|
|||
}
|
||||
|
||||
if (options->gts && h->gts_header) {
|
||||
char gts_trailer[4] = { '\x0D', '\x0D', '\x0A', '\x03' };
|
||||
const char gts_trailer[4] = { '\x0D', '\x0D', '\x0A', '\x03' };
|
||||
if (fwrite(gts_trailer, 1, 4, of->handle) != 4) {
|
||||
grib_context_log(h->context, (GRIB_LOG_ERROR) | (GRIB_LOG_PERROR),
|
||||
"Error writing GTS trailer to %s", filename);
|
||||
|
|
|
@ -373,14 +373,11 @@ static void save_error(grib_context* c, const char* key)
|
|||
|
||||
static int compare_values(const grib_runtime_options* options, grib_handle* h1, grib_handle* h2, const char* name, int type)
|
||||
{
|
||||
size_t len1 = 0;
|
||||
size_t len2 = 0;
|
||||
int err = 0;
|
||||
int err1;
|
||||
int err2;
|
||||
size_t len1 = 0, len2 = 0;
|
||||
int err = 0, err1 = 0, err2 = 0;
|
||||
int type1, type2;
|
||||
int countdiff;
|
||||
int isMissing1 = 0, isMissing2 = 0;
|
||||
// int isMissing1 = 0, isMissing2 = 0;
|
||||
|
||||
char *sval1 = NULL, *sval2 = NULL;
|
||||
long *lval1 = NULL, *lval2 = NULL;
|
||||
|
@ -442,30 +439,6 @@ static int compare_values(const grib_runtime_options* options, grib_handle* h1,
|
|||
//isMissing1 = ((grib_is_missing(h1, name, &err1) == 1) && (err1 == 0)) ? 1 : 0;
|
||||
//isMissing2 = ((grib_is_missing(h2, name, &err2) == 1) && (err2 == 0)) ? 1 : 0;
|
||||
|
||||
if ((isMissing1 == 1) && (isMissing2 == 1)) {
|
||||
if (verbose)
|
||||
printf(" is set to missing in both fields\n");
|
||||
return GRIB_SUCCESS;
|
||||
}
|
||||
|
||||
if (isMissing1 == 1) {
|
||||
if (verbose) printf(" is set to missing in 1st field\n");
|
||||
printInfo(h1);
|
||||
printf("%s is set to missing in 1st field but is not missing in 2nd field\n", name);
|
||||
err1 = GRIB_VALUE_MISMATCH;
|
||||
save_error(c, name);
|
||||
return GRIB_VALUE_MISMATCH;
|
||||
}
|
||||
|
||||
if (isMissing2 == 1) {
|
||||
if (verbose) printf(" is set to missing in 1st field\n");
|
||||
printInfo(h1);
|
||||
printf("%s is set to missing in 2nd field but is not missing in 1st field\n", name);
|
||||
err1 = GRIB_VALUE_MISMATCH;
|
||||
save_error(c, name);
|
||||
return GRIB_VALUE_MISMATCH;
|
||||
}
|
||||
|
||||
switch (type1) {
|
||||
case GRIB_TYPE_STRING:
|
||||
if (verbose) printf(" as string\n");
|
||||
|
|
|
@ -426,19 +426,17 @@ static int compare_values(const grib_runtime_options* options, grib_handle* h1,
|
|||
{
|
||||
size_t len1 = 0;
|
||||
size_t len2 = 0;
|
||||
int err = 0, i = 0;
|
||||
int err1;
|
||||
int err2;
|
||||
int err = 0, i = 0, err1 = 0, err2 = 0;
|
||||
int type1, type2;
|
||||
int countdiff;
|
||||
int isMissing1 = 0, isMissing2 = 0;
|
||||
//int isMissing1 = 0, isMissing2 = 0;
|
||||
|
||||
char *sval1 = NULL, *sval2 = NULL;
|
||||
double *dval1 = NULL, *dval2 = NULL;
|
||||
long *lval1 = NULL, *lval2 = NULL;
|
||||
double maxdiff = 0;
|
||||
double maxdiff = 0;
|
||||
double value_tolerance = 0;
|
||||
grib_context* c = h1->context;
|
||||
grib_context* c = h1->context;
|
||||
|
||||
type1 = type;
|
||||
type2 = type;
|
||||
|
@ -498,32 +496,6 @@ static int compare_values(const grib_runtime_options* options, grib_handle* h1,
|
|||
// isMissing1 = ((grib_is_missing(h1, name, &err1) == 1) && (err1 == 0)) ? 1 : 0;
|
||||
// isMissing2 = ((grib_is_missing(h2, name, &err2) == 1) && (err2 == 0)) ? 1 : 0;
|
||||
|
||||
if ((isMissing1 == 1) && (isMissing2 == 1)) {
|
||||
if (verbose)
|
||||
printf(" is set to missing in both fields\n");
|
||||
return GRIB_SUCCESS;
|
||||
}
|
||||
|
||||
if (isMissing1 == 1) {
|
||||
if (verbose)
|
||||
printf(" is set to missing in 1st field\n");
|
||||
printInfo(h1);
|
||||
printf("%s is set to missing in 1st field but is not missing in 2nd field\n", name);
|
||||
err1 = GRIB_VALUE_MISMATCH;
|
||||
save_error(c, name);
|
||||
return GRIB_VALUE_MISMATCH;
|
||||
}
|
||||
|
||||
if (isMissing2 == 1) {
|
||||
if (verbose)
|
||||
printf(" is set to missing in 1st field\n");
|
||||
printInfo(h1);
|
||||
printf("%s is set to missing in 2nd field but is not missing in 1st field\n", name);
|
||||
err1 = GRIB_VALUE_MISMATCH;
|
||||
save_error(c, name);
|
||||
return GRIB_VALUE_MISMATCH;
|
||||
}
|
||||
|
||||
switch (type1) {
|
||||
case GRIB_TYPE_STRING:
|
||||
if (verbose)
|
||||
|
|
Loading…
Reference in New Issue