git: ac7e0fd8fa86 - main - science/elk: Update 8.5.10 -> 8.6.7
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 13 Dec 2022 03:47:41 UTC
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=ac7e0fd8fa86143b4c735c47e9d9142f1b71e093 commit ac7e0fd8fa86143b4c735c47e9d9142f1b71e093 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2022-12-12 15:44:12 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2022-12-13 03:47:34 +0000 science/elk: Update 8.5.10 -> 8.6.7 Also add MPI options. --- science/elk/Makefile | 29 +++++--- science/elk/distinfo | 6 +- science/elk/files/make.inc.in | 133 +++++++++++++++++++++++++++++++---- science/elk/files/patch-src_Makefile | 11 +++ 4 files changed, 156 insertions(+), 23 deletions(-) diff --git a/science/elk/Makefile b/science/elk/Makefile index ef559b466844..3696349faf84 100644 --- a/science/elk/Makefile +++ b/science/elk/Makefile @@ -1,5 +1,5 @@ PORTNAME= elk -DISTVERSION= 8.5.10 +DISTVERSION= 8.6.7 CATEGORIES= science MASTER_SITES= SF/${PORTNAME}/ PKGNAMESUFFIX= -chemistry @@ -12,9 +12,14 @@ WWW= http://elk.sourceforge.net/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING -LIB_DEPENDS= libblis.so:math/blis \ +LIB_DEPENDS= libblas.so:math/blas \ + libblis.so:math/blis \ + libfftw3.so:math/fftw3 \ + libfftw3f.so:math/fftw3-float \ + liblapack.so:math/lapack \ libopenblas.so:math/openblas \ - libwannier.so:science/wannier90 + libwannier.so:science/wannier90 \ + libxc.so:science/libxc USES= fortran gmake tar:tgz @@ -22,14 +27,22 @@ BINARY_ALIAS= make=${GMAKE} LDFLAGS+= ${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgcc_s.so -OPTIONS_GROUP= PARALLEL -OPTIONS_GROUP_PARALLEL= OPENMP MPI -OPTIONS_DEFINE= DOCS EXAMPLES -OPTIONS_DEFAULT= ${OPTIONS_GROUP_PARALLEL} +OPTIONS_DEFINE= DOCS EXAMPLES NATIVE OPENMP +OPTIONS_RADIO= MPI +OPTIONS_RADIO_MPI= MPICH OPENMPI +OPTIONS_DEFAULT= OPENMP MPICH PARALLEL_DESC= Enable parallelizations: +NATIVE_MAKE_ARGS= FFLAGS="${FFLAGS} -march=native -mtune=native" +NATIVE_VARS= FFLAGS="-march=native -mtune=native" + OPENMP_VARS= OPENMP_FLAGS=-fopenmp -MPI_RUN_DEPENDS= mpirun:net/mpich + +MPICH_USES= mpi:mpich +MPICH_MAKE_ARGS= F90=${MPIF90} + +OPENMPI_USES= mpi:openmpi +OPENMPI_MAKE_ARGS= F90=${MPIF90} PORTDOCS= * PORTEXAMPLES= * diff --git a/science/elk/distinfo b/science/elk/distinfo index 5514be0a28c4..0d3f3d1db8b0 100644 --- a/science/elk/distinfo +++ b/science/elk/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1664142665 -SHA256 (elk-chemistry/elk-8.5.10.tgz) = 41d6ff3715c26c7aff50df57d259c03df58abd4a04ad02c8ab76b962643b0c7b -SIZE (elk-chemistry/elk-8.5.10.tgz) = 4134441 +TIMESTAMP = 1670840855 +SHA256 (elk-chemistry/elk-8.6.7.tgz) = d685be1a8e401875646c80204addcdd6b93952ab8d1e821d512be903b38479a4 +SIZE (elk-chemistry/elk-8.6.7.tgz) = 3764657 diff --git a/science/elk/files/make.inc.in b/science/elk/files/make.inc.in index 7cc517f7179a..d5b45646acce 100644 --- a/science/elk/files/make.inc.in +++ b/science/elk/files/make.inc.in @@ -1,16 +1,125 @@ MAKE = %%GMAKE%% -F90 = %%FC%% -F90_OPTS = -O3 -ffast-math -funroll-loops %%OPENMP_FLAGS%% %%FCFLAGS%% -F77 = %%FC%% -F77_OPTS = -O3 -ffast-math -funroll-loops %%OPENMP_FLAGS%% AR = ar -LIB_SYS = -lopenblas -lblis -LIB_LPK = lapack.a blas.a -LIB_FFT = fftlib.a -LIB_W90 = -lwannier -SRC_OMP = + + +# 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 -SRC_MPI = mpi_stub.f90 -SRC_libxc = libxcifc_stub.f90 -SRC_FFT = zfftifc.f90 +# To enable MKL multithreaded parallelism, uncomment the following line and link +# with the MKL library. +#SRC_MKL = +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +SRC_OBLAS = oblas_stub.f90 +# To enable OpenBLAS multithreaded parallelism, uncomment the following line and +# link with the OpenBLAS library. +#SRC_OBLAS = +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +SRC_BLIS = blis_stub.f90 +# To enable BLIS multithreaded parallelism, uncomment the following line and +# link with the BLIS library. +#SRC_BLIS = +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# 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 5.x of the library. Next +# copy the files libxcf90.a and libxc.a to the elk/src directory and uncomment +# the following lines. +LIB_LIBXC = -lxcf90 -lxc +SRC_LIBXC = libxcf90.f90 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 = libwannier.a +#------------------------------------------------------------------------------- + + + +#------------------------------------------------------------------------------# +# Compilers # +#------------------------------------------------------------------------------# + +#------------------------------------------------------------------------------- +# Intel MPI Fortran version 18 and later. +#F90 = %%FC%% +#F90_OPTS = -O3 %%OPENMP_FLAGS%% %%FCFLAGS%% +#F90_LIB = -liomp5 -lpthread -lm -ldl +#SRC_MKL = +#AR = xiar +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# GNU Fortran compiler with MKL. +F90 = +F90_OPTS = $(FFLAGS) -Ofast -fomit-frame-pointer -fopenmp -ffpe-summary=none -fallow-argument-mismatch +F90_LIB = -llapack -lblas -lfftw3 -lfftw3f -pthread +SRC_MKL = +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# GNU Fortran compiler with OpenBLAS, LAPACK and FFTW +#F90 = mpif90 +#F90_OPTS = -Ofast -march=native -mtune=native -fomit-frame-pointer -fopenmp -ffpe-summary=none -fallow-argument-mismatch +#F90_LIB = -lopenblas -llapack -lfftw3 +#SRC_OBLAS = +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# Intel Fortran debugging and profiling options. +#F90 = mpiifort +#F90_OPTS = -O3 -qopenmp -mkl=parallel -pg +#F90_LIB = -liomp5 -lpthread -lm -ldl +#SRC_MKL = +#AR = ar +#------------------------------------------------------------------------------- + +#------------------------------------------------------------------------------- +# GNU Fortran debugging options. +#F90 = gfortran +#F90_OPTS = -O3 -Wunused -fopenmp +#F90_LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread +#SRC_MKL = +#SRC_MPI = mpi_stub.f90 +#------------------------------------------------------------------------------- + diff --git a/science/elk/files/patch-src_Makefile b/science/elk/files/patch-src_Makefile new file mode 100644 index 000000000000..737384e87c1d --- /dev/null +++ b/science/elk/files/patch-src_Makefile @@ -0,0 +1,11 @@ +--- src/Makefile.orig 2022-12-12 11:05:38 UTC ++++ src/Makefile +@@ -91,7 +91,7 @@ SRC_main1 = \ + rfcopy.f90 rhomagv.f90 eveqn.f90 genffacgp.f90 unitary.f90 zmdet.f90 \ + rfmtftoc.f90 zminv.f90 symrf.f90 genvmat.f90 writeeval.f90 mixerifc.f90 \ + splinew.f90 nfftifc.f90 batchdv.f90 readevalsv.f90 readoccsv.f90 z2mm.f90 \ +- z2mctm.f90 z2mmct.f90 zmctmu.f90 zmctm.f90 ++ z2mctm.f90 z2mmct.f90 zmctmu.f90 zmctm.f90 mkl_stub.f90 + + SRC_main = $(SRC_main0) $(SRC_main1) +