diff --git a/src/nwdft/libxc/libxc.fh b/src/nwdft/libxc/libxc.fh index f25a9e945e..49bd2024a3 100644 --- a/src/nwdft/libxc/libxc.fh +++ b/src/nwdft/libxc/libxc.fh @@ -1,3 +1,6 @@ +#if XC_MAJOR_VERSION < 4 +#error "need libxc version > 4 " +#endif integer, parameter :: maxfunc = 100 integer :: libxc_nfuncs diff --git a/src/nwdft/libxc/nwchem_libxc_compute.F b/src/nwdft/libxc/nwchem_libxc_compute.F index 0cce76dfb1..3a56ce11f5 100644 --- a/src/nwdft/libxc/nwchem_libxc_compute.F +++ b/src/nwdft/libxc/nwchem_libxc_compute.F @@ -63,7 +63,11 @@ logical gga,mgga,dolap logical,external :: nwchem_libxc_family +#if XC_MAJOR_VERSION > 5 integer(c_size_t) :: nqs +#else + integer*4 :: nqs +#endif #ifdef USE_LIBXC type(xc_f03_func_t) :: xcfunc @@ -158,8 +162,11 @@ call xc_f03_func_set_zeta_threshold(xcfunc, 1d-10) select case(libxc_family(ifunc)) +#if XC_MAJOR_VERSION > 5 case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) - +#else + case (XC_FAMILY_LDA) +#endif if ((.not.do_2nd) .and. (.not.do_3rd)) then call xc_f03_lda_exc_vxc(xcfunc,nqs, $ dbl_mb(krho),dbl_mb(kexc),dbl_mb(kvrho)) @@ -224,6 +231,7 @@ mgga = .true. dolap = iand(libxc_flags(ifunc),xc_flags_needs_laplacian).eq. $ xc_flags_needs_laplacian +#endif if (iand(libxc_flags(ifunc),xc_flags_have_exc).eq. $ xc_flags_have_exc) then diff --git a/src/nwdft/libxc/nwchem_libxc_read.F b/src/nwdft/libxc/nwchem_libxc_read.F index 23028bfe37..b68e2a3208 100644 --- a/src/nwdft/libxc/nwchem_libxc_read.F +++ b/src/nwdft/libxc/nwchem_libxc_read.F @@ -41,7 +41,11 @@ xcfamily = xc_f03_func_info_get_family(xcinfo) select case(xcfamily) +#if XC_MAJOR_VERSION > 5 case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA) +#else + case (XC_FAMILY_LDA) +#endif case (XC_FAMILY_GGA, XC_FAMILY_HYB_GGA) case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA) case default @@ -50,7 +54,11 @@ endselect select case(xcfamily) +#if XC_MAJOR_VERSION > 5 case (XC_FAMILY_HYB_LDA, XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA) +#else + case (XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA) +#endif if (iand(xcflags,xc_flags_hyb_cam).eq.xc_flags_hyb_cam) then call xc_f03_hyb_cam_coef(xcfunc,cam_omega,cam_alpha,cam_beta) diff --git a/src/nwdft/libxc/nwchem_libxc_util.F b/src/nwdft/libxc/nwchem_libxc_util.F index 48e743a096..f670f35bc3 100644 --- a/src/nwdft/libxc/nwchem_libxc_util.F +++ b/src/nwdft/libxc/nwchem_libxc_util.F @@ -74,8 +74,10 @@ use,intrinsic :: iso_c_binding #ifdef USE_LIBXC use xc_f03_lib_m, only: xc_f03_version_string, - $ xc_f03_reference, - $ xc_f03_functional_get_name +#if XC_MAJOR_VERSION > 5 + $ xc_f03_reference, +#endif + $ xc_f03_functional_get_name #endif implicit none @@ -110,8 +112,10 @@ use,intrinsic :: iso_c_binding #ifdef USE_LIBXC use xc_f03_lib_m, only: xc_f03_version_string, - $ xc_f03_reference, - $ xc_f03_functional_get_name +#if XC_MAJOR_VERSION > 5 + $ xc_f03_reference, +#endif + $ xc_f03_functional_get_name #endif implicit none