diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d096f0e..92c3cac1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ option(USE_HDF5 "Use HDF5?" off) option(USE_REGEX "Use Regex?" on) option(USE_TIGGE "Use tigge?" on) option(USE_MYSQL "Use MySQL?" off) -option(USE_IPOLATES "Use Ipolates" off) +option(USE_IPOLATES "Use Ipolates" on) option(USE_UDF "Use UDF?" off) option(USE_OPENMP "Use OpenMP?" on) option(USE_PROJ4 "Use Proj4?" off) @@ -95,7 +95,7 @@ message(STATUS "Checking if the user want to use NCEPLIBS-ip...") if(USE_IPOLATES) find_package(ip 5.1.0 CONFIG REQUIRED) list(APPEND definitions_list -DIPOLATES_LIB="ipolates_lib_d") - list(APPEND definitions_list -DUSE_IPOLATES) + # list(APPEND definitions_list -DUSE_IPOLATES) endif() message(STATUS "Checking if the user want to use NetCDF...") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 4889a49c..f1371f80 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -106,6 +106,7 @@ copy_test_data(ref_sec0.gdas.t12z.pgrb2.1p00.anl.75r.grib2.txt) copy_test_data(ref_sec_len.gdaswave.t00z.wcoast.0p16.f000.grib2.txt) copy_test_data(ref_sec_len.simple_packing.grib2.txt) copy_test_data(ref_simple_packing.grib2.spread.txt) +copy_test_data(ref_new_grid_gdt_32769.grib2) # Run these shell tests. shell_test(run_wgrib2_tests) diff --git a/tests/data/ref_new_grid_gdt_32769.grib2 b/tests/data/ref_new_grid_gdt_32769.grib2 new file mode 100644 index 00000000..aeeb67ee Binary files /dev/null and b/tests/data/ref_new_grid_gdt_32769.grib2 differ diff --git a/tests/run_ipolates_tests.sh b/tests/run_ipolates_tests.sh index dd1694ab..62a2d5d1 100644 --- a/tests/run_ipolates_tests.sh +++ b/tests/run_ipolates_tests.sh @@ -6,10 +6,10 @@ set -e echo "create a new grib file with integer values" -../wgrib2/wgrib2 data/gdas.t12z.pgrb2.1p00.anl.75r.grib2 -match "(UGRD|VGRD)" -rpn floor -set_scaling 0 0 -grib_out test.grb +../wgrib2/wgrib2 data/gdas.t12z.pgrb2.1p00.anl.75r.grib2 -match "(UGRD|VGRD)" -rpn floor -set_scaling 0 0 -grib_out new_grid_test.grb echo "*** Testing conversion from earth to grid" -../wgrib2/wgrib2 test.grb -new_grid_winds grid \ +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds grid \ -new_grid latlon 0:360:1 00:91:1 new_grid.grb ../wgrib2/wgrib2 new_grid.grb -grid -v2 -s -lon 10 12 -lon 20 80 > new_grid.txt touch new_grid.txt @@ -23,8 +23,8 @@ touch new_grid_earth.txt diff -w new_grid_earth.txt data/ref_new_grid_earth_gdas.t12z.pgrb2.1p00.anl.75r.grib2.txt echo "*** Testing new_grid on file in incorrect order. This will return an incomplete output file and error message." -../wgrib2/wgrib2 test.grb -match ":UGRD:" -grib_out test_badorder.grb -../wgrib2/wgrib2 test.grb -match ":VGRD:" -append -grib_out test_badorder.grb +../wgrib2/wgrib2 new_grid_test.grb -match ":UGRD:" -grib_out test_badorder.grb +../wgrib2/wgrib2 new_grid_test.grb -match ":VGRD:" -append -grib_out test_badorder.grb { out_err=$(../wgrib2/wgrib2 test_badorder.grb -new_grid_winds grid \ -new_grid latlon 0:360:1 00:91:1 junk_badorder.grb 2>&1 1>&$out); } {out}>&1 if [[ -z "$out_err" ]]; then @@ -38,165 +38,184 @@ echo "*** Testing new_grid_order on file in incorrect order." touch new_grid_reorder.txt diff -w new_grid_reorder.txt new_grid.txt +echo "*** Testing conversion to wmo rot lat-lon grid" +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid rot-ll:10:-40:0 342:665:0.0625 -20:657:0.0625 \ + new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -d 1 -rpn "10:*:floor:10:/" -ijlat 10 20 >new_grid_junk.txt + +echo "1:0:(10,20),lon=-8.920754,lat=28.980832,val=-35.4" >new_grid_junk2.txt +diff -w new_grid_junk2.txt new_grid_junk.txt + +echo "*** Testing conversion wmo rot lat-lon to lat-lon grid" +../wgrib2/wgrib2 new_grid_junk.grb -new_grid_winds earth -new_grid ncep grid 3 new_grid_junk2.grb + +../wgrib2/wgrib2 new_grid_junk2.grb -d 1 -rpn "10:*:floor:10:/" -ijlat 1 150 >new_grid_junk.txt +echo "1:0:(1,150),lon=0.000000,lat=59.000000,val=-33.9" >new_grid_junk2.txt +diff -w new_grid_junk2.txt new_grid_junk.txt +echo $? + +echo "*** Testing conversion from NCEP rot lat lon" +../wgrib2/wgrib2 data/ref_new_grid_gdt_32769.grib2 -new_grid_winds earth -new_grid ncep grid 3 new_grid_ncep_rot.grb + echo "*** Testing conversion to NCEP grid definition 2" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 2 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_2.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 2 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_2.txt touch ncep_grid_2.txt diff -w ncep_grid_2.txt data/ref_new_grid_ncep_2.txt echo "*** Testing conversion to NCEP grid definition 3" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 3 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_3.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 3 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_3.txt touch ncep_grid_3.txt diff -w ncep_grid_3.txt data/ref_new_grid_ncep_3.txt echo "*** Testing conversion to NCEP grid definition 4" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 4 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_4.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 4 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_4.txt touch ncep_grid_4.txt diff -w ncep_grid_4.txt data/ref_new_grid_ncep_4.txt echo "*** Testing conversion to NCEP grid definition 45" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 45 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_45.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 45 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_45.txt touch ncep_grid_45.txt diff -w ncep_grid_45.txt data/ref_new_grid_ncep_45.txt echo "*** Testing conversion to NCEP grid definition 98" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 98 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_98.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 98 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_98.txt touch ncep_grid_98.txt diff -w ncep_grid_98.txt data/ref_new_grid_ncep_98.txt echo "*** Testing conversion to NCEP grid definition 126" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 126 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_126.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 126 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_126.txt touch ncep_grid_126.txt diff -w ncep_grid_126.txt data/ref_new_grid_ncep_126.txt echo "*** Testing conversion to NCEP grid definition 127" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 127 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_127.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 127 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_127.txt touch ncep_grid_127.txt diff -w ncep_grid_127.txt data/ref_new_grid_ncep_127.txt echo "*** Testing conversion to NCEP grid definition 128" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 128 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_128.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 128 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_128.txt touch ncep_grid_128.txt diff -w ncep_grid_128.txt data/ref_new_grid_ncep_128.txt echo "*** Testing conversion to NCEP grid definition 129" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 129 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_129.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 129 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_129.txt touch ncep_grid_129.txt diff -w ncep_grid_129.txt data/ref_new_grid_ncep_129.txt echo "*** Testing conversion to NCEP grid definition 170" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 170 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_170.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 170 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_170.txt touch ncep_grid_170.txt diff -w ncep_grid_170.txt data/ref_new_grid_ncep_170.txt echo "*** Testing conversion to NCEP grid definition 173" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 173 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_173.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 173 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s -lon 10 12 -lon 20 80 > ncep_grid_173.txt touch ncep_grid_173.txt diff -w ncep_grid_173.txt data/ref_new_grid_ncep_173.txt echo "*** Testing conversion to NCEP grid definition 184" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 184 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_184.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 184 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_184.txt touch ncep_grid_184.txt diff -w ncep_grid_184.txt data/ref_new_grid_ncep_184.txt echo "*** Testing conversion to NCEP grid definition 194" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 194 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_194.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 194 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_194.txt touch ncep_grid_194.txt diff -w ncep_grid_194.txt data/ref_new_grid_ncep_194.txt echo "*** Testing conversion to NCEP grid definition 221" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 221 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_221.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 221 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_221.txt touch ncep_grid_221.txt diff -w ncep_grid_221.txt data/ref_new_grid_ncep_221.txt echo "*** Testing conversion to NCEP grid definition 230" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 230 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_230.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 230 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_230.txt touch ncep_grid_230.txt diff -w ncep_grid_230.txt data/ref_new_grid_ncep_230.txt echo "*** Testing conversion to NCEP grid definition 242" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 242 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_242.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 242 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_242.txt touch ncep_grid_242.txt diff -w ncep_grid_242.txt data/ref_new_grid_ncep_242.txt echo "*** Testing conversion to NCEP grid definition 249" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid 249 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_249.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid 249 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_249.txt touch ncep_grid_249.txt diff -w ncep_grid_249.txt data/ref_new_grid_ncep_249.txt echo "*** Testing conversion to NCEP grid definition t62" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t62 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t62.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t62 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t62.txt touch ncep_grid_t62.txt diff -w ncep_grid_t62.txt data/ref_new_grid_ncep_t62.txt echo "*** Testing conversion to NCEP grid definition t126" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t126 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t126.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t126 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t126.txt touch ncep_grid_t126.txt diff -w ncep_grid_t126.txt data/ref_new_grid_ncep_t126.txt echo "*** Testing conversion to NCEP grid definition t170" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t170 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t170.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t170 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t170.txt touch ncep_grid_t170.txt diff -w ncep_grid_t170.txt data/ref_new_grid_ncep_t170.txt echo "*** Testing conversion to NCEP grid definition t190" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t190 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t190.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t190 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t190.txt touch ncep_grid_t190.txt diff -w ncep_grid_t190.txt data/ref_new_grid_ncep_t190.txt echo "*** Testing conversion to NCEP grid definition t254" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t254 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t254.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t254 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t254.txt touch ncep_grid_t254.txt diff -w ncep_grid_t254.txt data/ref_new_grid_ncep_t254.txt echo "*** Testing conversion to NCEP grid definition t382" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t382 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t382.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t382 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t382.txt touch ncep_grid_t382.txt diff -w ncep_grid_t382.txt data/ref_new_grid_ncep_t382.txt echo "*** Testing conversion to NCEP grid definition t574" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t574 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t574.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t574 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t574.txt touch ncep_grid_t574.txt diff -w ncep_grid_t574.txt data/ref_new_grid_ncep_t574.txt echo "*** Testing conversion to NCEP grid definition t1148" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t1148 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t1148.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t1148 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t1148.txt touch ncep_grid_t1148.txt diff -w ncep_grid_t1148.txt data/ref_new_grid_ncep_t1148.txt echo "*** Testing conversion to NCEP grid definition t1534" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid ncep grid t1534 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > ncep_grid_t1534.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid ncep grid t1534 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > ncep_grid_t1534.txt touch ncep_grid_t1534.txt diff -w ncep_grid_t1534.txt data/ref_new_grid_ncep_t1534.txt echo "*** Testing conversion to Mercator grid" -../wgrib2/wgrib2 test.grb -new_grid_winds earth -new_grid mercator:0 0:361:1:360 0:91:1:90 junk.grb -../wgrib2/wgrib2 junk.grb -grid -v2 -s > mercator_grid.txt +../wgrib2/wgrib2 new_grid_test.grb -new_grid_winds earth -new_grid mercator:0 0:361:1:360 0:91:1:90 new_grid_junk.grb +../wgrib2/wgrib2 new_grid_junk.grb -grid -v2 -s > mercator_grid.txt touch mercator_grid.txt diff -w mercator_grid.txt data/ref_mercator_grid.txt diff --git a/wgrib2/New_grid.c b/wgrib2/New_grid.c index e03f67ec..4137a433 100644 --- a/wgrib2/New_grid.c +++ b/wgrib2/New_grid.c @@ -263,8 +263,6 @@ unsigned char blank_sec1[21] = { 0,0,0,21,1, 255, 255, 255, 255, 255, // month .. second 255, 255}; -/* is is for IPOLATES equal 3 */ - int f_new_grid(ARG4) { struct local_struct *save; @@ -302,18 +300,8 @@ int f_new_grid(ARG4) { if (mode == -1) { // initialization decode = 1; output_order_wanted = raw; // in raw order -// ALEX use_ncep_post_arakawa(); -// fprintf(stderr,"called use_ncep_post_araka\n"); -// use_ncep_post_arakawa(); -#ifdef G95 - // initialize g95 runtime library - if (g95_runstop == 0) { g95_runtime_start(0,NULL); g95_runstop = 1; } -#endif - -#ifdef G95 - // initialize g95 runtime library - if (g95_runstop == 0) { g95_runtime_start(0,NULL); g95_runstop = 1; } -#endif +// ALEX + use_ncep_post_arakawa(); // allocate static variables