From 6d7244ff6538a1f8ca887d0df045c8455ab2adbd Mon Sep 17 00:00:00 2001 From: jirudaya Date: Thu, 22 Jan 2026 12:18:33 +0000 Subject: [PATCH 1/6] docs(icon aes build): move ARCHER build instruction to a separate directory Signed-off-by: jirudaya --- apps/ICON-AES/{ => ARCHER-GCC}/README.md | 0 apps/ICON-AES/{ => ARCHER-GCC}/compile.bash | 0 apps/ICON-AES/{ => ARCHER-GCC}/config/mh-linux | 0 apps/ICON-AES/{ => ARCHER-GCC}/modules.bash | 0 apps/ICON-AES/{ => ARCHER-GCC}/run.pbs | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename apps/ICON-AES/{ => ARCHER-GCC}/README.md (100%) rename apps/ICON-AES/{ => ARCHER-GCC}/compile.bash (100%) rename apps/ICON-AES/{ => ARCHER-GCC}/config/mh-linux (100%) rename apps/ICON-AES/{ => ARCHER-GCC}/modules.bash (100%) rename apps/ICON-AES/{ => ARCHER-GCC}/run.pbs (100%) diff --git a/apps/ICON-AES/README.md b/apps/ICON-AES/ARCHER-GCC/README.md similarity index 100% rename from apps/ICON-AES/README.md rename to apps/ICON-AES/ARCHER-GCC/README.md diff --git a/apps/ICON-AES/compile.bash b/apps/ICON-AES/ARCHER-GCC/compile.bash similarity index 100% rename from apps/ICON-AES/compile.bash rename to apps/ICON-AES/ARCHER-GCC/compile.bash diff --git a/apps/ICON-AES/config/mh-linux b/apps/ICON-AES/ARCHER-GCC/config/mh-linux similarity index 100% rename from apps/ICON-AES/config/mh-linux rename to apps/ICON-AES/ARCHER-GCC/config/mh-linux diff --git a/apps/ICON-AES/modules.bash b/apps/ICON-AES/ARCHER-GCC/modules.bash similarity index 100% rename from apps/ICON-AES/modules.bash rename to apps/ICON-AES/ARCHER-GCC/modules.bash diff --git a/apps/ICON-AES/run.pbs b/apps/ICON-AES/ARCHER-GCC/run.pbs similarity index 100% rename from apps/ICON-AES/run.pbs rename to apps/ICON-AES/ARCHER-GCC/run.pbs From d333e5413da24558f4805d9fa84322f2ec38300d Mon Sep 17 00:00:00 2001 From: jirudaya Date: Thu, 22 Jan 2026 12:19:31 +0000 Subject: [PATCH 2/6] docs(icon aes build): add build instructions for archer2 Signed-off-by: jirudaya --- apps/ICON-AES/ARCHER2_2025.10_cce15.md | 140 +++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 apps/ICON-AES/ARCHER2_2025.10_cce15.md diff --git a/apps/ICON-AES/ARCHER2_2025.10_cce15.md b/apps/ICON-AES/ARCHER2_2025.10_cce15.md new file mode 100644 index 00000000..05a533f5 --- /dev/null +++ b/apps/ICON-AES/ARCHER2_2025.10_cce15.md @@ -0,0 +1,140 @@ +# ICON Model Build Instructions on ARCHER2 + +These instructions describe how to build `libfyaml` and the `ICON model (release-2025.10-public)` on ARCHER2 using the Cray Programming Environment and +CCE 15.0.0. + +--- + +## 1. Environment + +These instructions assume a standard ARCHER2 environment. + +### 1.1 Modules + +```bash +module load PrgEnv-cray +module load cce/15.0.0 +module load cray-hdf5 cray-netcdf libxml2 +``` + +### 1.2 Working directory + +```bash +cd ${HOME/home/work} +``` + +All software will be built in this directory tree. + +--- + +## 2. Build libfyaml (v0.9.3) + +ICON requires `libfyaml`, which is not provided as a system module on ARCHER2. + +### 2.1 Download and unpack + +```bash +wget https://github.com/pantoniou/libfyaml/releases/download/v0.9.3/libfyaml-0.9.3.tar.gz +tar xzvf libfyaml-0.9.3.tar.gz +``` + +### 2.2 Configure and build + +```bash +cd ${HOME/home/work}/libfyaml-0.9.3 + +export LIBFYAML_ROOT=${HOME/home/work}/libfyaml-0.9.3 +mkdir ${LIBFYAML_ROOT}/build + +autoreconf -f -i + +${LIBFYAML_ROOT}/configure \ + cc=cc CC=cc FC=ftn \ + --prefix=${LIBFYAML_ROOT}/build + +make -j8 +make install +``` + +This installs libfyaml under: + +``` +${LIBFYAML_ROOT}/build +``` + +--- + +## 3. Build ICON Model (release-2025.10-public) + +### 3.1 Obtain source code + +```bash +cd ${HOME/home/work} + +git clone -b release-2025.10-public --recursive \ + https://gitlab.dkrz.de/icon/icon-model.git +``` + +### 3.2 Configure and build + +```bash +cd ${HOME/home/work}/icon-model + +export ICON_MODEL_ROOT=${HOME/home/work}/icon-model +mkdir ${ICON_MODEL_ROOT}/build + +autoreconf -f -i +``` + +The following include paths are required for HDF5, NetCDF, MPI, libxml2, and libfyaml: + +```bash +export ICON_INCLUDES="-I${HDF5_DIR}/include/ \ + -I${NETCDF_DIR}/include/ \ + -I${CRAY_MPICH_DIR}/include/ \ + -I${LIBXML2_DIR}/include/ \ + -I${LIBFYAML_ROOT}/build/include/" +``` + +Configure step + +```bash +${ICON_MODEL_ROOT}/configure \ + cc=cc CC=cc FC=ftn F77=ftn \ + LDFLAGS="-L${HDF5_DIR}/lib/ \ + -L${NETCDF_DIR}/lib/ \ + -L${CRAY_MPICH_DIR}/lib/ \ + -L${LIBXML2_DIR}/lib/ \ + -L${LIBFYAML_ROOT}/build/lib/ \ + -Wl,-rpath,${LIBFYAML_ROOT}/build/lib" \ + LIBS='-lnetcdff -lnetcdf -lhdf5 -lmpifort -lmpi -lxml2 -lfyaml' \ + FCFLAGS="${ICON_INCLUDES} -O2" \ + CFLAGS="${ICON_INCLUDES} -O2 -funroll-loops \ + -Df2cFortran -DHAVE_LIBNETCDF -DHAVE_NETCDF2 -DHAVE_NETCDF4" \ + CPPFLAGS="${ICON_INCLUDES}" \ + MPI_LAUNCH="srun" \ + MPIROOT="${CRAY_MPICH_DIR}" \ + --enable-openmp \ + --disable-mpi-checks \ + --prefix="${ICON_MODEL_ROOT}/build" +``` + +Build and install ICON + +```bash +make -j8 +make install +``` + +The ICON executables and supporting files will be installed under: + +``` +${ICON_MODEL_ROOT}/build +``` + +--- + +## 4. Notes + +- These instructions assume the Cray wrappers (`cc`, `ftn`) are used throughout. +- The build enables `OpenMP` support. From d53e68d0dfc257a3cc2e77644f5672cce931dbc7 Mon Sep 17 00:00:00 2001 From: jirudaya Date: Thu, 22 Jan 2026 17:02:45 +0000 Subject: [PATCH 3/6] docs(icon aes build): fix compiler wrapper definitions Signed-off-by: jirudaya --- apps/ICON-AES/ARCHER2_2025.10_cce15.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/ICON-AES/ARCHER2_2025.10_cce15.md b/apps/ICON-AES/ARCHER2_2025.10_cce15.md index 05a533f5..cdd0920b 100644 --- a/apps/ICON-AES/ARCHER2_2025.10_cce15.md +++ b/apps/ICON-AES/ARCHER2_2025.10_cce15.md @@ -49,7 +49,7 @@ mkdir ${LIBFYAML_ROOT}/build autoreconf -f -i ${LIBFYAML_ROOT}/configure \ - cc=cc CC=cc FC=ftn \ + CC=cc CXX=CC FC=ftn \ --prefix=${LIBFYAML_ROOT}/build make -j8 @@ -100,7 +100,7 @@ Configure step ```bash ${ICON_MODEL_ROOT}/configure \ - cc=cc CC=cc FC=ftn F77=ftn \ + CC=cc CXX=CC FC=ftn F77=ftn \ LDFLAGS="-L${HDF5_DIR}/lib/ \ -L${NETCDF_DIR}/lib/ \ -L${CRAY_MPICH_DIR}/lib/ \ From e02950ca74732e8315a7bee53cea44c76bce57cc Mon Sep 17 00:00:00 2001 From: jirudaya Date: Tue, 27 Jan 2026 10:53:04 +0000 Subject: [PATCH 4/6] doc(icon-model): add instruction to utilize bundled external packages Signed-off-by: jirudaya --- apps/ICON-AES/ARCHER2_2025.10_cce15.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/apps/ICON-AES/ARCHER2_2025.10_cce15.md b/apps/ICON-AES/ARCHER2_2025.10_cce15.md index cdd0920b..24eeb067 100644 --- a/apps/ICON-AES/ARCHER2_2025.10_cce15.md +++ b/apps/ICON-AES/ARCHER2_2025.10_cce15.md @@ -14,6 +14,7 @@ These instructions assume a standard ARCHER2 environment. ```bash module load PrgEnv-cray module load cce/15.0.0 +module load cray-python module load cray-hdf5 cray-netcdf libxml2 ``` @@ -25,6 +26,17 @@ cd ${HOME/home/work} All software will be built in this directory tree. +### 1.3 Python environment + +Creating a python virtual environment for bundled packages with ICON model to be +available during runtime. + +```bash +python -m venv --system-site-packages venv +source venv/bin/activate +pip install cython==3.2.4 +``` + --- ## 2. Build libfyaml (v0.9.3) @@ -114,6 +126,7 @@ ${ICON_MODEL_ROOT}/configure \ CPPFLAGS="${ICON_INCLUDES}" \ MPI_LAUNCH="srun" \ MPIROOT="${CRAY_MPICH_DIR}" \ + --enable-bundled-python \ --enable-openmp \ --disable-mpi-checks \ --prefix="${ICON_MODEL_ROOT}/build" From 63f80034b92cbadf822aabc245798fd8a4e93306 Mon Sep 17 00:00:00 2001 From: jirudaya Date: Wed, 4 Feb 2026 11:15:08 +0000 Subject: [PATCH 5/6] doc(icon-model): change the compiler to gnu - we get `invalid coordinate failed problem detected at src/parallel_infrastructure/mo_dist_array.f90:869` error with cray compilers Signed-off-by: jirudaya --- ...10_cce15.md => ARCHER2_2025.10_gcc11.2.md} | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) rename apps/ICON-AES/{ARCHER2_2025.10_cce15.md => ARCHER2_2025.10_gcc11.2.md} (82%) diff --git a/apps/ICON-AES/ARCHER2_2025.10_cce15.md b/apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md similarity index 82% rename from apps/ICON-AES/ARCHER2_2025.10_cce15.md rename to apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md index 24eeb067..7bf143df 100644 --- a/apps/ICON-AES/ARCHER2_2025.10_cce15.md +++ b/apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md @@ -1,7 +1,7 @@ # ICON Model Build Instructions on ARCHER2 -These instructions describe how to build `libfyaml` and the `ICON model (release-2025.10-public)` on ARCHER2 using the Cray Programming Environment and -CCE 15.0.0. +These instructions describe how to build `libfyaml` and the `ICON model (release-2025.10-public)` on ARCHER2 using the GNU Programming Environment and +GCC 11.2.0. --- @@ -12,8 +12,8 @@ These instructions assume a standard ARCHER2 environment. ### 1.1 Modules ```bash -module load PrgEnv-cray -module load cce/15.0.0 +module load PrgEnv-gnu +module load gcc/11.2.0 module load cray-python module load cray-hdf5 cray-netcdf libxml2 ``` @@ -34,7 +34,7 @@ available during runtime. ```bash python -m venv --system-site-packages venv source venv/bin/activate -pip install cython==3.2.4 +pip install cython==3.2.4 jinja2 ``` --- @@ -120,9 +120,9 @@ ${ICON_MODEL_ROOT}/configure \ -L${LIBFYAML_ROOT}/build/lib/ \ -Wl,-rpath,${LIBFYAML_ROOT}/build/lib" \ LIBS='-lnetcdff -lnetcdf -lhdf5 -lmpifort -lmpi -lxml2 -lfyaml' \ - FCFLAGS="${ICON_INCLUDES} -O2" \ - CFLAGS="${ICON_INCLUDES} -O2 -funroll-loops \ - -Df2cFortran -DHAVE_LIBNETCDF -DHAVE_NETCDF2 -DHAVE_NETCDF4" \ + FCFLAGS="${ICON_INCLUDES} -cpp -std=gnu -fmodule-private -fimplicit-none -fmax-identifier-length=63 \ + -ffree-line-length-132 -O3 -ffast-math -D__LOOP_EXCHANGE -fallow-argument-mismatch" \ + CFLAGS="${ICON_INCLUDES} -std=gnu99 -O2 -DHAVE_LIBNETCDF -DHAVE_NETCDF4 -D__XE6__ -DgFortran" \ CPPFLAGS="${ICON_INCLUDES}" \ MPI_LAUNCH="srun" \ MPIROOT="${CRAY_MPICH_DIR}" \ @@ -149,5 +149,6 @@ ${ICON_MODEL_ROOT}/build ## 4. Notes -- These instructions assume the Cray wrappers (`cc`, `ftn`) are used throughout. +- These instructions assume the compiler wrappers (`cc`, `ftn` and `CC`) are + used throughout. - The build enables `OpenMP` support. From eb8ab01d8fdbd8dc22e57d8aa95aed8f19c01897 Mon Sep 17 00:00:00 2001 From: jirudaya Date: Wed, 4 Feb 2026 13:08:09 +0000 Subject: [PATCH 6/6] doc(icon-model): modify python env description Signed-off-by: jirudaya --- apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md b/apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md index 7bf143df..1985cc04 100644 --- a/apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md +++ b/apps/ICON-AES/ARCHER2_2025.10_gcc11.2.md @@ -28,13 +28,12 @@ All software will be built in this directory tree. ### 1.3 Python environment -Creating a python virtual environment for bundled packages with ICON model to be -available during runtime. +Creating a python virtual environment for helpful packages. ```bash python -m venv --system-site-packages venv source venv/bin/activate -pip install cython==3.2.4 jinja2 +pip install cython==3.2.4 jinja2 netCDF4 wheel ``` ---