Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28954 Discussions

Compiler flags suddenly "unsupported" in ifx (Intel 2024)

JoakimKjellsson
Beginner
1,071 Views

Good morning

I'm trying to compile the NEMO ocean model v3.6 (https://www.nemo-ocean.eu/) on an HPC where only Intel compilers 2024 are available (ifx, not ifort). Unfortunately, it refuses to compile. Here's part of the error:

icx: command line warning #10430: Unsupported command line options encountered
These options as listed are not supported.
For more information, use '-qnextgen-diag'.
option list:
-traditional
icx: warning: argument unused during compilation: '-I /scratch-emmy/usr/shkjocke/models_intel_ompi/focioifs-3.0/nemo-ORCA05_LIM2_KCM_AOW_FS_OASISMCT4_SMAG/CONFIG/ORCA05_LIM2_KCM_AOW_FS_OASISMCT4_SMAG/BLD/inc' [-Wunused-command-line-argument]
icx: warning: argument unused during compilation: '-I /sw/rev/24.05/cascadelake_opa_rocky8/linux-rocky8-cascadelake/oneapi-2023.2.1/openmpi-4.1.6-irsryldhcvwftlykolfftsvm3bgoc4ap/include' [-Wunused-command-line-argument]
icx: warning: argument unused during compilation: '-P' [-Wunused-command-line-argument]
icx: warning: argument unused during compilation: '-C' [-Wunused-command-line-argument]
icx: warning: argument unused during compilation: '-D key_diaeiv' [-Wunused-command-line-argument]
icx: warning: argument unused during compilation: '-D key_dynldf_c3d' [-Wunused-command-line-argument]

The code is mainly Fortran, but I think this error pops up during the preprocessing stage.

If I take exactly the same code and compile with Intel 2023 using ifort then it works. If I use Intel 2023 with ifx, then the same error comes up. So I can pin down the problem to the use of "ifx" over "ifort".

In this case, "icx" seems to refuse the "-I" flags for includes and also the "-D" flag. I can't find any mention anywhere that these flags have changed in "icx" and "ifx".

Does anyone have some idea what the problem could be?

Is there any big change in how I should compile and/or preprocess code with icc/ifort compared to  icx/ifx?

Many thanks
Joakim

PS. The attached "bld" file shows some of variables sent to the "fcm" compiler program I use. The C compiler is mpicc (OpenMPI linking to icx) and Fortran compiler is mpifort (OpenMPI linking to ifx).

Labels (1)
0 Kudos
1 Solution
TobiasK
Moderator
1,039 Views

@JoakimKjellsson 
Please use the standard C preprocessor cpp for preprocessing, not mpicc. -E and -traditional are options for cpp not icx.

View solution in original post

2 Replies
TobiasK
Moderator
1,040 Views

@JoakimKjellsson 
Please use the standard C preprocessor cpp for preprocessing, not mpicc. -E and -traditional are options for cpp not icx.

JoakimKjellsson
Beginner
896 Views

Hi Tobias

 

Many thanks for the advice. That seems to have solved the problem. The code compiles now!

 

/Joakim

0 Kudos
Reply