-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added load_modules and Makefile for the EUROfusion Gateway.
- Loading branch information
Showing
2 changed files
with
127 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |