Skip to content

Commit

Permalink
Added load_modules and Makefile for the EUROfusion Gateway.
Browse files Browse the repository at this point in the history
  • Loading branch information
jregana committed Mar 3, 2025
1 parent 0c6e09f commit 6c3e3a9
Show file tree
Hide file tree
Showing 2 changed files with 127 additions and 0 deletions.
42 changes: 42 additions & 0 deletions COMPILATION/LoadModules/load_modules.gateway
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Clean modules
module purge

# Set environment variables
export STELLA_SYSTEM='gateway'
export MAKEFLAGS=-IMakefiles

# Load Xula modules

module load cineca
module load intel/pe-xe-2017--binary
module load intelmpi/2017--binary
module load szip/2.1--gnu--6.1.0
module load zlib/1.2.8--gnu--6.1.0
module load hdf5/1.8.17--intel--pe-xe-2017--binary
module load netcdf/4.4.1--intel--pe-xe-2017--binary
module load netcdff/4.4.4--intel--pe-xe-2017--binary
module load fftw/3.3.4--intelmpi--2017--binary
module load mkl/2017--binary
module load lapack/3.6.1--intel--pe-xe-2017--binary
module load blas/3.6.0--intel--pe-xe-2017--binary


# Compile stella with CMake
module load cmake/3.26.3-dxu

# Numerical tests need python
module load python/3.9.4


# Check loaded modules
echo " "
echo "GCC version:"
gcc --version
echo "Python version:"
python --version
echo " "

# Set some directories for the make file of xula
#export NETCDF_HOME=/mnt/lustre/home/spack/spack/opt/spack/linux-rocky8-icelake/gcc-8.5.0/netcdf-c-4.9.2-tm5mqc44n3zsrs4sildwyrv2ynjxfnlh/
#export FFT_HOME=/mnt/lustre/home/spack/spack/opt/spack/linux-rocky8-icelake/gcc-8.5.0/fftw-3.3.10-gyw6vjk5lqaocgtvd42czbeai4qdiecq/
#export LAPACK_HOME=/mnt/lustre/home/spack/spack/opt/spack/linux-rocky8-icelake/gcc-8.5.0/netlib-lapack-3.11.0-af4h4cocidqmbtafrjzzqwky3wjlswmm/
85 changes: 85 additions & 0 deletions COMPILATION/Makefiles/Makefile.gateway
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Host: Marconi

helplocal:
# GK_SYSTEM = marconi
# You are using Makefile.marconi to build gs2 executables on MARCONI.

define STANDARD_SYSTEM_CONFIGURATION
module purge;\
module load env-skl;\
module load intel/pe-xe-2018--binary;\
module load intelmpi/2018--binary;\
module load szip/2.1--gnu--6.1.0;\
module load zlib/1.2.8--gnu--6.1.0;\
module load hdf5/1.10.4--intel--pe-xe-2018--binary;\
module load netcdf/4.6.1--intel--pe-xe-2018--binary;\
module load netcdff/4.4.4--intel--pe-xe-2018--binary;\
module load fftw/3.3.7--intelmpi--2018--binary;\
module load mkl/2018--binary
module load scalapack;\
module load blas;\
echo Module configuration complete;\
export MAKEFLAGS='-j -IMakefiles';\
export TESTEXEC='mpirun -N 48 -n 48';
endef

COMPILER=intel
CHIP=skylake

USE_FFT = fftw3
USE_NETCDF = on

# This line disables the automated checking
# of the intel version which is slow
DBLESIZEOPT = -double-size 128

include $(COMPILATION_DIR)/Makefiles/Compilers/Makefile.$(COMPILER)

FC=ifort
CC=icc
MPIFC=mpiifort
MPICC=mpiicc

ifeq ($(USE_FFT),fftw3)
FFT_INC =
FFT_DIR = $(FFTW_HOME)
FFT_LIB = -lfftw3 #-lfftw3_mpi
CPPFLAGS += -I $$FFTW_INC
endif

USE_HDF5=

#Note the module system sets some env vars for us
#unfortunately some clash with values we use
ifdef USE_NETCDF
NETCDF_DIR=$(NETCDFF_HOME)
NETCDF_INC= -I$(NETCDF_DIR)/include/ -I$(NETCDF_INCLUDE)
NETCDF_LIB= -L$(NETCDF_DIR)/lib/ -lnetcdff -L$(NETCDF_HOME)/lib/ -lnetcdf
endif

ifdef USE_LAPACK
LAPACK_LIB = -mkl
endif

ifdef USE_SFINCS
SFINCS_LIB = -L$(SFINCS_DIR) -lsfincs
SFINCS_INC = -I$(SFINCS_DIR)

PETSC_INC = -I$(PETSC_HOME)/include -I$(LAPACK_HOME)/include -I$(MKL_HOME)/include
PETSC_LIB = -L$(PETSC_HOME)/lib -lpetsc -L$(LAPACK_HOME)/lib -llapack -L$(MKL_HOME)/lib/intel64 -lmkl_intel_lp64

HDF5_INC = -I$(HDF5_HOME)/include
HDF5_LIB = -L$(HDF5_HOME)/lib -lhdf5hl_fortran -lhdf5_fortran -lhdf5 -lhdf5_hl
else
PETSC_INC =
PETSC_LIB =
HDF5_INC =
HDF5_LIB =
endif

# The compiler either uses the "-J" flag or the "-module" flag to
# denote the directory where the *.mod files can be found
MODULE_FLAG = -module

# Without this the mini_linstell gets issues with the netcdf routines (cdf_inquire)
F90FLAGS = -DNETCDF

0 comments on commit 6c3e3a9

Please sign in to comment.