Skip to content

Commit

Permalink
Merge branch 'develop' into grids
Browse files Browse the repository at this point in the history
  • Loading branch information
AlysonStahl-NOAA authored Sep 26, 2024
2 parents 06f1c0c + 10c9737 commit 879b7bf
Show file tree
Hide file tree
Showing 10 changed files with 62 additions and 63 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
73 changes: 36 additions & 37 deletions spack/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,9 @@

from spack.package import *

variant_map = {
variant_map_common = {
"netcdf3": "USE_NETCDF3",
"netcdf4": "USE_NETCDF4",
"netcdf": "USE_NETCDF",
"spectral": "USE_SPECTRAL",
"mysql": "USE_MYSQL",
"udf": "USE_UDF",
"regex": "USE_REGEX",
Expand All @@ -25,14 +23,25 @@
"openmp": "USE_OPENMP",
"wmo_validation": "USE_WMO_VALIDATION",
"ipolates": "USE_IPOLATES",
"disable_timezone": "DISABLE_TIMEZONE",
"disable_alarm": "DISABLE_ALARM",
"fortran_api": "MAKE_FTN_API",
"disable_stat": "DISABLE_STAT",
"openjpeg": "USE_OPENJPEG",

}

variant_map_makefile = {
"spectral": "USE_SPECTRAL",
}

variant_map_cmake = {
"netcdf": "USE_NETCDF",
"disable_timezone": "DISABLE_TIMEZONE",
"enable_docs": "ENABLE_DOCS",
}

variant_map_makefile.update(variant_map_common)
variant_map_cmake.update(variant_map_common)

class Wgrib2(MakefilePackage, CMakePackage):
"""Utility for interacting with GRIB2 files"""
Expand All @@ -46,6 +55,7 @@ class Wgrib2(MakefilePackage, CMakePackage):
build_system(conditional("cmake", when="@3.2:"), conditional("makefile", when="@:3.1"))

version("develop", branch="develop")
version("3.4.0", sha256="ecbce2209c09bd63f1bca824f58a60aa89db6762603bda7d7d3fa2148b4a0536")
version("3.3.0", sha256="010827fba9c31f05807e02375240950927e9e51379e1444388153284f08f58e2")
version("3.2.0", sha256="ac3ace77a32c2809cbc4538608ad64aabda2c9c1e44e7851da79764a6eb3c369")
version(
Expand Down Expand Up @@ -83,16 +93,21 @@ def url_for_version(self, version):
when="@:3.1",
)
variant(
"netcdf4", default=False, description="Link in netcdf4 library to write netcdf3/4 files"
"netcdf4",
default=False,
description="Link in netcdf4 library to write netcdf3/4 files",
when="@:3.3"
)
variant(
"netcdf", default=False, description="Link in netcdf4 library to write netcdf3/4 files"
"netcdf",
default=False,
description="Link in netcdf4 library to write netcdf3/4 files",
when="@3.4:"
)
variant(
"ipolates",
default=False,
description="Use to interpolate to new grids",
when="@3.3:",
)
variant(
"spectral", default=False, description="Spectral interpolation in -new_grid", when="@:3.1"
Expand All @@ -102,7 +117,6 @@ def url_for_version(self, version):
"fortran_api",
default=True,
description="Make wgrib2api which allows fortran code to read/write grib2",
when="@3.3:",
)
# Not currently working for @3.2:
# variant("lib", default=True, description="Build library", when="@3.2:")
Expand Down Expand Up @@ -155,16 +169,18 @@ def url_for_version(self, version):
conflicts("+netcdf3", when="+netcdf")
conflicts("+openmp", when="%apple-clang")

depends_on("wget", type=("build"), when="@:3.1 +netcdf4")
depends_on("wget", type=("build"), when="@:3.1 +netcdf")
depends_on("[email protected]:", when="@develop +ipolates")
depends_on("[email protected]:", when="@3.2: +aec")
depends_on("netcdf-c", when="@3.2: +netcdf4")
depends_on("netcdf-c", when="@3.2: +netcdf")
depends_on("jasper@:2", when="@3.2: +jasper")
depends_on("zlib-api", when="+png")
depends_on("libpng", when="+png")
depends_on("openjpeg", when="+openjpeg")
depends_on("zlib-api", when="@3.2: +png")
depends_on("libpng", when="@3.2: +png")
depends_on("openjpeg", when="@3.2: +openjpeg")

@when("@:2 ^[email protected]:")

def patch(self):
filter_file("\\\#define", "#define", "makefile")

# Use Spack compiler wrapper flags
def inject_flags(self, name, flags):
Expand All @@ -188,7 +204,7 @@ class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
parallel = False

def cmake_args(self):
args = [self.define_from_variant(variant_map[k], k) for k in variant_map]
args = [self.define_from_variant(variant_map_cmake[k], k) for k in variant_map_cmake]
# args.append(self.define_from_variant("BUILD_LIB", "lib"))
# args.append(self.define_from_variant("BUILD_SHARED_LIB", "shared"))

Expand Down Expand Up @@ -217,7 +233,7 @@ def edit(self, pkg, spec, prefix):
if spec.satisfies("%clang") or spec.satisfies("%apple-clang"):
makefile.filter(r"--fast-math", "-ffast-math")

for variant_name, makefile_option in variant_map.items():
for variant_name, makefile_option in variant_map_makefile.items():
value = int(spec.variants[variant_name].value)
makefile.filter(r"^%s=.*" % makefile_option, "{}={}".format(makefile_option, value))

Expand All @@ -230,25 +246,8 @@ def setup_build_environment(self, env):
env.set("COMP_SYS", comp_sys)

def build(self, pkg, spec, prefix):
# Get source files for netCDF4 builds
if self.spec.satisfies("+netcdf4"):
with working_dir(self.build_directory):
os.system(
"wget https://downloads.unidata.ucar.edu/netcdf-c/4.8.1/netcdf-c-4.8.1.tar.gz"
)
os.system(
"wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/src/hdf5-1.12.1.tar.gz"
)
if self.spec.satisfies("+netcdf"):
with working_dir(self.build_directory):
os.system(
"wget https://downloads.unidata.ucar.edu/netcdf-c/4.8.1/netcdf-c-4.8.1.tar.gz"
)
os.system(
"wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/src/hdf5-1.12.1.tar.gz"
)

make()

make("-j1")

# Move wgrib2 executable to a tempoary directory
mkdir("install")
Expand All @@ -263,7 +262,7 @@ def build(self, pkg, spec, prefix):
makefile = FileFilter("makefile")

# Disable all options
for variant_name, makefile_option in variant_map.items():
for variant_name, makefile_option in variant_map_makefile.items():
value = 0
makefile.filter(
r"^%s=.*" % makefile_option, "{}={}".format(makefile_option, value)
Expand All @@ -272,7 +271,7 @@ def build(self, pkg, spec, prefix):
# Need USE_REGEX in addition to MAKE_FTN_API to build lib
makefile.filter(r"^MAKE_FTN_API=.*", "MAKE_FTN_API=1")
makefile.filter(r"^USE_REGEX=.*", "USE_REGEX=1")
make("lib")
make("lib","-j1")
mkdir(join_path("install", "lib"))
mkdir(join_path("install", "include"))

Expand Down
52 changes: 26 additions & 26 deletions tests/run_ipolates_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,157 +61,157 @@ echo "*** Testing conversion to NCEP grid definition 2"
../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
#diff -w ncep_grid_2.txt data/ref_new_grid_ncep_2.txt

echo "*** Testing conversion to NCEP grid definition 3"
../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
#diff -w ncep_grid_3.txt data/ref_new_grid_ncep_3.txt

echo "*** Testing conversion to NCEP grid definition 4"
../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
#diff -w ncep_grid_4.txt data/ref_new_grid_ncep_4.txt

echo "*** Testing conversion to NCEP grid definition 45"
../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
#diff -w ncep_grid_45.txt data/ref_new_grid_ncep_45.txt

echo "*** Testing conversion to NCEP grid definition 98"
../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
#diff -w ncep_grid_98.txt data/ref_new_grid_ncep_98.txt

echo "*** Testing conversion to NCEP grid definition 126"
../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
#diff -w ncep_grid_126.txt data/ref_new_grid_ncep_126.txt

echo "*** Testing conversion to NCEP grid definition 127"
../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
#diff -w ncep_grid_127.txt data/ref_new_grid_ncep_127.txt

echo "*** Testing conversion to NCEP grid definition 128"
../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
#diff -w ncep_grid_128.txt data/ref_new_grid_ncep_128.txt

echo "*** Testing conversion to NCEP grid definition 129"
../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
#diff -w ncep_grid_129.txt data/ref_new_grid_ncep_129.txt

echo "*** Testing conversion to NCEP grid definition 170"
../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
#diff -w ncep_grid_170.txt data/ref_new_grid_ncep_170.txt

echo "*** Testing conversion to NCEP grid definition 173"
../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
#diff -w ncep_grid_173.txt data/ref_new_grid_ncep_173.txt

echo "*** Testing conversion to NCEP grid definition 184"
../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
#diff -w ncep_grid_184.txt data/ref_new_grid_ncep_184.txt

echo "*** Testing conversion to NCEP grid definition 194"
../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
#diff -w ncep_grid_194.txt data/ref_new_grid_ncep_194.txt

echo "*** Testing conversion to NCEP grid definition 221"
../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
#diff -w ncep_grid_221.txt data/ref_new_grid_ncep_221.txt

echo "*** Testing conversion to NCEP grid definition 230"
../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
#diff -w ncep_grid_230.txt data/ref_new_grid_ncep_230.txt

echo "*** Testing conversion to NCEP grid definition 242"
../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
#diff -w ncep_grid_242.txt data/ref_new_grid_ncep_242.txt

echo "*** Testing conversion to NCEP grid definition 249"
../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
#diff -w ncep_grid_249.txt data/ref_new_grid_ncep_249.txt

echo "*** Testing conversion to NCEP grid definition t62"
../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
#diff -w ncep_grid_t62.txt data/ref_new_grid_ncep_t62.txt

echo "*** Testing conversion to NCEP grid definition t126"
../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
#diff -w ncep_grid_t126.txt data/ref_new_grid_ncep_t126.txt

echo "*** Testing conversion to NCEP grid definition t170"
../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
#diff -w ncep_grid_t170.txt data/ref_new_grid_ncep_t170.txt

echo "*** Testing conversion to NCEP grid definition t190"
../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
#diff -w ncep_grid_t190.txt data/ref_new_grid_ncep_t190.txt

echo "*** Testing conversion to NCEP grid definition t254"
../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
#diff -w ncep_grid_t254.txt data/ref_new_grid_ncep_t254.txt

echo "*** Testing conversion to NCEP grid definition t382"
../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
#diff -w ncep_grid_t382.txt data/ref_new_grid_ncep_t382.txt

echo "*** Testing conversion to NCEP grid definition t574"
../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
#diff -w ncep_grid_t574.txt data/ref_new_grid_ncep_t574.txt

echo "*** Testing conversion to NCEP grid definition t1148"
../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
#diff -w ncep_grid_t1148.txt data/ref_new_grid_ncep_t1148.txt

echo "*** Testing conversion to NCEP grid definition t1534"
../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
#diff -w ncep_grid_t1534.txt data/ref_new_grid_ncep_t1534.txt

echo "*** Testing conversion to Mercator grid"
../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
Expand Down

0 comments on commit 879b7bf

Please sign in to comment.