diff --git a/tests/interp_mod_grib1.F90 b/tests/interp_mod_grib1.F90 index 2259a773..6e6be145 100644 --- a/tests/interp_mod_grib1.F90 +++ b/tests/interp_mod_grib1.F90 @@ -100,6 +100,16 @@ subroutine interp(grid, interp_opt) data grd218 /3, 614, 428, 12190, -133459, 8, -95000, & 12191, 12191, 0, 64, 25000, 25000, 0, 0, 0, 0, 0, 0, 255, 180*0/ +#if (LSIZE==D) + abstol=0.0001 +#elif (LSIZE==4) + if ((trim(grid).eq."212") .and. (interp_opt.eq."6")) then + abstol=0.2 + else + abstol=0.05 + endif +#endif + select case (trim(grid)) case ('3') output_kgds = grd3 @@ -242,7 +252,7 @@ subroutine interp(grid, interp_opt) do j = 1, j_output do i = 1, i_output output_data4 = real(output_data(i,j),4) - if ( abs(output_data4 - baseline_data(i,j)) > 0.0001) then + if ( abs(output_data4 - baseline_data(i,j)) > abstol) then avgdiff = avgdiff + abs(output_data4-baseline_data(i,j)) num_pts_diff = num_pts_diff + 1 if (abs(output_data4-baseline_data(i,j)) > abs(maxdiff))then @@ -370,6 +380,16 @@ subroutine interp_vector(grid, interp_opt) data grd218 /3, 614, 428, 12190, -133459, 8, -95000, & 12191, 12191, 0, 64, 25000, 25000, 0, 0, 0, 0, 0, 0, 255, 180*0/ +#if (LSIZE==D) + abstol=0.0001 +#elif (LSIZE==4) + if ((trim(grid).eq."212") .and. (interp_opt.eq."6")) then + abstol=0.2 + else + abstol=0.05 + endif +#endif + select case (trim(grid)) case ('3') output_kgds = grd3 @@ -539,7 +559,7 @@ subroutine interp_vector(grid, interp_opt) do j = 1, j_output do i = 1, i_output output_data4 = real(output_u_data(i,j),4) - if (abs(output_data4 - baseline_u_data(i,j)) > 0.0001) then + if (abs(output_data4 - baseline_u_data(i,j)) > abstol) then avg_u_diff = avg_u_diff + abs(output_data4-baseline_u_data(i,j)) num_upts_diff = num_upts_diff + 1 if (abs(output_data4-baseline_u_data(i,j)) > abs(max_u_diff))then @@ -547,7 +567,7 @@ subroutine interp_vector(grid, interp_opt) endif endif output_data4 = real(output_v_data(i,j),4) - if (abs(output_data4 - baseline_v_data(i,j)) > 0.0001) then + if (abs(output_data4 - baseline_v_data(i,j)) > abstol) then avg_v_diff = avg_v_diff + abs(output_data4-baseline_v_data(i,j)) num_vpts_diff = num_vpts_diff + 1 if (abs(output_data4-baseline_v_data(i,j)) > abs(max_v_diff))then