WSL2 の Ubuntu 24.04 で NetCDF-Fortran を Intel oneAPI でビルド

Table of Contents

2025年5月20日:元の記事はWindows 10 の WSLのUbuntu 18.04 の環境でしたが,アップデートしました.

環境の準備

Windows 11 Home の WSL2 に Ubuntu 24.04 をインストールし,Intel oneAPI をインストールした状態を想定します.ただし,oneAPIのアップデートに伴い,oneAPI-2025.1 がインストールされた状態で検証しています.oneAPI-2025.1ではifortとiccは削除され,ifxとifcを使います.
FVCOM等のFortran系モデルでしばしば必要となる,NetCDF-Fortran をビルドします.こちらの記事を参考にさせて頂き,NetCDF-Fortran 以外は apt でお手軽にインストールします(多分,Intel版は存在せず,GNU版です).多分このお手軽インストールで十分です.NetCDF-CもIntel oneAPIでコンパイルする方法は こちら にまとめましたが,大変ですので,私はやめました.

aptでライブラリをインストール

以下の手順で HDF5 (こちらを参考にしました)と GNU版の NetCDF-4 (以下のlibnetcdf-dev) をインストールします.libnetcdff-dev をインストールすると,Intel版のビルドに失敗しました.

$ sudo apt update
$ sudo apt install hdf5-tools hdf5-helpers libhdf5-dev libhdf5-doc libhdf5-serial-dev
$ sudo apt install libnetcdf-dev

正常にインストールできたか確認します.

$ nc-config --all

This netCDF 4.9.2 has been built with the following features:
...

バージョンは2025年5月20日時点のものですが,このような感じになれば成功です.

NetCDF-Fortran を Intel oneAPI でビルド

NetCDF-Fortranのソースコードをこちら で確認し,最新版netcdf-fortran-4.6.1を入手します.最新版は4.6.2ですが,make checkでエラーが発生しました(2025-05-20確認).以下ではwgetで入手しました.バージョンは適宜読み替えます.

mkdir ~/Downloads
cd ~/Downloads
wget https://downloads.unidata.ucar.edu/netcdf-fortran/4.6.1/netcdf-fortran-4.6.1.tar.gz
tar xf netcdf-fortran-4.6.1.tar.gz
cd netcdf-fortran-4.6.1/

エディタで以下の内容のテキストファイル config-intel.sh を同じディレクトリに作成します.最下行のバージョンはダウンロードしたソースコードに合わせます.

#!/bin/bash
# Building netcdf-fortran using oneAPI ifx
export CDFROOT="/usr"
export LD_LIBRARY_PATH="${CDFROOT}/lib:${LD_LIBRARY_PATH}"
export LDFLAGS="-L${CDFROOT}/lib -I${CDFROOT}/include"
#export OPTIM="-O2 -xHost -mcmodel=large -fPIC ${LDFLAGS}"
export OPTIM="-O2 -xHost -mcmodel=large -fPIC"
#
export CC=icx
export CXX=icpx
export FC=ifx
export F77=ifx
export F90=ifx
export CPP="icx -E -mcmodel=large"
export CXXCPP="icpx -E -mcmodel=large"
#export CPPFLAGS="-DNDEBUG -DpgiFortran ${LDFLAGS}"
export CPPFLAGS="-DNDEBUG"
#
export CFLAGS="${OPTIM}"
export CXXFLAGS="${OPTIM}"
export FCFLAGS="${OPTIM}"
export F77FLAGS="${OPTIM}"
export F90FLAGS="${OPTIM}"
#
./configure --prefix=/usr/local/netcdf-ifx/4.6.1 --enable-large-file-tests --with-pic

config-intel.sh に実行権限を付与し,実行します.make check はテスト実行で,見にくいですが,緑で PASS: 2,赤で ERROR: 0 のようになっていれば成功です.

chmod a+x config-intel.sh
./config-intel.sh
make
make check
sudo make install

~/.bashrcPATHLD_LIBRARY_PATH を追記します.

# NetCDF-Fortran using Intel oneAPI
export PATH="/usr/local/netcdf-ifx/4.6.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/netcdf-ifx/4.6.1/lib:$LD_LIBRARY_PATH"

再ログインした後,nf-config --all を実行します.以下のようになれば成功です.

$ nf-config --all

This netCDF-Fortran 4.6.1 has been built with the following features:

  --cc        -> icx
  --cflags    -> -I/usr/local/netcdf-ifx/4.6.1/include -DNDEBUG

  --fc        -> ifx
  --fflags    -> -I/usr/local/netcdf-ifx/4.6.1/include -I/usr/local/netcdf-ifx/4.6.1/include
  --flibs     -> -L/usr/local/netcdf-ifx/4.6.1/lib -lnetcdff -L/usr/lib -I/usr/include -lnetcdf -lnetcdf -lm
  --has-f90   ->
  --has-f03   -> yes

  --has-nc2   -> yes
  --has-nc4   -> yes

  --prefix    -> /usr/local/netcdf-ifx/4.6.1
  --includedir-> /usr/local/netcdf-ifx/4.6.1/include
  --version   -> netCDF-Fortran 4.6.1

WSL2 の Ubuntu 24.04 で NetCDF-Fortran を Intel oneAPI でビルド” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.