diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py index 5b1dfb094cfe83..08c575cd6dcd6e 100644 --- a/var/spack/repos/builtin/packages/cdo/package.py +++ b/var/spack/repos/builtin/packages/cdo/package.py @@ -278,6 +278,12 @@ def yes_or_prefix(spec_name): if self.spec.satisfies("@1.9:+hdf5^hdf5+mpi"): flags["CPPFLAGS"].append("-DOMPI_SKIP_MPICXX -DMPICH_SKIP_MPICXX") + # Workaround compiler issues + # https://github.com/NOAA-EMC/spack-stack/issues/468 + if self.spec.satisfies("%intel"): + flags["CFLAGS"].append("-O1") + flags["CXXFLAGS"].append("-O1") + config_args.extend(["{0}={1}".format(var, " ".join(val)) for var, val in flags.items()]) return config_args diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py index abb1a9cda00e2a..aa7d0abab31247 100644 --- a/var/spack/repos/builtin/packages/nco/package.py +++ b/var/spack/repos/builtin/packages/nco/package.py @@ -53,8 +53,16 @@ class Nco(AutotoolsPackage): conflicts("%gcc@9:", when="@:4.7.8") def configure_args(self): - spec = self.spec - return ["--{0}-doc".format("enable" if "+doc" in spec else "disable")] + config_args = [] + config_args.extend(self.enable_or_disable("doc")) + + # Older versions of the Intel compilers (definitely 18) can't compile + # nco with full optimization (-O2), internal compiler error. + if self.spec.satisfies("%intel@18"): + config_args.append("CFLAGS=-O1") + config_args.append("CXXFLAGS=-O1") + + return config_args def setup_build_environment(self, env): spec = self.spec diff --git a/var/spack/repos/builtin/packages/netcdf-c/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py index cf7a560c35a1bb..c7409bb121ee2d 100644 --- a/var/spack/repos/builtin/packages/netcdf-c/package.py +++ b/var/spack/repos/builtin/packages/netcdf-c/package.py @@ -21,6 +21,7 @@ class NetcdfC(AutotoolsPackage): maintainers = ["skosukhin", "WardF"] version("main", branch="main") + version("4.9.1", sha256="4ee8d5f6b50a1eb4ad4c10f24531e36261fd1882410fb08435eb2ddfd49a0908") version("4.9.0", sha256="9f4cb864f3ab54adb75409984c6202323d2fc66c003e5308f3cdf224ed41c0a6") version("4.8.1", sha256="bc018cc30d5da402622bf76462480664c6668b55eb16ba205a0dfb8647161dd0") version("4.8.0", sha256="aff58f02b1c3e91dc68f989746f652fe51ff39e6270764e484920cb8db5ad092") @@ -80,7 +81,10 @@ class NetcdfC(AutotoolsPackage): variant("zstd", default=True, description="Enable ZStandard compression", when="@4.9.0:") variant("optimize", default=True, description="Enable -O2 for a more optimized lib") variant("nczarr", default=True, description="Enable zarr storage support", when="@4.8.0:") - variant("byterange", default=False, description="Allow byte-range I/O") + # New byte-range I/O option doesn't compile with 4.7.0:4.9.1, will be fixed in 4.9.2? + # https://github.com/Unidata/netcdf-c/issues/2614 + variant("byterange", default=False, description="Allow byte-range I/O", when="@4.7.0:") + # Variant fismahigh is required for FISMA high compliance on operational supercomputers variant( "fismahigh", default=False, @@ -152,7 +156,6 @@ class NetcdfC(AutotoolsPackage): conflicts("+byterange", when="+fismahigh") conflicts("+nczarr", when="+fismahigh") - filter_compiler_wrappers("nc-config", relative_root="bin") @property diff --git a/var/spack/repos/jcsda-emc-bundles/packages/global-workflow-env/package.py b/var/spack/repos/jcsda-emc-bundles/packages/global-workflow-env/package.py index 61f52c1d103c3e..1ffe156f770137 100644 --- a/var/spack/repos/jcsda-emc-bundles/packages/global-workflow-env/package.py +++ b/var/spack/repos/jcsda-emc-bundles/packages/global-workflow-env/package.py @@ -27,6 +27,7 @@ class GlobalWorkflowEnv(BundlePackage): depends_on("esmf") depends_on("bacio") depends_on("g2") + depends_on("g2tmpl") depends_on("w3nco") depends_on("w3emc") depends_on("sp") @@ -40,5 +41,8 @@ class GlobalWorkflowEnv(BundlePackage): depends_on("wgrib2") depends_on("met") depends_on("metplus") + depends_on("gsi-ncdiag") + depends_on("ncl") + depends_on("crtm@2.4.0") # There is no need for install() since there is no code.