From b4ad883b0dfeba476b06524ae36a0633e19ab555 Mon Sep 17 00:00:00 2001 From: MichaelLaufer <70094649+MichaelLaufer@users.noreply.github.com> Date: Mon, 12 Jun 2023 16:48:54 +0300 Subject: wrf: add v4.5.0 (#37618) --- var/spack/repos/builtin/packages/wrf/package.py | 20 +++++++++- .../4.5/adios2-remove-deprecated-functions.patch | 16 ++++++++ .../packages/wrf/patches/4.5/configure.patch | 44 ++++++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 var/spack/repos/builtin/packages/wrf/patches/4.5/adios2-remove-deprecated-functions.patch create mode 100644 var/spack/repos/builtin/packages/wrf/patches/4.5/configure.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/wrf/package.py b/var/spack/repos/builtin/packages/wrf/package.py index f1bfc9ce18..a82fd57e72 100644 --- a/var/spack/repos/builtin/packages/wrf/package.py +++ b/var/spack/repos/builtin/packages/wrf/package.py @@ -69,6 +69,11 @@ class Wrf(Package): maintainers("MichaelLaufer", "ptooley") tags = ["windows"] + version( + "4.5.0", + sha256="14fd78abd4e32c1d99e2e97df0370030a5c58ec84c343591bdc5e74f163c5525", + url="https://github.com/wrf-model/WRF/releases/download/v4.5/v4.5.tar.gz", + ) version( "4.4.2", sha256="488b992e8e994637c58e3c69e869ad05acfe79419c01fbef6ade1f624e50dc3a", @@ -118,6 +123,7 @@ class Wrf(Package): variant("pnetcdf", default=True, description="Parallel IO support through Pnetcdf library") variant("chem", default=False, description="Enable WRF-Chem", when="@4:") variant("netcdf_classic", default=False, description="Use NetCDF without HDF5 compression") + variant("adios2", default=False, description="Enable IO support through ADIOS2 library") patch("patches/3.9/netcdf_backport.patch", when="@3.9.1.1") patch("patches/3.9/tirpc_detect.patch", when="@3.9.1.1") @@ -157,7 +163,13 @@ class Wrf(Package): patch("patches/4.2/derf_fix.patch", when="@4.2 %aocc") patch("patches/4.4/arch.postamble.patch", when="@4.4:") - patch("patches/4.4/configure.patch", when="@4.4:") + patch("patches/4.4/configure.patch", when="@4.4:4.4.2") + + patch("patches/4.5/configure.patch", when="@4.5:") + # Fix WRF to remove deprecated ADIOS2 functions + # https://github.com/wrf-model/WRF/pull/1860 + patch("patches/4.5/adios2-remove-deprecated-functions.patch", when="@4.5: ^adios2@2.9:") + # Various syntax fixes found by FPT tool patch( "https://github.com/wrf-model/WRF/commit/6502d5d9c15f5f9a652dec244cc12434af737c3c.patch?full_index=1", @@ -205,6 +217,7 @@ class Wrf(Package): depends_on("time", type=("build")) depends_on("m4", type="build") depends_on("libtool", type="build") + depends_on("adios2", when="@4.5: +adios2") phases = ["configure", "build", "install"] def setup_run_environment(self, env): @@ -240,6 +253,9 @@ class Wrf(Package): env.set("HDF5", self.spec["hdf5"].prefix) env.prepend_path("PATH", ancestor(self.compiler.cc)) + if "+adios2" in self.spec: + env.set("ADIOS2", self.spec["adios2"].prefix) + def flag_handler(self, name, flags): # Same flags as FCFLAGS/FFLAGS above, but forced through the compiler # wrapper when compiling v3.9.1.1. @@ -379,7 +395,7 @@ class Wrf(Package): csh = Executable(csh_bin) # num of compile jobs capped at 20 in wrf - num_jobs = str(min(int(make_jobs), 10)) + num_jobs = str(min(int(make_jobs), 20)) # Now run the compile script and track the output to check for # failure/success We need to do this because upstream use `make -i -k` diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.5/adios2-remove-deprecated-functions.patch b/var/spack/repos/builtin/packages/wrf/patches/4.5/adios2-remove-deprecated-functions.patch new file mode 100644 index 0000000000..09d7ead6e0 --- /dev/null +++ b/var/spack/repos/builtin/packages/wrf/patches/4.5/adios2-remove-deprecated-functions.patch @@ -0,0 +1,16 @@ +diff --git a/external/io_adios2/wrf_io.F90 b/external/io_adios2/wrf_io.F90 +index 99e9bfe2..3d5fdd68 100644 +--- a/external/io_adios2/wrf_io.F90 ++++ b/external/io_adios2/wrf_io.F90 +@@ -1599,9 +1599,9 @@ subroutine ext_adios2_ioinit(SysDepInfo, Status) + !look for adios2 xml runtime configuration + INQUIRE(FILE="adios2.xml", EXIST=file_exists) + if(file_exists) then +- call adios2_init(adios, 'adios2.xml', MPI_COMM_WORLD, adios2_debug_mode_on, stat) ++ call adios2_init(adios, 'adios2.xml', MPI_COMM_WORLD, stat) + else +- call adios2_init(adios, MPI_COMM_WORLD, adios2_debug_mode_on, stat) ++ call adios2_init(adios, MPI_COMM_WORLD, stat) + endif + call adios2_err(stat,Status) + if(Status /= WRF_NO_ERR) then diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.5/configure.patch b/var/spack/repos/builtin/packages/wrf/patches/4.5/configure.patch new file mode 100644 index 0000000000..e9f09b5746 --- /dev/null +++ b/var/spack/repos/builtin/packages/wrf/patches/4.5/configure.patch @@ -0,0 +1,44 @@ +diff --git a/configure b/configure +index eaf4a1aa..d478a450 100755 +--- a/configure ++++ b/configure +@@ -217,9 +217,9 @@ fi + USENETCDFF="" + USENETCDF="" + if [ -n "$NETCDF" ] ; then +- echo "Will use NETCDF in dir: $NETCDF" ++ echo "Will use NETCDFF in dir: $NETCDFF" + # Oh UNIDATA, why make it so hard ... +- if [ -f "$NETCDF/lib/libnetcdff.a" -o -f "$NETCDF/lib/libnetcdff.so" -o -f "$NETCDF/lib/libnetcdff.dll.a" ] ; then ++ if [ -f "$NETCDFF/lib/libnetcdff.a" -o -f "$NETCDFF/lib/libnetcdff.so" -o -f "$NETCDFF/lib/libnetcdff.dll.a" ] ; then + USENETCDFF="-lnetcdff" + else + USENETCDFF=" " +@@ -572,7 +572,7 @@ if test -n "$PERL" ; then + srch=`grep -i "^#ARCH.*$os" arch/configure.defaults | grep -i "$mach"` + if [ -n "$srch" ] ; then + $PERL arch/Config.pl -dmparallel=$COMMLIB -ompparallel=$OMP -perl=$PERL \ +- -netcdf=$NETCDF -pnetcdf=$PNETCDF -netcdfpar=$NETCDFPAR -adios2=$ADIOS2 -hdf5=$HDF5 -phdf5=$PHDF5 -os=$os -mach=$mach -ldflags=$ldflags \ ++ -netcdf=$NETCDF -netcdff=$NETCDFF -pnetcdf=$PNETCDF -netcdfpar=$NETCDFPAR -adios2=$ADIOS2 -hdf5=$HDF5 -phdf5=$PHDF5 -os=$os -mach=$mach -ldflags=$ldflags \ + -compileflags=$compileflags -opt_level=$opt_level -USENETCDFF=$USENETCDFF -USENETCDF=$USENETCDF \ + -time=$FORTRAN_COMPILER_TIMER -tfl="$TFL" -cfl="$CFL" -config_line="$config_line" \ + -wrf_core=$wrf_core -gpfs=$GPFS_PATH -curl=$CURL_PATH -dep_lib_path="$DEP_LIB_PATH" +@@ -654,14 +654,14 @@ echo "If you wish to change settings, please edit that file." + echo "If you wish to change the default options, edit the file:" + echo " arch/configure.defaults" + +-if test -n "$NETCDF" ; then +- if [ ! -f $NETCDF/include/netcdf.inc ] ; then ++if test -n "$NETCDFF" ; then ++ if [ ! -f $NETCDFF/include/netcdf.inc ] ; then + echo +- echo "Error : Not found $NETCDF/include/netcdf.inc" ++ echo "Error : Not found $NETCDFF/include/netcdf.inc" + echo " Please check this installation of NetCDF and re-run this configure script" + exit -1 + fi +- grep nf_format_64bit $NETCDF/include/netcdf.inc > /dev/null ++ grep nf_format_64bit $NETCDFF/include/netcdf.inc > /dev/null + configure_aaaa=$? ; export configure_aaaa + if [ $configure_aaaa -a -z "$WRFIO_NCD_NO_LARGE_FILE_SUPPORT" ] ; then + echo "NetCDF users note:" -- cgit v1.2.3-60-g2f50