Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Compiling WRF using icx instead of icc (Intel compilers)

JeremyB

Member
Hello,

Does anyone have any luck installing WRF with the "new" intel compilers. More specifically, ever since they got rid of icc for the c compiler, I've been running into some errors when configuring and compiling. I'm trying to re-install the modules with the new compiler (icx) but have been running into some issues. Also, does anyone know what will happen with ifort switches to ifx? I'm aware there are instructions on this site for installing WRF (in the FAQ) with intel compilers with icc but not with icx.

Thanks,
JeremyB
 
Update: Issue was resolved with a simple git pull. If you're also running into this issue, you may be running an older version of WRF. In my case I'm using serial, so it was option 76 (INTEL ifort/icx).
 
Update: Issue was resolved with a simple git pull. If you're also running into this issue, you may be running an older version of WRF. In my case I'm using serial, so it was option 76 (INTEL ifort/icx).

Bash:
export METPLUS_Version=5.1.0
export MET_Version=11.1.0
export MET_VERSION=11.1
export METPLUS_DATA=5.1

export HDF5_Version=1_14_3
export Zlib_Version=1.2.13
export Netcdf_C_Version=4.9.0
export Netcdf_Fortran_Version=4.6.1
export Mpich_Version=4.1.2
export Libpng_Version=1.6.39
export Jasper_Version=1.900.1
export Pnetcdf_Version=1.12.3

export WRF_VERSION=4.5.2
export WPS_VERSION=4.5


  export CC=icx
  export CXX=icpx
  export FC=ifx
  export F77=ifx
  export F90=ifx
  export MPIFC='mpiifx'
  export MPIF77='mpiifx'
  export MPIF90='mpiifx'
  export MPICC='mpiicx'
  export MPICXX='mpiicpx'
  export CFLAGS="-fPIC -fPIE -O3 -Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" #-Wno-absolute-value -Wno-unknown-warning-option -Wno-unused-command-line-argument "
  export FFLAGS="-m64"
  export FCFLAGS="-m64"

These are some of the exports I use for my icx build in dmpar. Hope it helps
 
Hello,
I faced with the same problem. The older version of WRF can not be compiled with the latest Intel compiler version.
Error in c code, mainly in RSL_LITE. Meanwhile the latest version of WRF-Chem 4.5.2 can be compiled with the newest intel compiler(2023.1.0).
My question can I replace RSL_LITE in my version of WRF(3.7.1) with the one from version WRF4.5.2 without any extra modification in other modules?
 
