summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorAndrey Parfenov <andrey.parfenov@intel.com>2023-07-03 13:34:06 +0200
committerGitHub <noreply@github.com>2023-07-03 07:34:06 -0400
commit30cb55e97c385298acf5dd93fb077fe0714932af (patch)
tree20424cdc1dcc2a3a571e9056a70c3f5b18ad2c23 /var
parent3594203f64223debbd43a31949c6c8bd9080d55e (diff)
downloadspack-30cb55e97c385298acf5dd93fb077fe0714932af.tar.gz
spack-30cb55e97c385298acf5dd93fb077fe0714932af.tar.bz2
spack-30cb55e97c385298acf5dd93fb077fe0714932af.tar.xz
spack-30cb55e97c385298acf5dd93fb077fe0714932af.zip
add support for oneapi compiler to wrf 4.4 (#38607)
Signed-off-by: Andrey Parfenov <andrey.parfenov@intel.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/wrf/package.py9
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.4/ifx.patch57
2 files changed, 65 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/wrf/package.py b/var/spack/repos/builtin/packages/wrf/package.py
index 103e3342f9..857b2bbe52 100644
--- a/var/spack/repos/builtin/packages/wrf/package.py
+++ b/var/spack/repos/builtin/packages/wrf/package.py
@@ -164,6 +164,7 @@ class Wrf(Package):
patch("patches/4.4/arch.postamble.patch", when="@4.4:")
patch("patches/4.4/configure.patch", when="@4.4:4.4.2")
+ patch("patches/4.4/ifx.patch", when="@4.4: %oneapi")
patch("patches/4.5/configure.patch", when="@4.5:")
# Fix WRF to remove deprecated ADIOS2 functions
@@ -328,11 +329,17 @@ class Wrf(Package):
config.filter("^DM_FC.*mpif90", "DM_FC = {0}".format(self.spec["mpi"].mpifc))
config.filter("^DM_CC.*mpicc", "DM_CC = {0}".format(self.spec["mpi"].mpicc))
+ @run_before("configure")
+ def fortran_check(self):
+ if not self.compiler.fc:
+ msg = "cannot build WRF without a Fortran compiler"
+ raise RuntimeError(msg)
+
def configure(self, spec, prefix):
# Remove broken default options...
self.do_configure_fixup()
- if self.spec.compiler.name not in ["intel", "gcc", "aocc", "fj"]:
+ if self.spec.compiler.name not in ["intel", "gcc", "aocc", "fj", "oneapi"]:
raise InstallError(
"Compiler %s not currently supported for WRF build." % self.spec.compiler.name
)
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.4/ifx.patch b/var/spack/repos/builtin/packages/wrf/patches/4.4/ifx.patch
new file mode 100644
index 0000000000..06ab5cff2b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.4/ifx.patch
@@ -0,0 +1,57 @@
+diff --git a/arch/configure.defaults b/arch/configure.defaults
+index 6aa210d7..a3224d34 100644
+--- a/arch/configure.defaults
++++ b/arch/configure.defaults
+@@ -1962,6 +1962,51 @@ RLFLAGS =
+ CC_TOOLS = $(SCC)
+ NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
+
++###########################################################
++#ARCH Linux KNL x86_64 ppc64le i486 i586 i686, ifx compiler with icx #serial smpar dmpar dm+sm
++#
++DESCRIPTION = INTEL ($SFC/$SCC): SKX/ICX
++DMPARALLEL = 1
++OMPCPP = -D_OPENMP
++OMP = -fiopenmp
++OMPCC = -fiopenmp
++SFC = ifx
++SCC = icx
++CCOMP = icx
++DM_FC = $(MPIF90)
++DM_CC = $(MPICC)
++FC = time $(DM_FC)
++CC = $(DM_CC) -DFSEEKO64_OK
++LD = $(FC)
++RWORDSIZE = $(NATIVE_RWORDSIZE)
++PROMOTION = -real-size `expr 8 \* $(RWORDSIZE)` -i4
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_FUNC -DRPC_TYPES=2 -DXEON_SIMD
++CFLAGS_LOCAL = -w -flto -O3 -Wno-implicit-function-declaration -Wno-implicit-int
++LDFLAGS_LOCAL = -flto -fuse-ld=lld
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = -O3
++FCREDUCEDOPT = $(FCOPTIM)
++FCNOOPT = -O3
++FCDEBUG = # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
++FORMAT_FIXED = -FI
++FORMAT_FREE = -FR
++FCSUFFIX =
++BYTESWAPIO = -convert big_endian
++RECORDLENGTH = -assume byterecl
++FCBASEOPTS_NO_G = -O3 -flto -w -ftz -align array64byte -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) -fp-model fast=2 -fimf-use-svml=true -vec-threshold0 -xCORE-AVX512
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
++MODULE_SRCH_FLAG =
++TRADFLAG = -traditional-cpp
++CPP = /lib/cpp -P -nostdinc
++AR = ar
++ARFLAGS = ru
++M4 = m4
++RANLIB = ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC) -Wno-implicit-function-declaration -Wno-implicit-int
++NETCDFPAR_BUILD = echo SKIPPING
++
+ ###########################################################
+ #ARCH CYGWIN_NT i686 x86_64 Cygwin, gfortran compiler with gcc #serial smpar dmpar dm+sm
+ #
+