diff --git a/COMPILATION/LoadModules/load_modules.gateway b/COMPILATION/LoadModules/load_modules.gateway new file mode 100755 index 0000000000..451d74fa6c --- /dev/null +++ b/COMPILATION/LoadModules/load_modules.gateway @@ -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/ diff --git a/COMPILATION/Makefiles/Makefile.gateway b/COMPILATION/Makefiles/Makefile.gateway new file mode 100644 index 0000000000..99a0e60195 --- /dev/null +++ b/COMPILATION/Makefiles/Makefile.gateway @@ -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