libxc - compatibiliity fixes

This commit is contained in:
fabrizio22 2020-07-10 14:11:09 +02:00
parent 1122a399c4
commit 3744177806
2 changed files with 16 additions and 17 deletions

View File

@ -36,6 +36,7 @@ MODULE funct
USE io_global, ONLY: stdout, ionode
USE kinds, ONLY: DP
#if defined(__LIBXC)
#include "xc_version.h"
USE xc_f03_lib_m
#endif
!
@ -919,6 +920,12 @@ CONTAINS
TYPE(xc_f03_func_info_t) :: xc_info
LOGICAL, EXTERNAL :: matches
CHARACTER(LEN=1), EXTERNAL :: capital
#if (XC_MAJOR_VERSION > 4)
INTEGER :: XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA
!
XC_FAMILY_HYB_GGA = XC_FAMILY_GGA
XC_FAMILY_HYB_MGGA = XC_FAMILY_MGGA
#endif
!
prev_len(:) = 1
!
@ -941,7 +948,10 @@ CONTAINS
xc_info = xc_f03_func_get_info( xc_func )
fkind = xc_f03_func_info_get_kind( xc_info )
family = xc_f03_func_info_get_family( xc_info )
IF ( matches(TRIM(name), '_HYB') ) lxc_hyb = .TRUE.
IF ( matches('HYB_', TRIM(name)) ) THEN
lxc_hyb = .TRUE.
exx_fraction = xc_f03_hyb_exx_coef( xc_func )
ENDIF
CALL xc_f03_func_end( xc_func )
!
SELECT CASE( family )
@ -957,7 +967,7 @@ CONTAINS
ENDIF
fkind_v(1) = fkind
!
CASE( XC_FAMILY_GGA ) !, XC_FAMILY_HYB_GGA )
CASE( XC_FAMILY_GGA, XC_FAMILY_HYB_GGA )
IF (fkind==XC_EXCHANGE .OR. fkind==XC_EXCHANGE_CORRELATION) THEN
IF ( LEN(TRIM(name)) > prev_len(3) ) igcx = i
is_libxc(3) = .TRUE.
@ -969,7 +979,7 @@ CONTAINS
ENDIF
fkind_v(2) = fkind
!
CASE( XC_FAMILY_MGGA ) !, XC_FAMILY_HYB_MGGA )
CASE( XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA )
IF (fkind==XC_EXCHANGE .OR. fkind==XC_EXCHANGE_CORRELATION) THEN
IF ( LEN(TRIM(name)) > prev_len(5) ) imeta = i
is_libxc(5) = .TRUE.
@ -1358,17 +1368,6 @@ CONTAINS
!-----------------------------------------------------------------------
FUNCTION get_exx_fraction()
REAL(DP) :: get_exx_fraction
#if defined(__LIBXC)
TYPE(xc_f03_func_t) :: xc_func
!
IF ( lxc_hyb .AND. (is_libxc(1) .OR. is_libxc(3) .OR. is_libxc(5)) ) THEN
IF ( is_libxc(1) ) CALL xc_f03_func_init( xc_func, iexch, 1 )
IF ( is_libxc(3) ) CALL xc_f03_func_init( xc_func, igcx, 1 )
IF ( is_libxc(5) ) CALL xc_f03_func_init( xc_func, imeta, 1 )
exx_fraction = xc_f03_hyb_exx_coef( xc_func )
CALL xc_f03_func_end( xc_func )
ENDIF
#endif
get_exx_fraction = exx_fraction
RETURN
END FUNCTION get_exx_fraction

6
install/configure vendored
View File

@ -6485,7 +6485,7 @@ fi
if test "$with_libxc" -ne 0; then
lxcf="f90"
lxcf="f03"
lxcf2="f03"
if test ! -z "$with_libxc_prefix"; then
lxc_version=`grep "XC_MAJOR_VERSION" "$with_libxc_prefix/xc_version.h" | tr -dc '1-9'`
@ -6521,12 +6521,12 @@ FCFLAGS="$FCFLAGS_LIBXC $acx_libxc_save_FCFLAGS"
testprog=" program main
use xc_${lxcf2}_lib_m
use xc_${lxcf}_lib_m
implicit none
integer :: major
integer :: minor
integer :: micro
call xc_${lxcf2}_version(major, minor, micro)
call xc_${lxcf}_version(major, minor, micro)
end"
if test ! -z "$LIBS_LIBXC"; then