The package rpms/cp2k.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/cp2k.git/commit/?id=82b438eab0977a77....
Change: +%ifarch x86_64
Thanks.
Full change: ============
commit 886ce35f766bfed31eecbea00e49ed2fb3352f5b Author: Dominik 'Rathann' Mierzejewski dominik@greysector.net Date: Thu Oct 1 11:13:58 2020 +0200
whitespace cosmetics: realign
diff --git a/cp2k.spec b/cp2k.spec index d66e761..30bab9d 100644 --- a/cp2k.spec +++ b/cp2k.spec @@ -137,9 +137,9 @@ rm tools/build_utils/fypp # Generate necessary symlinks TARGET=Linux-%{_target_cpu}-gfortran ln -s Linux-x86-64-gfortran.ssmp arch/${TARGET}.ssmp - for m in mpich openmpi ; do +for m in mpich openmpi ; do ln -s Linux-x86-64-gfortran.psmp arch/${TARGET}-${m}.psmp - done +done
# fix crashes in fftw on i686. Need to run on original file, otherwise symlinks will be replaced with copies. %ifarch i686 @@ -161,12 +161,12 @@ export PYTHON=%{_bindir}/python3 TARGET=Linux-%{_target_cpu}-gfortran OPTFLAGS_COMMON="%(echo %{optflags} | sed -e 's/ -Werror=format-security//g') -fPIC -I%{_fmoddir} -fallow-argument-mismatch" make OPTFLAGS="${OPTFLAGS_COMMON}" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,%{_libdir}/cp2k" %{?_smp_mflags} ARCH="${TARGET}" VERSION="ssmp" - %{_openmpi_load} +%{_openmpi_load} make OPTFLAGS="${OPTFLAGS_COMMON} -I%{_fmoddir}/openmpi" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,${MPI_LIB}/cp2k" %{?_smp_mflags} ARCH="${TARGET}-openmpi" VERSION="psmp" - %{_openmpi_unload} - %{_mpich_load} +%{_openmpi_unload} +%{_mpich_load} make OPTFLAGS="${OPTFLAGS_COMMON} -I%{_fmoddir}/mpich" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,${MPI_LIB}/cp2k" %{?_smp_mflags} ARCH="${TARGET}-mpich" VERSION="psmp" - %{_mpich_unload} +%{_mpich_unload}
%install TARGET=Linux-%{_target_cpu}-gfortran @@ -177,7 +177,7 @@ ln -s cp2k.ssmp %{buildroot}%{_bindir}/cp2k_shell.ssmp install -pm755 lib/${TARGET}/ssmp/lib*.so %{buildroot}%{_libdir}/cp2k/ install -pm755 lib/${TARGET}/ssmp/exts/dbcsr/libdbcsr.so %{buildroot}%{_libdir}/cp2k/ %{_openmpi_load} - mkdir -p %{buildroot}{${MPI_BIN},${MPI_LIB}/cp2k} +mkdir -p %{buildroot}{${MPI_BIN},${MPI_LIB}/cp2k} install -pm755 exe/${TARGET}-openmpi/cp2k.psmp %{buildroot}${MPI_BIN}/cp2k.psmp_openmpi ln -s cp2k.psmp_openmpi %{buildroot}${MPI_BIN}/cp2k.popt_openmpi ln -s cp2k.psmp_openmpi %{buildroot}${MPI_BIN}/cp2k_shell.psmp_openmpi @@ -185,7 +185,7 @@ install -pm755 lib/${TARGET}-openmpi/psmp/lib*.so %{buildroot}${MPI_LIB}/cp2k/ install -pm755 lib/${TARGET}-openmpi/psmp/exts/dbcsr/libdbcsr.so %{buildroot}${MPI_LIB}/cp2k/ %{_openmpi_unload} %{_mpich_load} - mkdir -p %{buildroot}{${MPI_BIN},${MPI_LIB}/cp2k} +mkdir -p %{buildroot}{${MPI_BIN},${MPI_LIB}/cp2k} install -pm755 exe/${TARGET}-mpich/cp2k.psmp %{buildroot}${MPI_BIN}/cp2k.psmp_mpich ln -s cp2k.psmp_mpich %{buildroot}${MPI_BIN}/cp2k.popt_mpich ln -s cp2k.psmp_mpich %{buildroot}${MPI_BIN}/cp2k_shell.psmp_mpich @@ -203,36 +203,36 @@ dir_base=%{_builddir} __EOF__ . /etc/profile.d/modules.sh export CP2K_DATA_DIR=%{buildroot}%{_datadir}/cp2k/ - for mpi in '' mpich openmpi ; do - if [ -n "$mpi" ]; then - module load mpi/${mpi}-%{_arch} - libdir=${MPI_LIB}/cp2k - mpiopts="-maxtasks 4 -mpiranks 2" - par=p - suf="-${mpi}" - else - libdir=%{_libdir}/cp2k - mpiopts="" - par=s - suf="" - fi - export LD_LIBRARY_PATH=%{buildroot}${libdir} - tools/regtesting/do_regtest \ - -arch Linux-%{_target_cpu}-gfortran${suf} \ - -config fedora.config \ +for mpi in '' mpich openmpi ; do + if [ -n "$mpi" ]; then + module load mpi/${mpi}-%{_arch} + libdir=${MPI_LIB}/cp2k + mpiopts="-maxtasks 4 -mpiranks 2" + par=p + suf="-${mpi}" + else + libdir=%{_libdir}/cp2k + mpiopts="" + par=s + suf="" + fi + export LD_LIBRARY_PATH=%{buildroot}${libdir} + tools/regtesting/do_regtest \ + -arch Linux-%{_target_cpu}-gfortran${suf} \ + -config fedora.config \ %if %{git} -cp2kdir cp2k-%{commit} \ %else - -cp2kdir cp2k-%{version} \ + -cp2kdir cp2k-%{version} \ %endif - ${mpiopts} \ - -nobuild \ + ${mpiopts} \ + -nobuild \ -version ${par}smp \
- if [ -n "$mpi" ]; then - module unload mpi/${mpi}-%{_arch} - fi - done + if [ -n "$mpi" ]; then + module unload mpi/${mpi}-%{_arch} + fi +done %endif
%files common
commit 82b438eab0977a77a3fea388aba759b49779bcf1 Author: Dominik 'Rathann' Mierzejewski dominik@greysector.net Date: Thu Oct 1 11:13:27 2020 +0200
update to post-7.1 snapshot for gcc-10 compatibility (#1786794)
[sp]opt variants are no longer built (use OMP_NUM_THREADS=1 instead)
diff --git a/.gitignore b/.gitignore index eca32b0..74b7cca 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ /cp2k-4.1.tar.bz2 /cp2k-5.1.tar.bz2 /cp2k-6.1.tar.bz2 +/cp2k-dbf7a77.tar.gz +/dbcsr-d2dfe6e.tar.gz diff --git a/cp2k-32bit.patch b/cp2k-32bit.patch deleted file mode 100644 index ab2b77a..0000000 --- a/cp2k-32bit.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up cp2k-6.1/src/pw/realspace_grid_cube.F.32bit cp2k-6.1/src/pw/realspace_grid_cube.F ---- cp2k-6.1/src/pw/realspace_grid_cube.F.32bit 2018-07-16 21:14:29.579258026 +0200 -+++ cp2k-6.1/src/pw/realspace_grid_cube.F 2018-07-16 21:25:14.227137976 +0200 -@@ -645,7 +645,7 @@ CONTAINS - INTEGER, DIMENSION(3) :: lbounds, lbounds_local, ubounds, & - ubounds_local - INTEGER, ALLOCATABLE, DIMENSION(:), TARGET :: blocklengths -- INTEGER(kind=file_offset), ALLOCATABLE, & -+ INTEGER(kind=address_kind), ALLOCATABLE, & - DIMENSION(:), TARGET :: displacements - INTEGER(kind=file_offset) :: BOF - INTEGER :: counter, gid, i, islice, j, k, last_z, & diff --git a/cp2k-libxc5.patch b/cp2k-libxc5.patch new file mode 100644 index 0000000..2a99911 --- /dev/null +++ b/cp2k-libxc5.patch @@ -0,0 +1,1350 @@ +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/INSTALL.md.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/INSTALL.md +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/INSTALL.md.xc5 2020-09-29 09:07:52.022336509 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/INSTALL.md 2020-09-29 09:08:24.690193654 +0200 +@@ -196,7 +196,7 @@ version of CP2K (ssmp or psmp), the FFTW + - During the installation, the directories `$(LIBXC_DIR)/lib` + and `$(LIBXC_DIR)/include` are created. + - Add `-D__LIBXC` to DFLAGS, `-I$(LIBXC_DIR)/include` to FCFLAGS +- and `-L$(LIBXC_DIR)/lib -lxcf03 -lxc` to LIBS. ++ and `-L$(LIBXC_DIR)/lib -lxcf90 -lxc` to LIBS. + - :warning: Note that the deprecated flags `-D__LIBXC2` and `-D__LIBXC3` are ignored. + + ### 2l. ELPA (optional, improved performance for diagonalization) +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/atom_output.F.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/atom_output.F +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/atom_output.F.xc5 2020-09-29 09:07:52.019336522 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/atom_output.F 2020-09-29 09:10:56.425495411 +0200 +@@ -477,7 +477,7 @@ CONTAINS + TYPE(atom_type) :: atom + INTEGER, INTENT(IN) :: iw + +- CHARACTER(len=10*default_string_length) :: reference ++ CHARACTER(len=200*default_string_length) :: reference + CHARACTER(len=160) :: shortform + CHARACTER(len=20) :: tmpStr + INTEGER :: i_rep, ifun, il, meth, myfun, n_rep, & +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc_write_output.F.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc_write_output.F +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc_write_output.F.xc5 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc_write_output.F 2020-09-29 09:07:52.021336514 +0200 +@@ -48,7 +48,7 @@ CONTAINS + + CHARACTER(LEN=2*default_string_length) :: shortform + CHARACTER(LEN=20) :: tmpStr +- CHARACTER(LEN=20*default_string_length) :: reference ++ CHARACTER(LEN=200*default_string_length) :: reference + INTEGER :: i_rep, ifun, il, myfun, n_rep + TYPE(section_vals_type), POINTER :: libxc_fun, xc_fun, xc_fun_section + +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc.F.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc.F +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc.F.xc5 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc.F 2020-09-29 09:07:52.022336509 +0200 +@@ -42,34 +42,36 @@ MODULE xc_libxc + USE xc_rho_set_types, ONLY: xc_rho_set_get, & + xc_rho_set_type + #if defined (__LIBXC) +- USE xc_libxc_wrap, ONLY: xc_f03_func_t, & +- xc_f03_func_init, & +- xc_f03_func_end, & +- xc_f03_func_info_t, & +- xc_f03_func_get_info, & +- xc_f03_func_info_get_family, & +- xc_f03_func_info_get_kind, & +- xc_f03_func_info_get_name, & +- xc_f03_gga_exc, & +- xc_f03_gga_exc_vxc, & +- xc_f03_gga_fxc, & +- xc_f03_gga_vxc, & +- xc_f03_lda, & +- xc_f03_lda_exc, & +- xc_f03_lda_exc_vxc, & +- xc_f03_lda_fxc, & +- xc_f03_lda_kxc, & +- xc_f03_lda_vxc, & +- xc_f03_mgga, & +- xc_f03_mgga_exc, & +- xc_f03_mgga_exc_vxc, & +- xc_f03_mgga_fxc, & +- xc_f03_mgga_vxc, & ++ USE iso_c_binding, ONLY: C_SIZE_T ++ USE xc_libxc_wrap, ONLY: xc_f90_func_t, & ++ xc_f90_func_init, & ++ xc_f90_func_end, & ++ xc_f90_func_info_t, & ++ xc_f90_func_get_info, & ++ xc_f90_func_info_get_family, & ++ xc_f90_func_info_get_kind, & ++ xc_f90_func_info_get_name, & ++ xc_f90_gga_exc, & ++ xc_f90_gga_exc_vxc, & ++ xc_f90_gga_fxc, & ++ xc_f90_gga_vxc, & ++ xc_f90_lda_exc_vxc_fxc_kxc, & ++ xc_f90_lda_exc, & ++ xc_f90_lda_exc_vxc, & ++ xc_f90_lda_fxc, & ++ xc_f90_lda_kxc, & ++ xc_f90_lda_vxc, & ++ xc_f90_mgga_exc, & ++ xc_f90_mgga_exc_vxc, & ++ xc_f90_mgga_exc_vxc_fxc, & ++ xc_f90_mgga_fxc, & ++ xc_f90_mgga_vxc, & + XC_POLARIZED, & + XC_UNPOLARIZED, & + XC_FAMILY_LDA, & + XC_FAMILY_GGA, & + XC_FAMILY_MGGA, & ++ XC_FAMILY_HYB_LDA, & + XC_FAMILY_HYB_GGA, & + XC_FAMILY_HYB_MGGA, & + XC_CORRELATION, & +@@ -91,6 +93,10 @@ MODULE xc_libxc + + CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'xc_libxc' + ++#if defined (__LIBXC) ++ INTEGER(C_SIZE_T), PARAMETER, PRIVATE :: one = 1 ++#endif ++ + PUBLIC :: libxc_lda_info, libxc_lda_eval, libxc_lsd_info, libxc_lsd_eval, & + libxc_version_info + +@@ -121,8 +127,8 @@ CONTAINS + CHARACTER(LEN=default_string_length) :: func_name + INTEGER :: func_id + REAL(KIND=dp) :: func_scale +- TYPE(xc_f03_func_t) :: xc_func +- TYPE(xc_f03_func_info_t) :: xc_info ++ TYPE(xc_f90_func_t) :: xc_func ++ TYPE(xc_f90_func_info_t) :: xc_info + + CALL section_vals_val_get(libxc_params, "functional", c_val=func_name) + CALL section_vals_val_get(libxc_params, "scale", r_val=func_scale) +@@ -134,13 +140,13 @@ CONTAINS + + func_id = xc_libxc_wrap_functional_get_number(func_name) + !$OMP CRITICAL(libxc_init) +- CALL xc_f03_func_init(xc_func, func_id, XC_UNPOLARIZED) +- xc_info = xc_f03_func_get_info(xc_func) ++ CALL xc_f90_func_init(xc_func, func_id, XC_UNPOLARIZED) ++ xc_info = xc_f90_func_get_info(xc_func) + !$OMP END CRITICAL(libxc_init) + !$OMP BARRIER + +- s1 = xc_f03_func_info_get_name(xc_info) +- SELECT CASE (xc_f03_func_info_get_kind(xc_info)) ++ s1 = xc_f90_func_info_get_name(xc_info) ++ SELECT CASE (xc_f90_func_info_get_kind(xc_info)) + CASE (XC_EXCHANGE); WRITE (s2, '(a)') "exchange" + CASE (XC_CORRELATION); WRITE (s2, '(a)') "correlation" + CASE (XC_EXCHANGE_CORRELATION); WRITE (s2, '(a)') "exchange-correlation" +@@ -155,8 +161,8 @@ CONTAINS + CALL xc_libxc_wrap_info_refs(xc_info, XC_UNPOLARIZED, func_scale, reference) + END IF + IF (PRESENT(needs)) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + needs%rho = .TRUE. + CASE (XC_FAMILY_GGA, XC_FAMILY_HYB_GGA) + needs%rho = .TRUE. +@@ -171,8 +177,8 @@ CONTAINS + END SELECT + END IF + IF (PRESENT(max_deriv)) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + max_deriv = 3 + CASE (XC_FAMILY_GGA, XC_FAMILY_HYB_GGA) + max_deriv = 2 +@@ -188,7 +194,7 @@ CONTAINS + END IF + END IF + +- CALL xc_f03_func_end(xc_func) ++ CALL xc_f90_func_end(xc_func) + #else + MARK_USED(libxc_params) + MARK_USED(reference) +@@ -226,8 +232,8 @@ CONTAINS + CHARACTER(LEN=default_string_length) :: func_name + INTEGER :: func_id + REAL(KIND=dp) :: func_scale +- TYPE(xc_f03_func_t) :: xc_func +- TYPE(xc_f03_func_info_t) :: xc_info ++ TYPE(xc_f90_func_t) :: xc_func ++ TYPE(xc_f90_func_info_t) :: xc_info + + CALL section_vals_val_get(libxc_params, "functional", c_val=func_name) + CALL section_vals_val_get(libxc_params, "scale", r_val=func_scale) +@@ -239,13 +245,13 @@ CONTAINS + + func_id = xc_libxc_wrap_functional_get_number(func_name) + !$OMP CRITICAL(libxc_init) +- CALL xc_f03_func_init(xc_func, func_id, XC_POLARIZED) +- xc_info = xc_f03_func_get_info(xc_func) ++ CALL xc_f90_func_init(xc_func, func_id, XC_POLARIZED) ++ xc_info = xc_f90_func_get_info(xc_func) + !$OMP END CRITICAL(libxc_init) + !$OMP BARRIER + +- s1 = xc_f03_func_info_get_name(xc_info) +- SELECT CASE (xc_f03_func_info_get_kind(xc_info)) ++ s1 = xc_f90_func_info_get_name(xc_info) ++ SELECT CASE (xc_f90_func_info_get_kind(xc_info)) + CASE (XC_EXCHANGE); WRITE (s2, '(a)') "exchange" + CASE (XC_CORRELATION); WRITE (s2, '(a)') "correlation" + CASE (XC_EXCHANGE_CORRELATION); WRITE (s2, '(a)') "exchange-correlation" +@@ -260,8 +266,8 @@ CONTAINS + CALL xc_libxc_wrap_info_refs(xc_info, XC_POLARIZED, func_scale, reference) + END IF + IF (PRESENT(needs)) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + needs%rho_spin = .TRUE. + CASE (XC_FAMILY_GGA, XC_FAMILY_HYB_GGA) + needs%rho_spin = .TRUE. +@@ -278,8 +284,8 @@ CONTAINS + END SELECT + END IF + IF (PRESENT(max_deriv)) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + max_deriv = 3 + CASE (XC_FAMILY_GGA, XC_FAMILY_HYB_GGA) + max_deriv = 2 +@@ -295,7 +301,7 @@ CONTAINS + END IF + END IF + +- CALL xc_f03_func_end(xc_func) ++ CALL xc_f90_func_end(xc_func) + #else + MARK_USED(libxc_params) + MARK_USED(reference) +@@ -358,8 +364,8 @@ CONTAINS + e_rho_laplace_rho, e_rho_rho, e_rho_rho_rho, e_rho_tau, e_tau, & + e_tau_tau, laplace_rho, norm_drho, rho, tau + TYPE(xc_derivative_type), POINTER :: deriv +- TYPE(xc_f03_func_t) :: xc_func +- TYPE(xc_f03_func_info_t) :: xc_info ++ TYPE(xc_f90_func_t) :: xc_func ++ TYPE(xc_f90_func_info_t) :: xc_info + + CALL timeset(routineN, handle) + +@@ -380,8 +386,8 @@ CONTAINS + + func_id = xc_libxc_wrap_functional_get_number(func_name) + !$OMP CRITICAL(libxc_init) +- CALL xc_f03_func_init(xc_func, func_id, XC_UNPOLARIZED) +- xc_info = xc_f03_func_get_info(xc_func) ++ CALL xc_f90_func_init(xc_func, func_id, XC_UNPOLARIZED) ++ xc_info = xc_f90_func_get_info(xc_func) + !$OMP END CRITICAL(libxc_init) + !$OMP BARRIER + +@@ -426,8 +432,8 @@ CONTAINS + CALL xc_derivative_get(deriv, deriv_data=e_0) + END IF + IF (grad_deriv >= 1 .OR. grad_deriv == -1) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + deriv => xc_dset_get_derivative(deriv_set, "(rho)", & + allocate_deriv=.TRUE.) + CALL xc_derivative_get(deriv, deriv_data=e_rho) +@@ -458,8 +464,8 @@ CONTAINS + END SELECT + END IF + IF (grad_deriv >= 2 .OR. grad_deriv == -2) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + deriv => xc_dset_get_derivative(deriv_set, "(rho)(rho)", & + allocate_deriv=.TRUE.) + CALL xc_derivative_get(deriv, deriv_data=e_rho_rho) +@@ -514,8 +520,8 @@ CONTAINS + END SELECT + END IF + IF (grad_deriv >= 3 .OR. grad_deriv == -3) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + deriv => xc_dset_get_derivative(deriv_set, "(rho)(rho)(rho)", & + allocate_deriv=.TRUE.) + CALL xc_derivative_get(deriv, deriv_data=e_rho_rho_rho) +@@ -556,7 +562,7 @@ CONTAINS + + NULLIFY (dummy) + +- CALL xc_f03_func_end(xc_func) ++ CALL xc_f90_func_end(xc_func) + + CALL timestop(handle) + #else +@@ -615,8 +621,8 @@ CONTAINS + e_tau_a_tau_b, e_tau_b, e_tau_b_tau_b, laplace_rhoa, laplace_rhob, & + norm_drho, norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b + TYPE(xc_derivative_type), POINTER :: deriv +- TYPE(xc_f03_func_t) :: xc_func +- TYPE(xc_f03_func_info_t) :: xc_info ++ TYPE(xc_f90_func_t) :: xc_func ++ TYPE(xc_f90_func_info_t) :: xc_info + + CALL timeset(routineN, handle) + +@@ -638,8 +644,8 @@ CONTAINS + + func_id = xc_libxc_wrap_functional_get_number(func_name) + !$OMP CRITICAL(libxc_init) +- CALL xc_f03_func_init(xc_func, func_id, XC_POLARIZED) +- xc_info = xc_f03_func_get_info(xc_func) ++ CALL xc_f90_func_init(xc_func, func_id, XC_POLARIZED) ++ xc_info = xc_f90_func_get_info(xc_func) + !$OMP END CRITICAL(libxc_init) + !$OMP BARRIER + +@@ -733,8 +739,8 @@ CONTAINS + CALL xc_derivative_get(deriv, deriv_data=e_0) + END IF + IF (grad_deriv >= 1 .OR. grad_deriv == -1) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + deriv => xc_dset_get_derivative(deriv_set, "(rhoa)", & + allocate_deriv=.TRUE.) + CALL xc_derivative_get(deriv, deriv_data=e_rhoa) +@@ -792,8 +798,8 @@ CONTAINS + END SELECT + END IF + IF (grad_deriv >= 2 .OR. grad_deriv == -2) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + deriv => xc_dset_get_derivative(deriv_set, "(rhoa)(rhoa)", & + allocate_deriv=.TRUE.) + CALL xc_derivative_get(deriv, deriv_data=e_rhoa_rhoa) +@@ -995,8 +1001,8 @@ CONTAINS + END SELECT + END IF + IF (grad_deriv >= 3 .OR. grad_deriv == -3) THEN +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + deriv => xc_dset_get_derivative(deriv_set, "(rhoa)(rhoa)(rhoa)", & + allocate_deriv=.TRUE.) + CALL xc_derivative_get(deriv, deriv_data=e_rhoa_rhoa_rhoa) +@@ -1094,7 +1100,7 @@ CONTAINS + + NULLIFY (dummy) + +- CALL xc_f03_func_end(xc_func) ++ CALL xc_f90_func_end(xc_func) + + CALL timestop(handle) + #else +@@ -1163,26 +1169,26 @@ CONTAINS + REAL(KIND=dp), DIMENSION(1) :: exc, my_tau, sigma, v2lapl2, v2lapltau, v2rho2, v2rholapl, & + v2rhosigma, v2rhotau, v2sigma2, v2sigmalapl, v2sigmatau, v2tau2, v3rho3, vlapl, vrho, & + vsigma, vtau +- TYPE(xc_f03_func_info_t) :: xc_info +- TYPE(xc_f03_func_t) :: xc_func ++ TYPE(xc_f90_func_info_t) :: xc_info ++ TYPE(xc_f90_func_t) :: xc_func + + ! init vlapl (prevent libxc-4.0.x bug) + vlapl = 0.0_dp + + func_id = xc_libxc_wrap_functional_get_number(func_name) + !$OMP CRITICAL(libxc_init) +- CALL xc_f03_func_init(xc_func, func_id, XC_UNPOLARIZED) +- xc_info = xc_f03_func_get_info(xc_func) ++ CALL xc_f90_func_init(xc_func, func_id, XC_UNPOLARIZED) ++ xc_info = xc_f90_func_get_info(xc_func) + CALL xc_libxc_wrap_functional_set_params(xc_func, xc_info, params, no_exc) + !$OMP END CRITICAL(libxc_init) + !$OMP BARRIER +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + IF (grad_deriv == 0) THEN + !$OMP DO + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN +- CALL xc_f03_lda_exc(xc_func, 1, rho(ii), exc) ++ CALL xc_f90_lda_exc(xc_func, one, rho(ii), exc) + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) + END IF + END DO +@@ -1191,7 +1197,7 @@ CONTAINS + !$OMP DO + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN +- CALL xc_f03_lda_vxc(xc_func, 1, rho(ii), vrho) ++ CALL xc_f90_lda_vxc(xc_func, one, rho(ii), vrho) + e_rho(ii) = e_rho(ii) + sc*vrho(1) + END IF + END DO +@@ -1200,7 +1206,7 @@ CONTAINS + !$OMP DO + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN +- CALL xc_f03_lda_exc_vxc(xc_func, 1, rho(ii), exc, vrho) ++ CALL xc_f90_lda_exc_vxc(xc_func, one, rho(ii), exc, vrho) + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) + e_rho(ii) = e_rho(ii) + sc*vrho(1) + END IF +@@ -1210,7 +1216,7 @@ CONTAINS + !$OMP DO + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN +- CALL xc_f03_lda_fxc(xc_func, 1, rho(ii), v2rho2) ++ CALL xc_f90_lda_fxc(xc_func, one, rho(ii), v2rho2) + e_rho_rho(ii) = e_rho_rho(ii) + sc*v2rho2(1) + END IF + END DO +@@ -1219,8 +1225,8 @@ CONTAINS + !$OMP DO + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN +- CALL xc_f03_lda_exc_vxc(xc_func, 1, rho(ii), exc, vrho) +- CALL xc_f03_lda_fxc(xc_func, 1, rho(ii), v2rho2) ++ CALL xc_f90_lda_exc_vxc(xc_func, one, rho(ii), exc, vrho) ++ CALL xc_f90_lda_fxc(xc_func, one, rho(ii), v2rho2) + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) + e_rho(ii) = e_rho(ii) + sc*vrho(1) + e_rho_rho(ii) = e_rho_rho(ii) + sc*v2rho2(1) +@@ -1231,7 +1237,7 @@ CONTAINS + !$OMP DO + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN +- CALL xc_f03_lda_kxc(xc_func, 1, rho(ii), v3rho3) ++ CALL xc_f90_lda_kxc(xc_func, one, rho(ii), v3rho3) + e_rho_rho_rho(ii) = e_rho_rho_rho(ii) + sc*v3rho3(1) + END IF + END DO +@@ -1240,7 +1246,7 @@ CONTAINS + !$OMP DO + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN +- CALL xc_f03_lda(xc_func, 1, rho(ii), exc, vrho, v2rho2, v3rho3) ++ CALL xc_f90_lda_exc_vxc_fxc_kxc(xc_func, one, rho(ii), exc, vrho, v2rho2, v3rho3) + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) + e_rho(ii) = e_rho(ii) + sc*vrho(1) + e_rho_rho(ii) = e_rho_rho(ii) + sc*v2rho2(1) +@@ -1255,7 +1261,7 @@ CONTAINS + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN + sigma = norm_drho(ii)**2 +- CALL xc_f03_gga_exc(xc_func, 1, rho(ii), sigma, exc) ++ CALL xc_f90_gga_exc(xc_func, one, rho(ii), sigma, exc) + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) + END IF + END DO +@@ -1265,7 +1271,7 @@ CONTAINS + DO ii = 1, npoints + IF (rho(ii) > epsilon_rho) THEN + sigma = norm_drho(ii)**2 +- CALL xc_f03_gga_vxc(xc_func, 1, rho(ii), sigma, vrho, vsigma) ++ CALL xc_f90_gga_vxc(xc_func, one, rho(ii), sigma, vrho, vsigma) + e_rho(ii) = e_rho(ii) + sc*vrho(1) + e_ndrho(ii) = e_ndrho(ii) + sc*2.0_dp*vsigma(1)*norm_drho(ii) + END IF +@@ -1277,10 +1283,10 @@ CONTAINS + IF (rho(ii) > epsilon_rho) THEN + sigma = norm_drho(ii)**2 + IF (no_exc) THEN +- CALL xc_f03_gga_vxc(xc_func, 1, rho(ii), sigma, vrho, vsigma) ++ CALL xc_f90_gga_vxc(xc_func, one, rho(ii), sigma, vrho, vsigma) + exc = 0.0_dp + ELSE +- CALL xc_f03_gga_exc_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_gga_exc_vxc(xc_func, one, rho(ii), sigma, & + exc, vrho, vsigma) + END IF + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) +@@ -1295,13 +1301,13 @@ CONTAINS + IF (rho(ii) > epsilon_rho) THEN + sigma = norm_drho(ii)**2 + IF (no_exc) THEN +- CALL xc_f03_gga_vxc(xc_func, 1, rho(ii), sigma, vrho, vsigma) +- CALL xc_f03_gga_fxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_gga_vxc(xc_func, one, rho(ii), sigma, vrho, vsigma) ++ CALL xc_f90_gga_fxc(xc_func, one, rho(ii), sigma, & + v2rho2, v2rhosigma, v2sigma2) + ELSE +- CALL xc_f03_gga_exc_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_gga_exc_vxc(xc_func, one, rho(ii), sigma, & + exc, vrho, vsigma) +- CALL xc_f03_gga_fxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_gga_fxc(xc_func, one, rho(ii), sigma, & + v2rho2, v2rhosigma, v2sigma2) + END IF + e_rho_rho(ii) = e_rho_rho(ii) + sc*v2rho2(1) +@@ -1317,14 +1323,14 @@ CONTAINS + IF (rho(ii) > epsilon_rho) THEN + sigma = norm_drho(ii)**2 + IF (no_exc) THEN +- CALL xc_f03_gga_vxc(xc_func, 1, rho(ii), sigma, vrho, vsigma) +- CALL xc_f03_gga_fxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_gga_vxc(xc_func, one, rho(ii), sigma, vrho, vsigma) ++ CALL xc_f90_gga_fxc(xc_func, one, rho(ii), sigma, & + v2rho2, v2rhosigma, v2sigma2) + exc = 0.0_dp + ELSE +- CALL xc_f03_gga_exc_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_gga_exc_vxc(xc_func, one, rho(ii), sigma, & + exc, vrho, vsigma) +- CALL xc_f03_gga_fxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_gga_fxc(xc_func, one, rho(ii), sigma, & + v2rho2, v2rhosigma, v2sigma2) + END IF + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) +@@ -1345,7 +1351,7 @@ CONTAINS + IF ((rho(ii) > epsilon_rho) .AND. (tau(ii) > epsilon_tau)) THEN + sigma = norm_drho(ii)**2 + my_tau(1) = MAX(tau(ii), sigma(1)/(8.0_dp*rho(ii))) +- CALL xc_f03_mgga_exc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_exc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, exc) + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) + END IF +@@ -1357,7 +1363,7 @@ CONTAINS + IF ((rho(ii) > epsilon_rho) .AND. (tau(ii) > epsilon_tau)) THEN + sigma = norm_drho(ii)**2 + my_tau(1) = MAX(tau(ii), sigma(1)/(8.0_dp*rho(ii))) +- CALL xc_f03_mgga_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_vxc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, vrho, vsigma, vlapl, vtau) + e_rho(ii) = e_rho(ii) + sc*vrho(1) + e_ndrho(ii) = e_ndrho(ii) + sc*2.0_dp*vsigma(1)*norm_drho(ii) +@@ -1373,11 +1379,11 @@ CONTAINS + sigma(1) = norm_drho(ii)**2 + my_tau(1) = MAX(tau(ii), sigma(1)/(8.0_dp*rho(ii))) + IF (no_exc) THEN +- CALL xc_f03_mgga_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_vxc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, vrho, vsigma, vlapl, vtau) + exc = 0.0_dp + ELSE +- CALL xc_f03_mgga_exc_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_exc_vxc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, exc, vrho, vsigma, vlapl, vtau) + END IF + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) +@@ -1395,17 +1401,17 @@ CONTAINS + sigma = norm_drho(ii)**2 + my_tau(1) = MAX(tau(ii), sigma(1)/(8.0_dp*rho(ii))) + IF (no_exc) THEN +- CALL xc_f03_mgga_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_vxc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, vrho, vsigma, vlapl, vtau) +- CALL xc_f03_mgga_fxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_fxc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, & + v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, & + v2rhotau, v2sigmalapl, v2sigmatau, v2lapltau) + ELSE +- CALL xc_f03_mgga(xc_func, 1, rho(ii), sigma, & +- laplace_rho(ii), my_tau, exc, vrho, vsigma, vlapl, vtau, & +- v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, & +- v2rhotau, v2sigmalapl, v2sigmatau, v2lapltau) ++ CALL xc_f90_mgga_exc_vxc_fxc(xc_func, one, rho(ii), sigma, & ++ laplace_rho(ii), my_tau, exc, vrho, vsigma, vlapl, vtau, & ++ v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, & ++ v2rhotau, v2sigmalapl, v2sigmatau, v2lapltau) + END IF + e_rho_rho(ii) = e_rho_rho(ii) + sc*v2rho2(1) + e_ndrho_rho(ii) = e_ndrho_rho(ii) + sc*2.0_dp*v2rhosigma(1)*norm_drho(ii) +@@ -1429,18 +1435,18 @@ CONTAINS + sigma = norm_drho(ii)**2 + my_tau(1) = MAX(tau(ii), sigma(1)/(8.0_dp*rho(ii))) + IF (no_exc) THEN +- CALL xc_f03_mgga_vxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_vxc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, vrho, vsigma, vlapl, vtau) +- CALL xc_f03_mgga_fxc(xc_func, 1, rho(ii), sigma, & ++ CALL xc_f90_mgga_fxc(xc_func, one, rho(ii), sigma, & + laplace_rho(ii), my_tau, & + v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, & + v2rhotau, v2sigmalapl, v2sigmatau, v2lapltau) + exc = 0.0_dp + ELSE +- CALL xc_f03_mgga(xc_func, 1, rho(ii), sigma, & +- laplace_rho(ii), my_tau, exc, vrho, vsigma, vlapl, vtau, & +- v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, & +- v2rhotau, v2sigmalapl, v2sigmatau, v2lapltau) ++ CALL xc_f90_mgga_exc_vxc_fxc(xc_func, one, rho(ii), sigma, & ++ laplace_rho(ii), my_tau, exc, vrho, vsigma, vlapl, vtau, & ++ v2rho2, v2sigma2, v2lapl2, v2tau2, v2rhosigma, v2rholapl, & ++ v2rhotau, v2sigmalapl, v2sigmatau, v2lapltau) + END IF + e_0(ii) = e_0(ii) + sc*exc(1)*rho(ii) + e_rho(ii) = e_rho(ii) + sc*vrho(1) +@@ -1467,7 +1473,7 @@ CONTAINS + CPABORT(TRIM(func_name)//": this XC_FAMILY is currently not supported.") + END SELECT + +- CALL xc_f03_func_end(xc_func) ++ CALL xc_f90_func_end(xc_func) + + END SUBROUTINE libxc_lda_calc + #endif +@@ -1617,22 +1623,22 @@ CONTAINS + REAL(KIND=dp), DIMENSION(4, 1) :: v2lapltau, v2rholapl, v2rhotau, v3rho3 + REAL(KIND=dp), DIMENSION(6, 1) :: v2rhosigma, v2sigma2, v2sigmalapl, & + v2sigmatau +- TYPE(xc_f03_func_info_t) :: xc_info +- TYPE(xc_f03_func_t) :: xc_func ++ TYPE(xc_f90_func_info_t) :: xc_info ++ TYPE(xc_f90_func_t) :: xc_func + + vlapl(1, 1) = 0.0_dp + vlapl(2, 1) = 0.0_dp + + func_id = xc_libxc_wrap_functional_get_number(func_name) + !$OMP CRITICAL(libxc_init) +- CALL xc_f03_func_init(xc_func, func_id, XC_POLARIZED) +- xc_info = xc_f03_func_get_info(xc_func) ++ CALL xc_f90_func_init(xc_func, func_id, XC_POLARIZED) ++ xc_info = xc_f90_func_get_info(xc_func) + CALL xc_libxc_wrap_functional_set_params(xc_func, xc_info, params, no_exc) + !$OMP END CRITICAL(libxc_init) + !$OMP BARRIER + +- SELECT CASE (xc_f03_func_info_get_family(xc_info)) +- CASE (XC_FAMILY_LDA) ++ SELECT CASE (xc_f90_func_info_get_family(xc_info)) ++ CASE (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) + IF (grad_deriv == 0) THEN + !$OMP DO + DO ii = 1, npoints +@@ -1641,7 +1647,7 @@ CONTAINS + IF ((my_rhoa + my_rhob) > epsilon_rho) THEN + rhov(1, 1) = MAX(my_rhoa, EPSILON(0.0_dp)*1.e4_dp) + rhov(2, 1) = MAX(my_rhob, EPSILON(0.0_dp)*1.e4_dp) +- CALL xc_f03_lda_exc(xc_func, 1, rhov(1, 1), exc) ++ CALL xc_f90_lda_exc(xc_func, one, rhov(1, 1), exc) + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + END IF + END DO +@@ -1654,7 +1660,7 @@ CONTAINS + IF ((my_rhoa + my_rhob) > epsilon_rho) THEN + rhov(1, 1) = MAX(my_rhoa, EPSILON(0.0_dp)*1.e4_dp) + rhov(2, 1) = MAX(my_rhob, EPSILON(0.0_dp)*1.e4_dp) +- CALL xc_f03_lda_vxc(xc_func, 1, rhov(1, 1), vrho(1, 1)) ++ CALL xc_f90_lda_vxc(xc_func, one, rhov(1, 1), vrho(1, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) + e_rhob(ii) = e_rhob(ii) + sc*vrho(2, 1) + END IF +@@ -1668,7 +1674,7 @@ CONTAINS + IF ((my_rhoa + my_rhob) > epsilon_rho) THEN + rhov(1, 1) = MAX(my_rhoa, EPSILON(0.0_dp)*1.e4_dp) + rhov(2, 1) = MAX(my_rhob, EPSILON(0.0_dp)*1.e4_dp) +- CALL xc_f03_lda_exc_vxc(xc_func, 1, rhov(1, 1), exc, vrho(1, 1)) ++ CALL xc_f90_lda_exc_vxc(xc_func, one, rhov(1, 1), exc, vrho(1, 1)) + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) + e_rhob(ii) = e_rhob(ii) + sc*vrho(2, 1) +@@ -1683,7 +1689,7 @@ CONTAINS + IF ((my_rhoa + my_rhob) > epsilon_rho) THEN + rhov(1, 1) = MAX(my_rhoa, EPSILON(0.0_dp)*1.e4_dp) + rhov(2, 1) = MAX(my_rhob, EPSILON(0.0_dp)*1.e4_dp) +- CALL xc_f03_lda_fxc(xc_func, 1, rhov(1, 1), v2rho2(1, 1)) ++ CALL xc_f90_lda_fxc(xc_func, one, rhov(1, 1), v2rho2(1, 1)) + e_rhoa_rhoa(ii) = e_rhoa_rhoa(ii) + sc*v2rho2(1, 1) + e_rhoa_rhob(ii) = e_rhoa_rhob(ii) + sc*v2rho2(2, 1) + e_rhob_rhob(ii) = e_rhob_rhob(ii) + sc*v2rho2(3, 1) +@@ -1698,8 +1704,8 @@ CONTAINS + IF ((my_rhoa + my_rhob) > epsilon_rho) THEN + rhov(1, 1) = MAX(my_rhoa, EPSILON(0.0_dp)*1.e4_dp) + rhov(2, 1) = MAX(my_rhob, EPSILON(0.0_dp)*1.e4_dp) +- CALL xc_f03_lda_exc_vxc(xc_func, 1, rhov(1, 1), exc, vrho(1, 1)) +- CALL xc_f03_lda_fxc(xc_func, 1, rhov(1, 1), v2rho2(1, 1)) ++ CALL xc_f90_lda_exc_vxc(xc_func, one, rhov(1, 1), exc, vrho(1, 1)) ++ CALL xc_f90_lda_fxc(xc_func, one, rhov(1, 1), v2rho2(1, 1)) + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) + e_rhob(ii) = e_rhob(ii) + sc*vrho(2, 1) +@@ -1717,7 +1723,7 @@ CONTAINS + IF ((my_rhoa + my_rhob) > epsilon_rho) THEN + rhov(1, 1) = MAX(my_rhoa, EPSILON(0.0_dp)*1.e4_dp) + rhov(2, 1) = MAX(my_rhob, EPSILON(0.0_dp)*1.e4_dp) +- CALL xc_f03_lda_kxc(xc_func, 1, rhov(1, 1), v3rho3(1, 1)) ++ CALL xc_f90_lda_kxc(xc_func, one, rhov(1, 1), v3rho3(1, 1)) + e_rhoa_rhoa_rhoa(ii) = e_rhoa_rhoa_rhoa(ii) + sc*v3rho3(1, 1) + e_rhoa_rhoa_rhob(ii) = e_rhoa_rhoa_rhob(ii) + sc*v3rho3(2, 1) + e_rhoa_rhob_rhob(ii) = e_rhoa_rhob_rhob(ii) + sc*v3rho3(3, 1) +@@ -1733,7 +1739,7 @@ CONTAINS + IF ((my_rhoa + my_rhob) > epsilon_rho) THEN + rhov(1, 1) = MAX(my_rhoa, EPSILON(0.0_dp)*1.e4_dp) + rhov(2, 1) = MAX(my_rhob, EPSILON(0.0_dp)*1.e4_dp) +- CALL xc_f03_lda(xc_func, 1, rhov(1, 1), exc, vrho(1, 1), v2rho2(1, 1), v3rho3(1, 1)) ++ CALL xc_f90_lda_exc_vxc_fxc_kxc(xc_func, one, rhov(1, 1), exc, vrho(1, 1), v2rho2(1, 1), v3rho3(1, 1)) + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) + e_rhob(ii) = e_rhob(ii) + sc*vrho(2, 1) +@@ -1763,7 +1769,7 @@ CONTAINS + sigmav(1, 1) = my_norm_drhoa**2 + sigmav(3, 1) = my_norm_drhob**2 + sigmav(2, 1) = 0.5_dp*(my_norm_drho**2 - sigmav(1, 1) - sigmav(3, 1)) +- CALL xc_f03_gga_exc(xc_func, 1, rhov(1, 1), sigmav(1, 1), exc) ++ CALL xc_f90_gga_exc(xc_func, one, rhov(1, 1), sigmav(1, 1), exc) + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + END IF + END DO +@@ -1782,7 +1788,7 @@ CONTAINS + sigmav(1, 1) = my_norm_drhoa**2 + sigmav(3, 1) = my_norm_drhob**2 + sigmav(2, 1) = 0.5_dp*(my_norm_drho**2 - sigmav(1, 1) - sigmav(3, 1)) +- CALL xc_f03_gga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) ++ CALL xc_f90_gga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) + e_rhob(ii) = e_rhob(ii) + sc*vrho(2, 1) + e_ndrho(ii) = e_ndrho(ii) + sc*vsigma(2, 1)*my_norm_drho +@@ -1808,10 +1814,10 @@ CONTAINS + sigmav(3, 1) = my_norm_drhob**2 + sigmav(2, 1) = 0.5_dp*(my_norm_drho**2 - sigmav(1, 1) - sigmav(3, 1)) + IF (no_exc) THEN +- CALL xc_f03_gga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) ++ CALL xc_f90_gga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) + exc = 0.0_dp + ELSE +- CALL xc_f03_gga_exc_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), exc, vrho(1, 1), vsigma(1, 1)) ++ CALL xc_f90_gga_exc_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), exc, vrho(1, 1), vsigma(1, 1)) + END IF + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) +@@ -1839,12 +1845,12 @@ CONTAINS + sigmav(3, 1) = my_norm_drhob**2 + sigmav(2, 1) = 0.5_dp*(my_norm_drho**2 - sigmav(1, 1) - sigmav(3, 1)) + IF (no_exc) THEN +- CALL xc_f03_gga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) +- CALL xc_f03_gga_fxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_gga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) ++ CALL xc_f90_gga_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + v2rho2(1, 1), v2rhosigma(1, 1), v2sigma2(1, 1)) + ELSE +- CALL xc_f03_gga_exc_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), exc, vrho(1, 1), vsigma(1, 1)) +- CALL xc_f03_gga_fxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_gga_exc_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), exc, vrho(1, 1), vsigma(1, 1)) ++ CALL xc_f90_gga_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + v2rho2(1, 1), v2rhosigma(1, 1), v2sigma2(1, 1)) + END IF + e_rhoa_rhoa(ii) = e_rhoa_rhoa(ii) + sc*v2rho2(1, 1) +@@ -1893,13 +1899,13 @@ CONTAINS + sigmav(3, 1) = my_norm_drhob**2 + sigmav(2, 1) = 0.5_dp*(my_norm_drho**2 - sigmav(1, 1) - sigmav(3, 1)) + IF (no_exc) THEN +- CALL xc_f03_gga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) +- CALL xc_f03_gga_fxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_gga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), vrho(1, 1), vsigma(1, 1)) ++ CALL xc_f90_gga_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + v2rho2(1, 1), v2rhosigma(1, 1), v2sigma2(1, 1)) + exc = 0.0_dp + ELSE +- CALL xc_f03_gga_exc_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), exc, vrho(1, 1), vsigma(1, 1)) +- CALL xc_f03_gga_fxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_gga_exc_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), exc, vrho(1, 1), vsigma(1, 1)) ++ CALL xc_f90_gga_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + v2rho2(1, 1), v2rhosigma(1, 1), v2sigma2(1, 1)) + END IF + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) +@@ -1965,7 +1971,7 @@ CONTAINS + tauv(2, 1) = MAX(my_tau_b, EPSILON(0.0_dp)*1.e4_dp) + tauv(1, 1) = MAX(tauv(1, 1), sigmav(1, 1)/(8.0_dp*rhov(1, 1))) + tauv(2, 1) = MAX(tauv(2, 1), sigmav(3, 1)/(8.0_dp*rhov(2, 1))) +- CALL xc_f03_mgga_exc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_exc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), exc) + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + END IF +@@ -1993,7 +1999,7 @@ CONTAINS + tauv(2, 1) = MAX(my_tau_b, EPSILON(0.0_dp)*1.e4_dp) + tauv(1, 1) = MAX(tauv(1, 1), sigmav(1, 1)/(8.0_dp*rhov(1, 1))) + tauv(2, 1) = MAX(tauv(2, 1), sigmav(3, 1)/(8.0_dp*rhov(2, 1))) +- CALL xc_f03_mgga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), vrho(1, 1), vsigma(1, 1), vlapl(1, 1), vtau(1, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) + e_rhob(ii) = e_rhob(ii) + sc*vrho(2, 1) +@@ -2032,12 +2038,12 @@ CONTAINS + tauv(1, 1) = MAX(tauv(1, 1), sigmav(1, 1)/(8.0_dp*rhov(1, 1))) + tauv(2, 1) = MAX(tauv(2, 1), sigmav(3, 1)/(8.0_dp*rhov(2, 1))) + IF (no_exc) THEN +- CALL xc_f03_mgga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), vrho(1, 1), vsigma(1, 1), & + vlapl(1, 1), vtau(1, 1)) + exc = 0.0_dp + ELSE +- CALL xc_f03_mgga_exc_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_exc_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), exc, & + vrho(1, 1), vsigma(1, 1), vlapl(1, 1), vtau(1, 1)) + END IF +@@ -2079,20 +2085,20 @@ CONTAINS + tauv(1, 1) = MAX(tauv(1, 1), sigmav(1, 1)/(8.0_dp*rhov(1, 1))) + tauv(2, 1) = MAX(tauv(2, 1), sigmav(3, 1)/(8.0_dp*rhov(2, 1))) + IF (no_exc) THEN +- CALL xc_f03_mgga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), vrho(1, 1), vsigma(1, 1), & + vlapl(1, 1), vtau(1, 1)) +- CALL xc_f03_mgga_fxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), & + v2rho2(1, 1), v2sigma2(1, 1), v2lapl2(1, 1), v2tau2(1, 1), & + v2rhosigma(1, 1), v2rholapl(1, 1), v2rhotau(1, 1), & + v2sigmalapl(1, 1), v2sigmatau(1, 1), v2lapltau(1, 1)) + ELSE +- CALL xc_f03_mgga(xc_func, 1, rhov(1, 1), sigmav(1, 1), & +- laplace_rhov(1, 1), tauv(1, 1), exc, vrho(1, 1), vsigma(1, 1), & +- vlapl(1, 1), vtau(1, 1), v2rho2(1, 1), v2sigma2(1, 1), & +- v2lapl2(1, 1), v2tau2(1, 1), v2rhosigma(1, 1), v2rholapl(1, 1), & +- v2rhotau(1, 1), v2sigmalapl(1, 1), v2sigmatau(1, 1), v2lapltau(1, 1)) ++ CALL xc_f90_mgga_exc_vxc_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & ++ laplace_rhov(1, 1), tauv(1, 1), exc, vrho(1, 1), vsigma(1, 1), & ++ vlapl(1, 1), vtau(1, 1), v2rho2(1, 1), v2sigma2(1, 1), & ++ v2lapl2(1, 1), v2tau2(1, 1), v2rhosigma(1, 1), v2rholapl(1, 1), & ++ v2rhotau(1, 1), v2sigmalapl(1, 1), v2sigmatau(1, 1), v2lapltau(1, 1)) + END IF + e_rhoa_rhoa(ii) = e_rhoa_rhoa(ii) + sc*v2rho2(1, 1) + e_rhoa_rhob(ii) = e_rhoa_rhob(ii) + sc*v2rho2(2, 1) +@@ -2186,21 +2192,21 @@ CONTAINS + tauv(1, 1) = MAX(tauv(1, 1), sigmav(1, 1)/(8.0_dp*rhov(1, 1))) + tauv(2, 1) = MAX(tauv(2, 1), sigmav(3, 1)/(8.0_dp*rhov(2, 1))) + IF (no_exc) THEN +- CALL xc_f03_mgga_vxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_vxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), vrho(1, 1), vsigma(1, 1), & + vlapl(1, 1), vtau(1, 1)) +- CALL xc_f03_mgga_fxc(xc_func, 1, rhov(1, 1), sigmav(1, 1), & ++ CALL xc_f90_mgga_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & + laplace_rhov(1, 1), tauv(1, 1), & + v2rho2(1, 1), v2sigma2(1, 1), v2lapl2(1, 1), v2tau2(1, 1), & + v2rhosigma(1, 1), v2rholapl(1, 1), v2rhotau(1, 1), & + v2sigmalapl(1, 1), v2sigmatau(1, 1), v2lapltau(1, 1)) + exc = 0.0_dp + ELSE +- CALL xc_f03_mgga(xc_func, 1, rhov(1, 1), sigmav(1, 1), & +- laplace_rhov(1, 1), tauv(1, 1), exc, vrho(1, 1), vsigma(1, 1), & +- vlapl(1, 1), vtau(1, 1), v2rho2(1, 1), v2sigma2(1, 1), & +- v2lapl2(1, 1), v2tau2(1, 1), v2rhosigma(1, 1), v2rholapl(1, 1), & +- v2rhotau(1, 1), v2sigmalapl(1, 1), v2sigmatau(1, 1), v2lapltau(1, 1)) ++ CALL xc_f90_mgga_exc_vxc_fxc(xc_func, one, rhov(1, 1), sigmav(1, 1), & ++ laplace_rhov(1, 1), tauv(1, 1), exc, vrho(1, 1), vsigma(1, 1), & ++ vlapl(1, 1), vtau(1, 1), v2rho2(1, 1), v2sigma2(1, 1), & ++ v2lapl2(1, 1), v2tau2(1, 1), v2rhosigma(1, 1), v2rholapl(1, 1), & ++ v2rhotau(1, 1), v2sigmalapl(1, 1), v2sigmatau(1, 1), v2lapltau(1, 1)) + END IF + e_0(ii) = e_0(ii) + sc*exc(1)*(rhov(1, 1) + rhov(2, 1)) + e_rhoa(ii) = e_rhoa(ii) + sc*vrho(1, 1) +@@ -2288,7 +2294,7 @@ CONTAINS + CPABORT(TRIM(func_name)//": this XC_FAMILY is currently not supported.") + END SELECT + +- CALL xc_f03_func_end(xc_func) ++ CALL xc_f90_func_end(xc_func) + + END SUBROUTINE libxc_lsd_calc + #endif +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc_wrap.F.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc_wrap.F +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc_wrap.F.xc5 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/src/xc/xc_libxc_wrap.F 2020-09-29 09:12:02.935183992 +0200 +@@ -9,7 +9,7 @@ + !> \brief Includes all necessary routines, functions and parameters from + !> libxc. Provides CP2K routines/functions where the LibXC calling list + !> is version dependent (>=4.0.3). The naming convention for such +-!> routines/functions is xc_f03_XXX --> 'xc_libxc_wrap_XXX'. All version ++!> routines/functions is xc_f90_XXX --> 'xc_libxc_wrap_XXX'. All version + !> independent routines/functions are just bypassed to higher level + !> module file 'xc_libxc'. + !> +@@ -31,48 +31,49 @@ MODULE xc_libxc_wrap + ! Functionals which require parameters + USE cp_log_handling, ONLY: cp_to_string + USE kinds, ONLY: dp +- USE xc_f03_lib_m, ONLY: xc_f03_func_end, & +- xc_f03_func_init, & +- xc_f03_func_set_ext_params, & +- xc_f03_functional_get_number, & ++ USE xc_f90_lib_m, ONLY: xc_f90_func_end, & ++ xc_f90_func_init, & ++ xc_f90_func_set_ext_params, & ++ xc_f90_functional_get_number, & + ! +- xc_f03_gga_exc, & +- xc_f03_gga_exc_vxc, & +- xc_f03_gga_fxc, & +- xc_f03_gga_vxc, & ++ xc_f90_gga_exc, & ++ xc_f90_gga_exc_vxc, & ++ xc_f90_gga_fxc, & ++ xc_f90_gga_vxc, & + ! +- xc_f03_func_get_info, & +- xc_f03_func_info_get_family, & +- xc_f03_func_info_get_kind, & +- xc_f03_func_info_get_name, & +- xc_f03_func_info_get_references, & +- xc_f03_func_info_get_flags, & +- xc_f03_func_info_get_n_ext_params, & +- xc_f03_func_info_get_ext_params_description, & ++ xc_f90_func_get_info, & ++ xc_f90_func_info_get_family, & ++ xc_f90_func_info_get_kind, & ++ xc_f90_func_info_get_name, & ++ xc_f90_func_info_get_references, & ++ xc_f90_func_info_get_flags, & ++ xc_f90_func_info_get_n_ext_params, & ++ xc_f90_func_info_get_ext_params_description, & + ! +- xc_f03_func_reference_get_ref, & +- xc_f03_func_reference_get_doi, & ++ xc_f90_func_reference_get_ref, & ++ xc_f90_func_reference_get_doi, & + ! +- xc_f03_lda, & +- xc_f03_lda_exc, & +- xc_f03_lda_exc_vxc, & +- xc_f03_lda_fxc, & +- xc_f03_lda_kxc, & +- xc_f03_lda_vxc, & ++ xc_f90_lda_exc, & ++ xc_f90_lda_exc_vxc, & ++ xc_f90_lda_fxc, & ++ xc_f90_lda_kxc, & ++ xc_f90_lda_vxc, & ++ xc_f90_lda_exc_vxc_fxc_kxc, & + ! +- xc_f03_mgga, & +- xc_f03_mgga_exc, & +- xc_f03_mgga_exc_vxc, & +- xc_f03_mgga_fxc, & +- xc_f03_mgga_vxc, & ++ xc_f90_mgga_exc, & ++ xc_f90_mgga_exc_vxc, & ++ xc_f90_mgga_exc_vxc_fxc, & ++ xc_f90_mgga_fxc, & ++ xc_f90_mgga_vxc, & + ! +- xc_f03_func_t, & +- xc_f03_func_info_t, & +- xc_f03_func_reference_t, & ++ xc_f90_func_t, & ++ xc_f90_func_info_t, & ++ xc_f90_func_reference_t, & + ! + XC_FAMILY_LDA, & + XC_FAMILY_GGA, & + XC_FAMILY_MGGA, & ++ XC_FAMILY_HYB_LDA, & + XC_FAMILY_HYB_GGA, & + XC_FAMILY_HYB_MGGA, & + ! +@@ -97,20 +98,20 @@ MODULE xc_libxc_wrap + + CHARACTER(LEN=*), PARAMETER, PUBLIC :: libxc_version = XC_VERSION + +- PUBLIC :: xc_f03_func_t, xc_f03_func_info_t +- PUBLIC :: xc_f03_func_init, xc_f03_func_end +- PUBLIC :: xc_f03_func_get_info, xc_f03_func_info_get_family, xc_f03_func_info_get_kind, & +- xc_f03_func_info_get_name +- PUBLIC :: xc_f03_gga_exc, xc_f03_gga_exc_vxc, xc_f03_gga_fxc, & +- xc_f03_gga_vxc +- PUBLIC :: xc_f03_lda, & +- xc_f03_lda_exc, xc_f03_lda_exc_vxc, & +- xc_f03_lda_fxc, xc_f03_lda_kxc, xc_f03_lda_vxc +- PUBLIC :: xc_f03_mgga, xc_f03_mgga_exc, xc_f03_mgga_exc_vxc, xc_f03_mgga_fxc, & +- xc_f03_mgga_vxc ++ PUBLIC :: xc_f90_func_t, xc_f90_func_info_t ++ PUBLIC :: xc_f90_func_init, xc_f90_func_end ++ PUBLIC :: xc_f90_func_get_info, xc_f90_func_info_get_family, xc_f90_func_info_get_kind, & ++ xc_f90_func_info_get_name ++ PUBLIC :: xc_f90_gga_exc, xc_f90_gga_exc_vxc, xc_f90_gga_fxc, & ++ xc_f90_gga_vxc ++ PUBLIC :: xc_f90_lda_exc_vxc_fxc_kxc, & ++ xc_f90_lda_exc, xc_f90_lda_exc_vxc, & ++ xc_f90_lda_fxc, xc_f90_lda_kxc, xc_f90_lda_vxc ++ PUBLIC :: xc_f90_mgga_exc, xc_f90_mgga_exc_vxc, xc_f90_mgga_fxc, & ++ xc_f90_mgga_vxc, xc_f90_mgga_exc_vxc_fxc + + PUBLIC :: XC_FAMILY_LDA, XC_FAMILY_GGA, XC_FAMILY_MGGA, & +- XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA ++ XC_FAMILY_HYB_LDA, XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA + + PUBLIC :: XC_UNPOLARIZED, XC_POLARIZED + +@@ -136,7 +137,7 @@ CONTAINS + !> \author A. Gloess (agloess) + ! ************************************************************************************************** + SUBROUTINE xc_libxc_wrap_info_refs(xc_info, polarized, sc, reference) +- TYPE(xc_f03_func_info_t), INTENT(IN) :: xc_info ++ TYPE(xc_f90_func_info_t), INTENT(IN) :: xc_info + INTEGER, INTENT(IN) :: polarized + REAL(KIND=dp), INTENT(IN) :: sc + CHARACTER(LEN=*), INTENT(OUT) :: reference +@@ -148,7 +149,7 @@ CONTAINS + CHARACTER(LEN=400) :: doi_string, ref_string, tmp_string + INTEGER :: empty, first, handle, i, i_ref, idx, & + last, n_params +- TYPE(xc_f03_func_reference_t) :: xc_ref ++ TYPE(xc_f90_func_reference_t) :: xc_ref + + CALL timeset(routineN, handle) + +@@ -157,9 +158,9 @@ CONTAINS + first = 1 + DO WHILE (i_ref >= 0) + ! information about functional references +- xc_ref = xc_f03_func_info_get_references(xc_info, i_ref) +- ref_string = xc_f03_func_reference_get_ref(xc_ref) +- doi_string = xc_f03_func_reference_get_doi(xc_ref) ++ xc_ref = xc_f90_func_info_get_references(xc_info, i_ref) ++ ref_string = xc_f90_func_reference_get_ref(xc_ref) ++ doi_string = xc_f90_func_reference_get_doi(xc_ref) + WRITE (tmp_string, '(a1,i1,a2,a,a7,a)') '[', idx, '] ', & + TRIM(ref_string), ', doi: ', TRIM(doi_string) + last = first + LEN_TRIM(tmp_string) - 1 +@@ -172,13 +173,13 @@ CONTAINS + first = empty + 1 + END IF + ! information about (optional) external parameters +- n_params = xc_f03_func_info_get_n_ext_params(xc_info) ++ n_params = xc_f90_func_info_get_n_ext_params(xc_info) + IF (n_params > 0) THEN + reference(first:first + maxlen - 1) = 'Optional external parameters:'//REPEAT(' ', maxlen - 28) + first = first + maxlen + END IF + DO i = 1, n_params +- descr_string = xc_f03_func_info_get_ext_params_description(xc_info, i - 1) ++ descr_string = xc_f90_func_info_get_ext_params_description(xc_info, i - 1) + last = first + LEN_TRIM(descr_string) - 1 + 3 + reference(first:last) = ' * '//TRIM(descr_string) + first = last + 1 +@@ -252,9 +253,9 @@ CONTAINS + CALL timeset(routineN, handle) + + IF (func_string(1:3) == "XC_") THEN +- func_id = xc_f03_functional_get_number(func_string(4:LEN_TRIM(func_string))) ++ func_id = xc_f90_functional_get_number(func_string(4:LEN_TRIM(func_string))) + ELSE +- func_id = xc_f03_functional_get_number(func_string(1:LEN_TRIM(func_string))) ++ func_id = xc_f90_functional_get_number(func_string(1:LEN_TRIM(func_string))) + END IF + IF (func_id == -1) THEN + CPABORT(TRIM(func_string)//": wrong functional name") +@@ -272,9 +273,9 @@ CONTAINS + !> \author F. Stein (fstein93) + ! ************************************************************************************************** + LOGICAL FUNCTION xc_libxc_wrap_is_under_development(xc_info) +- TYPE(xc_f03_func_info_t) :: xc_info ++ TYPE(xc_f90_func_info_t) :: xc_info + +- IF (IAND(xc_f03_func_info_get_flags(xc_info), XC_FLAGS_DEVELOPMENT) == XC_FLAGS_DEVELOPMENT) THEN ++ IF (IAND(xc_f90_func_info_get_flags(xc_info), XC_FLAGS_DEVELOPMENT) == XC_FLAGS_DEVELOPMENT) THEN + xc_libxc_wrap_is_under_development = .TRUE. + ELSE + xc_libxc_wrap_is_under_development = .FALSE. +@@ -297,8 +298,8 @@ CONTAINS + CHARACTER(LEN=*), PARAMETER :: routineN = 'xc_libxc_wrap_needs_laplace' + + INTEGER :: handle +- TYPE(xc_f03_func_info_t) :: xc_info +- TYPE(xc_f03_func_t) :: xc_func ++ TYPE(xc_f90_func_info_t) :: xc_info ++ TYPE(xc_f90_func_t) :: xc_func + + CALL timeset(routineN, handle) + +@@ -312,17 +313,17 @@ CONTAINS + ! functional will be Laplace-dependent for XC_POLARIZED too. + ! + !$OMP CRITICAL(libxc_init) +- CALL xc_f03_func_init(xc_func, func_id, XC_UNPOLARIZED) +- xc_info = xc_f03_func_get_info(xc_func) ++ CALL xc_f90_func_init(xc_func, func_id, XC_UNPOLARIZED) ++ xc_info = xc_f90_func_get_info(xc_func) + !$OMP END CRITICAL(libxc_init) + !$OMP BARRIER +- IF (IAND(xc_f03_func_info_get_flags(xc_info), XC_FLAGS_NEEDS_LAPLACIAN) == XC_FLAGS_NEEDS_LAPLACIAN) THEN ++ IF (IAND(xc_f90_func_info_get_flags(xc_info), XC_FLAGS_NEEDS_LAPLACIAN) == XC_FLAGS_NEEDS_LAPLACIAN) THEN + xc_libxc_wrap_needs_laplace = .TRUE. + ELSE + xc_libxc_wrap_needs_laplace = .FALSE. + END IF + +- CALL xc_f03_func_end(xc_func) ++ CALL xc_f90_func_end(xc_func) + + CALL timestop(handle) + +@@ -338,8 +339,8 @@ CONTAINS + !> \author A. Gloess (agloess) + ! ************************************************************************************************** + SUBROUTINE xc_libxc_wrap_functional_set_params(xc_func, xc_info, params, no_exc) +- TYPE(xc_f03_func_t), INTENT(INOUT) :: xc_func +- TYPE(xc_f03_func_info_t), INTENT(IN) :: xc_info ++ TYPE(xc_f90_func_t), INTENT(INOUT) :: xc_func ++ TYPE(xc_f90_func_info_t), INTENT(IN) :: xc_info + REAL(KIND=dp), DIMENSION(:), INTENT(IN), POINTER :: params + LOGICAL, INTENT(INOUT) :: no_exc + +@@ -349,12 +350,12 @@ CONTAINS + + CALL timeset(routineN, handle) + +- n_params = xc_f03_func_info_get_n_ext_params(xc_info) ++ n_params = xc_f90_func_info_get_n_ext_params(xc_info) + i_params = SIZE(params) + + IF ((n_params > 0) .AND. (i_params > 0) .AND. (params(1) < HUGE(0.0_dp))) THEN + IF (i_params == n_params) THEN +- CALL xc_f03_func_set_ext_params(xc_func, params) ++ CALL xc_f90_func_set_ext_params(xc_func, params) + ELSE + CALL cp_abort(__LOCATION__, & + "LIBXC: Inconsistent number of optional external parameters. (required: "& +@@ -362,7 +363,7 @@ CONTAINS + END IF + END IF + +- IF (IAND(xc_f03_func_info_get_flags(xc_info), XC_FLAGS_HAVE_EXC) == XC_FLAGS_HAVE_EXC) THEN ++ IF (IAND(xc_f90_func_info_get_flags(xc_info), XC_FLAGS_HAVE_EXC) == XC_FLAGS_HAVE_EXC) THEN + no_exc = .FALSE. + ELSE + no_exc = .TRUE. +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-cam-lda0.inp.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-cam-lda0.inp +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-cam-lda0.inp.xc5 2020-09-29 09:07:52.022336509 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-cam-lda0.inp 2020-09-29 09:07:52.022336509 +0200 +@@ -0,0 +1,69 @@ ++&FORCE_EVAL ++ METHOD Quickstep ++ &DFT ++ BASIS_SET_FILE_NAME EMSL_BASIS_SETS ++ POTENTIAL_FILE_NAME POTENTIAL ++ &MGRID ++ CUTOFF 250 ++ REL_CUTOFF 50 ++ &END MGRID ++ &QS ++ METHOD GAPW ++ &END QS ++ &POISSON ++ PERIODIC NONE ++ PSOLVER MT ++ &END ++ &SCF ++ EPS_SCF 1.0E-6 ++ SCF_GUESS ATOMIC ++ MAX_SCF 2 ++ &END SCF ++ &XC ++ &XC_FUNCTIONAL ++ &LIBXC ++ FUNCTIONAL XC_HYB_LDA_XC_CAM_LDA0 ++ &END LIBXC ++ &END XC_FUNCTIONAL ++ &HF ++ &SCREENING ++ EPS_SCHWARZ 1.0E-10 ++ &END ++ &INTERACTION_POTENTIAL ++ OMEGA 0.333333333333 ++ POTENTIAL_TYPE MIX_CL ++ SCALE_LONGRANGE 0.5 ++ SCALE_COULOMB 0.25 ++ &END INTERACTION_POTENTIAL ++ &MEMORY ++ MAX_MEMORY 5 ++ &END ++ FRACTION 1.0 ++ &END ++ &END XC ++ &END DFT ++ &SUBSYS ++ &CELL ++ ABC 6.0 6.0 6.0 ++ PERIODIC NONE ++ &END CELL ++ &COORD ++ O 0.000000 0.000000 -0.065587 ++ H 0.000000 -0.757136 0.520545 ++ H 0.000000 0.757136 0.520545 ++ &END COORD ++ &KIND H ++ BASIS_SET 6-31Gxx ++ POTENTIAL ALL ++ &END KIND ++ &KIND O ++ BASIS_SET 6-31Gxx ++ POTENTIAL ALL ++ &END KIND ++ &END SUBSYS ++&END FORCE_EVAL ++&GLOBAL ++ PROJECT H2O-hybrid-cam-lda0 ++# TRACE ++ PRINT_LEVEL MEDIUM ++&END GLOBAL +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-tpssh_libxc.inp.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-tpssh_libxc.inp +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-wb97mv_libxc.inp.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-wb97mv_libxc.inp +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-wb97mv_libxc.inp.xc5 2020-09-29 09:07:52.023336505 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/H2O-hybrid-wb97mv_libxc.inp 2020-09-29 09:07:52.023336505 +0200 +@@ -0,0 +1,79 @@ ++&FORCE_EVAL ++ METHOD Quickstep ++ &DFT ++ BASIS_SET_FILE_NAME EMSL_BASIS_SETS ++ POTENTIAL_FILE_NAME POTENTIAL ++ &MGRID ++ CUTOFF 250 ++ REL_CUTOFF 50 ++ &END MGRID ++ &QS ++ METHOD GAPW ++ &END QS ++ &POISSON ++ PERIODIC NONE ++ PSOLVER MT ++ &END ++ &SCF ++ EPS_SCF 1.0E-6 ++ SCF_GUESS ATOMIC ++ MAX_SCF 100 ++ &END SCF ++ &XC ++ &XC_FUNCTIONAL ++ &LIBXC ++ FUNCTIONAL HYB_MGGA_XC_WB97M_V ++ &END LIBXC ++ &END XC_FUNCTIONAL ++ &HF ++ FRACTION 1.000 ++ &SCREENING ++ EPS_SCHWARZ 1.0E-6 ++ &END ++ &INTERACTION_POTENTIAL ++ POTENTIAL_TYPE MIX_CL ++ SCALE_COULOMB 0.15 ++ SCALE_LONGRANGE 0.85 ++ OMEGA 0.30 ++ &END ++ &MEMORY ++ MAX_MEMORY 10 ++ &END ++ &END ++ &vdW_POTENTIAL ++ DISPERSION_FUNCTIONAL NON_LOCAL ++ &NON_LOCAL ++ TYPE RVV10 ++ PARAMETERS 6.0 0.01 ++ VERBOSE_OUTPUT ++ KERNEL_FILE_NAME rVV10_kernel_table.dat ++ CUTOFF 100 ++ &END NON_LOCAL ++ &END vdW_POTENTIAL ++ &END XC ++ &END DFT ++ &SUBSYS ++ &CELL ++ ABC 6.0 6.0 6.0 ++ PERIODIC NONE ++ &END CELL ++ &COORD ++ O 0.000000 0.000000 -0.065587 ++ H 0.000000 -0.757136 0.520545 ++ H 0.000000 0.757136 0.520545 ++ &END COORD ++ &KIND H ++ BASIS_SET 6-31Gxx ++ POTENTIAL ALL ++ &END KIND ++ &KIND O ++ BASIS_SET 6-31Gxx ++ POTENTIAL ALL ++ &END KIND ++ &END SUBSYS ++&END FORCE_EVAL ++&GLOBAL ++ PROJECT H2O-hybrid-wb97mv_libxc ++# TRACE ++ PRINT_LEVEL MEDIUM ++&END GLOBAL +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/TEST_FILES.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/TEST_FILES +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/TEST_FILES.xc5 2020-09-29 09:07:52.023336505 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-libxc/TEST_FILES 2020-09-29 09:10:24.193646163 +0200 +@@ -8,7 +8,8 @@ H2O_pbe_libxc_tddfpt-s.inp + H2O_lda_libxc_tddfpt-s.inp 1 2e-14 -17.13289833455457 + H2O_pbe_libxc_tddfpt-t_uks.inp 1 2e-14 -17.23116251474715 + H2O-hybrid-b3lyp_libxc.inp 1 3e-14 -76.41035426581175 +-H2O-hybrid-tpssh_libxc.inp 1 3e-14 -76.40464600997517 ++H2O-hybrid-wb97mv_libxc.inp 1 2e-14 -76.39577090943143 ++H2O-hybrid-cam-lda0.inp 1 3e-14 -76.47215215216751 + H2O_lda_libxc_tddfpt-t_uks.inp 1 1.0E-14 -17.13289833455847 + H2O-tpssx_libxc.inp 1 3e-13 -33.88300963208589 + diamond_br89_libxc_uks.inp 1 7e-14 -11.06581614908332 +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-xastdp/TEST_FILES.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-xastdp/TEST_FILES +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-xastdp/TEST_FILES.xc5 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tests/QS/regtest-xastdp/TEST_FILES 2020-09-29 09:07:52.021336514 +0200 +@@ -17,9 +17,9 @@ H2O-32-ot_solver.inp + #as well as the use of RI metrics for screening + Ne-pbc-truncated.inp 88 1e-08 890.773794 + Ne-pbc-truncated-tc_metric.inp 88 1e-06 890.780820 +-Ne-pbc-shortrange.inp 88 1e-08 890.494623 +-Ne-pbc-shortrange-sr_metric.inp 88 1e-08 890.495800 +-Ne-pbc-shortrange-ovlp_metric.inp 88 1e-08 890.501870 ++Ne-pbc-shortrange.inp 88 1e-08 890.608044 ++Ne-pbc-shortrange-sr_metric.inp 88 1e-08 890.609224 ++Ne-pbc-shortrange-ovlp_metric.inp 88 1e-08 890.615305 + #Checking the use of pseudo-potential and ADMM + SiH4-PBE0-admm-pseudo.inp 88 1e-08 146.185955 + #Checking open-shell calculation with non-singlet ground state +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/toolchain/scripts/install_libxc.sh.xc5 cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/toolchain/scripts/install_libxc.sh +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/toolchain/scripts/install_libxc.sh.xc5 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/toolchain/scripts/install_libxc.sh 2020-09-29 09:07:52.023336505 +0200 +@@ -2,8 +2,8 @@ + [ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0 + SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")" && pwd -P)" + +-libxc_ver="4.3.4" +-libxc_sha256="a8ee37ddc5079339854bd313272856c9d41a27802472ee9ae44b58ee9a298337" ++libxc_ver="5.0.0" ++libxc_sha256="1cdc57930f7b57da4eb9b2c55a50ba1c2c385936ddaf5582fee830994461a892" + source "${SCRIPT_DIR}"/common_vars.sh + source "${SCRIPT_DIR}"/tool_kit.sh + source "${SCRIPT_DIR}"/signal_trap.sh +@@ -30,7 +30,8 @@ case "$with_libxc" in + echo "libxc-${libxc_ver}.tar.gz is found" + else + download_pkg ${DOWNLOADER_FLAGS} ${libxc_sha256} \ +- https://www.cp2k.org/static/downloads/libxc-$%7Blibxc_ver%7D.tar.gz ++ http://www.tddft.org/programs/libxc/down.php?file=$%7Blibxc_ver%7D/libxc-$%7... \ ++ -o libxc-${libxc_ver}.tar.gz + fi + echo "Installing from scratch into ${pkg_install_dir}" + [ -d libxc-${libxc_ver} ] && rm -rf libxc-${libxc_ver} +@@ -64,7 +65,7 @@ case "$with_libxc" in + ;; + esac + if [ "$with_libxc" != "__DONTUSE__" ] ; then +- LIBXC_LIBS="-lxcf03 -lxc" ++ LIBXC_LIBS="-lxcf90 -lxc" + if [ "$with_libxc" != "__SYSTEM__" ] ; then + cat <<EOF > "${BUILDDIR}/setup_libxc" + prepend_path LD_LIBRARY_PATH "$pkg_install_dir/lib" diff --git a/cp2k-rpm.patch b/cp2k-rpm.patch index 7dd42fa..e6c6fd2 100644 --- a/cp2k-rpm.patch +++ b/cp2k-rpm.patch @@ -1,291 +1,204 @@ -diff -up cp2k-6.1/arch/Linux-x86-64-gfortran.popt.r cp2k-6.1/arch/Linux-x86-64-gfortran.popt ---- cp2k-6.1/arch/Linux-x86-64-gfortran.popt.r 2018-06-12 14:07:45.000000000 +0200 -+++ cp2k-6.1/arch/Linux-x86-64-gfortran.popt 2018-07-16 15:44:30.013193276 +0200 -@@ -2,8 +2,9 @@ - # Author: Matthias Krack (matthias.krack@psi.ch, PSI, June 2018) - CC = gcc - CPP = --FC = mpif90 --LD = mpif90 -+FC = mpifort -+LD = mpifort -+LD_SHARED = mpifort -shared +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.psmp.r cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.psmp +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.psmp.r 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.psmp 2020-09-29 15:18:55.464317641 +0200 +@@ -5,64 +5,37 @@ + CC = mpicc + FC = mpif90 + LD = mpif90 ++LD_SHARED = mpif90 -shared AR = ar -r - FFTW_INC = $(GCC_DIR)/fftw/3.3/include - FFTW_LIB = $(GCC_DIR)/fftw/3.3/lib -@@ -13,22 +14,26 @@ LIBXC_INC = $(GCC_DIR)/libxc/4.0.4/inc - LIBXC_LIB = $(GCC_DIR)/libxc/4.0.4/lib - LIBXSMM_INC = $(GCC_DIR)/libxsmm/1.9/include - LIBXSMM_LIB = $(GCC_DIR)/libxsmm/1.9/lib --DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC -D__LIBXSMM -D__MPI_VERSION=3\ -- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4\ -+DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC @LIBSMM_DEFS@ -D__MPI_VERSION=3\ -+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@ -D__MAX_CONTR=4\ -+ -D__SCALAPACK2 -D__ELPA=201705 -D__HAS_IEEE_EXCEPTIONS\ - -D__parallel -D__SCALAPACK - CPPFLAGS = --FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\ -- -ftree-vectorize -funroll-loops -mtune=native -std=f2008\ -+OPTFLAGS = -O2 -ffast-math\ -+ -ftree-vectorize -funroll-loops -mtune=native\ - -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(LIBXSMM_INC) --LDFLAGS = $(FCFLAGS) -static --LIBS = $(MPI_LIBRARY_PATH)/libscalapack-gnu.a\ -- $(LIBPATH)/liblapack-gnu.a\ -- $(LIBPATH)/libblas-gnu.a\ -- $(FFTW_LIB)/libfftw3.a\ -- $(LIBXC_LIB)/libxcf03.a\ -- $(LIBXC_LIB)/libxc.a\ -- $(LIBINT_LIB)/libderiv.a\ -- $(LIBINT_LIB)/libint.a\ -- $(LIBXSMM_LIB)/libxsmmf.a\ -- $(LIBXSMM_LIB)/libxsmm.a\ -+CFLAGS = $(DFLAGS) $(OPTFLAGS) -+CXXFLAGS = $(DFLAGS) $(OPTFLAGS) -+FCFLAGS = $(DFLAGS) $(OPTFLAGS) -ffree-form -ffree-line-length-none -std=f2008 + +-include $(MPI_PATH)/plumed/2.5.2/lib/plumed/src/lib/Plumed.inc.static +- +-ELPA_VER = 2019.05.001 +-ELPA_INC = $(MPI_PATH)/elpa/$(ELPA_VER)-openmp/include/elpa_openmp-$(ELPA_VER) +-ELPA_LIB = $(MPI_PATH)/elpa/$(ELPA_VER)-openmp/lib +- +-FFTW_INC = $(GNU_PATH)/fftw/3.3/include +-FFTW_LIB = $(GNU_PATH)/fftw/3.3/lib +- +-LIBINT_INC = $(GNU_PATH)/libint/2.6.0-lmax-6/include +-LIBINT_LIB = $(GNU_PATH)/libint/2.6.0-lmax-6/lib +- +-LIBXC_INC = $(GNU_PATH)/libxc/4.3.4/include +-LIBXC_LIB = $(GNU_PATH)/libxc/4.3.4/lib +- +-LIBXSMM_INC = $(GNU_PATH)/libxsmm/1.15/include +-LIBXSMM_LIB = $(GNU_PATH)/libxsmm/1.15/lib +- +-SPGLIB_INC = $(GNU_PATH)/spglib/1.12.2/include +-SPGLIB_LIB = $(GNU_PATH)/spglib/1.12.2/lib +- +-CFLAGS = -O2 -fopenmp -g -mtune=native ++OPTFLAGS = -O2 -g -mtune=native ++CFLAGS = $(OPTFLAGS) -fopenmp + + DFLAGS = -D__ELPA + DFLAGS += -D__FFTW3 + DFLAGS += -D__LIBINT + DFLAGS += -D__LIBXC +-DFLAGS += -D__LIBXSMM ++DFLAGS += @LIBSMM_DEFS@ + DFLAGS += -D__MPI_VERSION=3 +-DFLAGS += -D__PLUMED2 +-DFLAGS += -D__SPGLIB ++DFLAGS += -D__MAX_CONTR=4 ++DFLAGS += -D__HAS_IEEE_EXCEPTIONS + DFLAGS += -D__parallel + DFLAGS += -D__SCALAPACK + + FCFLAGS = $(CFLAGS) $(DFLAGS) + FCFLAGS += -ffree-form + FCFLAGS += -ffree-line-length-none +-FCFLAGS += -ftree-vectorize +-FCFLAGS += -funroll-loops + FCFLAGS += -std=f2008 +-FCFLAGS += -I$(ELPA_INC)/elpa -I$(ELPA_INC)/modules +-FCFLAGS += -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(LIBXSMM_INC) + +-LDFLAGS = $(FCFLAGS) -static-libgfortran +LDFLAGS = $(FCFLAGS) $(DISTLDFLAGS) -+LIBS = -lelpa\ -+ -lscalapack -lstdc++\ -+ -lflexiblas\ -+ -lfftw3\ -+ -lxcf03\ -+ -lxc\ -+ -lderiv\ -+ -lint\ -+ @LIBSMM_LIBS@\ - -ldl -+DATA_DIR = /usr/share/cp2k -diff -up cp2k-6.1/arch/Linux-x86-64-gfortran.psmp.r cp2k-6.1/arch/Linux-x86-64-gfortran.psmp ---- cp2k-6.1/arch/Linux-x86-64-gfortran.psmp.r 2018-06-12 14:07:45.000000000 +0200 -+++ cp2k-6.1/arch/Linux-x86-64-gfortran.psmp 2018-07-16 15:44:20.853109669 +0200 -@@ -2,8 +2,9 @@ - # Author: Matthias Krack (matthias.krack@psi.ch, PSI, June 2018) + +-LIBS = $(PLUMED_DEPENDENCIES) -lgsl -lgslcblas -lz +-LIBS += $(ELPA_LIB)/libelpa_openmp.a +-LIBS += $(LIBXC_LIB)/libxcf03.a +-LIBS += $(LIBXC_LIB)/libxc.a +-LIBS += $(LIBINT_LIB)/libint2.a +-LIBS += $(SPGLIB_LIB)/libsymspg.a +-LIBS += $(FFTW_LIB)/libfftw3.a +-LIBS += $(FFTW_LIB)/libfftw3_threads.a +-LIBS += $(LIBXSMM_LIB)/libxsmmf.a +-LIBS += $(LIBXSMM_LIB)/libxsmm.a +-LIBS += $(MPI_LIBRARY_PATH)/libscalapack.a +-LIBS += $(LIBPATH)/liblapack.a +-LIBS += $(LIBPATH)/libblas.a ++LIBS = -lelpa_openmp ++LIBS += -lxcf90 ++LIBS += -lxc ++LIBS += -lint2 ++LIBS += -lfftw3 ++LIBS += -lfftw3_omp ++LIBS += @LIBSMM_LIBS@ ++LIBS += -lscalapack ++LIBS += -lflexiblas + LIBS += -ldl -lpthread -lstdc++ +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.ssmp.r cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.ssmp +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.ssmp.r 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/arch/Linux-x86-64-gfortran.ssmp 2020-09-29 15:19:10.681243626 +0200 +@@ -4,49 +4,31 @@ CC = gcc - CPP = --FC = mpif90 --LD = mpif90 -+FC = mpifort -+LD = mpifort -+LD_SHARED = mpifort -shared - AR = ar -r - FFTW_INC = $(GCC_DIR)/fftw/3.3/include - FFTW_LIB = $(GCC_DIR)/fftw/3.3/lib -@@ -13,22 +14,26 @@ LIBXC_INC = $(GCC_DIR)/libxc/4.0.4/inc - LIBXC_LIB = $(GCC_DIR)/libxc/4.0.4/lib - LIBXSMM_INC = $(GCC_DIR)/libxsmm/1.9/include - LIBXSMM_LIB = $(GCC_DIR)/libxsmm/1.9/lib --DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC -D__LIBXSMM -D__MPI_VERSION=3\ -- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4\ -+DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC @LIBSMM_DEFS@ -D__MPI_VERSION=3\ -+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@ -D__MAX_CONTR=4\ -+ -D__SCALAPACK2 -D__ELPA=201705 -D__HAS_IEEE_EXCEPTIONS\ - -D__parallel -D__SCALAPACK - CPPFLAGS = --FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\ -- -fopenmp -ftree-vectorize -funroll-loops -mtune=native -std=f2008\ -+OPTFLAGS = -O2 -ffast-math -ftree-vectorize -funroll-loops\ -+ -fopenmp -ftree-vectorize -funroll-loops -mtune=native\ - -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(LIBXSMM_INC) --LDFLAGS = $(FCFLAGS) -static --LIBS = $(MPI_LIBRARY_PATH)/libscalapack-gnu.a\ -- $(LIBPATH)/liblapack-gnu.a\ -- $(LIBPATH)/libblas-gnu.a\ -- $(FFTW_LIB)/libfftw3.a\ -- $(FFTW_LIB)/libfftw3_threads.a\ -- $(LIBXC_LIB)/libxcf03.a\ -- $(LIBXC_LIB)/libxc.a\ -- $(LIBINT_LIB)/libderiv.a\ -- $(LIBINT_LIB)/libint.a\ -- $(LIBXSMM_LIB)/libxsmmf.a\ -- $(LIBXSMM_LIB)/libxsmm.a -+CFLAGS = $(DFLAGS) $(OPTFLAGS) -+CXXFLAGS = $(DFLAGS) $(OPTFLAGS) -+FCFLAGS = $(DFLAGS) $(OPTFLAGS) -fopenmp -ffree-form -ffree-line-length-none -std=f2008 -+LDFLAGS = $(FCFLAGS) $(DISTLDFLAGS) -+LIBS = -lelpa\ -+ -lscalapack -lstdc++\ -+ -lflexiblas\ -+ -lfftw3\ -+ -lfftw3_omp\ -+ -lxcf03\ -+ -lxc\ -+ -lderiv\ -+ -lint\ -+ @LIBSMM_LIBS@ -+DATA_DIR = /usr/share/cp2k -diff -up cp2k-6.1/arch/Linux-x86-64-gfortran.sopt.r cp2k-6.1/arch/Linux-x86-64-gfortran.sopt ---- cp2k-6.1/arch/Linux-x86-64-gfortran.sopt.r 2018-06-12 14:07:45.000000000 +0200 -+++ cp2k-6.1/arch/Linux-x86-64-gfortran.sopt 2018-07-16 15:44:45.620335729 +0200 -@@ -4,6 +4,7 @@ CC = gcc - CPP = - FC = gfortran - LD = gfortran -+LD_SHARED = gfortran -shared - AR = ar -r - FFTW_INC = $(GCC_DIR)/fftw/3.3/include - FFTW_LIB = $(GCC_DIR)/fftw/3.3/lib -@@ -13,20 +14,24 @@ LIBXC_INC = $(GCC_DIR)/libxc/4.0.4/inc - LIBXC_LIB = $(GCC_DIR)/libxc/4.0.4/lib - LIBXSMM_INC = $(GCC_DIR)/libxsmm/1.9/include - LIBXSMM_LIB = $(GCC_DIR)/libxsmm/1.9/lib --DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC -D__LIBXSMM\ -- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4 -+DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC @LIBSMM_DEFS@\ -+ -D__HAS_IEEE_EXCEPTIONS\ -+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@ -D__MAX_CONTR=4 - CPPFLAGS = - FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\ -- -ftree-vectorize -funroll-loops -mtune=native -std=f2008\ -+OPTFLAGS = -O2 -ffast-math\ -+ -ftree-vectorize -funroll-loops -mtune=native\ - -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(LIBXSMM_INC) --LDFLAGS = $(FCFLAGS) -static --LIBS = $(LIBPATH)/liblapack-gnu.a\ -- $(LIBPATH)/libblas-gnu.a\ -- $(FFTW_LIB)/libfftw3.a\ -- $(LIBXC_LIB)/libxcf03.a\ -- $(LIBXC_LIB)/libxc.a\ -- $(LIBINT_LIB)/libderiv.a\ -- $(LIBINT_LIB)/libint.a\ -- $(LIBXSMM_LIB)/libxsmmf.a\ -- $(LIBXSMM_LIB)/libxsmm.a\ -+CFLAGS = $(DFLAGS) $(OPTFLAGS) -+CXXFLAGS = $(DFLAGS) $(OPTFLAGS) -+FCFLAGS = $(DFLAGS) $(OPTFLAGS) -ffree-form -ffree-line-length-none -std=f2008 -+LDFLAGS = $(FCFLAGS) $(DISTLDFLAGS) -+LIBS = -lflexiblas\ -+ -lfftw3\ -+ -lxcf03\ -+ -lxc\ -+ -lderiv\ -+ -lint\ -+ @LIBSMM_LIBS@\ - -ldl -lpthread -+DATA_DIR = /usr/share/cp2k -diff -up cp2k-6.1/arch/Linux-x86-64-gfortran.ssmp.r cp2k-6.1/arch/Linux-x86-64-gfortran.ssmp ---- cp2k-6.1/arch/Linux-x86-64-gfortran.ssmp.r 2018-06-12 14:07:45.000000000 +0200 -+++ cp2k-6.1/arch/Linux-x86-64-gfortran.ssmp 2018-07-16 15:44:55.628427076 +0200 -@@ -4,6 +4,7 @@ CC = gcc - CPP = FC = gfortran LD = gfortran +LD_SHARED = gfortran -shared AR = ar -r - FFTW_INC = $(GCC_DIR)/fftw/3.3/include - FFTW_LIB = $(GCC_DIR)/fftw/3.3/lib -@@ -13,21 +14,24 @@ LIBXC_INC = $(GCC_DIR)/libxc/4.0.4/inc - LIBXC_LIB = $(GCC_DIR)/libxc/4.0.4/lib - LIBXSMM_INC = $(GCC_DIR)/libxsmm/1.9/include - LIBXSMM_LIB = $(GCC_DIR)/libxsmm/1.9/lib --DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC -D__LIBXSMM\ -- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4 -+DFLAGS = -D__F2008 -D__FFTW3 -D__LIBINT -D__LIBXC @LIBSMM_DEFS@\ -+ -D__HAS_IEEE_EXCEPTIONS\ -+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@ -D__MAX_CONTR=4 - CPPFLAGS = --FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\ -- -fopenmp -ftree-vectorize -funroll-loops -mtune=native -std=f2008\ -+OPTFLAGS = -O2 -ffast-math -ftree-vectorize\ -+ -fopenmp -ftree-vectorize -funroll-loops -mtune=native\ - -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(LIBXSMM_INC) + +-FFTW_INC = $(GNU_PATH)/fftw/3.3/include +-FFTW_LIB = $(GNU_PATH)/fftw/3.3/lib +- +-LIBINT_INC = $(GNU_PATH)/libint/2.6.0-lmax-6/include +-LIBINT_LIB = $(GNU_PATH)/libint/2.6.0-lmax-6/lib +- +-LIBXC_INC = $(GNU_PATH)/libxc/4.3.4/include +-LIBXC_LIB = $(GNU_PATH)/libxc/4.3.4/lib +- +-LIBXSMM_INC = $(GNU_PATH)/libxsmm/1.15/include +-LIBXSMM_LIB = $(GNU_PATH)/libxsmm/1.15/lib +- +-SPGLIB_INC = $(GNU_PATH)/spglib/1.12.2/include +-SPGLIB_LIB = $(GNU_PATH)/spglib/1.12.2/lib +- +-CFLAGS = -O2 -fopenmp -g -mtune=native ++OPTFLAGS = -O2 -g -mtune=native ++CFLAGS = $(OPTFLAGS) -fopenmp + + DFLAGS = -D__FFTW3 + DFLAGS += -D__LIBINT + DFLAGS += -D__LIBXC +-DFLAGS += -D__LIBXSMM +-DFLAGS += -D__SPGLIB ++DFLAGS += @LIBSMM_DEFS@ ++DFLAGS += -D__HAS_IEEE_EXCEPTIONS ++DFLAGS += -D__MAX_CONTR=4 + + FCFLAGS = $(CFLAGS) $(DFLAGS) + FCFLAGS += -ffree-form + FCFLAGS += -ffree-line-length-none +-FCFLAGS += -ftree-vectorize +-FCFLAGS += -funroll-loops + FCFLAGS += -std=f2008 +-FCFLAGS += -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC) -I$(LIBXSMM_INC) + -LDFLAGS = $(FCFLAGS) -static --LIBS = $(LIBPATH)/liblapack-gnu.a\ -- $(LIBPATH)/libblas-gnu.a\ -- $(FFTW_LIB)/libfftw3.a\ -- $(FFTW_LIB)/libfftw3_threads.a\ -- $(LIBXC_LIB)/libxcf03.a\ -- $(LIBXC_LIB)/libxc.a\ -- $(LIBINT_LIB)/libderiv.a\ -- $(LIBINT_LIB)/libint.a\ -- $(LIBXSMM_LIB)/libxsmmf.a\ -- $(LIBXSMM_LIB)/libxsmm.a\ -+CFLAGS = $(DFLAGS) $(OPTFLAGS) -+CXXFLAGS = $(DFLAGS) $(OPTFLAGS) -+FCFLAGS = $(DFLAGS) $(OPTFLAGS) -fopenmp -ffree-form -ffree-line-length-none -std=f2008 +LDFLAGS = $(FCFLAGS) $(DISTLDFLAGS) -+LIBS = -lflexiblas\ -+ -lfftw3\ -+ -lfftw3_omp\ -+ -lxcf03\ -+ -lxc\ -+ -lderiv\ -+ -lint\ -+ @LIBSMM_LIBS@\ - -ldl -lpthread -+DATA_DIR = /usr/share/cp2k -diff -up cp2k-6.1/makefiles/Makefile.r cp2k-6.1/makefiles/Makefile ---- cp2k-6.1/makefiles/Makefile.r 2018-05-24 19:16:02.000000000 +0200 -+++ cp2k-6.1/makefiles/Makefile 2018-07-16 15:43:39.888735771 +0200 -@@ -181,7 +181,7 @@ endif - $(MAKE) --version - @echo "" - @echo "========= Python ($(ONEVERSION)) =========" -- /usr/bin/env python --version -+ /usr/bin/python3 --version
- else +-LIBS = $(LIBXC_LIB)/libxcf03.a +-LIBS += $(LIBXC_LIB)/libxc.a +-LIBS += $(LIBINT_LIB)/libint2.a +-LIBS += $(SPGLIB_LIB)/libsymspg.a +-LIBS += $(FFTW_LIB)/libfftw3.a +-LIBS += $(FFTW_LIB)/libfftw3_threads.a +-LIBS += $(LIBXSMM_LIB)/libxsmmf.a +-LIBS += $(LIBXSMM_LIB)/libxsmm.a +-LIBS += $(LIBPATH)/liblapack.a +-LIBS += $(LIBPATH)/libblas.a ++LIBS = -lxcf90 ++LIBS += -lxc ++LIBS += -lint2 ++LIBS += -lfftw3 ++LIBS += -lfftw3_omp ++LIBS += @LIBSMM_LIBS@ ++LIBS += -lflexiblas + LIBS += -ldl -lpthread -lstdc++ +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/exts/dbcsr/.cp2k/Makefile.r cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/exts/dbcsr/.cp2k/Makefile +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/exts/dbcsr/.cp2k/Makefile.r 2020-09-13 19:31:19.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/exts/dbcsr/.cp2k/Makefile 2020-09-29 11:58:26.238474915 +0200 +@@ -54,7 +54,7 @@ MAKEFILE := $(DBCSRCP2K)/Makefile + LIBDIR := $(DBCSRHOME)/lib + OBJDIR := $(DBCSRHOME)/obj + TOOLSDIR := $(DBCSRHOME)/tools +-FYPPEXE := $(TOOLSDIR)/build_utils/fypp/bin/fypp ++FYPPEXE := fypp + SRCDIR := $(DBCSRHOME)/src + TESTSDIR := $(DBCSRHOME)/tests + INCLUDEMAKE := +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/Makefile.r cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/Makefile +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/Makefile.r 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/Makefile 2020-09-29 11:58:26.243474891 +0200 +@@ -16,7 +16,7 @@ export VERSION=ssmp
-@@ -451,11 +451,11 @@ FYPPFLAGS ?= -n + MAKEFILE := $(CP2KHOME)/Makefile + ARCHDIR := $(CP2KHOME)/arch +-DATA_DIR := $(CP2KHOME)/data ++DATA_DIR := /usr/share/cp2k/data + MAINEXEDIR := $(CP2KHOME)/exe + MAINLIBDIR := $(CP2KHOME)/lib + MAINOBJDIR := $(CP2KHOME)/obj +@@ -501,7 +501,7 @@ FCFLAGS += -D__COMPILE_ARCH=""$(ARCH)" + FYPPFLAGS ?= -n
%.o: %.F - ifneq ($(CPP),) -- $(TOOLSRC)/build_utils/fypp $(FYPPFLAGS) $< $*.fypped -+ fypp $(FYPPFLAGS) $< $*.fypped - $(CPP) $(CPPFLAGS) -D__SHORT_FILE__=""$(subst $(SRCDIR)/,,$<)"" -I'$(dir $<)' $*.fypped > $*.f90 - $(FC) -c $(FCFLAGS) $*.f90 $(FCLOGPIPE) - else - $(TOOLSRC)/build_utils/fypp $(FYPPFLAGS) $< $*.F90 + fypp $(FYPPFLAGS) $< $*.F90 - $(FC) -c $(FCFLAGS) -D__SHORT_FILE__=""$(subst $(SRCDIR)/,,$<)"" -I'$(dir $<)' $*.F90 $(FCLOGPIPE) - endif - -diff -up cp2k-6.1/tools/build_utils/check_archives.py.r cp2k-6.1/tools/build_utils/check_archives.py ---- cp2k-6.1/tools/build_utils/check_archives.py.r 2016-06-06 17:37:19.000000000 +0200 -+++ cp2k-6.1/tools/build_utils/check_archives.py 2018-07-16 15:43:39.872735625 +0200 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- + $(FC) -c $(FCFLAGS) -D__SHORT_FILE__=""$(subst $(SRCDIR)/,,$<)"" -I'$(dir $<)' $(OBJEXTSINCL) $*.F90 $(FCLOGPIPE)
- # author: Ole Schuett -diff -up cp2k-6.1/tools/build_utils/discover_programs.py.r cp2k-6.1/tools/build_utils/discover_programs.py ---- cp2k-6.1/tools/build_utils/discover_programs.py.r 2016-03-09 15:07:55.000000000 +0100 -+++ cp2k-6.1/tools/build_utils/discover_programs.py 2018-07-16 15:43:39.872735625 +0200 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - - import re, sys, os -diff -up cp2k-6.1/tools/build_utils/makedep.py.r cp2k-6.1/tools/build_utils/makedep.py ---- cp2k-6.1/tools/build_utils/makedep.py.r 2018-04-05 12:22:05.000000000 +0200 -+++ cp2k-6.1/tools/build_utils/makedep.py 2018-07-16 15:43:39.873735634 +0200 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # -*- coding: utf-8 -*- - - import re, sys -diff -up cp2k-6.1/tools/regtesting/do_regtest.r cp2k-6.1/tools/regtesting/do_regtest ---- cp2k-6.1/tools/regtesting/do_regtest.r 2018-05-29 20:12:38.000000000 +0200 -+++ cp2k-6.1/tools/regtesting/do_regtest 2018-07-16 15:43:39.874735643 +0200 -@@ -263,9 +263,9 @@ cp2k_postfix=${cp2k_postfix:-"${cp2k_run - # - ################################################################################### - test_types_file=${dir_base}/${cp2k_dir}/tests/TEST_TYPES --dir_last=${dir_base}/LAST-${dir_triplet}-${cp2k_version} -+dir_last=${dir_base}/${cp2k_dir}/LAST-${dir_triplet}-${cp2k_version} - dirout=${dirout:-${dir_base}} --dir_out=${dir_out}/TEST-${dir_triplet}-${cp2k_version}-${datum_short} -+dir_out=${dir_base}/${cp2k_dir}/TEST-${dir_triplet}-${cp2k_version}-${datum_short} - changelog=${dir_last}/ChangeLog - changelog_diff=${changelog}.diff - changelog_new=${changelog}.new -@@ -424,6 +424,7 @@ function run_regtest_dir() { - test_tolerance=`grep -v "#" TEST_FILES | ${awk} -v itest=$itest -v def_err_tol=$default_err_tolerance '{c=c+1;if (c==itest) if (NF >= 3) { print $3 } else { print def_err_tol } }'` - test_ref_value=`grep -v "#" TEST_FILES | ${awk} -v itest=$itest '{c=c+1;if (c==itest) if (NF == 4) { print $4 } }'` + %.o: %.c +diff -up cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/regtesting/do_regtest.r cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/regtesting/do_regtest +--- cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/regtesting/do_regtest.r 2020-09-25 17:01:47.000000000 +0200 ++++ cp2k-dbf7a770d1541ba72a4652ee218de80c0484db2d/tools/regtesting/do_regtest 2020-09-29 13:59:45.419222477 +0200 +@@ -383,6 +383,7 @@ function run_regtest_dir() { + test_tolerance=`grep '^\s*\w' TEST_FILES | ${awk} -v itest=$itest -v def_err_tol=$default_err_tolerance '{c=c+1;if (c==itest) if (NF >= 3) { print $3 } else { print def_err_tol } }'` + test_ref_value=`grep '^\s*\w' TEST_FILES | ${awk} -v itest=$itest '{c=c+1;if (c==itest) if (NF == 4) { print $4 } }'`
+ echo "Running ${input_file}" - output_file=${dir_out}/${dir}/${input_file}.out + output_file=${dir_test}/${dir}/${input_file}.out output_last=${dir_last}/${dir}/${input_file}.out
+@@ -1201,7 +1202,7 @@ EOF + if (( n_leaks > 0 )); then + REPORT_SUMMARY+=$(printf "; memleaks: %d" ${n_leaks}) + fi +- REPORT_SUMMARY+=$(python -c "print('; %.0fmin'%(${full_timing_all}/60.0))") ++ REPORT_SUMMARY+=$(python3 -c "print('; %.0fmin'%(${full_timing_all}/60.0))") + echo -e "\nSummary: ${REPORT_SUMMARY}" + + if ((n_wrong_results > 0)) || ((n_runtime_error > 0)) || ((n_leaks > 0)); then diff --git a/cp2k.spec b/cp2k.spec index 5ab4baf..d66e761 100644 --- a/cp2k.spec +++ b/cp2k.spec @@ -1,5 +1,11 @@ -%global svn 0 -%global snapshot 20150911 +%global git 1 +%global snapshot 20200925 +%global commit dbf7a770d1541ba72a4652ee218de80c0484db2d +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global dbcsr_commit d2dfe6e25efde255f72ac27f542124b69c7af1c2 +%global dbcsr_shortcommit %(c=%{dbcsr_commit}; echo ${c:0:7}) +%global dbcsr_version 2.1.0-0.1.rc17 + # TODO OpenCL support: -D__ACC -D__DBCSR_ACC -D__OPENCL
%global __provides_exclude_from ^%{_libdir}/(cp2k/lib|(mpich|openmpi)/lib/cp2k).*\.so$ @@ -7,17 +13,21 @@
%bcond_with check
+%ifarch x86_64 +%global _lto_cflags %{nil} +%endif + Name: cp2k -Version: 6.1 -Release: 10%{?dist} +Version: 7.1 +Release: 1.%{snapshot}git%{shortcommit}%{?dist} Summary: Ab Initio Molecular Dynamics License: GPLv2+ URL: http://cp2k.org/ -%if %{svn} -# run cp2k-snapshot.sh to produce this -Source0: cp2k-%{version}-%{snapshot}.tar.xz +%if %{git} +Source0: https://github.com/cp2k/cp2k/archive/%%7Bcommit%7D/%%7Bname%7D-%%7Bshortcomm... +Source1: https://github.com/cp2k/dbcsr/archive/%%7Bdbcsr_commit%7D/dbcsr-%%7Bdbcsr_sh... %else -Source0: https://downloads.sourceforge.net/project/cp2k/cp2k-%%7Bversion%7D.tar.bz2 +Source0: https://github.com/cp2k/cp2k/releases/download/v%%7Bversion%7D.0/cp2k-%%7Bve... %endif Source4: cp2k-snapshot.sh # Fedora patches @@ -27,15 +37,17 @@ Source4: cp2k-snapshot.sh # build with libint and libxc # build shared libraries Patch10: %{name}-rpm.patch -# fix build failure on 32bit arches -Patch11: %{name}-32bit.patch +# port to libxc 5.x +# https://github.com/cp2k/cp2k/pull/914 +Patch12: %{name}-libxc5.patch BuildRequires: flexiblas-devel # for regtests BuildRequires: bc BuildRequires: fftw-devel BuildRequires: gcc-c++ BuildRequires: gcc-gfortran -BuildRequires: libint-devel +BuildRequires: glibc-langpack-en +BuildRequires: libint2-devel BuildRequires: libxc-devel >= 4.0.3 %ifarch x86_64 # See https://bugzilla.redhat.com/show_bug.cgi?id=1515404 @@ -43,9 +55,11 @@ BuildRequires: libxsmm-devel >= 1.8.1-3 %endif BuildRequires: python3-fypp BuildRequires: /usr/bin/hostname +BuildRequires: /usr/bin/pathfix.py +Provides: bundled(dbcsr) = %{dbcsr_version}
# Libint can break the API between releases -Requires: libint(api)%{?_isa} = %{_libint_apiversion} +Requires: libint2(api)%{?_isa} = %{_libint2_apiversion}
Requires: %{name}-common = %{version}-%{release}
@@ -68,11 +82,12 @@ This package contains the non-MPI single process and multi-threaded versions. Summary: Molecular simulations software - openmpi version BuildRequires: openmpi-devel BuildRequires: blacs-openmpi-devel -BuildRequires: elpa-openmpi-devel >= 2017.05.002 +BuildRequires: elpa-openmpi-devel >= 2018.05.001 BuildRequires: scalapack-openmpi-devel +Provides: bundled(dbcsr) = %{dbcsr_version} Requires: %{name}-common = %{version}-%{release} # Libint may have API breakage -Requires: libint(api)%{?_isa} = %{_libint_apiversion} +Requires: libint2(api)%{?_isa} = %{_libint2_apiversion}
%description openmpi %{cp2k_desc_base} @@ -84,11 +99,12 @@ using OpenMPI. Summary: Molecular simulations software - mpich version BuildRequires: mpich-devel BuildRequires: blacs-mpich-devel -BuildRequires: elpa-mpich-devel >= 2017.05.002 +BuildRequires: elpa-mpich-devel >= 2018.05.001 BuildRequires: scalapack-mpich-devel +Provides: bundled(dbcsr) = %{dbcsr_version} Requires: %{name}-common = %{version}-%{release} # Libint may have API breakage -Requires: libint(api)%{?_isa} = %{_libint_apiversion} +Requires: libint2(api)%{?_isa} = %{_libint2_apiversion}
%description mpich %{cp2k_desc_base} @@ -105,73 +121,77 @@ Summary: Molecular simulations software - common files This package contains the documentation and the manual.
%prep +%if %{git} +%setup -q -n %{name}-%{commit} +tar xzf %{S:1} -C exts/dbcsr --strip-components=1 +echo git:%{shortcommit} > REVISION +%else %setup -q +%endif %patch10 -p1 -b .r -%patch11 -p1 -b .32bit -sed -i 's|@libdir@|%{_libdir}|' makefiles/Makefile +#%%patch11 -p1 -b .32bit +%patch12 -p1 -b .xc5 +sed -i 's|@libdir@|%{_libdir}|' Makefile rm tools/build_utils/fypp
# Generate necessary symlinks TARGET=Linux-%{_target_cpu}-gfortran -for v in opt smp ; do - ln -s Linux-x86-64-gfortran.s${v} arch/${TARGET}.s${v} +ln -s Linux-x86-64-gfortran.ssmp arch/${TARGET}.ssmp for m in mpich openmpi ; do - ln -s Linux-x86-64-gfortran.p${v} arch/${TARGET}-${m}.p${v} + ln -s Linux-x86-64-gfortran.psmp arch/${TARGET}-${m}.psmp done -done
# fix crashes in fftw on i686. Need to run on original file, otherwise symlinks will be replaced with copies. %ifarch i686 sed -i 's/-D__FFTW3/-D__FFTW3 -D__FFTW3_UNALIGNED/g' arch/Linux-x86-64-gfortran* %endif
-# See cp2k/tools/hfx_tools/libint_tools/README_LIBINT -# Get libint and libderiv limits -maxam=`awk '/LIBINT_MAX_AM / {print $3}' %{_includedir}/libint/libint.h` -maxderiv=`awk '/LIBDERIV_MAX_AM1 / {print $3}' %{_includedir}/libderiv/libderiv.h` -# Plug them in the configuration -for f in arch/Linux-x86-64-gfortran.{popt,psmp,sopt,ssmp}; do - sed -i "s|@LIBINT_MAX_AM@|$maxam|g;s|@LIBDERIV_MAX_AM@|$maxderiv|g" $f +for f in arch/Linux-x86-64-gfortran.{psmp,ssmp}; do %ifarch x86_64 - sed -i 's|@LIBSMM_DEFS@|-D__LIBXSMM|;s|@LIBSMM_LIBS@|-lxsmmf -lxsmm -ldl|' $f + sed -i 's|@LIBSMM_DEFS@|-D__LIBXSMM|;s|@LIBSMM_LIBS@|-lxsmmf -lxsmm|' $f %else sed -i 's|@LIBSMM_DEFS@||;s|@LIBSMM_LIBS@||' $f %endif done
+pathfix.py -i "%{__python3} -Es" -p $(find . -type f -name *.py) + %build +export PYTHON=%{_bindir}/python3 TARGET=Linux-%{_target_cpu}-gfortran -OPTFLAGS_COMMON="%{optflags} -fPIC -I%{_fmoddir}" -pushd makefiles - make OPTFLAGS="${OPTFLAGS_COMMON}" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,%{_libdir}/cp2k" %{?_smp_mflags} ARCH="${TARGET}" VERSION="sopt ssmp" +OPTFLAGS_COMMON="%(echo %{optflags} | sed -e 's/ -Werror=format-security//g') -fPIC -I%{_fmoddir} -fallow-argument-mismatch" +make OPTFLAGS="${OPTFLAGS_COMMON}" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,%{_libdir}/cp2k" %{?_smp_mflags} ARCH="${TARGET}" VERSION="ssmp" %{_openmpi_load} - make OPTFLAGS="${OPTFLAGS_COMMON} -I%{_fmoddir}/openmpi" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,${MPI_LIB}/cp2k" %{?_smp_mflags} ARCH="${TARGET}-openmpi" VERSION="popt psmp" +make OPTFLAGS="${OPTFLAGS_COMMON} -I%{_fmoddir}/openmpi" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,${MPI_LIB}/cp2k" %{?_smp_mflags} ARCH="${TARGET}-openmpi" VERSION="psmp" %{_openmpi_unload} %{_mpich_load} - make OPTFLAGS="${OPTFLAGS_COMMON} -I%{_fmoddir}/mpich" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,${MPI_LIB}/cp2k" %{?_smp_mflags} ARCH="${TARGET}-mpich" VERSION="popt psmp" +make OPTFLAGS="${OPTFLAGS_COMMON} -I%{_fmoddir}/mpich" DISTLDFLAGS="%{__global_ldflags} -Wl,-rpath,${MPI_LIB}/cp2k" %{?_smp_mflags} ARCH="${TARGET}-mpich" VERSION="psmp" %{_mpich_unload} -popd
%install TARGET=Linux-%{_target_cpu}-gfortran mkdir -p %{buildroot}{%{_bindir},%{_libdir}/cp2k,%{_datadir}/cp2k} -for v in opt smp ; do -install -pm755 exe/${TARGET}/cp2k.s${v} %{buildroot}%{_bindir} -install -pm755 exe/${TARGET}/cp2k_shell.s${v} %{buildroot}%{_bindir} -install -pm755 lib/${TARGET}/s${v}/lib*.s${v}.so %{buildroot}%{_libdir}/cp2k/ +install -pm755 exe/${TARGET}/cp2k.ssmp %{buildroot}%{_bindir} +ln -s cp2k.ssmp %{buildroot}%{_bindir}/cp2k.sopt +ln -s cp2k.ssmp %{buildroot}%{_bindir}/cp2k_shell.ssmp +install -pm755 lib/${TARGET}/ssmp/lib*.so %{buildroot}%{_libdir}/cp2k/ +install -pm755 lib/${TARGET}/ssmp/exts/dbcsr/libdbcsr.so %{buildroot}%{_libdir}/cp2k/ %{_openmpi_load} mkdir -p %{buildroot}{${MPI_BIN},${MPI_LIB}/cp2k} - install -pm755 exe/${TARGET}-openmpi/cp2k.p${v} %{buildroot}${MPI_BIN}/cp2k.p${v}_openmpi - install -pm755 exe/${TARGET}-openmpi/cp2k_shell.p${v} %{buildroot}${MPI_BIN}/cp2k_shell.p${v}_openmpi - install -pm755 lib/${TARGET}-openmpi/p${v}/lib*.p${v}.so %{buildroot}${MPI_LIB}/cp2k/ +install -pm755 exe/${TARGET}-openmpi/cp2k.psmp %{buildroot}${MPI_BIN}/cp2k.psmp_openmpi +ln -s cp2k.psmp_openmpi %{buildroot}${MPI_BIN}/cp2k.popt_openmpi +ln -s cp2k.psmp_openmpi %{buildroot}${MPI_BIN}/cp2k_shell.psmp_openmpi +install -pm755 lib/${TARGET}-openmpi/psmp/lib*.so %{buildroot}${MPI_LIB}/cp2k/ +install -pm755 lib/${TARGET}-openmpi/psmp/exts/dbcsr/libdbcsr.so %{buildroot}${MPI_LIB}/cp2k/ %{_openmpi_unload} %{_mpich_load} mkdir -p %{buildroot}{${MPI_BIN},${MPI_LIB}/cp2k} - install -pm755 exe/${TARGET}-mpich/cp2k.p${v} %{buildroot}${MPI_BIN}/cp2k.p${v}_mpich - install -pm755 exe/${TARGET}-mpich/cp2k_shell.p${v} %{buildroot}${MPI_BIN}/cp2k_shell.p${v}_mpich - install -pm755 lib/${TARGET}-mpich/p${v}/lib*.p${v}.so %{buildroot}${MPI_LIB}/cp2k/ +install -pm755 exe/${TARGET}-mpich/cp2k.psmp %{buildroot}${MPI_BIN}/cp2k.psmp_mpich +ln -s cp2k.psmp_mpich %{buildroot}${MPI_BIN}/cp2k.popt_mpich +ln -s cp2k.psmp_mpich %{buildroot}${MPI_BIN}/cp2k_shell.psmp_mpich +install -pm755 lib/${TARGET}-mpich/psmp/lib*.so %{buildroot}${MPI_LIB}/cp2k/ +install -pm755 lib/${TARGET}-mpich/psmp/exts/dbcsr/libdbcsr.so %{buildroot}${MPI_LIB}/cp2k/ %{_mpich_unload} -done cp -pr data/* %{buildroot}%{_datadir}/cp2k/
%if %{with check} @@ -183,7 +203,6 @@ dir_base=%{_builddir} __EOF__ . /etc/profile.d/modules.sh export CP2K_DATA_DIR=%{buildroot}%{_datadir}/cp2k/ -for thr in opt smp ; do for mpi in '' mpich openmpi ; do if [ -n "$mpi" ]; then module load mpi/${mpi}-%{_arch} @@ -201,54 +220,52 @@ for thr in opt smp ; do tools/regtesting/do_regtest \ -arch Linux-%{_target_cpu}-gfortran${suf} \ -config fedora.config \ +%if %{git} + -cp2kdir cp2k-%{commit} \ +%else -cp2kdir cp2k-%{version} \ +%endif ${mpiopts} \ -nobuild \ - -noemptycheck \ - -noreset \ - -nosvn \ - -version ${par}${thr} \ + -version ${par}smp \
if [ -n "$mpi" ]; then module unload mpi/${mpi}-%{_arch} fi done -done %endif
%files common %license COPYRIGHT -%doc README +%doc README.md %{_datadir}/cp2k
%files %{_bindir}/cp2k.sopt %{_bindir}/cp2k.ssmp -%{_bindir}/cp2k_shell.sopt %{_bindir}/cp2k_shell.ssmp %dir %{_libdir}/cp2k -%{_libdir}/cp2k/lib*.sopt.so -%{_libdir}/cp2k/lib*.ssmp.so +%{_libdir}/cp2k/lib*.so
%files openmpi %{_libdir}/openmpi/bin/cp2k.popt_openmpi %{_libdir}/openmpi/bin/cp2k.psmp_openmpi -%{_libdir}/openmpi/bin/cp2k_shell.popt_openmpi %{_libdir}/openmpi/bin/cp2k_shell.psmp_openmpi %dir %{_libdir}/openmpi/lib/cp2k -%{_libdir}/openmpi/lib/cp2k/lib*.popt.so -%{_libdir}/openmpi/lib/cp2k/lib*.psmp.so +%{_libdir}/openmpi/lib/cp2k/lib*.so
%files mpich %{_libdir}/mpich/bin/cp2k.popt_mpich %{_libdir}/mpich/bin/cp2k.psmp_mpich -%{_libdir}/mpich/bin/cp2k_shell.popt_mpich %{_libdir}/mpich/bin/cp2k_shell.psmp_mpich %dir %{_libdir}/mpich/lib/cp2k -%{_libdir}/mpich/lib/cp2k/lib*.popt.so -%{_libdir}/mpich/lib/cp2k/lib*.psmp.so +%{_libdir}/mpich/lib/cp2k/lib*.so
%changelog +* Fri Sep 25 2020 Dominik Mierzejewski rpm@greysector.net - 7.1-1 +- update to post-7.1 snapshot for gcc-10 compatibility (#1786794) +- [sp]opt variants are no longer built (use OMP_NUM_THREADS=1 instead) + * Mon Aug 10 2020 Iñaki Úcar iucar@fedoraproject.org - 6.1-10 - https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager
diff --git a/sources b/sources index 5674cf5..663d9ad 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (cp2k-6.1.tar.bz2) = f18c55a074a32938572632c8cf00ff675386553d3fec9657f4629f0bdf16f54874de70bc81d48a2b58c1ef391b52e5852c355dc8d30c38363100009e33f965b5 +SHA512 (cp2k-dbf7a77.tar.gz) = b5b0cdfa3e97930dfc13027942f94e3c234648efe01d966e08cbdf2904db0a7769a7d8f5cc960e07496e09e0212e381cdeec80eca800a67c25be4cccf6a6e52d +SHA512 (dbcsr-d2dfe6e.tar.gz) = 45628103844c45f01c989acd76aef4b0e0beea9ffb4e23bce2af21719eac02e6c1b6eae7bbf3615fdbeda14c3cf65c743da59095b559b6a03102c65f75ea64ca
arch-excludes@lists.fedoraproject.org