# Whenever this version string changes, the application is configured # and rebuilt from scratch VERSION = leonardo-dcgp-gcc-openmpi-Aug-2025 # CPP and FPP settings: the C and Fortran preprocessors # # CC, CXX, F77 and F90 settings: the C, C++, Fortran 77 and Fortran 90 compilers # # You can specify a full path, if the compiler you want to use is not available on your default path. # It is strongly recommended to use compilers from the same family; don't mix Intel and GNU compilers. CPP = cpp FPP = cpp CC = gcc CXX = g++ F90 = gfortran # ----- Part 1: Set compiler-related options ----- # Set flags for the C and Fortran preprocessors # # [PI] Note: It is possible that 'D_XOPEN_SOURCE' and 'D_XOPEN_SOURCE_EXTENDED' # are not needed for my specific use case. # Keep them for now, but experiment with removing them and see # if ET compiles and examples run correctly (e.g. isolated stars). CPPFLAGS = -g -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED FPPFLAGS = -g -traditional # Set flags for the C, C++, Fortran 77 and Fortran 90 compilers # '-align', '-debug all' and '-traceback' are Intel-specific flags. # - So removed them from CFLAGS, CXXFLAGS, F77FLAGS and F90FLAGS. # '-pad' and '-safe-cray-ptr' are Intel Fortran compiler specific flags. # - So removed them from F77FLAGS and F90FLAGS. # CFLAGS = -g -std=gnu99 #-std=c11 # CXXFLAGS = -g -std=gnu++0x #-std=c++14 # F77FLAGS = -g -m128bit-long-double -fcray-pointer -ffixed-line-length-none -Wno-argument-mismatch # F90FLAGS = -g -m128bit-long-double -fcray-pointer -ffixed-line-length-none -Wno-argument-mismatch CFLAGS = -g -march=native -std=gnu99 CXXFLAGS = -g -march=native -std=gnu++11 F77FLAGS = -g -march=native -fcray-pointer F90FLAGS = -g -march=native -fcray-pointer # Set flags for the linker LDFLAGS = -rdynamic -fopenmp C_LINE_DIRECTIVES = yes F_LINE_DIRECTIVES = yes VECTORISE = yes VECTORISE_ALIGNED_ARRAYS = no VECTORISE_INLINE = no VECTORISE_ALIGN_FOR_CACHE = no VECTORISE_ALIGN_INTERIOR = no # Set debugging flags # Note: Other cfg files also use the -O0 flag for the C, C++, F77, and F90 compilers. DEBUG = no CPP_DEBUG_FLAGS = -DCARPET_DEBUG FPP_DEBUG_FLAGS = -DCARPET_DEBUG C_DEBUG_FLAGS = -fbounds-check CXX_DEBUG_FLAGS = -fbounds-check F77_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -finit-character=65 -finit-integer=42424242 -finit-real=nan F90_DEBUG_FLAGS = -fcheck=bounds,do,mem,pointer,recursion -finit-character=65 -finit-integer=42424242 -finit-real=nan # Set optimisation flags OPTIMISE = yes CPP_OPTIMISE_FLAGS = FPP_OPTIMISE_FLAGS = C_OPTIMISE_FLAGS = -O2 CXX_OPTIMISE_FLAGS = -O2 F90_OPTIMISE_FLAGS = -O2 # Set profiling flags PROFILE = no CPP_PROFILE_FLAGS = FPP_PROFILE_FLAGS = C_PROFILE_FLAGS = CXX_PROFILE_FLAGS = F77_PROFILE_FLAGS = F90_PROFILE_FLAGS = # Set OpenMP flags OPENMP = yes CPP_OPENMP_FLAGS = -fopenmp FPP_OPENMP_FLAGS = -fopenmp C_OPENMP_FLAGS = -fopenmp CXX_OPENMP_FLAGS = -fopenmp F77_OPENMP_FLAGS = -fopenmp F90_OPENMP_FLAGS = -fopenmp # Set warning flags WARN = no CPP_WARN_FLAGS = -Wall FPP_WARN_FLAGS = -Wall C_WARN_FLAGS = -Wall CXX_WARN_FLAGS = -Wall F77_WARN_FLAGS = -Wall F90_WARN_FLAGS = -Wall # ----- Part 2: Set ExternalLibraries-related options ----- # FFTW3_DIR = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/fftw-3.3.10-kau3lmxr2fm72enmw3a42drdjvwexdsp # FFTW3_INC_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/fftw-3.3.10-kau3lmxr2fm72enmw3a42drdjvwexdsp/include # FFTW3_LIB_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/fftw-3.3.10-kau3lmxr2fm72enmw3a42drdjvwexdsp/lib # Updated FFTW3 FFTW3_DIR = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/fftw-3.3.10-f3ms2lmqzjugb43xzrxjkvmvohumyruy FFTW3_INC_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/fftw-3.3.10-f3ms2lmqzjugb43xzrxjkvmvohumyruy/include FFTW3_LIB_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/fftw-3.3.10-f3ms2lmqzjugb43xzrxjkvmvohumyruy/lib # GSL_DIR = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/gsl-2.7.1-doz5bmiieigbyt5r3bkivtd4vkyaxegh # GSL_INC_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/gsl-2.7.1-doz5bmiieigbyt5r3bkivtd4vkyaxegh/include # GSL_LIB_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/gsl-2.7.1-doz5bmiieigbyt5r3bkivtd4vkyaxegh/lib # Updated GSL GSL_DIR = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/gsl-2.7.1-e7akfjnfz2ozlrbf6gw3iqkoexwuewa7 GSL_INC_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/gsl-2.7.1-e7akfjnfz2ozlrbf6gw3iqkoexwuewa7/include GSL_LIB_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/gsl-2.7.1-e7akfjnfz2ozlrbf6gw3iqkoexwuewa7/lib # HDF5_DIR = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/hdf5-1.14.3-flr43qytzge67qvbmjx4mszcm23s4d3b # HDF5_INC_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/hdf5-1.14.3-flr43qytzge67qvbmjx4mszcm23s4d3b/include # HDF5_LIB_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/hdf5-1.14.3-flr43qytzge67qvbmjx4mszcm23s4d3b/lib # HDF5_LIBS = hdf5 hdf5_hl hdf5_fortran hdf5_hl_fortran # Updated HDF5 HDF5_DIR = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/hdf5-1.14.3-gi2troxm56ycg42gq45rxhpmpjgwv7f5 HDF5_INC_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/hdf5-1.14.3-gi2troxm56ycg42gq45rxhpmpjgwv7f5/include HDF5_LIB_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/hdf5-1.14.3-gi2troxm56ycg42gq45rxhpmpjgwv7f5/lib # Not sure if this is needed, but it was in the original file HDF5_LIBS = hdf5 hdf5_hl hdf5_fortran hdf5_hl_fortran # BOOST_DIR = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/boost-1.83.0-ti6wkhbw4ddu6xbsaecjticlmxa3ihfw # BOOST_INC_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/boost-1.83.0-ti6wkhbw4ddu6xbsaecjticlmxa3ihfw/include # BOOST_LIB_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/boost-1.83.0-ti6wkhbw4ddu6xbsaecjticlmxa3ihfw/lib # BOOST_LIBS = boost_mpi # Updated BOOST BOOST_DIR = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/boost-1.85.0-shuw6tpvea5uotoergfd6rzdm4pk5onv BOOST_INC_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/boost-1.85.0-shuw6tpvea5uotoergfd6rzdm4pk5onv/include BOOST_LIB_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/boost-1.85.0-shuw6tpvea5uotoergfd6rzdm4pk5onv/lib # Not sure if this is needed, but it was in the original file BOOST_LIBS = boost_mpi # Keep this as is for now, as it was in the original fil HWLOC_EXTRA_LIBS = hwloc numa # MPI_DIR = /leonardo/prod/opt/libraries/openmpi/4.1.6/gcc--12.2.0 # updated MPI MPI_DIR = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/openmpi-4.1.6-jnvfio5kii7e7oba2bu4jsgzr4nvwhkw PTHREADS_DIR = NO_BUILD # LAPACK_DIR = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/netlib-scalapack-2.2.0-aw7g74ew6bk34b4vq6mbyzjpnmsu7hjq # LAPACK_INC_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/netlib-scalapack-2.2.0-aw7g74ew6bk34b4vq6mbyzjpnmsu7hjq/include # LAPACK_LIB_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/netlib-scalapack-2.2.0-aw7g74ew6bk34b4vq6mbyzjpnmsu7hjq/lib # LAPACK_LIBS = scalapack # Updated LAPACK LAPACK_DIR = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/netlib-scalapack-2.2.0-hn2wkh4gy5wvsqerszx5dbka5pubgl44 # There is no include directory for LAPACK in the updated version. Remove it for now, test and see if it complains. # LAPACK_INC_DIRS = LAPACK_LIB_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/netlib-scalapack-2.2.0-hn2wkh4gy5wvsqerszx5dbka5pubgl44/lib LAPACK_LIBS = scalapack # BLAS_DIR = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/openblas-0.3.24-kytrjfxkavk6fcucnujsdsfqqsjfv5t7 # BLAS_INC_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/openblas-0.3.24-kytrjfxkavk6fcucnujsdsfqqsjfv5t7/include # BLAS_LIB_DIRS = /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-12.2.0/openblas-0.3.24-kytrjfxkavk6fcucnujsdsfqqsjfv5t7/lib # BLAS_LIBS = openblas # updated BLAS BLAS_DIR = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/openblas-0.3.26-sfcv7zah7u4wzwdlcplnwqmalq6c4fda BLAS_INC_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/openblas-0.3.26-sfcv7zah7u4wzwdlcplnwqmalq6c4fda/include BLAS_LIB_DIRS = /leonardo/prod/spack/06/install/0.22/linux-rhel8-icelake/gcc-12.2.0/openblas-0.3.26-sfcv7zah7u4wzwdlcplnwqmalq6c4fda/lib BLAS_LIBS = openblas # For the time being, I do not need an external library for Lorene. # Useful to know though that it is possible to use your own Lorene installation. # LORENE_DIR = /leonardo/home/userexternal/bgiacoma/Lorene # LORENE_EXTRA_LIBS = fftw3