Hello,
I faced with the same problem. The older version of WRF can not be compiled with the latest Intel compiler version.
Error in c code, mainly in RSL_LITE. Meanwhile the latest version of WRF-Chem 4.5.2 can be compiled with the newest intel compiler(2023.1.0).
My question can I replace RSL_LITE in my version of WRF(3.7.1) with the one from version WRF4.5.2 without any extra modification in other modules?
By the way, I slightly modified the RSL_LITE/*.c code and added these two keys to CFLAGS -Wno-implicit-function-declaration -Wno-implicit-int. After that, the errors were gone.
 
Bash:
export METPLUS_Version=5.1.0
export MET_Version=11.1.0
export MET_VERSION=11.1
export METPLUS_DATA=5.1

export HDF5_Version=1_14_3
export Zlib_Version=1.2.13
export Netcdf_C_Version=4.9.0
export Netcdf_Fortran_Version=4.6.1
export Mpich_Version=4.1.2
export Libpng_Version=1.6.39
export Jasper_Version=1.900.1
export Pnetcdf_Version=1.12.3

export WRF_VERSION=4.5.2
export WPS_VERSION=4.5


  export CC=icx
  export CXX=icpx
  export FC=ifx
  export F77=ifx
  export F90=ifx
  export MPIFC='mpiifx'
  export MPIF77='mpiifx'
  export MPIF90='mpiifx'
  export MPICC='mpiicx'
  export MPICXX='mpiicpx'
  export CFLAGS="-fPIC -fPIE -O3 -Wno-implicit-function-declaration -Wno-incompatible-function-pointer-types" #-Wno-absolute-value -Wno-unknown-warning-option -Wno-unused-command-line-argument "
  export FFLAGS="-m64"
  export FCFLAGS="-m64"

These are some of the exports I use for my icx build in dmpar. Hope it helps
Hello,

Thank you for the reply. I've got a quick question, when configuring any of the libraries, did you change anything? Or did all those libraries work natively with the intel compilers?

Thanks,
JeremyB
 
Hello,

Thank you for the reply. I've got a quick question, when configuring any of the libraries, did you change anything? Or did all those libraries work natively with the intel compilers?

Thanks,
JeremyB


I believe that i didn't change anything. It's important to know that the warnings are suppressed and @islas is working on a fix to avoid having to use them. So the warning suppression is just a bandaid
 
I believe that i didn't change anything. It's important to know that the warnings are suppressed and @islas is working on a fix to avoid having to use them. So the warning suppression is just a bandaid
Thank you so much for the quick reply. I will give it a go. Thanks again. Assuming I get it working, I'll try to create a script for others to use since this may be an upcoming issue in the future.
 
Thank you so much for the quick reply. I will give it a go. Thanks again. Assuming I get it working, I'll try to create a script for others to use since this may be an upcoming issue in the future.
I have one as part of the WRF-MOSIT just waiting for the next WRF update to publish it.
As it stands now, wps doesn't have the new llvm but supposedly with new updates in a month or so it should.

Then my MOSIT script will include the classic and llvm compiler options
 
I have one as part of the WRF-MOSIT just waiting for the next WRF update to publish it.
As it stands now, wps doesn't have the new llvm but supposedly with new updates in a month or so it should.

Then my MOSIT script will include the classic and llvm compiler options
I have been able to compile WPS using the oneapi compilers, however I do have to modify the configure.defaults and some scan.F file, but after that it works.
 
Same.

But I like to keep my install scripts as automated as possible so that's why I'm waiting.

Also keeps the updating down since I do this by myself without any support
 
Same.

But I like to keep my install scripts as automated as possible so that's why I'm waiting.

Also keeps the updating down since I do this by myself without any support
Oh that makes sense. I'm kind of in a rush so I'm trying to get it done as soon as possible and I'll start updating my scripts later. Also thank you for all the help! By the way, have you noticed that compiling WRF using intel compilers uses a lot of RAM?
 
Oh that makes sense. I'm kind of in a rush so I'm trying to get it done as soon as possible and I'll start updating my scripts later. Also thank you for all the help! By the way, have you noticed that compiling WRF using intel compilers uses a lot of RAM?
Hard to say. I have 64gb of ram on my machine so it's never an issue.

But I would think if you have more than 16gb it should be fine
 
Hard to say. I have 64gb of ram on my machine so it's never an issue.

But I would think if you have more than 16gb it should be fine
Ok. I have 32gb and I run out consistently so I just ordered some more, hopefully that fixes it. When I get it (today), I'll see what I can do. It's mostly WRFPLUS that uses a lot of RAM.
 
Hello, I was able to compile WPS and WRF 4.6.0 using new Intel compilers. To ensure that everything is working properly, I attempted to run a real case that I had previously run with the gfortran compiled WRF model successfully. Geogrid.exe, ungrib.exe, metgrid.exe, and real.exe all worked successfully, and I was able to generate the wrfinput and wrfbdy files, which appear to be correct. However, when I attempted to run wrf.exe, I received the error message "forrtl: severe (174): SIGSEGV, segmentation fault occurred" after Timing for processing lateral boundary for domain 1. I have attached the namelist.input and rsl.error.0000 file for reference. Any help would be appreciated.
 

Attachments

  • rsl.error.0000
    5.2 KB · Views: 1
  • namelist.input
    3.7 KB · Views: 0
Hello, I was able to compile WPS and WRF 4.6.0 using new Intel compilers. To ensure that everything is working properly, I attempted to run a real case that I had previously run with the gfortran compiled WRF model successfully. Geogrid.exe, ungrib.exe, metgrid.exe, and real.exe all worked successfully, and I was able to generate the wrfinput and wrfbdy files, which appear to be correct. However, when I attempted to run wrf.exe, I received the error message "forrtl: severe (174): SIGSEGV, segmentation fault occurred" after Timing for processing lateral boundary for domain 1. I have attached the namelist.input and rsl.error.0000 file for reference. Any help would be appreciated.
@ArminH

Since this is a new issue can you please open a seperate ticket
 
Top