diff --git a/cime_config/machines/cmake_macros/aurora_oneapi-ifx.cmake b/cime_config/machines/cmake_macros/aurora_intel.cmake
similarity index 100%
rename from cime_config/machines/cmake_macros/aurora_oneapi-ifx.cmake
rename to cime_config/machines/cmake_macros/aurora_intel.cmake
diff --git a/cime_config/machines/cmake_macros/aurora_oneapi-ifxgpu.cmake b/cime_config/machines/cmake_macros/aurora_intelgpu.cmake
similarity index 87%
rename from cime_config/machines/cmake_macros/aurora_oneapi-ifxgpu.cmake
rename to cime_config/machines/cmake_macros/aurora_intelgpu.cmake
index 5c3bdc42bdf1..24b8fd8e0605 100644
--- a/cime_config/machines/cmake_macros/aurora_oneapi-ifxgpu.cmake
+++ b/cime_config/machines/cmake_macros/aurora_intelgpu.cmake
@@ -12,3 +12,8 @@ string(APPEND OMEGA_SYCL_EXE_LINKER_FLAGS " -Xsycl-target-backend \"-device pvc\
# This is paired with MPIR_CVAR_ENABLE_GPU=1 in config_machines.xml. If this
# ends up causing instability, we can switch to OFF.
set(SCREAM_MPI_ON_DEVICE ON CACHE STRING "")
+
+set(USE_SYCL "TRUE")
+
+# Override the value TRUE set by intelgpu.cmake (via intel.cmake)
+set(E3SM_LINK_WITH_FORTRAN "FALSE")
diff --git a/cime_config/machines/cmake_macros/dane_oneapi-ifx.cmake b/cime_config/machines/cmake_macros/dane_intel.cmake
similarity index 100%
rename from cime_config/machines/cmake_macros/dane_oneapi-ifx.cmake
rename to cime_config/machines/cmake_macros/dane_intel.cmake
diff --git a/cime_config/machines/cmake_macros/gnu.cmake b/cime_config/machines/cmake_macros/gnu.cmake
index 6bac45aa2478..1f4a3566beb6 100644
--- a/cime_config/machines/cmake_macros/gnu.cmake
+++ b/cime_config/machines/cmake_macros/gnu.cmake
@@ -1,12 +1,12 @@
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
- string(APPEND CMAKE_C_FLAGS "-mcmodel=small")
- string(APPEND CMAKE_Fortran_FLAGS "-mcmodel=small")
+ string(APPEND CMAKE_C_FLAGS " -mcmodel=small")
+ string(APPEND CMAKE_Fortran_FLAGS " -mcmodel=small")
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
string(APPEND CMAKE_C_FLAGS " -mcmodel=large")
string(APPEND CMAKE_Fortran_FLAGS " -mcmodel=large")
else()
- string(APPEND CMAKE_C_FLAGS "-mcmodel=medium")
- string(APPEND CMAKE_Fortran_FLAGS "-mcmodel=medium")
+ string(APPEND CMAKE_C_FLAGS " -mcmodel=medium")
+ string(APPEND CMAKE_Fortran_FLAGS " -mcmodel=medium")
endif()
string(APPEND CMAKE_Fortran_FLAGS " -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none")
if (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
@@ -31,6 +31,8 @@ if (COMP_NAME STREQUAL csm_share)
endif()
string(APPEND CMAKE_Fortran_FORMAT_FIXED_FLAG " -ffixed-form")
string(APPEND CMAKE_Fortran_FORMAT_FREE_FLAG " -ffree-form")
+
+# Compilers names
set(MPICC "mpicc")
set(MPICXX "mpicxx")
set(MPIFC "mpif90")
diff --git a/cime_config/machines/cmake_macros/gnugpu.cmake b/cime_config/machines/cmake_macros/gnugpu.cmake
index d0a6c2d07659..d390cd8cee69 100644
--- a/cime_config/machines/cmake_macros/gnugpu.cmake
+++ b/cime_config/machines/cmake_macros/gnugpu.cmake
@@ -1,39 +1,3 @@
-if (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
- string(APPEND CMAKE_C_FLAGS " -mcmodel=small")
- string(APPEND CMAKE_Fortran_FLAGS " -mcmodel=small")
-elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
- string(APPEND CMAKE_C_FLAGS " -mcmodel=large")
- string(APPEND CMAKE_Fortran_FLAGS " -mcmodel=large")
-else()
- string(APPEND CMAKE_C_FLAGS " -mcmodel=medium")
- string(APPEND CMAKE_Fortran_FLAGS " -mcmodel=medium")
-endif()
-string(APPEND CMAKE_Fortran_FLAGS " -fconvert=big-endian -ffree-line-length-none -ffixed-line-length-none")
-if (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
- string(APPEND CMAKE_Fortran_FLAGS " -fallow-argument-mismatch")
-endif()
-string(APPEND CPPDEFS " -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU")
-if (compile_threaded)
- string(APPEND CMAKE_C_FLAGS " -fopenmp")
- string(APPEND CMAKE_CXX_FLAGS " -fopenmp")
- string(APPEND CMAKE_Fortran_FLAGS " -fopenmp")
- string(APPEND CMAKE_EXE_LINKER_FLAGS " -fopenmp")
-endif()
-string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g -Wall -fcheck=bounds -ffpe-trap=invalid,zero,overflow")
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -O0 -g -Wall -fbacktrace -fcheck=bounds -ffpe-trap=zero,overflow")
-string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g -Wall")
-string(APPEND CPPDEFS_DEBUG " -DYAKL_DEBUG")
-string(APPEND CMAKE_C_FLAGS_RELEASE " -O")
-string(APPEND CMAKE_CXX_FLAGS_RELEASE " -O")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE " -O")
-if (COMP_NAME STREQUAL csm_share)
- string(APPEND CMAKE_C_FLAGS " -std=c99")
-endif()
-string(APPEND CMAKE_Fortran_FORMAT_FIXED_FLAG " -ffixed-form")
-string(APPEND CMAKE_Fortran_FORMAT_FREE_FLAG " -ffree-form")
-set(MPICC "mpicc")
-set(MPICXX "mpicxx")
-set(MPIFC "mpif90")
-set(SCC "gcc")
-set(SCXX "g++")
-set(SFC "gfortran")
+include (${CMAKE_CURRENT_LIST_DIR}/gnu.cmake)
+
+string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -fcheck=bounds")
diff --git a/cime_config/machines/cmake_macros/intel-classic.cmake b/cime_config/machines/cmake_macros/intel-classic.cmake
new file mode 100644
index 000000000000..a5cf3fea905c
--- /dev/null
+++ b/cime_config/machines/cmake_macros/intel-classic.cmake
@@ -0,0 +1,31 @@
+string(APPEND CMAKE_C_FLAGS " -fp-model precise -std=gnu99")
+if (compile_threaded)
+ string(APPEND CMAKE_C_FLAGS " -qopenmp")
+ string(APPEND CMAKE_CXX_FLAGS " -qopenmp")
+ string(APPEND CMAKE_Fortran_FLAGS " -qopenmp")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS " -qopenmp")
+endif()
+string(APPEND CMAKE_C_FLAGS_RELEASE " -O2 -debug minimal")
+string(APPEND CMAKE_CXX_FLAGS_RELEASE " -O2")
+string(APPEND CMAKE_Fortran_FLAGS_RELEASE " -O2 -debug minimal")
+string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g")
+string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g")
+string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created -init=snan,arrays")
+string(APPEND CMAKE_CXX_FLAGS " -fp-model source")
+if (COMP_NAME STREQUAL cice)
+ string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -init=nosnan,arrays")
+endif()
+string(APPEND CPPDEFS " -DFORTRANUNDERSCORE -DNO_R16 -DCPRINTEL")
+string(APPEND CMAKE_Fortran_FLAGS " -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source")
+string(APPEND CMAKE_Fortran_FORMAT_FIXED_FLAG " -fixed -132")
+string(APPEND CMAKE_Fortran_FORMAT_FREE_FLAG " -free")
+set(HAS_F2008_CONTIGUOUS "TRUE")
+set(MPICC "mpicc")
+set(MPICXX "mpicxx")
+set(MPIFC "mpif90")
+set(SCC "icc")
+set(SCXX "icpc")
+set(SFC "ifort")
+
+# Intel has to link fortran mains with fortran
+set(E3SM_LINK_WITH_FORTRAN "TRUE")
diff --git a/cime_config/machines/cmake_macros/intel.cmake b/cime_config/machines/cmake_macros/intel.cmake
index a5cf3fea905c..3e66acb58671 100644
--- a/cime_config/machines/cmake_macros/intel.cmake
+++ b/cime_config/machines/cmake_macros/intel.cmake
@@ -23,9 +23,9 @@ set(HAS_F2008_CONTIGUOUS "TRUE")
set(MPICC "mpicc")
set(MPICXX "mpicxx")
set(MPIFC "mpif90")
-set(SCC "icc")
-set(SCXX "icpc")
-set(SFC "ifort")
+set(SCC "icx")
+set(SCXX "icpx")
+set(SFC "ifx")
# Intel has to link fortran mains with fortran
set(E3SM_LINK_WITH_FORTRAN "TRUE")
diff --git a/cime_config/machines/cmake_macros/intelgpu.cmake b/cime_config/machines/cmake_macros/intelgpu.cmake
index 2b4ab4e80a53..ce320c011056 100644
--- a/cime_config/machines/cmake_macros/intelgpu.cmake
+++ b/cime_config/machines/cmake_macros/intelgpu.cmake
@@ -1,32 +1,6 @@
+# Get common intel flags
+include (${CMAKE_CURRENT_SOURCE_DIR}/intel.cmake)
+
string(APPEND CMAKE_EXE_LINKER_FLAGS " -lmkl_intel_lp64 -lmkl_sequential -lmkl_core")
-string(APPEND CMAKE_C_FLAGS " -fp-model precise -std=gnu99")
-if (compile_threaded)
- string(APPEND CMAKE_C_FLAGS " -qopenmp")
- string(APPEND CMAKE_CXX_FLAGS " -qopenmp")
- string(APPEND CMAKE_Fortran_FLAGS " -qopenmp")
- string(APPEND CMAKE_EXE_LINKER_FLAGS " -qopenmp")
-endif()
-string(APPEND CMAKE_C_FLAGS_RELEASE " -O2 -debug minimal")
-string(APPEND CMAKE_CXX_FLAGS_RELEASE " -O2")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE " -O2 -debug minimal")
-string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g")
-string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g")
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created -init=snan,arrays")
-string(APPEND CMAKE_CXX_FLAGS " -fp-model source")
-if (COMP_NAME STREQUAL cice)
- string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -init=nosnan,arrays")
-endif()
-string(APPEND CPPDEFS " -DFORTRANUNDERSCORE -DNO_R16 -DCPRINTEL")
-string(APPEND CMAKE_Fortran_FLAGS " -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source")
-string(APPEND CMAKE_Fortran_FORMAT_FIXED_FLAG " -fixed -132")
-string(APPEND CMAKE_Fortran_FORMAT_FREE_FLAG " -free")
-set(HAS_F2008_CONTIGUOUS "TRUE")
-set(MPICC "mpicc")
-set(MPICXX "mpicxx")
-set(MPIFC "mpif90")
-set(SCC "icc")
-set(SCXX "icpc")
-set(SFC "ifort")
-# Intel has to link fortran mains with fortran
-set(E3SM_LINK_WITH_FORTRAN "TRUE")
+string(APPEND CMAKE_CXX_FLAGS_RELEASE " --offload-compress")
diff --git a/cime_config/machines/cmake_macros/oneapi-ifx.cmake b/cime_config/machines/cmake_macros/oneapi-ifx.cmake
deleted file mode 100644
index cb426296bf9d..000000000000
--- a/cime_config/machines/cmake_macros/oneapi-ifx.cmake
+++ /dev/null
@@ -1,29 +0,0 @@
-if (compile_threaded)
- string(APPEND CMAKE_C_FLAGS " -qopenmp")
- string(APPEND CMAKE_Fortran_FLAGS " -qopenmp")
- string(APPEND CMAKE_CXX_FLAGS " -qopenmp")
- string(APPEND CMAKE_EXE_LINKER_FLAGS " -qopenmp")
-endif()
-string(APPEND CMAKE_C_FLAGS " -fp-model precise")
-string(APPEND CMAKE_C_FLAGS_RELEASE " -O2")
-string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g")
-
-string(APPEND CMAKE_CXX_FLAGS " -fp-model precise")
-string(APPEND CMAKE_CXX_FLAGS_RELEASE " -O2")
-string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g")
-
-string(APPEND CMAKE_Fortran_FLAGS " -fpscomp logicals -traceback -convert big_endian -assume byterecl -assume realloc_lhs -fp-model precise")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE " -O2")
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -O0 -g")
-
-string(APPEND CPPDEFS " -DFORTRANUNDERSCORE -DNO_R16 -DCPRINTEL -DHAVE_SLASHPROC -DHIDE_MPI")
-string(APPEND CMAKE_Fortran_FORMAT_FIXED_FLAG " -fixed -132")
-string(APPEND CMAKE_Fortran_FORMAT_FREE_FLAG " -free")
-set(HAS_F2008_CONTIGUOUS "TRUE")
-set(MPIFC "mpifort")
-set(MPICC "mpicc")
-set(MPICXX "mpicxx")
-set(SCC "icx")
-set(SCXX "icpx")
-set(SFC "ifx")
-set(E3SM_LINK_WITH_FORTRAN "TRUE")
diff --git a/cime_config/machines/cmake_macros/oneapi-ifxgpu.cmake b/cime_config/machines/cmake_macros/oneapi-ifxgpu.cmake
deleted file mode 100644
index 07c120cacbd6..000000000000
--- a/cime_config/machines/cmake_macros/oneapi-ifxgpu.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
-if (compile_threaded)
- string(APPEND CMAKE_C_FLAGS " -qopenmp")
- string(APPEND CMAKE_Fortran_FLAGS " -qopenmp")
- string(APPEND CMAKE_CXX_FLAGS " -qopenmp")
- string(APPEND CMAKE_EXE_LINKER_FLAGS " -qopenmp")
-endif()
-
-# 'just' -g may lead to linker internal errors and/or huge builds out of quotas
-string(APPEND CMAKE_C_FLAGS " -fp-model precise")
-string(APPEND CMAKE_C_FLAGS_RELEASE " -O2")
-string(APPEND CMAKE_C_FLAGS_DEBUG " -O0 -g -fno-system-debug")
-
-# EAMxx ignores generic CMAKE_CXX_FLAGS, includes CMAKE_CXX_FLAGS_[RELEASE,DEBUG]
-string(APPEND CMAKE_CXX_FLAGS " -fp-model precise")
-string(APPEND CMAKE_CXX_FLAGS_RELEASE " -fp-model precise -O2 --offload-compress")
-string(APPEND CMAKE_CXX_FLAGS_DEBUG " -O0 -g -fno-system-debug")
-
-string(APPEND CMAKE_Fortran_FLAGS " -fpscomp logicals -traceback -convert big_endian -assume byterecl -assume realloc_lhs -fp-model precise")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE " -O2")
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -O0 -g")
-
-string(APPEND CPPDEFS " -DFORTRANUNDERSCORE -DNO_R16 -DCPRINTEL -DHAVE_SLASHPROC -DHIDE_MPI")
-string(APPEND CMAKE_Fortran_FORMAT_FIXED_FLAG " -fixed -132")
-string(APPEND CMAKE_Fortran_FORMAT_FREE_FLAG " -free")
-set(HAS_F2008_CONTIGUOUS "TRUE")
-set(MPIFC "mpifort")
-set(MPICC "mpicc")
-set(MPICXX "mpicxx")
-set(SCC "icx")
-set(SCXX "icpx")
-set(SFC "ifx")
-set(USE_SYCL "TRUE")
diff --git a/cime_config/machines/cmake_macros/sunspot_oneapi-ifxgpu.cmake b/cime_config/machines/cmake_macros/sunspot_intelgpu.cmake
similarity index 77%
rename from cime_config/machines/cmake_macros/sunspot_oneapi-ifxgpu.cmake
rename to cime_config/machines/cmake_macros/sunspot_intelgpu.cmake
index ec51d1199d9f..366b9e0b9856 100644
--- a/cime_config/machines/cmake_macros/sunspot_oneapi-ifxgpu.cmake
+++ b/cime_config/machines/cmake_macros/sunspot_intelgpu.cmake
@@ -6,3 +6,8 @@ endif()
string(APPEND SYCL_FLAGS " -fsycl -fsycl-targets=spir64_gen -mlong-double-64 ")
string(APPEND OMEGA_SYCL_EXE_LINKER_FLAGS " -Xsycl-target-backend \"-device pvc\" ")
string(APPEND CMAKE_CXX_FLAGS " -Xclang -fsycl-allow-virtual-functions")
+
+set(USE_SYCL "TRUE")
+
+# Override the value TRUE set by intelgpu.cmake (via intel.cmake)
+set(E3SM_LINK_WITH_FORTRAN "FALSE")
diff --git a/cime_config/machines/config_machines.xml b/cime_config/machines/config_machines.xml
index 6713fd5cd454..405267159a12 100644
--- a/cime_config/machines/config_machines.xml
+++ b/cime_config/machines/config_machines.xml
@@ -2869,7 +2869,7 @@
$SHELL{if [ -z "$SZ_ROOT" ]; then echo /lcrc/soft/climate/sz/2.1.12.5/gcc-11.2.0; else echo "$SZ_ROOT"; fi}
$SHELL{if [ -z "$ZFP_ROOT" ]; then echo /lcrc/soft/climate/zfp/1.0.1/gcc-11.2.0; else echo "$ZFP_ROOT"; fi}
-
+
$SHELL{if [ -z "$MOAB_ROOT" ]; then echo /lcrc/soft/climate/moab/chrysalis/intel-oneapi-compilers-2025.2.0; else echo "$MOAB_ROOT"; fi}
@@ -3150,7 +3150,7 @@
LLNL Linux Cluster, 112 pes/node, batch system is Slurm
LINUX
- oneapi-ifx
+ intel
mpich
e3smtest
/p/lustre2/$USER/e3sm_scratch/dane
@@ -3192,7 +3192,7 @@
cmake/3.26.3
mkl/2022.1.0
-
+
intel/2023.2.1-magic
/usr/workspace/e3sm/spack/dane/intel/modules/Core
intel-oneapi-runtime/2023.2.0
@@ -3210,7 +3210,7 @@
128M
-
+
$ENV{HDF5_ROOT}
$ENV{NETCDF_C_PATH}
$ENV{NETCDF_FORTRAN_PATH}
@@ -3317,7 +3317,7 @@
ANL experimental/evaluation cluster, batch system is cobalt
jlse.*
LINUX
- oneapi-ifx,oneapi-ifxgpu,gnu
+ intel,intelgpu,gnu
mpich,impi,openmpi
/gpfs/jlse-fs0/projects/climate/$USER/scratch
/gpfs/jlse-fs0/projects/climate/inputdata
@@ -3331,11 +3331,11 @@
cobalt_theta
e3sm
112
- 96
- 96
+ 96
+ 96
112
- 48
- 48
+ 48
+ 48
FALSE
mpirun
@@ -3409,14 +3409,14 @@
/home/azamat/soft/netcdf/4.4.1c-4.2cxx-4.4.4f/gcc8.2.0-openmpi2.1.6
/home/azamat/soft/pnetcdf/1.12.1/gcc8.2.0-openmpi2.1.6
-
+
opencl
NO_GPU
0
4000MB
0
-
+
0
DISABLED
@@ -3532,7 +3532,7 @@
ANL Sunspot Test and Development System (TDS), batch system is pbspro
uan-.*
LINUX
- oneapi-ifx,oneapi-ifxgpu,gnu
+ intel,intelgpu,gnu
mpich
CSC249ADSE15_CNDA
/gila/CSC249ADSE15_CNDA/performance_archive
@@ -3549,9 +3549,9 @@
pbspro
e3sm
208
- 96
+ 96
104
- 48
+ 48
FALSE
mpiexec
@@ -3577,7 +3577,7 @@
oneapi/eng-compiler/2024.07.30.002
-
+
kokkos/4.4.01-omp-sycl
@@ -3597,7 +3597,7 @@
1
-
+
NO_GPU
0
disable
@@ -3610,7 +3610,7 @@
1
0:4,1:4,2:4,3:4:4:4,5:4,6:4,7:4,8:4,9:4,10:4,11:4
-
+
0
DISABLED
0
@@ -3633,7 +3633,7 @@
ALCF Aurora, 10624 nodes, 2x52c SPR, 6x2s PVC, 2x512GB DDR5, 2x64GB CPU-HBM, 6x128GB GPU-HBM, Slingshot 11, PBSPro
aurora-uan-.*
LINUX
- oneapi-ifxgpu,oneapi-ifx
+ intel,intelgpu
mpich
E3SM_Dec
/lus/flare/projects/E3SMinput/baselines
@@ -3650,9 +3650,9 @@
pbspro
e3sm
102
- 96
+ 96
102
- 12
+ 12
TRUE
mpiexec
@@ -3699,7 +3699,7 @@
240
-
+
1
disable
disable
@@ -3714,7 +3714,7 @@
-
+
0
DISABLED
0
diff --git a/components/eamxx/scripts/machines_specs.py b/components/eamxx/scripts/machines_specs.py
index dd3f02083d0d..751dc0287b21 100644
--- a/components/eamxx/scripts/machines_specs.py
+++ b/components/eamxx/scripts/machines_specs.py
@@ -130,7 +130,7 @@ def setup(cls):
cls.c_compiler = "mpicc"
cls.ftn_compiler = "mpifort"
- compiler = "oneapi-ifxgpu"
+ compiler = "intelgpu"
cls.env_setup = [f"eval $({CIMEROOT}/CIME/Tools/get_case_env -c SMS.ne4pg2_ne4pg2.F2010-SCREAMv1.{cls.name}_{compiler})"]