From f9e6369b884a36b33be4a34fe012eb35104594f6 Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Fri, 16 Oct 2026 17:49:41 -0400 Subject: [PATCH 1/2] [skip ci] Update GEOS templates, geos-gcm-env, and CRTM versions in dev templates - geos_gcm_env: add 12.1.0 and fms/cdo/grads variants and dependencies - geos-dev, geos-dev-nag: update specs; add geos-dev-flang template - unified-dev, skylab-dev, nco: use crtm@3.1.5 only; remove stale crtm comments - nco: remove envrepo crtm override - Remove obsolete NAS gcc-14.2.0 and macOS clang-22.1.3/gcc-15.2.0 site configs - jedi_base_env: remove commented-out line --- .../sites/tier1/nas/packages_gcc-14.2.0.yaml | 55 -------- .../packages_clang-22.1.3.yaml.template | 39 ------ .../packages_gcc-15.2.0.yaml.template | 49 ------- configs/templates/geos-dev-flang/spack.yaml | 43 ++++++ configs/templates/geos-dev-nag/spack.yaml | 6 +- configs/templates/geos-dev/spack.yaml | 15 ++- .../nco/envrepo/packages/crtm/package.py | 124 ------------------ .../crtm/v3.1.0-skylabv8.installprefix.patch | 14 -- configs/templates/nco/envrepo/repo.yaml | 2 - configs/templates/nco/spack.yaml | 4 +- configs/templates/skylab-dev/spack.yaml | 4 +- configs/templates/unified-dev/spack.yaml | 19 ++- .../packages/geos_gcm_env/package.py | 33 ++++- .../packages/jedi_base_env/package.py | 1 - 14 files changed, 103 insertions(+), 305 deletions(-) delete mode 100644 configs/sites/tier1/nas/packages_gcc-14.2.0.yaml delete mode 100644 configs/sites/tier2/macos.gmao/packages_clang-22.1.3.yaml.template delete mode 100644 configs/sites/tier2/macos.gmao/packages_gcc-15.2.0.yaml.template create mode 100644 configs/templates/geos-dev-flang/spack.yaml delete mode 100644 configs/templates/nco/envrepo/packages/crtm/package.py delete mode 100644 configs/templates/nco/envrepo/packages/crtm/v3.1.0-skylabv8.installprefix.patch delete mode 100644 configs/templates/nco/envrepo/repo.yaml diff --git a/configs/sites/tier1/nas/packages_gcc-14.2.0.yaml b/configs/sites/tier1/nas/packages_gcc-14.2.0.yaml deleted file mode 100644 index 9dea27286fa..00000000000 --- a/configs/sites/tier1/nas/packages_gcc-14.2.0.yaml +++ /dev/null @@ -1,55 +0,0 @@ -packages: - all: - require: - - any_of: ['%gcc@=14.2.0'] - when: '%gcc' - mpi: - buildable: false - require: - - "openmpi@4.1.8" - gcc: - buildable: false - externals: - - spec: gcc@14.2.0 languages:='c,c++,fortran' - prefix: /nobackup/gmao_SIteam/gcc/gcc-14.2.0 - modules: - - comp-gcc/14.2.0 - extra_attributes: - compilers: - c: /nobackup/gmao_SIteam/gcc/gcc-14.2.0/bin/gcc - cxx: /nobackup/gmao_SIteam/gcc/gcc-14.2.0/bin/g++ - fortran: /nobackup/gmao_SIteam/gcc/gcc-14.2.0/bin/gfortran - openmpi: - buildable: false - externals: - - spec: openmpi@4.1.8 ~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath+lustre~internal-hwloc+two_level_namespace fabrics=ucx schedulers=tm %gcc@14.2.0 - prefix: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0 - modules: - - mpi-openmpi/4.1.8/gcc/14.2.0 - extra_attributes: - environment: - set: - OPAL_PREFIX: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0 - UCX_MAX_EAGER_LANES: 1 - UCX_MAX_RNDV_LANES: 1 - OMPI_MCA_pml: ucx - OMPI_MCA_btl: ^openib - OMPI_MCA_oob_tcp_listen_mode: listen_thread - OMPI_MCA_oob_tcp_if_include: ib0,ib1 - OMPI_MCA_btl_tcp_if_include: ib0,ib1 - OMPI_MCA_opal_warn_on_missing_libcuda: 0 - UCX_IB_SUBNET_PREFIX: fec0:0000:0000:0008 - OMPI_MCA_shmem_mmap_enable_nfs_warning: 0 - OPENMPI: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0 - prepend_path: - PATH: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0/bin - LIBRARY_PATH: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0/lib - LD_LIBRARY_PATH: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0/lib - CPATH: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0/include - FPATH: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0/include - MANPATH: /nobackup/gmao_SIteam/MPI/openmpi/4.1.8/gcc-14.2.0/share/man - - # Testing shows we now need to pass in -lm for GCC - p4est: - require: - - 'ldflags="-lm"' diff --git a/configs/sites/tier2/macos.gmao/packages_clang-22.1.3.yaml.template b/configs/sites/tier2/macos.gmao/packages_clang-22.1.3.yaml.template deleted file mode 100644 index 49fa8d5efb7..00000000000 --- a/configs/sites/tier2/macos.gmao/packages_clang-22.1.3.yaml.template +++ /dev/null @@ -1,39 +0,0 @@ -packages: - c: - require: [apple-clang@@APPLE_CLANG_VERSION@] - cxx: - require: [apple-clang@@APPLE_CLANG_VERSION@] - fortran: - require: [llvm@21.1.3 ~clang +flang] - mpi: - require: [openmpi@=5.0.10] - apple-clang: - externals: - - spec: apple-clang@@APPLE_CLANG_VERSION@ languages:='c,c++' - prefix: /usr - extra_attributes: - compilers: - c: /usr/bin/clang - cxx: /usr/bin/clang++ - llvm: - buildable: False - externals: - - spec: llvm@21.1.3 ~clang +flang languages:='fortran' - prefix: @BREW_PREFIX@ - extra_attributes: - compilers: - fortran: @BREW_PREFIX@/bin/flang - - openmpi: - require:: - - '+internal-hwloc' - - '+internal-libevent' - - '+internal-pmix' - - '+fortran' - # GEOS requires a flat namespace to link properly on macOS - - '~two_level_namespace' - - gdbm: - externals: - - spec: gdbm@1.26 - prefix: @BREW_PREFIX@/opt/gdbm diff --git a/configs/sites/tier2/macos.gmao/packages_gcc-15.2.0.yaml.template b/configs/sites/tier2/macos.gmao/packages_gcc-15.2.0.yaml.template deleted file mode 100644 index 4014ae07c55..00000000000 --- a/configs/sites/tier2/macos.gmao/packages_gcc-15.2.0.yaml.template +++ /dev/null @@ -1,49 +0,0 @@ -packages: - c: - require: [apple-clang@@APPLE_CLANG_VERSION@] - cxx: - require: [apple-clang@@APPLE_CLANG_VERSION@] - fortran: - require: [gcc@15.2.0] - mpi: - require: [openmpi@=5.0.10] - apple-clang: - externals: - - spec: apple-clang@@APPLE_CLANG_VERSION@ languages:='c,c++' - prefix: /usr - extra_attributes: - compilers: - c: /usr/bin/clang - cxx: /usr/bin/clang++ - gcc: - buildable: False - externals: - - spec: gcc@15.2.0 languages:='fortran' - prefix: @BREW_PREFIX@ - extra_attributes: - compilers: - fortran: @BREW_PREFIX@/bin/gfortran-15 - - openmpi: - require:: - - '+internal-hwloc' - - '+internal-libevent' - - '+internal-pmix' - - '+fortran' - # GEOS requires a flat namespace to link properly on macOS - - '~two_level_namespace' - - # ESMF by default for Darwin.gfortranclang turns off OpenMP, so - # we do the same here to avoid build failures. - # We also build as +debug only because esmf ~debug does not work with - # gfortranclang/GEOS on macOS. The geos-gcm-env ~debug spec is removed - # from the environment spack.yaml by batch_install.sh on macOS. - esmf: - require: - - '~openmp' - - '+debug' - - gdbm: - externals: - - spec: gdbm@1.26 - prefix: @BREW_PREFIX@/opt/gdbm diff --git a/configs/templates/geos-dev-flang/spack.yaml b/configs/templates/geos-dev-flang/spack.yaml new file mode 100644 index 00000000000..2e3e96d12ad --- /dev/null +++ b/configs/templates/geos-dev-flang/spack.yaml @@ -0,0 +1,43 @@ +# Template for GEOS development with the LLVM Flang compiler. +# +# GEOS 11.10.0 requires FMS 2024.03, which is not supported by Flang. +spack: + concretizer: + unify: when_possible + + view: false + include: [] + + specs: + # Two builds: release (esmf ~debug) and debug (esmf +debug). + # The macOS site configuration requires +debug, so these resolve to one build. + - geos-gcm-env@12.1.0 ~debug +cdo +fms + - geos-gcm-env@12.1.0 +debug +cdo +fms + + - fms@=2026.01.01 ~gfs_phys constants=GEOS + + packages: + # Turn on python variant for esmf + esmf: + require: + - +python + - '@=9.0.0b18' + + # PnetCDF is unneeded for GEOS and does not build with Flang on macOS. + parallelio: + require:: + - '@2.6.2' + - ~pnetcdf + + # Homebrew LLVM Flang on Apple Silicon does not support REAL(16). + fms: + require:: + - ~quad_precision + + # Use the same CDO variants (fftw3 and GRIB2 via eccodes) as geos-dev, + # so the stacks are consistent and do not change when other + # environments (e.g. ai-env) are present. + cdo: + require: + - +fftw3 + - grib2=eccodes diff --git a/configs/templates/geos-dev-nag/spack.yaml b/configs/templates/geos-dev-nag/spack.yaml index 3729d7c6cec..88719f91cf6 100644 --- a/configs/templates/geos-dev-nag/spack.yaml +++ b/configs/templates/geos-dev-nag/spack.yaml @@ -13,8 +13,10 @@ spack: # (see geos_gcm_env/package.py). On platforms where only +debug is supported # (e.g., macOS), the site packages.yaml requires geos-gcm-env +debug, which # causes both specs to resolve to +debug (only one unique build). - - geos-gcm-env ~debug - - geos-gcm-env +debug + # + # Also, NAG cannot build FMS yet (due to use of cray pointers) + - geos-gcm-env ~debug ~fms ~cdo + - geos-gcm-env +debug ~fms ~cdo packages: diff --git a/configs/templates/geos-dev/spack.yaml b/configs/templates/geos-dev/spack.yaml index d0d6fbfb447..c7c9ae32330 100644 --- a/configs/templates/geos-dev/spack.yaml +++ b/configs/templates/geos-dev/spack.yaml @@ -13,11 +13,14 @@ spack: # (see geos_gcm_env/package.py). On platforms where only +debug is supported # (e.g., macOS), the site packages.yaml requires geos-gcm-env +debug, which # causes both specs to resolve to +debug (only one unique build). - - geos-gcm-env ~debug - - geos-gcm-env +debug + - geos-gcm-env@11.10.0 ~debug +cdo +fms + - geos-gcm-env@11.10.0 +debug +cdo +fms + - geos-gcm-env@12.1.0 ~debug +cdo +fms + - geos-gcm-env@12.1.0 +debug +cdo +fms # Various fms builds - fms@=2024.03 ~gfs_phys constants=GEOS + - fms@=2026.01.01 ~gfs_phys constants=GEOS packages: # Turn on python variant for esmf @@ -25,3 +28,11 @@ spack: require: - +python - '@=9.0.0b18' + # Use one CDO build (with fftw3 and GRIB2 via eccodes) for all + # GEOS-GCM-ENV versions. Without this, the solver may pick different + # variants per geos-gcm-env version when other environments (e.g. ai-env) + # are present. + cdo: + require: + - +fftw3 + - grib2=eccodes diff --git a/configs/templates/nco/envrepo/packages/crtm/package.py b/configs/templates/nco/envrepo/packages/crtm/package.py deleted file mode 100644 index a478041414a..00000000000 --- a/configs/templates/nco/envrepo/packages/crtm/package.py +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import glob -import os - -from spack_repo.builtin.build_systems.cmake import CMakePackage - -from spack.package import * - - -class Crtm(CMakePackage): - """The Community Radiative Transfer Model (CRTM) package. - The CRTM is composed of four important modules for gaseous transmittance, - surface emission and reflection, cloud and aerosol absorption and - scattering, and a solver for a radiative transfer.""" - - homepage = "https://www.jcsda.org/jcsda-project-community-radiative-transfer-model" - git = "https://github.com/JCSDA/crtm.git" - url = "https://github.com/JCSDA/crtm/archive/refs/tags/v2.3.0.tar.gz" - - maintainers( - "BenjaminTJohnson", - "t-brown", - "edwardhartnett", - "AlexanderRichert-NOAA", - "Hang-Lei-NOAA", - "climbfuji", - ) - - license("CC0-1.0") - - version("3.1.2", sha256="a96598e5611c263fa80d6d6375a12d70d74389b261a8070515a6698e41563281") - version( - "3.1.1-build1", sha256="1ed49e594da5d3769cbaa52cc7fc19c1bb0325ee6324f6057227c31e2d95ca67" - ) - version( - "v3.1.0-skylabv8", - sha256="a475c8a444072aef1e8c2babba3d12f13ab0fb6c7ecab88edad57130839e29ff", - ) - version( - "v3.1.0-skylabv7", - sha256="3ac45c49562ab41c3baf443ce382e3a6bcb7226831b54146d9f73995be165ec7", - ) - version( - "v3.0.0-skylabv6", - sha256="780fbc4e0f3b0414fbade4b595832bb35d9c5d3e7c3b25ad128ca94f71bea2b8", - ) - version( - "v3.0.0-skylabv5", - sha256="4fa5dd2d65b4d4ff77d50992e8e0c02a59584b35599f424085fccdc2174d7bd2", - ) - version( - "v2.4.1-jedi.2", sha256="e78c1a834dd337597b01e451c5c6e813c1b97d42b221049e8dbbbc590598f1de" - ) - version( - "v2.4.1-jedi.1", sha256="94ff24051382d544c2e200a937bfe7d2047f6393a3e22f64284d5dc70e791ca6" - ) - version( - "v2.4.1-jedi", sha256="fd8bf4db4f2a3b420b4186de84483ba2a36660519dffcb1e0ff14bfe8c6f6a14" - ) - version("v2.4-jedi.2", commit="62831cbb6c1ffcbb219eeec60e1b1c422526f597") - version("v2.4-jedi.1", commit="82223419fdb479d76c2f2109c2b704e1d9618f22") - version("2.4.0.1", tag="v2.4.0_emc.3", commit="7ecad4866c400d7d0db1413348ee225cfa99ff36") - # REL-2.4.0_emc (v2.4.0 ecbuild does not work) - version("2.4.0", commit="5ddd0d6b0138284764065feda73b5adf599082a2") - # Uses the tip of REL-2.3.0_emc branch - version("2.3.0", commit="99760e693ce3b90a3b3b0e97d80972b4dfb61196") - - variant( - "fix", default=False, description='Download CRTM coefficient or "fix" files (several GBs).' - ) - - depends_on("c", type="build") - depends_on("fortran", type="build") - - depends_on("cmake@3.15:", type="build") - depends_on("git-lfs") - depends_on("netcdf-fortran", when="@2.4.0:") - depends_on("netcdf-fortran", when="@v2.3") - depends_on("netcdf-fortran", when="@v2.4") - depends_on("netcdf-fortran", when="@v3") - - depends_on("crtm-fix@2.3.0_emc", when="@2.3.0 +fix") - depends_on("crtm-fix@2.4.0_emc", when="@=2.4.0 +fix") - depends_on("crtm-fix@2.4.0.1_emc", when="@2.4.0.1 +fix") - depends_on("crtm-fix@3.1.1", when="@3.1.1 +fix") - depends_on("crtm-fix@3.1.2", when="@3.1.2 +fix") - - depends_on("ecbuild", type=("build"), when="@v2.3") - depends_on("ecbuild", type=("build"), when="@v2.4") - depends_on("ecbuild", type=("build"), when="@v3") - - def url_for_version(self, version): - if self.spec.satisfies("@=3.1.1-build1"): - fmtversion = str(version).replace("-build", "+build") - return f"https://github.com/JCSDA/CRTMv3/archive/refs/tags/{fmtversion}.tar.gz" - elif version >= Version("3"): - return f"https://github.com/JCSDA/CRTMv3/archive/refs/tags/v{version}.tar.gz" - elif version > Version("v3"): - return f"https://github.com/JCSDA/CRTMv3/archive/refs/tags/{version}.tar.gz" - else: - return f"https://github.com/JCSDA/crtm/archive/refs/tags/{version}.tar.gz" - - # https://github.com/JCSDA/spack-stack/issues/1088 - patch("v3.1.0-skylabv8.installprefix.patch", when="@v3.1.0-skylabv8") - - def patch(self): - if self.spec.satisfies("@2.4.0.1"): - if self.compiler.name in ["gcc", "clang", "apple-clang"]: - # Line lengths in RSS_Emissivity_Model.f90 are too long for gfortran default limit - filter_file( - "-fbacktrace", "-fbacktrace -ffree-line-length-none", "libsrc/CMakeLists.txt" - ) - if not self.run_tests: - filter_file(r"add_subdirectory\(test\)", "# disable testing", "CMakeLists.txt") - - @when("@3.1.1-build1") - @run_after("install") - def cmake_config_softlinks(self): - cmake_config_files = glob.glob(join_path(self.prefix, "cmake/crtm/*")) - for srcpath in cmake_config_files: - os.symlink(srcpath, join_path(self.prefix, "cmake", os.path.basename(srcpath))) diff --git a/configs/templates/nco/envrepo/packages/crtm/v3.1.0-skylabv8.installprefix.patch b/configs/templates/nco/envrepo/packages/crtm/v3.1.0-skylabv8.installprefix.patch deleted file mode 100644 index a1116de6d45..00000000000 --- a/configs/templates/nco/envrepo/packages/crtm/v3.1.0-skylabv8.installprefix.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/CMakeLists.txt 2024-04-22 08:25:42.000000000 -0600 -+++ b/CMakeLists.txt 2024-04-22 08:25:54.000000000 -0600 -@@ -6,8 +6,9 @@ - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - set(CMAKE_DIRECTORY_LABELS ${PROJECT_NAME}) --set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH "default install path" FORCE) --message("CMAKE_INSTALL_PREFIX set to ${CMAKE_INSTALL_PREFIX}") -+# https://github.com/JCSDA/spack-stack/issues/1088 -+#set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH "default install path" FORCE) -+#message("CMAKE_INSTALL_PREFIX set to ${CMAKE_INSTALL_PREFIX}") - - ## Configuration options - include(${PROJECT_NAME}_compiler_flags) diff --git a/configs/templates/nco/envrepo/repo.yaml b/configs/templates/nco/envrepo/repo.yaml deleted file mode 100644 index ac62900fd50..00000000000 --- a/configs/templates/nco/envrepo/repo.yaml +++ /dev/null @@ -1,2 +0,0 @@ -repo: - namespace: envrepo diff --git a/configs/templates/nco/spack.yaml b/configs/templates/nco/spack.yaml index e406ec496aa..4f8da0a8941 100644 --- a/configs/templates/nco/spack.yaml +++ b/configs/templates/nco/spack.yaml @@ -19,7 +19,7 @@ spack: - cdo - cfitsio - cmake - - crtm@=3.1.2 + - crtm@=3.1.5 - curl - ecflow - eckit @@ -81,7 +81,7 @@ spack: - sp - subversion - udunits - - upp ^crtm@=2.4.0.1 + - upp - w3emc - w3nco - wgrib2 diff --git a/configs/templates/skylab-dev/spack.yaml b/configs/templates/skylab-dev/spack.yaml index b6b04667c08..3871aa7ef3a 100644 --- a/configs/templates/skylab-dev/spack.yaml +++ b/configs/templates/skylab-dev/spack.yaml @@ -22,9 +22,7 @@ spack: - neptune-python-env ^esmf@=9.0.0b18 - soca-env - # Various crtm tags (list all to avoid duplicate packages) - - crtm@v2.4.1-jedi.2 - - crtm@3.1.2 + - crtm@3.1.5 # Mapl with various esmf tags - mapl@2.69.1 ^esmf@=9.0.0b17 diff --git a/configs/templates/unified-dev/spack.yaml b/configs/templates/unified-dev/spack.yaml index 892de0ddaf5..b665ff322e6 100644 --- a/configs/templates/unified-dev/spack.yaml +++ b/configs/templates/unified-dev/spack.yaml @@ -8,14 +8,15 @@ spack: include: [] specs: + # ai-env brings in py-torch (expensive); it is not included here. GMAO's + # util/gmao/batch_install.sh adds it to new environments with --with-ai. - dev-utils-env - ewok-env - - geos-gcm-env ^esmf@=9.0.0b18 - - global-workflow-env ^esmf@=9.0.0b17 ^crtm@=3.1.3 + - geos-gcm-env@11.10.0 ~debug +cdo +fms ^esmf@=9.0.0b18 + - global-workflow-env ^esmf@=9.0.0b17 ^crtm@=3.1.5 - # Is GMAO ready to move to crtm@3.1.3? - - gmao-swell-env ^crtm@=v2.4.1-jedi.2 - - gsi-env ^crtm@=3.1.3 + - gmao-swell-env ^crtm@=3.1.5 + - gsi-env ^crtm@=3.1.5 - jedi-fv3-env - jedi-geos-env ^esmf@=9.0.0b18 - jedi-mpas-env @@ -25,12 +26,8 @@ spack: - neptune-env ^esmf@=9.0.0b18 - neptune-python-env ^esmf@=9.0.0b18 - soca-env - - ufs-srw-app-env ^esmf@=9.0.0b17 ^crtm@=3.1.3 - - ufs-weather-model-env ^esmf@=9.0.0b17 ^crtm@=3.1.3 - - # Various crtm tags (list all to avoid duplicate packages) - - crtm@v2.4.1-jedi.2 - - crtm@3.1.3 + - ufs-srw-app-env ^esmf@=9.0.0b17 ^crtm@=3.1.5 + - ufs-weather-model-env ^esmf@=9.0.0b17 ^crtm@=3.1.5 # Mapl with specific esmf tags (list all to avoid duplicate packages) - mapl@2.69.1 ^esmf@=9.0.0b17 diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/geos_gcm_env/package.py b/repos/spack_stack/spack_repo/spack_stack/packages/geos_gcm_env/package.py index 8985ce217e8..e1e77480c54 100644 --- a/repos/spack_stack/spack_repo/spack_stack/packages/geos_gcm_env/package.py +++ b/repos/spack_stack/spack_repo/spack_stack/packages/geos_gcm_env/package.py @@ -16,9 +16,13 @@ class GeosGcmEnv(BundlePackage): maintainers("climbfuji", "mathomp4", "Dooruk") # Current version - version("1.1.0") + version("12.1.0") + version("11.10.0", preferred=True) variant("debug", default=False, description="Build debug version of selected dependencies") + variant("fms", default=True, description="Build FMS as part of the environment") + variant("cdo", default=True, description="Build CDO as part of the environment") + variant("grads", default=False, description="Build GrADS as part of the environment") depends_on("base-env", type="run") @@ -29,6 +33,18 @@ class GeosGcmEnv(BundlePackage): depends_on("esmf ~debug", type="run", when="~debug") depends_on("esmf +debug", type="run", when="+debug") + depends_on( + "fms@2024.03 precision=32,64 ~gfs_phys +openmp +pic constants=GEOS +deprecated_io +yaml build_type=Release", #noqa: E501 + type="run", + when="@11.10:12.0 +fms", + ) + + depends_on( + "fms@2026.01.01 precision=mixed ~gfs_phys +openmp +pic constants=GEOS +yaml build_type=Release", #noqa: E501 + type="run", + when="@12.1: +fms", + ) + # mapl is built as part of GEOS, don't load; # needs external gftl-shared/fargparse/pflogger # depends_on("mapl", type="run") @@ -42,8 +58,23 @@ class GeosGcmEnv(BundlePackage): depends_on("py-ruamel-yaml", type="run") depends_on("udunits", type="run") + # Needed for f2py + depends_on("meson", type="run") + depends_on("ninja", type="run") + depends_on("perl", type="run") depends_on("py-cmocean", type="run") + depends_on("py-matplotlib", type="run") + depends_on("py-netcdf4", type="run") + depends_on("py-pandas", type="run") + depends_on("py-xarray", type="run") + depends_on("py-cartopy", type="run") + + depends_on("nco", type="run") + depends_on("nccmp", type="run") + depends_on("cdo", type="run", when="+cdo") + + depends_on("grads", type="run", when="+grads") # There is no need for install() since there is no code. diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/jedi_base_env/package.py b/repos/spack_stack/spack_repo/spack_stack/packages/jedi_base_env/package.py index 43e5514261e..5b12a27e181 100644 --- a/repos/spack_stack/spack_repo/spack_stack/packages/jedi_base_env/package.py +++ b/repos/spack_stack/spack_repo/spack_stack/packages/jedi_base_env/package.py @@ -28,7 +28,6 @@ class JediBaseEnv(BundlePackage): depends_on("blas", type="run") depends_on("boost", type="run") # Force users to load manually - # depends_on("crtm@v2.4.1-jedi", type="run") depends_on("ecbuild", type="run") depends_on("eccodes", type="run") depends_on("eckit", type="run") From 04e96a436da7c35c13659c4d34ae60e73b95ff2e Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Fri, 16 Oct 2026 18:04:16 -0400 Subject: [PATCH 2/2] Update configs/templates/unified-dev/spack.yaml Co-authored-by: Dom Heinzeller --- configs/templates/unified-dev/spack.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/configs/templates/unified-dev/spack.yaml b/configs/templates/unified-dev/spack.yaml index b665ff322e6..dc25760ad70 100644 --- a/configs/templates/unified-dev/spack.yaml +++ b/configs/templates/unified-dev/spack.yaml @@ -8,8 +8,6 @@ spack: include: [] specs: - # ai-env brings in py-torch (expensive); it is not included here. GMAO's - # util/gmao/batch_install.sh adds it to new environments with --with-ai. - dev-utils-env - ewok-env - geos-gcm-env@11.10.0 ~debug +cdo +fms ^esmf@=9.0.0b18