1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
MAKE = make
AR = ar
# Elk requires BLAS/LAPACK and fast Fourier transform (FFT) libraries.
# We recommend using optimised, mutithreaded BLAS/LAPACK libaries such as those
# provided by the Intel Math Kernel Library (MKL), OpenBLAS or BLIS.
# Elk can use either the Fastest Fourier Transform in the West (FFTW) or the
# MKL FFT. Both single and double precision versions of the FFT are needed.
#------------------------------------------------------------------------------#
# Libraries #
#------------------------------------------------------------------------------#
#-------------------------------------------------------------------------------
SRC_MKL = mkl_stub.f90
# To enable MKL multithreaded parallelism, uncomment the following line and link
# with the MKL library.
#SRC_MKL =
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# If your compiler does *not* support the Message Passing Interface (MPI) then
# uncomment the line below.
#SRC_MPI = mpi_stub.f90
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Elk supports two FFT libraries:
# Fastest Fourier Transform in the West (FFTW)
# Intel Math Kernel Library (MKL) Fast Fourier Transform
#
# FFTW is enabled by default with:
SRC_FFT = zfftifc_fftw.f90 cfftifc_fftw.f90
#
# To enable MKL FFT instead, copy mkl_dfti.f90 to the elk/src directory and
# uncomment the line below.
#SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90 cfftifc_mkl.f90
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
SRC_LIBXC = libxcifc_stub.f90
# To enable Libxc first download and compile version 6.x of the library. Next
# copy the files libxcf03.a and libxc.a to the elk/src directory and uncomment
# the following lines.
LIB_LIBXC = `pkg-config --cflags --libs libxc` -lxcf03
SRC_LIBXC = libxcifc.f90
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
SRC_W90S = w90_stub.f90
# To enable the Wannier90 library copy libwannier.a to the elk/src directory and
# uncomment the following lines.
SRC_W90S =
LIB_W90 = -lwannier
#-------------------------------------------------------------------------------
#------------------------------------------------------------------------------#
# Compilers #
#------------------------------------------------------------------------------#
#-------------------------------------------------------------------------------
# Intel Fortran LLVM-based compiler (ifx).
#F90 = mpiifx
#F90_OPTS = -O3 -xHost -ipo -qopenmp -qmkl=parallel
#F90_LIB = -liomp5 -lpthread -lm -ldl
#SRC_MKL =
#AR = xiar
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Intel Fortran compiler classic (ifort) version 18 and later.
#F90 = mpiifort
#F90_OPTS = -O3 -xHost -ipo -qopenmp -mkl=parallel
#F90_LIB = -liomp5 -lpthread -lm -ldl
#SRC_MKL =
#AR = xiar
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# GNU Fortran compiler with MKL.
#F90 = mpif90
#F90_OPTS = -Ofast -march=native -mtune=native -fopenmp -ffpe-summary=none -Wno-lto-type-mismatch
#F90_LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread
#SRC_MKL =
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# GNU Fortran compiler with BLIS, libflame and FFTW.
#F90 = mpif90
#F90_OPTS = -Ofast -march=native -mtune=native -fopenmp -ffpe-summary=none -Wno-lto-type-mismatch
#F90_LIB = -lblis -lflame -lfftw3 -lfftw3f
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# GNU Fortran compiler with BLAS, LAPACK and FFTW.
F90 = mpif90
F90_OPTS :=
F90_OPTS += `dpkg-buildflags --get FFLAGS`
F90_OPTS += `dpkg-buildflags --get CPPFLAGS`
F90_OPTS += -I/usr/include -Wall -ffast-math -funroll-loops -fopenmp -fallow-argument-mismatch
F90_OPTS += `dpkg-buildflags --get LDFLAGS`
F90_LIB = -lblas -llapack `pkg-config --libs fftw3` `pkg-config --libs fftw3f`
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Intel Fortran with debugging and profiling options.
#F90 = mpiifort
#F90_OPTS = -O3 -qopenmp -mkl=parallel -pg -xHost -init=snan,arrays -warn unused
#F90_LIB = -liomp5 -lpthread -lm -ldl
#SRC_MKL =
#AR = ar
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# GNU Fortran debugging and profiling options.
#F90 = gfortran
#F90_OPTS = -O3 -Wall -Wunused -Warray-temporaries -Waliasing -Wintrinsics-std -Wtabs -Wfunction-elimination -Wrealloc-lhs-all -fopenmp -fbounds-check -pg
#F90_LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread
#SRC_MKL =
#SRC_MPI = mpi_stub.f90
#-------------------------------------------------------------------------------
|