mirror of https://github.com/ecmwf/eccodes.git
Merge in tigge_check branch
This commit is contained in:
parent
a98b130e45
commit
ac894bcb5d
|
@ -50,7 +50,7 @@ struct parameter {
|
|||
double max1;
|
||||
double max2;
|
||||
pair pairs[15];
|
||||
check_proc checks[4];
|
||||
check_proc checks[5];
|
||||
};
|
||||
|
||||
static void point_in_time(grib_handle*,const parameter*,double,double);
|
||||
|
@ -65,6 +65,8 @@ static void predefined_level(grib_handle*,const parameter*,double,double);
|
|||
static void predefined_thickness(grib_handle*,const parameter*,double,double);
|
||||
static void given_thickness(grib_handle*,const parameter*,double,double);
|
||||
static void has_bitmap(grib_handle*,const parameter*,double,double);
|
||||
static void has_soil_level(grib_handle*,const parameter*,double,double);
|
||||
static void has_soil_layer(grib_handle*,const parameter*,double,double);
|
||||
|
||||
static void height_level(grib_handle*,const parameter*,double,double);
|
||||
static void pressure_level(grib_handle*,const parameter*,double,double);
|
||||
|
@ -465,14 +467,7 @@ static void point_in_time(grib_handle* h,const parameter* p,double min,double ma
|
|||
break;
|
||||
}
|
||||
|
||||
if (is_uerra)
|
||||
{
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 1) /* hourly */
|
||||
{
|
||||
CHECK((eq(h,"forecastTime",1)||eq(h,"forecastTime",2)||eq(h,"forecastTime",4)||eq(h,"forecastTime",5))||(get(h,"forecastTime") % 3) == 0);
|
||||
}
|
||||
}
|
||||
else if (is_lam) {
|
||||
if (is_lam) {
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 10 ) /* three hours */
|
||||
{
|
||||
/* Three hourly is OK */
|
||||
|
@ -483,7 +478,14 @@ static void point_in_time(grib_handle* h,const parameter* p,double min,double ma
|
|||
CHECK(eq(h,"indicatorOfUnitOfTimeRange",1));/* Hours */
|
||||
CHECK((get(h,"forecastTime") % 3) == 0); /* Every three hours */
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else if (is_uerra) {
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 1) /* hourly */
|
||||
{
|
||||
CHECK((eq(h,"forecastTime",1)||eq(h,"forecastTime",2)||eq(h,"forecastTime",4)||eq(h,"forecastTime",5))||(get(h,"forecastTime") % 3) == 0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 11) /* six hours */
|
||||
{
|
||||
/* Six hourly is OK */
|
||||
|
@ -673,14 +675,7 @@ static void statistical_process(grib_handle* h,const parameter* p,double min,dou
|
|||
break;
|
||||
}
|
||||
|
||||
if (is_uerra)
|
||||
{
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 1) /* hourly */
|
||||
{
|
||||
CHECK((eq(h,"forecastTime",1)||eq(h,"forecastTime",2)||eq(h,"forecastTime",4)||eq(h,"forecastTime",5))||(get(h,"forecastTime") % 3) == 0);
|
||||
}
|
||||
}
|
||||
else if (is_lam) {
|
||||
if (is_lam) {
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 10 ) /* three hours */
|
||||
{
|
||||
/* Three hourly is OK */
|
||||
|
@ -691,7 +686,17 @@ static void statistical_process(grib_handle* h,const parameter* p,double min,dou
|
|||
CHECK(eq(h,"indicatorOfUnitOfTimeRange",1));/* Hours */
|
||||
CHECK((get(h,"forecastTime") % 3) == 0); /* Every three hours */
|
||||
}
|
||||
} else {
|
||||
}
|
||||
else if (is_uerra)
|
||||
{
|
||||
/* forecastTime for uerra might be all steps decreased by 1 i.e 0,1,2,3,4,5,8,11...29 too many... */
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 1)
|
||||
{
|
||||
CHECK(le(h,"forecastTime",30));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(get(h,"indicatorOfUnitOfTimeRange") == 11) /* six hours */
|
||||
{
|
||||
/* Six hourly is OK */
|
||||
|
@ -734,6 +739,7 @@ static void statistical_process(grib_handle* h,const parameter* p,double min,dou
|
|||
CHECK((get(h,"endStep") % 6) == 0); /* Every six hours */
|
||||
}
|
||||
|
||||
|
||||
if(get(h,"indicatorOfUnitForTimeRange") == 11)
|
||||
{
|
||||
/* Six hourly is OK */
|
||||
|
@ -757,6 +763,16 @@ static void has_bitmap(grib_handle* h,const parameter* p,double min,double max)
|
|||
CHECK(eq(h,"bitMapIndicator",0));
|
||||
}
|
||||
|
||||
static void has_soil_level(grib_handle* h,const parameter* p,double min,double max)
|
||||
{
|
||||
CHECK(get(h,"topLevel") == get(h,"bottomLevel"));
|
||||
}
|
||||
|
||||
static void has_soil_layer(grib_handle* h,const parameter* p,double min,double max)
|
||||
{
|
||||
CHECK(get(h,"topLevel") == get(h,"bottomLevel") - 1);
|
||||
}
|
||||
|
||||
static void six_hourly(grib_handle* h,const parameter* p,double min,double max)
|
||||
{
|
||||
statistical_process(h,p,min,max);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue