From 2e868e151fc10958a74e1fdb138c878fd6e23e7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Krup=C4=8D=C3=ADk?= Date: Fri, 24 Jul 2020 13:25:06 +0200 Subject: [PATCH] new file: i/IOTK/IOTK-1.2.2-intel-2020a.eb new file: i/IOTK/IOTK-intel-2020a.patch new file: l/libxc/libxc-2.2.3-intel-2020a.eb new file: n/netCDF-Fortran/netCDF-Fortran-4.5.2-intel-2020a.eb new file: y/Yambo/Yambo-4.5.2-intel-2020a.eb --- i/IOTK/IOTK-1.2.2-intel-2020a.eb | 37 +++++++ i/IOTK/IOTK-intel-2020a.patch | 104 ++++++++++++++++++ l/libxc/libxc-2.2.3-intel-2020a.eb | 34 ++++++ .../netCDF-Fortran-4.5.2-intel-2020a.eb | 26 +++++ y/Yambo/Yambo-4.5.2-intel-2020a.eb | 53 +++++++++ 5 files changed, 254 insertions(+) create mode 100644 i/IOTK/IOTK-1.2.2-intel-2020a.eb create mode 100644 i/IOTK/IOTK-intel-2020a.patch create mode 100644 l/libxc/libxc-2.2.3-intel-2020a.eb create mode 100644 n/netCDF-Fortran/netCDF-Fortran-4.5.2-intel-2020a.eb create mode 100644 y/Yambo/Yambo-4.5.2-intel-2020a.eb diff --git a/i/IOTK/IOTK-1.2.2-intel-2020a.eb b/i/IOTK/IOTK-1.2.2-intel-2020a.eb new file mode 100644 index 00000000..b4294d10 --- /dev/null +++ b/i/IOTK/IOTK-1.2.2-intel-2020a.eb @@ -0,0 +1,37 @@ +# JH 2020 + +easyblock = 'MakeCp' + +name = 'IOTK' +version = '1.2.2' + +homepage = 'https://github.com/QEF/iotk/tree/master/iotk' +description = """The input/output tool kit (IOTK) is a Fortran90 library intended to provide a +simplified access to tagged files formatted using some specific rule.""" + +source_urls = ['https://github.com/yambo-code/yambo/files/962173'] +sources = ['iotk-y1.2.2.tar.gz'] + +toolchain = {'name': 'intel', 'version': '2020a'} + +patches = ['IOTK-intel-2020a.patch'] + +with_configure = True + +buildopts = 'all' + +maxparallel = 1 + +files_to_copy = [ + (['include/*'], 'include'), + (['src/*.x'], 'bin'), + (['src/*.a'], 'lib'), + (['src/*'], 'src'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'include', 'lib'], +} + +moduleclass = 'lib' diff --git a/i/IOTK/IOTK-intel-2020a.patch b/i/IOTK/IOTK-intel-2020a.patch new file mode 100644 index 00000000..a352b487 --- /dev/null +++ b/i/IOTK/IOTK-intel-2020a.patch @@ -0,0 +1,104 @@ +--- Makefile.orig 2017-04-27 12:07:15.000000000 +0200 ++++ Makefile 2020-07-23 10:57:23.388831089 +0200 +@@ -1,5 +1,47 @@ + # Inclusion of system dependent files +-include ../make.sys ++ ++# ----------------------------- ++# # compilation rules ++ ++.SUFFIXES : ++.SUFFIXES : .o .c .F .f90 ++ ++.F.o: ++ @rm -f $*.f90 ++ (eval $(FPP) $(IFLAGS) $(dopts) $*.F > $*.f90 ) > /dev/null ++ (eval $(FC) $(FCFLAGS) -c $*.f90 ) > /dev/null ++ @rm -f $*.f90 ++ ++ ++# ----------------------------- ++# # compiler definitions ++ ++make = make ++CC = mpiicc ++CFLAGS = -O2 -xHost -ftz -fp-speculation=safe -fp-model source -D_C_US -D_FORTRAN_US $(IFLAGS) ++CPP = mpiicc -E ++FPP = fpp -free -P ++CPPFLAGS = $(IFLAGS) ++FC = mpiifort ++MPIF90 = mpiifort ++FCFLAGS = -nofor_main $(IFLAGS) ++F77 = mpiifort ++FFLAGS = -O2 -xHost -ftz -fp-speculation=safe -fp-model source ++LD = mpiifort ++LDFLAGS = -nofor_main $(IFLAGS) ++AR = ar ++ARFLAGS = -ru ++RANLIB = echo ++#RANLIB = @ranlib@ ++ ++ ++# ----------------------------- ++# # libraries ++ ++# ++##LIBS = $(extlibs_prefix)/$(fc_kind)/$(f90)/lib/libiotk.a ++LIBS = ./libiotk.a ++IFLAGS = -I./ -I../ -I../include + + info: + cd src ; make info +--- src/Makefile.orig 2020-07-23 11:55:21.410994964 +0200 ++++ src/Makefile 2020-07-23 11:57:24.072183404 +0200 +@@ -129,8 +129,48 @@ + + # List of used library files + AUTO_LIBS=$(LIB_IOTK) +-# Inclusion of system dependent files +-include $(IDEHOME)/make.sys ++# ----------------------------- ++# # # compilation rules ++ ++.SUFFIXES : ++.SUFFIXES : .o .c .F .f90 ++ ++.F.o: ++ @rm -f $*.f90 ++ (eval $(FPP) $(IFLAGS) $(dopts) $*.F > $*.f90 ) > /dev/null ++ (eval $(FC) $(FCFLAGS) -c $*.f90 ) > /dev/null ++ @rm -f $*.f90 ++ ++# ----------------------------- ++# # # compiler definitions ++ ++make = make ++CC = mpiicc ++CFLAGS = -O2 -xHost -ftz -fp-speculation=safe -fp-model source -D_C_US -D_FORTRAN_US $(IFLAGS) ++CPP = mpiicc -E ++FPP = fpp -free -P ++CPPFLAGS = $(IFLAGS) ++FC = mpiifort ++MPIF90 = mpiifort ++FCFLAGS = -nofor_main $(IFLAGS) ++F77 = mpiifort ++FFLAGS = -O2 -xHost -ftz -fp-speculation=safe -fp-model source ++LD = mpiifort ++LDFLAGS = -nofor_main $(IFLAGS) ++AR = ar ++ARFLAGS = -ru ++RANLIB = echo ++#RANLIB = @ranlib@ ++ ++# ----------------------------- ++# # # libraries ++ ++# ++###LIBS = $(extlibs_prefix)/$(fc_kind)/$(f90)/lib/libiotk.a ++LIBS = ./libiotk.a ++IFLAGS = -I./ -I../ -I../include ++ ++ + # Macro (re)definitions from OPTIONS file (keyword DEFINITION) + PRECISION = $(FAUTODBL) + diff --git a/l/libxc/libxc-2.2.3-intel-2020a.eb b/l/libxc/libxc-2.2.3-intel-2020a.eb new file mode 100644 index 00000000..9c124d5f --- /dev/null +++ b/l/libxc/libxc-2.2.3-intel-2020a.eb @@ -0,0 +1,34 @@ +# JH 2020 + +easyblock = 'ConfigureMake' + +name = 'libxc' +version = '2.2.3' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2020a'} +toolchainopts = {'opt': True} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://www.tddft.org/programs/libxc/down/%(version)s'] + +configopts = 'FC="$F77" FCFLAGS="$FFLAGS" --enable-shared' + +# From the libxc mailing list +# To summarize: expect less tests to fail in libxc 2.0.2, but don't expect +# a fully working testsuite soon (unless someone wants to volunteer to do +# it, of course ) In the meantime, unless the majority of the tests +# fail, your build should be fine. +#runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/libxc.a', 'lib/libxc.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +parallel = 1 + +moduleclass = 'chem' diff --git a/n/netCDF-Fortran/netCDF-Fortran-4.5.2-intel-2020a.eb b/n/netCDF-Fortran/netCDF-Fortran-4.5.2-intel-2020a.eb new file mode 100644 index 00000000..10206398 --- /dev/null +++ b/n/netCDF-Fortran/netCDF-Fortran-4.5.2-intel-2020a.eb @@ -0,0 +1,26 @@ +# JH 2020 + +name = 'netCDF-Fortran' +version = '4.5.2' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'intel', 'version': '2020a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] + +builddependencies = [ + ('M4', '1.4.18'), +] + +dependencies = [('netCDF', '4.7.3')] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/y/Yambo/Yambo-4.5.2-intel-2020a.eb b/y/Yambo/Yambo-4.5.2-intel-2020a.eb new file mode 100644 index 00000000..513dc773 --- /dev/null +++ b/y/Yambo/Yambo-4.5.2-intel-2020a.eb @@ -0,0 +1,53 @@ +# JH 2020 + +easyblock = 'MakeCp' + +name = 'Yambo' +version = '4.5.2' + +homepage = 'http://www.yambo-code.org' +description = """Yambo is a FORTRAN/C code for Many-Body calculations in solid state and molecular physics. + Yambo relies on the Kohn-Sham wavefunctions generated by two DFT public codes: abinit, and PWscf.""" + +toolchain = {'name': 'intel', 'version': '2020a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/yambo-code/yambo/archive'] +sources = ["%(version)s.tar.gz"] + +dependencies = [ + ('netCDF-Fortran', '4.5.2'), + ('libxc', '2.2.3'), + ('IOTK', '1.2.2'), +] + +#with_configure = True + +#configopts = 'CPPFLAGS="" FCFLAGS="-nofor_main" --with-blas-libs="$LIBBLAS" ' +#configopts += '--with-lapack-libs="$LIBLAPACK" --with-blacs-libs="$LIBBLACS" ' +#configopts += '--with-scalapack-libs="$LIBSCALAPACK" --with-fft-libs="$LIBFFT" ' +#configopts += '--with-netcdf-libs="-lnetcdff -lnetcdf" ' +#configopts += '--with-hdf5-path=$EBROOTHDF5 ' +#configopts += '--with-libxc-path=$EBROOTLIBXC ' +#configopts += '--enable-iotk ' +#onfigopts += '--with-iotk-path=$EBROOTIOTK ' +#configopts += '--enable-dp --enable-memory-profile --disable-open-mp ' + +prebuildopts = './configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu CPPFLAGS="" FCFLAGS="-nofor_main" --with-blas-libs="$LIBBLAS" --with-lapack-libs="$LIBLAPACK" --with-blacs-libs="$LIBBLACS" --with-scalapack-libs="$LIBSCALAPACK" --with-fft-libs="$LIBFFT" --with-netcdf-libs="-lnetcdff -lnetcdf" --with-hdf5-path=$EBROOTHDF5 --with-libxc-path=$EBROOTLIBXC --enable-iotk --with-iotk-path=$EBROOTIOTK --enable-dp --enable-memory-profile --disable-open-mp && ' + +buildopts = 'all' + +parallel = 1 + +files_to_copy = [ + (['bin/*'], 'bin'), + (['lib/*.a'], 'lib'), + (['include/*'], 'include'), +] + +sanity_check_paths = { + 'files': ['bin/' + x for x in ['a2y', 'p2y', 'yambo', 'ypp']], + 'dirs': [] +} + +moduleclass = 'phys'