
* Update maintainers for NOAA/EMC-maintained libraries * Fix line lengths * Fix line length for gptl
93 lines
3.5 KiB
Python
93 lines
3.5 KiB
Python
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
#
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
from spack.package import *
|
|
|
|
|
|
class Fms(CMakePackage):
|
|
"""GFDL's Flexible Modeling System (FMS) is a software environment
|
|
that supports the efficient development, construction, execution,
|
|
and scientific interpretation of atmospheric, oceanic, and climate
|
|
system models."""
|
|
|
|
homepage = "https://github.com/NOAA-GFDL/FMS"
|
|
url = "https://github.com/NOAA-GFDL/FMS/archive/refs/tags/2022.02.tar.gz"
|
|
git = "https://github.com/NOAA-GFDL/FMS.git"
|
|
|
|
maintainers = [
|
|
"AlexanderRichert-NOAA",
|
|
"Hang-Lei-NOAA",
|
|
"edwardhartnett",
|
|
"rem1776",
|
|
]
|
|
|
|
version("2022.03", sha256="42d2ac53d3c889a8177a6d7a132583364c0f6e5d5cbde0d980443b6797ad4838")
|
|
version("2022.02", sha256="ad4978302b219e11b883b2f52519e1ee455137ad947474abb316c8654f72c874")
|
|
version("2022.01", sha256="a1cba1f536923f5953c28729a28e5431e127b45d6bc2c15d230939f0c02daa9b")
|
|
version("2021.04", sha256="dcb4fe80cb3b7846f7cf89b812afff09a78a10261ea048a851f28935d6b241b1")
|
|
version(
|
|
"2021.03.01", sha256="1f70e2a57f0d01e80fceb9ca9ce9661f5c1565d0437ab67618c2c4dfea0da6e9"
|
|
)
|
|
version("2021.03", sha256="a9fb6e85f44ff79e6f9e61e65f42a5ffd38fa661fe1a3e4da6f85ffacd2697ac")
|
|
version(
|
|
"2021.02.01", sha256="9b11d9474d7c90464af66d81fb86c4798cfa309b9a0da20b0fccf33c4f65386b"
|
|
)
|
|
version("2021.02", sha256="db810b2452a6952239f064b52c0c5c58fc62126057982111b9fcd64f1b3bd879")
|
|
version("2021.01", sha256="38c748e2edb94ffeb021095d8bde4d74b7834610ce0ef1dbb4dce353eeb5cd96")
|
|
version(
|
|
"2020.04.02", sha256="bd6ce752b1018d4418398f14b9fc486f217de76bcbaaf2cdbf4c43e0b3f39f69"
|
|
)
|
|
version(
|
|
"2020.04.01", sha256="2c409242de7dea0cf29f8dbf7495698b6bcac1eeb5c4599a728bdea172ffe37c"
|
|
)
|
|
|
|
variant(
|
|
"64bit",
|
|
default=True,
|
|
description="Build a version of the library with default 64 bit reals",
|
|
)
|
|
variant("gfs_phys", default=True, description="Use GFS Physics")
|
|
variant("openmp", default=True, description="Use OpenMP")
|
|
variant("quad_precision", default=True, description="quad precision reals")
|
|
variant(
|
|
"yaml",
|
|
default=False,
|
|
description="yaml input file support(requires libyaml)",
|
|
when="@2021.04:",
|
|
)
|
|
variant(
|
|
"constants",
|
|
default="GFDL",
|
|
description="Build with <X> constants parameter definitions",
|
|
values=("GFDL", "GEOS", "GFS"),
|
|
multi=False,
|
|
when="@2022.02:",
|
|
)
|
|
variant(
|
|
"fpic", default=False, description="Build with position independent code", when="@2022.02:"
|
|
)
|
|
|
|
depends_on("netcdf-c")
|
|
depends_on("netcdf-fortran")
|
|
depends_on("mpi")
|
|
depends_on("libyaml", when="+yaml")
|
|
|
|
def cmake_args(self):
|
|
args = [
|
|
self.define_from_variant("64BIT"),
|
|
self.define_from_variant("GFS_PHYS"),
|
|
self.define_from_variant("OPENMP"),
|
|
self.define_from_variant("ENABLE_QUAD_PRECISION", "quad_precision"),
|
|
self.define_from_variant("WITH_YAML", "yaml"),
|
|
self.define_from_variant("CONSTANTS"),
|
|
self.define_from_variant("FPIC"),
|
|
]
|
|
|
|
args.append(self.define("CMAKE_C_COMPILER", self.spec["mpi"].mpicc))
|
|
args.append(self.define("CMAKE_CXX_COMPILER", self.spec["mpi"].mpicxx))
|
|
args.append(self.define("CMAKE_Fortran_COMPILER", self.spec["mpi"].mpifc))
|
|
|
|
return args
|