Hello, This is because of some change (concerning parameters) in the last few versions of libxc. The attached libxc.F will be in the next version of WIEN2k.
FT On Sunday 2017-12-31 04:24, Arthur H. Edwards wrote:
Date: Sun, 31 Dec 2017 04:24:04 From: Arthur H. Edwards <edwards...@fastmail.fm> Reply-To: A Mailing list for WIEN2k users <wien@zeus.theochem.tuwien.ac.at> To: wien@zeus.theochem.tuwien.ac.at Subject: [Wien] xc_f03_mgga_x_tb09_set_params I got WIEN2k_17 compiled on a Linux machine (x86-64) running 16.04 Ubuntu. I am now having difficulty compiling with libxc. There is a routine, xc_f03_mgga_x_tb09_set_params, that is referenced but is not found. I have looked at the code in libxc, and there is, in fact, no such routine. Because the call only appears in two if-statments for, I assume, a specific XC potential, and because I do not foresee using any meta gga XC potentials, I have simply commented the two lines out. Specifically, they appear in SRC_lapw0, in libxc.F, in lines 45 and 112. After commenting these lines out, lapw0 compiled successfully. Art Edwards -- Arthur H. Edwards edwards...@fastmail.fm _______________________________________________ Wien mailing list Wien@zeus.theochem.tuwien.ac.at http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien SEARCH the MAILING-LIST at: http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html
subroutine libxc(rhoup,gxu,gyu,gzu,ggxu,ggyu,ggzu,g2rhoup,tauup, & rhodn,gxd,gyd,gzd,ggxd,ggyd,ggzd,g2rhodn,taudn, & ggx,ggy,ggz,grhoggrho,exc,vxcup,vxcdn,jspin,id_func) #ifdef LIBXC use xcparam, only : xcconst use xc_f03_lib_m implicit none TYPE(xc_f03_func_t) :: xc_func TYPE(xc_f03_func_info_t) :: xc_info integer, intent(in) :: jspin, id_func real*8, intent(in) :: & rhoup, gxu, gyu, gzu, ggxu, ggyu, ggzu, g2rhoup, tauup, & rhodn, gxd, gyd, gzd, ggxd, ggyd, ggzd, g2rhodn, taudn, & ggx, ggy, ggz, grhoggrho real*8, intent(inout) :: exc(1), vxcup, vxcdn real*8 :: grho2, grhoup2, grhodn2, grhoupdn, & grhoupggrhoup, grhodnggrhodn, grhoupggrhodn, grhodnggrhoup, & grhoupggrho, grhodnggrho, & gsigma1grhoup, gsigma2grhoup, gsigma3grhoup, & gsigma1grhodn, gsigma2grhodn, gsigma3grhodn, & rho(2), sigma(3), lapl_rho(2), tau(2), & vrho(2), vsigma(3), vlapl_rho(2), vtau(2), & v2rho2(3), v2rhosigma(6), v2sigma2(6), & f1, f2, f3, f4, xcconstvec(1) vrho(:) = 0.0d0 vsigma(:) = 0.0d0 vlapl_rho(:) = 0.0d0 vtau(:) = 0.0d0 v2rho2(:) = 0.0d0 v2rhosigma(:) = 0.0d0 v2sigma2(:) = 0.0d0 if (jspin .eq. 1) then call xc_f03_func_init(xc_func,id_func,XC_UNPOLARIZED) xc_info = xc_f03_func_get_info(xc_func) if (id_func .eq. 208) then xcconstvec(1) = xcconst call xc_f03_func_set_ext_params(xc_func,xcconstvec) endif select case(xc_f03_func_info_get_family(xc_info)) case (xc_family_lda) rho(1) = rhoup + rhodn call xc_f03_lda_exc_vxc(xc_func,1,rho(1),exc(1),vrho(1)) vxcup = vrho(1) vxcdn = vxcup case (xc_family_gga,xc_family_hyb_gga) rho(1) = rhoup + rhodn sigma(1) = (gxu+gxd)**2 + (gyu+gyd)**2 + (gzu+gzd)**2 if ((id_func .eq. 160) .or. (id_func .eq. 182)) then call xc_f03_gga_vxc(xc_func,1,rho(1),sigma(1),vrho(1),vsigma(1)) exc(1) = 0.0d0 vxcup = vrho(1) vxcdn = vxcup else call xc_f03_gga_exc_vxc(xc_func,1,rho(1),sigma(1),exc(1),vrho(1),vsigma(1)) call xc_f03_gga_fxc(xc_func,1,rho(1),sigma(1),v2rho2(1),v2rhosigma(1),v2sigma2(1)) vxcup = vrho(1) - 2.0d0*v2rhosigma(1)*sigma(1) - & 4.0d0*v2sigma2(1)*sqrt(sigma(1))*grhoggrho - & 2.0d0*vsigma(1)*(g2rhoup+g2rhodn) vxcdn = vxcup endif case (xc_family_mgga,xc_family_hyb_mgga) rho(1) = rhoup + rhodn sigma(1) = (gxu+gxd)**2 + (gyu+gyd)**2 + (gzu+gzd)**2 lapl_rho(1) = g2rhoup + g2rhodn tau(1) = max(tauup+taudn,sigma(1)/(8.0d0*rho(1))) if ((id_func .eq. 207) .or. (id_func .eq. 208) .or. (id_func .eq. 209)) then call xc_f03_mgga_vxc(xc_func,1,rho(1),sigma(1),lapl_rho(1),tau(1), & vrho(1),vsigma(1),vlapl_rho(1),vtau(1)) exc(1) = 0.0d0 vxcup = vrho(1) vxcdn = vxcup else call xc_f03_mgga_exc(xc_func,1,rho(1),sigma(1),lapl_rho(1),tau(1),exc(1)) vxcup = 0.0d0 vxcdn = 0.0d0 endif end select elseif (jspin .eq. 2) then call xc_f03_func_init(xc_func,id_func,XC_POLARIZED) xc_info = xc_f03_func_get_info(xc_func) if (id_func .eq. 208) then xcconstvec(1) = xcconst call xc_f03_func_set_ext_params(xc_func,xcconstvec) endif select case(xc_f03_func_info_get_family(xc_info)) case (xc_family_lda) rho(1) = rhoup rho(2) = rhodn call xc_f03_lda_exc_vxc(xc_func,1,rho(1),exc(1),vrho(1)) vxcup = vrho(1) vxcdn = vrho(2) case (xc_family_gga,xc_family_hyb_gga) grho2 = (gxu+gxd)**2 + (gyu+gyd)**2 + (gzu+gzd)**2 grhoup2 = gxu**2 + gyu**2 + gzu**2 grhodn2 = gxd**2 + gyd**2 + gzd**2 grhoupdn = gxu*gxd + gyu*gyd + gzu*gzd grhoupggrhoup = gxu*ggxu + gyu*ggyu + gzu*ggzu grhodnggrhodn = gxd*ggxd + gyd*ggyd + gzd*ggzd grhoupggrhodn = gxu*ggxd + gyu*ggyd + gzu*ggzd grhodnggrhoup = gxd*ggxu + gyd*ggyu + gzd*ggzu grhoupggrho = gxu*ggx + gyu*ggy + gzu*ggz grhodnggrho = gxd*ggx + gyd*ggy + gzd*ggz gsigma1grhoup = 2.0d0*sqrt(grhoup2)*grhoupggrhoup gsigma3grhoup = 2.0d0*sqrt(grhodn2)*grhoupggrhodn gsigma1grhodn = 2.0d0*sqrt(grhoup2)*grhodnggrhoup gsigma3grhodn = 2.0d0*sqrt(grhodn2)*grhodnggrhodn gsigma2grhoup = sqrt(grho2)*grhoupggrho - 0.5d0*(gsigma1grhoup + gsigma3grhoup) gsigma2grhodn = sqrt(grho2)*grhodnggrho - 0.5d0*(gsigma1grhodn + gsigma3grhodn) rho(1) = rhoup rho(2) = rhodn sigma(1) = grhoup2 sigma(2) = grhoupdn sigma(3) = grhodn2 if ((id_func .eq. 160) .or. (id_func .eq. 182)) then call xc_f03_gga_vxc(xc_func,1,rho(1),sigma(1),vrho(1),vsigma(1)) exc(1) = 0.0d0 vxcup = vrho(1) vxcdn = vrho(2) else call xc_f03_gga_exc_vxc(xc_func,1,rho(1),sigma(1),exc(1),vrho(1),vsigma(1)) call xc_f03_gga_fxc(xc_func,1,rho(1),sigma(1),v2rho2(1),v2rhosigma(1),v2sigma2(1)) f1 = 2.0d0*( & v2rhosigma(1)*grhoup2 + & v2rhosigma(4)*grhoupdn + & v2sigma2(1)*gsigma1grhoup + & v2sigma2(2)*gsigma2grhoup + & v2sigma2(3)*gsigma3grhoup) f2 = 2.0d0*vsigma(1)*g2rhoup f3 = v2rhosigma(2)*grhoupdn + & v2rhosigma(5)*grhodn2 + & v2sigma2(2)*gsigma1grhodn + & v2sigma2(4)*gsigma2grhodn + & v2sigma2(5)*gsigma3grhodn f4 = vsigma(2)*g2rhodn vxcup = vrho(1) - f1 - f2 - f3 - f4 f1 = 2.0d0*( & v2rhosigma(6)*grhodn2 + & v2rhosigma(3)*grhoupdn + & v2sigma2(6)*gsigma3grhodn + & v2sigma2(5)*gsigma2grhodn + & v2sigma2(3)*gsigma1grhodn) f2 = 2.0d0*vsigma(3)*g2rhodn f3 = v2rhosigma(5)*grhoupdn + & v2rhosigma(2)*grhoup2 + & v2sigma2(5)*gsigma3grhoup + & v2sigma2(4)*gsigma2grhoup + & v2sigma2(2)*gsigma1grhoup f4 = vsigma(2)*g2rhoup vxcdn = vrho(2) - f1 - f2 - f3 - f4 endif case (xc_family_mgga,xc_family_hyb_mgga) rho(1) = rhoup rho(2) = rhodn sigma(1) = gxu**2 + gyu**2 + gzu**2 sigma(2) = gxu*gxd + gyu*gyd + gzu*gzd sigma(3) = gxd**2 + gyd**2 + gzd**2 lapl_rho(1) = g2rhoup lapl_rho(2) = g2rhodn tau(1) = max(tauup,sigma(1)/(8.0d0*rho(1))) tau(2) = max(taudn,sigma(3)/(8.0d0*rho(2))) if ((id_func .eq. 207) .or. (id_func .eq. 208) .or. (id_func .eq. 209)) then call xc_f03_mgga_vxc(xc_func,1,rho(1),sigma(1),lapl_rho(1),tau(1), & vrho(1),vsigma(1),vlapl_rho(1),vtau(1)) exc(1) = 0.0d0 vxcup = vrho(1) vxcdn = vrho(2) else call xc_f03_mgga_exc(xc_func,1,rho(1),sigma(1),lapl_rho(1),tau(1),exc(1)) vxcup = 0.0d0 vxcdn = 0.0d0 endif end select endif call xc_f03_func_end(xc_func) #endif end
_______________________________________________ Wien mailing list Wien@zeus.theochem.tuwien.ac.at http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien SEARCH the MAILING-LIST at: http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html