2055 LOGICAL,
INTENT(IN),
OPTIONAL :: gapw
2056 REAL(kind=
dp),
DIMENSION(:, :, :, :),
OPTIONAL, &
2058 REAL(kind=
dp),
INTENT(in),
OPTIONAL :: tddfpt_fac
2059 LOGICAL,
INTENT(IN),
OPTIONAL :: compute_virial
2060 REAL(kind=
dp),
DIMENSION(3, 3),
INTENT(INOUT), &
2061 OPTIONAL :: virial_xc
2062 LOGICAL,
INTENT(in),
OPTIONAL :: spinflip
2064 CHARACTER(len=*),
PARAMETER :: routinen =
'xc_calc_2nd_deriv_analytical'
2066 INTEGER :: handle, i, ia, idir, ir, ispin, j, jdir, &
2067 k, nspins, xc_deriv_method_id
2068 INTEGER,
DIMENSION(2, 3) :: bo
2069 LOGICAL :: gradient_f, lsd, my_compute_virial, alda0, &
2070 my_gapw, tau_f, laplace_f, rho_f, do_spinflip
2071 REAL(kind=
dp) ::
fac, gradient_cut, tmp, factor2, s, s_thresh
2072 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: dr1dr, dra1dra, drb1drb
2073 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: deriv_data, deriv_data2, &
2074 e_drhoa, e_drhob, e_drho, norm_drho, norm_drhoa, &
2075 norm_drhob, rho1, rho1a, rho1b, &
2076 tau1, tau1a, tau1b, laplace1, laplace1a, laplace1b, &
2078 TYPE(
cp_3d_r_cp_type),
DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob
2079 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
ALLOCATABLE :: v_drhoa, v_drhob, v_drho, v_laplace
2085 CALL timeset(routinen, handle)
2087 NULLIFY (e_drhoa, e_drhob, e_drho)
2090 IF (
PRESENT(gapw)) my_gapw = gapw
2092 my_compute_virial = .false.
2093 IF (
PRESENT(compute_virial)) my_compute_virial = compute_virial
2095 cpassert(
ASSOCIATED(v_xc))
2096 cpassert(
ASSOCIATED(xc_section))
2098 cpassert(
PRESENT(vxg))
2100 IF (my_compute_virial)
THEN
2101 cpassert(
PRESENT(virial_xc))
2105 i_val=xc_deriv_method_id)
2108 lsd =
ASSOCIATED(rho_set%rhoa)
2111 IF (
PRESENT(tddfpt_fac))
fac = tddfpt_fac
2112 IF (
PRESENT(tddfpt_fac)) factor2 = tddfpt_fac
2113 do_spinflip = .false.
2114 IF (
PRESENT(spinflip)) do_spinflip = spinflip
2116 bo = rho_set%local_bounds
2118 CALL check_for_derivatives(deriv_set, lsd, rho_f, gradient_f, tau_f, laplace_f)
2121 IF (gradient_f)
THEN
2128 cpassert(
ASSOCIATED(v_xc_tau))
2131 IF (gradient_f)
THEN
2132 ALLOCATE (v_drho_r(3, nspins), v_drho(nspins))
2133 DO ispin = 1, nspins
2135 CALL allocate_pw(v_drho_r(idir, ispin), pw_pool, bo)
2137 CALL allocate_pw(v_drho(ispin), pw_pool, bo)
2141 IF (
ASSOCIATED(pw_pool))
THEN
2142 CALL pw_pool%create_pw(tmp_g)
2143 CALL pw_pool%create_pw(vxc_g)
2146 cpabort(
"XC_DERIV method is not implemented in GAPW")
2151 DO ispin = 1, nspins
2152 v_xc(ispin)%array = 0.0_dp
2156 DO ispin = 1, nspins
2157 v_xc_tau(ispin)%array = 0.0_dp
2161 IF (laplace_f .AND. my_gapw)
THEN
2162 cpabort(
"Laplace-dependent functional not implemented with GAPW!")
2165 IF (my_compute_virial .AND. (gradient_f .OR. laplace_f))
CALL allocate_pw(virial_pw, pw_pool, bo)
2173 IF (do_spinflip)
THEN
2180 IF (gradient_f)
THEN
2182 norm_drho=norm_drho, norm_drhoa=norm_drhoa, norm_drhob=norm_drhob)
2183 IF (do_spinflip)
THEN
2185 CALL calc_drho_from_a(drho1, drho1a)
2188 CALL calc_drho_from_ab(drho1, drho1a, drho1b)
2191 CALL calc_drho_from_ab(drho, drhoa, drhob)
2193 CALL prepare_dr1dr(dra1dra, drhoa, drho1a)
2194 IF (do_spinflip)
THEN
2195 CALL prepare_dr1dr(drb1drb, drhob, drho1a)
2196 CALL prepare_dr1dr(dr1dr, drho, drho1a)
2197 ELSE IF (nspins /= 1)
THEN
2198 CALL prepare_dr1dr(drb1drb, drhob, drho1b)
2199 CALL prepare_dr1dr(dr1dr, drho, drho1)
2201 CALL prepare_dr1dr(drb1drb, drhob, drho1b)
2202 CALL prepare_dr1dr_ab(dr1dr, drhoa, drhob, drho1a, drho1b,
fac)
2205 ALLOCATE (v_drhoa(nspins), v_drhob(nspins))
2206 DO ispin = 1, nspins
2207 CALL allocate_pw(v_drhoa(ispin), pw_pool, bo)
2208 CALL allocate_pw(v_drhob(ispin), pw_pool, bo)
2214 CALL xc_rho_set_get(rho1_set, laplace_rhoa=laplace1a, laplace_rhob=laplace1b)
2216 ALLOCATE (v_laplace(nspins))
2217 DO ispin = 1, nspins
2218 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
2221 IF (my_compute_virial)
CALL xc_rho_set_get(rho_set, rhoa=rhoa, rhob=rhob)
2228 IF (do_spinflip)
THEN
2237 IF (
ASSOCIATED(deriv_att))
THEN
2240 IF (
ASSOCIATED(deriv_att))
THEN
2244 DO k = bo(1, 3), bo(2, 3)
2245 DO j = bo(1, 2), bo(2, 2)
2246 DO i = bo(1, 1), bo(2, 1)
2247 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
2248 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2249 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)/s
2261 IF (.NOT. alda0)
THEN
2263 IF (
ASSOCIATED(deriv_att))
THEN
2266 IF (
ASSOCIATED(deriv_att))
THEN
2270 DO k = bo(1, 3), bo(2, 3)
2271 DO j = bo(1, 2), bo(2, 2)
2272 DO i = bo(1, 1), bo(2, 1)
2273 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
2274 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2275 (deriv_data(i, j, k)*dra1dra(i, j, k) - &
2276 deriv_data2(i, j, k)*drb1drb(i, j, k))/s
2285 ELSE IF (nspins /= 1)
THEN
2289 IF (
ASSOCIATED(deriv_att))
THEN
2293 DO k = bo(1, 3), bo(2, 3)
2294 DO j = bo(1, 2), bo(2, 2)
2295 DO i = bo(1, 1), bo(2, 1)
2296 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2297 deriv_data(i, j, k)*rho1a(i, j, k)
2303 IF (
ASSOCIATED(deriv_att))
THEN
2307 DO k = bo(1, 3), bo(2, 3)
2308 DO j = bo(1, 2), bo(2, 2)
2309 DO i = bo(1, 1), bo(2, 1)
2310 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2311 deriv_data(i, j, k)*rho1b(i, j, k)
2317 IF (
ASSOCIATED(deriv_att))
THEN
2321 DO k = bo(1, 3), bo(2, 3)
2322 DO j = bo(1, 2), bo(2, 2)
2323 DO i = bo(1, 1), bo(2, 1)
2324 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2325 deriv_data(i, j, k)*dr1dr(i, j, k)
2331 IF (
ASSOCIATED(deriv_att))
THEN
2335 DO k = bo(1, 3), bo(2, 3)
2336 DO j = bo(1, 2), bo(2, 2)
2337 DO i = bo(1, 1), bo(2, 1)
2338 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2339 deriv_data(i, j, k)*dra1dra(i, j, k)
2345 IF (
ASSOCIATED(deriv_att))
THEN
2349 DO k = bo(1, 3), bo(2, 3)
2350 DO j = bo(1, 2), bo(2, 2)
2351 DO i = bo(1, 1), bo(2, 1)
2352 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2353 deriv_data(i, j, k)*drb1drb(i, j, k)
2359 IF (
ASSOCIATED(deriv_att))
THEN
2363 DO k = bo(1, 3), bo(2, 3)
2364 DO j = bo(1, 2), bo(2, 2)
2365 DO i = bo(1, 1), bo(2, 1)
2366 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2367 deriv_data(i, j, k)*tau1a(i, j, k)
2373 IF (
ASSOCIATED(deriv_att))
THEN
2377 DO k = bo(1, 3), bo(2, 3)
2378 DO j = bo(1, 2), bo(2, 2)
2379 DO i = bo(1, 1), bo(2, 1)
2380 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2381 deriv_data(i, j, k)*tau1b(i, j, k)
2387 IF (
ASSOCIATED(deriv_att))
THEN
2391 DO k = bo(1, 3), bo(2, 3)
2392 DO j = bo(1, 2), bo(2, 2)
2393 DO i = bo(1, 1), bo(2, 1)
2394 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2395 deriv_data(i, j, k)*laplace1a(i, j, k)
2401 IF (
ASSOCIATED(deriv_att))
THEN
2405 DO k = bo(1, 3), bo(2, 3)
2406 DO j = bo(1, 2), bo(2, 2)
2407 DO i = bo(1, 1), bo(2, 1)
2408 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2409 deriv_data(i, j, k)*laplace1b(i, j, k)
2417 IF (
ASSOCIATED(deriv_att))
THEN
2421 DO k = bo(1, 3), bo(2, 3)
2422 DO j = bo(1, 2), bo(2, 2)
2423 DO i = bo(1, 1), bo(2, 1)
2424 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2425 deriv_data(i, j, k)*rho1a(i, j, k)
2431 IF (
ASSOCIATED(deriv_att))
THEN
2435 DO k = bo(1, 3), bo(2, 3)
2436 DO j = bo(1, 2), bo(2, 2)
2437 DO i = bo(1, 1), bo(2, 1)
2438 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2439 deriv_data(i, j, k)*rho1b(i, j, k)
2445 IF (
ASSOCIATED(deriv_att))
THEN
2449 DO k = bo(1, 3), bo(2, 3)
2450 DO j = bo(1, 2), bo(2, 2)
2451 DO i = bo(1, 1), bo(2, 1)
2452 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2453 deriv_data(i, j, k)*dr1dr(i, j, k)
2459 IF (
ASSOCIATED(deriv_att))
THEN
2463 DO k = bo(1, 3), bo(2, 3)
2464 DO j = bo(1, 2), bo(2, 2)
2465 DO i = bo(1, 1), bo(2, 1)
2466 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2467 deriv_data(i, j, k)*dra1dra(i, j, k)
2473 IF (
ASSOCIATED(deriv_att))
THEN
2477 DO k = bo(1, 3), bo(2, 3)
2478 DO j = bo(1, 2), bo(2, 2)
2479 DO i = bo(1, 1), bo(2, 1)
2480 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2481 deriv_data(i, j, k)*drb1drb(i, j, k)
2487 IF (
ASSOCIATED(deriv_att))
THEN
2491 DO k = bo(1, 3), bo(2, 3)
2492 DO j = bo(1, 2), bo(2, 2)
2493 DO i = bo(1, 1), bo(2, 1)
2494 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2495 deriv_data(i, j, k)*tau1a(i, j, k)
2501 IF (
ASSOCIATED(deriv_att))
THEN
2505 DO k = bo(1, 3), bo(2, 3)
2506 DO j = bo(1, 2), bo(2, 2)
2507 DO i = bo(1, 1), bo(2, 1)
2508 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2509 deriv_data(i, j, k)*tau1b(i, j, k)
2515 IF (
ASSOCIATED(deriv_att))
THEN
2519 DO k = bo(1, 3), bo(2, 3)
2520 DO j = bo(1, 2), bo(2, 2)
2521 DO i = bo(1, 1), bo(2, 1)
2522 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2523 deriv_data(i, j, k)*laplace1a(i, j, k)
2529 IF (
ASSOCIATED(deriv_att))
THEN
2533 DO k = bo(1, 3), bo(2, 3)
2534 DO j = bo(1, 2), bo(2, 2)
2535 DO i = bo(1, 1), bo(2, 1)
2536 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2537 deriv_data(i, j, k)*laplace1b(i, j, k)
2545 IF (
ASSOCIATED(deriv_att))
THEN
2549 DO k = bo(1, 3), bo(2, 3)
2550 DO j = bo(1, 2), bo(2, 2)
2551 DO i = bo(1, 1), bo(2, 1)
2552 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2553 deriv_data(i, j, k)*rho1a(i, j, k)
2554 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2555 deriv_data(i, j, k)*rho1a(i, j, k)
2561 IF (
ASSOCIATED(deriv_att))
THEN
2565 DO k = bo(1, 3), bo(2, 3)
2566 DO j = bo(1, 2), bo(2, 2)
2567 DO i = bo(1, 1), bo(2, 1)
2568 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2569 deriv_data(i, j, k)*rho1b(i, j, k)
2570 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2571 deriv_data(i, j, k)*rho1b(i, j, k)
2577 IF (
ASSOCIATED(deriv_att))
THEN
2581 DO k = bo(1, 3), bo(2, 3)
2582 DO j = bo(1, 2), bo(2, 2)
2583 DO i = bo(1, 1), bo(2, 1)
2584 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2585 deriv_data(i, j, k)*dr1dr(i, j, k)
2586 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2587 deriv_data(i, j, k)*dr1dr(i, j, k)
2593 IF (
ASSOCIATED(deriv_att))
THEN
2597 DO k = bo(1, 3), bo(2, 3)
2598 DO j = bo(1, 2), bo(2, 2)
2599 DO i = bo(1, 1), bo(2, 1)
2600 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2601 deriv_data(i, j, k)*dra1dra(i, j, k)
2602 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2603 deriv_data(i, j, k)*dra1dra(i, j, k)
2609 IF (
ASSOCIATED(deriv_att))
THEN
2613 DO k = bo(1, 3), bo(2, 3)
2614 DO j = bo(1, 2), bo(2, 2)
2615 DO i = bo(1, 1), bo(2, 1)
2616 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2617 deriv_data(i, j, k)*drb1drb(i, j, k)
2618 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2619 deriv_data(i, j, k)*drb1drb(i, j, k)
2625 IF (
ASSOCIATED(deriv_att))
THEN
2629 DO k = bo(1, 3), bo(2, 3)
2630 DO j = bo(1, 2), bo(2, 2)
2631 DO i = bo(1, 1), bo(2, 1)
2632 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2633 deriv_data(i, j, k)*tau1a(i, j, k)
2634 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2635 deriv_data(i, j, k)*tau1a(i, j, k)
2641 IF (
ASSOCIATED(deriv_att))
THEN
2645 DO k = bo(1, 3), bo(2, 3)
2646 DO j = bo(1, 2), bo(2, 2)
2647 DO i = bo(1, 1), bo(2, 1)
2648 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2649 deriv_data(i, j, k)*tau1b(i, j, k)
2650 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2651 deriv_data(i, j, k)*tau1b(i, j, k)
2657 IF (
ASSOCIATED(deriv_att))
THEN
2661 DO k = bo(1, 3), bo(2, 3)
2662 DO j = bo(1, 2), bo(2, 2)
2663 DO i = bo(1, 1), bo(2, 1)
2664 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2665 deriv_data(i, j, k)*laplace1a(i, j, k)
2666 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2667 deriv_data(i, j, k)*laplace1a(i, j, k)
2673 IF (
ASSOCIATED(deriv_att))
THEN
2677 DO k = bo(1, 3), bo(2, 3)
2678 DO j = bo(1, 2), bo(2, 2)
2679 DO i = bo(1, 1), bo(2, 1)
2680 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2681 deriv_data(i, j, k)*laplace1b(i, j, k)
2682 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2683 deriv_data(i, j, k)*laplace1b(i, j, k)
2690 IF (
ASSOCIATED(deriv_att))
THEN
2694 IF (my_compute_virial)
THEN
2695 CALL virial_drho_drho1(virial_pw, drho, drho1, deriv_data, virial_xc)
2699 v_drho(1)%array(:, :, :) = v_drho(1)%array(:, :, :) + &
2700 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
2701 v_drho(2)%array(:, :, :) = v_drho(2)%array(:, :, :) + &
2702 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
2707 IF (
ASSOCIATED(deriv_att))
THEN
2711 DO k = bo(1, 3), bo(2, 3)
2712 DO j = bo(1, 2), bo(2, 2)
2713 DO i = bo(1, 1), bo(2, 1)
2714 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2715 deriv_data(i, j, k)*rho1a(i, j, k)
2721 IF (
ASSOCIATED(deriv_att))
THEN
2725 DO k = bo(1, 3), bo(2, 3)
2726 DO j = bo(1, 2), bo(2, 2)
2727 DO i = bo(1, 1), bo(2, 1)
2728 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2729 deriv_data(i, j, k)*rho1b(i, j, k)
2735 IF (
ASSOCIATED(deriv_att))
THEN
2739 DO k = bo(1, 3), bo(2, 3)
2740 DO j = bo(1, 2), bo(2, 2)
2741 DO i = bo(1, 1), bo(2, 1)
2742 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2743 deriv_data(i, j, k)*dr1dr(i, j, k)
2749 IF (
ASSOCIATED(deriv_att))
THEN
2753 DO k = bo(1, 3), bo(2, 3)
2754 DO j = bo(1, 2), bo(2, 2)
2755 DO i = bo(1, 1), bo(2, 1)
2756 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2757 deriv_data(i, j, k)*dra1dra(i, j, k)
2763 IF (
ASSOCIATED(deriv_att))
THEN
2767 DO k = bo(1, 3), bo(2, 3)
2768 DO j = bo(1, 2), bo(2, 2)
2769 DO i = bo(1, 1), bo(2, 1)
2770 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2771 deriv_data(i, j, k)*drb1drb(i, j, k)
2777 IF (
ASSOCIATED(deriv_att))
THEN
2781 DO k = bo(1, 3), bo(2, 3)
2782 DO j = bo(1, 2), bo(2, 2)
2783 DO i = bo(1, 1), bo(2, 1)
2784 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2785 deriv_data(i, j, k)*tau1a(i, j, k)
2791 IF (
ASSOCIATED(deriv_att))
THEN
2795 DO k = bo(1, 3), bo(2, 3)
2796 DO j = bo(1, 2), bo(2, 2)
2797 DO i = bo(1, 1), bo(2, 1)
2798 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2799 deriv_data(i, j, k)*tau1b(i, j, k)
2805 IF (
ASSOCIATED(deriv_att))
THEN
2809 DO k = bo(1, 3), bo(2, 3)
2810 DO j = bo(1, 2), bo(2, 2)
2811 DO i = bo(1, 1), bo(2, 1)
2812 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2813 deriv_data(i, j, k)*laplace1a(i, j, k)
2819 IF (
ASSOCIATED(deriv_att))
THEN
2823 DO k = bo(1, 3), bo(2, 3)
2824 DO j = bo(1, 2), bo(2, 2)
2825 DO i = bo(1, 1), bo(2, 1)
2826 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2827 deriv_data(i, j, k)*laplace1b(i, j, k)
2834 IF (
ASSOCIATED(deriv_att))
THEN
2838 IF (my_compute_virial)
THEN
2839 CALL virial_drho_drho1(virial_pw, drhoa, drho1a, deriv_data, virial_xc)
2843 v_drhoa(1)%array(:, :, :) = v_drhoa(1)%array(:, :, :) + &
2844 deriv_data(:, :, :)*dra1dra(:, :, :)/max(gradient_cut, norm_drhoa(:, :, :))**2
2849 IF (
ASSOCIATED(deriv_att))
THEN
2853 DO k = bo(1, 3), bo(2, 3)
2854 DO j = bo(1, 2), bo(2, 2)
2855 DO i = bo(1, 1), bo(2, 1)
2856 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2857 deriv_data(i, j, k)*rho1a(i, j, k)
2863 IF (
ASSOCIATED(deriv_att))
THEN
2867 DO k = bo(1, 3), bo(2, 3)
2868 DO j = bo(1, 2), bo(2, 2)
2869 DO i = bo(1, 1), bo(2, 1)
2870 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2871 deriv_data(i, j, k)*rho1b(i, j, k)
2877 IF (
ASSOCIATED(deriv_att))
THEN
2881 DO k = bo(1, 3), bo(2, 3)
2882 DO j = bo(1, 2), bo(2, 2)
2883 DO i = bo(1, 1), bo(2, 1)
2884 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2885 deriv_data(i, j, k)*dr1dr(i, j, k)
2891 IF (
ASSOCIATED(deriv_att))
THEN
2895 DO k = bo(1, 3), bo(2, 3)
2896 DO j = bo(1, 2), bo(2, 2)
2897 DO i = bo(1, 1), bo(2, 1)
2898 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2899 deriv_data(i, j, k)*dra1dra(i, j, k)
2905 IF (
ASSOCIATED(deriv_att))
THEN
2909 DO k = bo(1, 3), bo(2, 3)
2910 DO j = bo(1, 2), bo(2, 2)
2911 DO i = bo(1, 1), bo(2, 1)
2912 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2913 deriv_data(i, j, k)*drb1drb(i, j, k)
2919 IF (
ASSOCIATED(deriv_att))
THEN
2923 DO k = bo(1, 3), bo(2, 3)
2924 DO j = bo(1, 2), bo(2, 2)
2925 DO i = bo(1, 1), bo(2, 1)
2926 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2927 deriv_data(i, j, k)*tau1a(i, j, k)
2933 IF (
ASSOCIATED(deriv_att))
THEN
2937 DO k = bo(1, 3), bo(2, 3)
2938 DO j = bo(1, 2), bo(2, 2)
2939 DO i = bo(1, 1), bo(2, 1)
2940 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2941 deriv_data(i, j, k)*tau1b(i, j, k)
2947 IF (
ASSOCIATED(deriv_att))
THEN
2951 DO k = bo(1, 3), bo(2, 3)
2952 DO j = bo(1, 2), bo(2, 2)
2953 DO i = bo(1, 1), bo(2, 1)
2954 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2955 deriv_data(i, j, k)*laplace1a(i, j, k)
2961 IF (
ASSOCIATED(deriv_att))
THEN
2965 DO k = bo(1, 3), bo(2, 3)
2966 DO j = bo(1, 2), bo(2, 2)
2967 DO i = bo(1, 1), bo(2, 1)
2968 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2969 deriv_data(i, j, k)*laplace1b(i, j, k)
2976 IF (
ASSOCIATED(deriv_att))
THEN
2980 IF (my_compute_virial)
THEN
2981 CALL virial_drho_drho1(virial_pw, drhob, drho1b, deriv_data, virial_xc)
2985 v_drhob(2)%array(:, :, :) = v_drhob(2)%array(:, :, :) + &
2986 deriv_data(:, :, :)*drb1drb(:, :, :)/max(gradient_cut, norm_drhob(:, :, :))**2
2991 IF (
ASSOCIATED(deriv_att))
THEN
2995 DO k = bo(1, 3), bo(2, 3)
2996 DO j = bo(1, 2), bo(2, 2)
2997 DO i = bo(1, 1), bo(2, 1)
2998 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
2999 deriv_data(i, j, k)*rho1a(i, j, k)
3005 IF (
ASSOCIATED(deriv_att))
THEN
3009 DO k = bo(1, 3), bo(2, 3)
3010 DO j = bo(1, 2), bo(2, 2)
3011 DO i = bo(1, 1), bo(2, 1)
3012 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3013 deriv_data(i, j, k)*rho1b(i, j, k)
3019 IF (
ASSOCIATED(deriv_att))
THEN
3023 DO k = bo(1, 3), bo(2, 3)
3024 DO j = bo(1, 2), bo(2, 2)
3025 DO i = bo(1, 1), bo(2, 1)
3026 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3027 deriv_data(i, j, k)*dr1dr(i, j, k)
3033 IF (
ASSOCIATED(deriv_att))
THEN
3037 DO k = bo(1, 3), bo(2, 3)
3038 DO j = bo(1, 2), bo(2, 2)
3039 DO i = bo(1, 1), bo(2, 1)
3040 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3041 deriv_data(i, j, k)*dra1dra(i, j, k)
3047 IF (
ASSOCIATED(deriv_att))
THEN
3051 DO k = bo(1, 3), bo(2, 3)
3052 DO j = bo(1, 2), bo(2, 2)
3053 DO i = bo(1, 1), bo(2, 1)
3054 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3055 deriv_data(i, j, k)*drb1drb(i, j, k)
3061 IF (
ASSOCIATED(deriv_att))
THEN
3065 DO k = bo(1, 3), bo(2, 3)
3066 DO j = bo(1, 2), bo(2, 2)
3067 DO i = bo(1, 1), bo(2, 1)
3068 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3069 deriv_data(i, j, k)*tau1a(i, j, k)
3075 IF (
ASSOCIATED(deriv_att))
THEN
3079 DO k = bo(1, 3), bo(2, 3)
3080 DO j = bo(1, 2), bo(2, 2)
3081 DO i = bo(1, 1), bo(2, 1)
3082 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3083 deriv_data(i, j, k)*tau1b(i, j, k)
3089 IF (
ASSOCIATED(deriv_att))
THEN
3093 DO k = bo(1, 3), bo(2, 3)
3094 DO j = bo(1, 2), bo(2, 2)
3095 DO i = bo(1, 1), bo(2, 1)
3096 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3097 deriv_data(i, j, k)*laplace1a(i, j, k)
3103 IF (
ASSOCIATED(deriv_att))
THEN
3107 DO k = bo(1, 3), bo(2, 3)
3108 DO j = bo(1, 2), bo(2, 2)
3109 DO i = bo(1, 1), bo(2, 1)
3110 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3111 deriv_data(i, j, k)*laplace1b(i, j, k)
3119 IF (
ASSOCIATED(deriv_att))
THEN
3123 DO k = bo(1, 3), bo(2, 3)
3124 DO j = bo(1, 2), bo(2, 2)
3125 DO i = bo(1, 1), bo(2, 1)
3126 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3127 deriv_data(i, j, k)*rho1a(i, j, k)
3133 IF (
ASSOCIATED(deriv_att))
THEN
3137 DO k = bo(1, 3), bo(2, 3)
3138 DO j = bo(1, 2), bo(2, 2)
3139 DO i = bo(1, 1), bo(2, 1)
3140 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3141 deriv_data(i, j, k)*rho1b(i, j, k)
3147 IF (
ASSOCIATED(deriv_att))
THEN
3151 DO k = bo(1, 3), bo(2, 3)
3152 DO j = bo(1, 2), bo(2, 2)
3153 DO i = bo(1, 1), bo(2, 1)
3154 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3155 deriv_data(i, j, k)*dr1dr(i, j, k)
3161 IF (
ASSOCIATED(deriv_att))
THEN
3165 DO k = bo(1, 3), bo(2, 3)
3166 DO j = bo(1, 2), bo(2, 2)
3167 DO i = bo(1, 1), bo(2, 1)
3168 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3169 deriv_data(i, j, k)*dra1dra(i, j, k)
3175 IF (
ASSOCIATED(deriv_att))
THEN
3179 DO k = bo(1, 3), bo(2, 3)
3180 DO j = bo(1, 2), bo(2, 2)
3181 DO i = bo(1, 1), bo(2, 1)
3182 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3183 deriv_data(i, j, k)*drb1drb(i, j, k)
3189 IF (
ASSOCIATED(deriv_att))
THEN
3193 DO k = bo(1, 3), bo(2, 3)
3194 DO j = bo(1, 2), bo(2, 2)
3195 DO i = bo(1, 1), bo(2, 1)
3196 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3197 deriv_data(i, j, k)*tau1a(i, j, k)
3203 IF (
ASSOCIATED(deriv_att))
THEN
3207 DO k = bo(1, 3), bo(2, 3)
3208 DO j = bo(1, 2), bo(2, 2)
3209 DO i = bo(1, 1), bo(2, 1)
3210 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3211 deriv_data(i, j, k)*tau1b(i, j, k)
3217 IF (
ASSOCIATED(deriv_att))
THEN
3221 DO k = bo(1, 3), bo(2, 3)
3222 DO j = bo(1, 2), bo(2, 2)
3223 DO i = bo(1, 1), bo(2, 1)
3224 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3225 deriv_data(i, j, k)*laplace1a(i, j, k)
3231 IF (
ASSOCIATED(deriv_att))
THEN
3235 DO k = bo(1, 3), bo(2, 3)
3236 DO j = bo(1, 2), bo(2, 2)
3237 DO i = bo(1, 1), bo(2, 1)
3238 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3239 deriv_data(i, j, k)*laplace1b(i, j, k)
3247 IF (
ASSOCIATED(deriv_att))
THEN
3251 DO k = bo(1, 3), bo(2, 3)
3252 DO j = bo(1, 2), bo(2, 2)
3253 DO i = bo(1, 1), bo(2, 1)
3254 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3255 deriv_data(i, j, k)*rho1a(i, j, k)
3261 IF (
ASSOCIATED(deriv_att))
THEN
3265 DO k = bo(1, 3), bo(2, 3)
3266 DO j = bo(1, 2), bo(2, 2)
3267 DO i = bo(1, 1), bo(2, 1)
3268 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3269 deriv_data(i, j, k)*rho1b(i, j, k)
3275 IF (
ASSOCIATED(deriv_att))
THEN
3279 DO k = bo(1, 3), bo(2, 3)
3280 DO j = bo(1, 2), bo(2, 2)
3281 DO i = bo(1, 1), bo(2, 1)
3282 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3283 deriv_data(i, j, k)*dr1dr(i, j, k)
3289 IF (
ASSOCIATED(deriv_att))
THEN
3293 DO k = bo(1, 3), bo(2, 3)
3294 DO j = bo(1, 2), bo(2, 2)
3295 DO i = bo(1, 1), bo(2, 1)
3296 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3297 deriv_data(i, j, k)*dra1dra(i, j, k)
3303 IF (
ASSOCIATED(deriv_att))
THEN
3307 DO k = bo(1, 3), bo(2, 3)
3308 DO j = bo(1, 2), bo(2, 2)
3309 DO i = bo(1, 1), bo(2, 1)
3310 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3311 deriv_data(i, j, k)*drb1drb(i, j, k)
3317 IF (
ASSOCIATED(deriv_att))
THEN
3321 DO k = bo(1, 3), bo(2, 3)
3322 DO j = bo(1, 2), bo(2, 2)
3323 DO i = bo(1, 1), bo(2, 1)
3324 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3325 deriv_data(i, j, k)*tau1a(i, j, k)
3331 IF (
ASSOCIATED(deriv_att))
THEN
3335 DO k = bo(1, 3), bo(2, 3)
3336 DO j = bo(1, 2), bo(2, 2)
3337 DO i = bo(1, 1), bo(2, 1)
3338 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3339 deriv_data(i, j, k)*tau1b(i, j, k)
3345 IF (
ASSOCIATED(deriv_att))
THEN
3349 DO k = bo(1, 3), bo(2, 3)
3350 DO j = bo(1, 2), bo(2, 2)
3351 DO i = bo(1, 1), bo(2, 1)
3352 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3353 deriv_data(i, j, k)*laplace1a(i, j, k)
3359 IF (
ASSOCIATED(deriv_att))
THEN
3363 DO k = bo(1, 3), bo(2, 3)
3364 DO j = bo(1, 2), bo(2, 2)
3365 DO i = bo(1, 1), bo(2, 1)
3366 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3367 deriv_data(i, j, k)*laplace1b(i, j, k)
3374 IF (my_compute_virial)
THEN
3376 IF (
ASSOCIATED(deriv_att))
THEN
3379 virial_pw%array(:, :, :) = -rho1a(:, :, :)
3380 CALL virial_laplace(virial_pw, pw_pool, virial_xc, deriv_data)
3384 IF (
ASSOCIATED(deriv_att))
THEN
3388 DO k = bo(1, 3), bo(2, 3)
3389 DO j = bo(1, 2), bo(2, 2)
3390 DO i = bo(1, 1), bo(2, 1)
3391 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3392 deriv_data(i, j, k)*rho1a(i, j, k)
3398 IF (
ASSOCIATED(deriv_att))
THEN
3402 DO k = bo(1, 3), bo(2, 3)
3403 DO j = bo(1, 2), bo(2, 2)
3404 DO i = bo(1, 1), bo(2, 1)
3405 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3406 deriv_data(i, j, k)*rho1b(i, j, k)
3412 IF (
ASSOCIATED(deriv_att))
THEN
3416 DO k = bo(1, 3), bo(2, 3)
3417 DO j = bo(1, 2), bo(2, 2)
3418 DO i = bo(1, 1), bo(2, 1)
3419 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3420 deriv_data(i, j, k)*dr1dr(i, j, k)
3426 IF (
ASSOCIATED(deriv_att))
THEN
3430 DO k = bo(1, 3), bo(2, 3)
3431 DO j = bo(1, 2), bo(2, 2)
3432 DO i = bo(1, 1), bo(2, 1)
3433 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3434 deriv_data(i, j, k)*dra1dra(i, j, k)
3440 IF (
ASSOCIATED(deriv_att))
THEN
3444 DO k = bo(1, 3), bo(2, 3)
3445 DO j = bo(1, 2), bo(2, 2)
3446 DO i = bo(1, 1), bo(2, 1)
3447 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3448 deriv_data(i, j, k)*drb1drb(i, j, k)
3454 IF (
ASSOCIATED(deriv_att))
THEN
3458 DO k = bo(1, 3), bo(2, 3)
3459 DO j = bo(1, 2), bo(2, 2)
3460 DO i = bo(1, 1), bo(2, 1)
3461 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3462 deriv_data(i, j, k)*tau1a(i, j, k)
3468 IF (
ASSOCIATED(deriv_att))
THEN
3472 DO k = bo(1, 3), bo(2, 3)
3473 DO j = bo(1, 2), bo(2, 2)
3474 DO i = bo(1, 1), bo(2, 1)
3475 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3476 deriv_data(i, j, k)*tau1b(i, j, k)
3482 IF (
ASSOCIATED(deriv_att))
THEN
3486 DO k = bo(1, 3), bo(2, 3)
3487 DO j = bo(1, 2), bo(2, 2)
3488 DO i = bo(1, 1), bo(2, 1)
3489 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3490 deriv_data(i, j, k)*laplace1a(i, j, k)
3496 IF (
ASSOCIATED(deriv_att))
THEN
3500 DO k = bo(1, 3), bo(2, 3)
3501 DO j = bo(1, 2), bo(2, 2)
3502 DO i = bo(1, 1), bo(2, 1)
3503 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3504 deriv_data(i, j, k)*laplace1b(i, j, k)
3511 IF (my_compute_virial)
THEN
3513 IF (
ASSOCIATED(deriv_att))
THEN
3516 virial_pw%array(:, :, :) = -rho1b(:, :, :)
3517 CALL virial_laplace(virial_pw, pw_pool, virial_xc, deriv_data)
3526 IF (
ASSOCIATED(deriv_att))
THEN
3530 DO k = bo(1, 3), bo(2, 3)
3531 DO j = bo(1, 2), bo(2, 2)
3532 DO i = bo(1, 1), bo(2, 1)
3533 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3534 deriv_data(i, j, k)*rho1a(i, j, k)
3540 IF (
ASSOCIATED(deriv_att))
THEN
3544 DO k = bo(1, 3), bo(2, 3)
3545 DO j = bo(1, 2), bo(2, 2)
3546 DO i = bo(1, 1), bo(2, 1)
3547 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3548 deriv_data(i, j, k)*dr1dr(i, j, k)
3554 IF (
ASSOCIATED(deriv_att))
THEN
3558 DO k = bo(1, 3), bo(2, 3)
3559 DO j = bo(1, 2), bo(2, 2)
3560 DO i = bo(1, 1), bo(2, 1)
3561 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3562 deriv_data(i, j, k)*dra1dra(i, j, k)
3568 IF (
ASSOCIATED(deriv_att))
THEN
3572 DO k = bo(1, 3), bo(2, 3)
3573 DO j = bo(1, 2), bo(2, 2)
3574 DO i = bo(1, 1), bo(2, 1)
3575 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3576 deriv_data(i, j, k)*tau1a(i, j, k)
3582 IF (
ASSOCIATED(deriv_att))
THEN
3586 DO k = bo(1, 3), bo(2, 3)
3587 DO j = bo(1, 2), bo(2, 2)
3588 DO i = bo(1, 1), bo(2, 1)
3589 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3590 deriv_data(i, j, k)*laplace1a(i, j, k)
3596 IF (
ASSOCIATED(deriv_att))
THEN
3600 DO k = bo(1, 3), bo(2, 3)
3601 DO j = bo(1, 2), bo(2, 2)
3602 DO i = bo(1, 1), bo(2, 1)
3603 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3604 fac*deriv_data(i, j, k)*rho1b(i, j, k)
3610 IF (
ASSOCIATED(deriv_att))
THEN
3614 DO k = bo(1, 3), bo(2, 3)
3615 DO j = bo(1, 2), bo(2, 2)
3616 DO i = bo(1, 1), bo(2, 1)
3617 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3618 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
3624 IF (
ASSOCIATED(deriv_att))
THEN
3628 DO k = bo(1, 3), bo(2, 3)
3629 DO j = bo(1, 2), bo(2, 2)
3630 DO i = bo(1, 1), bo(2, 1)
3631 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3632 fac*deriv_data(i, j, k)*tau1b(i, j, k)
3638 IF (
ASSOCIATED(deriv_att))
THEN
3642 DO k = bo(1, 3), bo(2, 3)
3643 DO j = bo(1, 2), bo(2, 2)
3644 DO i = bo(1, 1), bo(2, 1)
3645 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3646 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
3654 IF (
ASSOCIATED(deriv_att))
THEN
3658 DO k = bo(1, 3), bo(2, 3)
3659 DO j = bo(1, 2), bo(2, 2)
3660 DO i = bo(1, 1), bo(2, 1)
3661 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3662 deriv_data(i, j, k)*rho1a(i, j, k)
3668 IF (
ASSOCIATED(deriv_att))
THEN
3672 DO k = bo(1, 3), bo(2, 3)
3673 DO j = bo(1, 2), bo(2, 2)
3674 DO i = bo(1, 1), bo(2, 1)
3675 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3676 deriv_data(i, j, k)*dr1dr(i, j, k)
3682 IF (
ASSOCIATED(deriv_att))
THEN
3686 DO k = bo(1, 3), bo(2, 3)
3687 DO j = bo(1, 2), bo(2, 2)
3688 DO i = bo(1, 1), bo(2, 1)
3689 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3690 deriv_data(i, j, k)*dra1dra(i, j, k)
3696 IF (
ASSOCIATED(deriv_att))
THEN
3700 DO k = bo(1, 3), bo(2, 3)
3701 DO j = bo(1, 2), bo(2, 2)
3702 DO i = bo(1, 1), bo(2, 1)
3703 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3704 deriv_data(i, j, k)*tau1a(i, j, k)
3710 IF (
ASSOCIATED(deriv_att))
THEN
3714 DO k = bo(1, 3), bo(2, 3)
3715 DO j = bo(1, 2), bo(2, 2)
3716 DO i = bo(1, 1), bo(2, 1)
3717 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3718 deriv_data(i, j, k)*laplace1a(i, j, k)
3724 IF (
ASSOCIATED(deriv_att))
THEN
3728 DO k = bo(1, 3), bo(2, 3)
3729 DO j = bo(1, 2), bo(2, 2)
3730 DO i = bo(1, 1), bo(2, 1)
3731 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3732 fac*deriv_data(i, j, k)*rho1b(i, j, k)
3738 IF (
ASSOCIATED(deriv_att))
THEN
3742 DO k = bo(1, 3), bo(2, 3)
3743 DO j = bo(1, 2), bo(2, 2)
3744 DO i = bo(1, 1), bo(2, 1)
3745 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3746 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
3752 IF (
ASSOCIATED(deriv_att))
THEN
3756 DO k = bo(1, 3), bo(2, 3)
3757 DO j = bo(1, 2), bo(2, 2)
3758 DO i = bo(1, 1), bo(2, 1)
3759 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3760 fac*deriv_data(i, j, k)*tau1b(i, j, k)
3766 IF (
ASSOCIATED(deriv_att))
THEN
3770 DO k = bo(1, 3), bo(2, 3)
3771 DO j = bo(1, 2), bo(2, 2)
3772 DO i = bo(1, 1), bo(2, 1)
3773 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3774 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
3781 IF (
ASSOCIATED(deriv_att))
THEN
3787 v_drho(1)%array(:, :, :) = v_drho(1)%array(:, :, :) + &
3788 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
3793 IF (
ASSOCIATED(deriv_att))
THEN
3797 DO k = bo(1, 3), bo(2, 3)
3798 DO j = bo(1, 2), bo(2, 2)
3799 DO i = bo(1, 1), bo(2, 1)
3800 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3801 deriv_data(i, j, k)*rho1a(i, j, k)
3807 IF (
ASSOCIATED(deriv_att))
THEN
3811 DO k = bo(1, 3), bo(2, 3)
3812 DO j = bo(1, 2), bo(2, 2)
3813 DO i = bo(1, 1), bo(2, 1)
3814 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3815 deriv_data(i, j, k)*dr1dr(i, j, k)
3821 IF (
ASSOCIATED(deriv_att))
THEN
3825 DO k = bo(1, 3), bo(2, 3)
3826 DO j = bo(1, 2), bo(2, 2)
3827 DO i = bo(1, 1), bo(2, 1)
3828 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3829 deriv_data(i, j, k)*dra1dra(i, j, k)
3835 IF (
ASSOCIATED(deriv_att))
THEN
3839 DO k = bo(1, 3), bo(2, 3)
3840 DO j = bo(1, 2), bo(2, 2)
3841 DO i = bo(1, 1), bo(2, 1)
3842 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3843 deriv_data(i, j, k)*tau1a(i, j, k)
3849 IF (
ASSOCIATED(deriv_att))
THEN
3853 DO k = bo(1, 3), bo(2, 3)
3854 DO j = bo(1, 2), bo(2, 2)
3855 DO i = bo(1, 1), bo(2, 1)
3856 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3857 deriv_data(i, j, k)*laplace1a(i, j, k)
3863 IF (
ASSOCIATED(deriv_att))
THEN
3867 DO k = bo(1, 3), bo(2, 3)
3868 DO j = bo(1, 2), bo(2, 2)
3869 DO i = bo(1, 1), bo(2, 1)
3870 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3871 fac*deriv_data(i, j, k)*rho1b(i, j, k)
3877 IF (
ASSOCIATED(deriv_att))
THEN
3881 DO k = bo(1, 3), bo(2, 3)
3882 DO j = bo(1, 2), bo(2, 2)
3883 DO i = bo(1, 1), bo(2, 1)
3884 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3885 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
3891 IF (
ASSOCIATED(deriv_att))
THEN
3895 DO k = bo(1, 3), bo(2, 3)
3896 DO j = bo(1, 2), bo(2, 2)
3897 DO i = bo(1, 1), bo(2, 1)
3898 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3899 fac*deriv_data(i, j, k)*tau1b(i, j, k)
3905 IF (
ASSOCIATED(deriv_att))
THEN
3909 DO k = bo(1, 3), bo(2, 3)
3910 DO j = bo(1, 2), bo(2, 2)
3911 DO i = bo(1, 1), bo(2, 1)
3912 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3913 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
3920 IF (
ASSOCIATED(deriv_att))
THEN
3926 v_drhoa(1)%array(:, :, :) = v_drhoa(1)%array(:, :, :) + &
3927 deriv_data(:, :, :)*dra1dra(:, :, :)/max(gradient_cut, norm_drhoa(:, :, :))**2
3932 IF (
ASSOCIATED(deriv_att))
THEN
3936 DO k = bo(1, 3), bo(2, 3)
3937 DO j = bo(1, 2), bo(2, 2)
3938 DO i = bo(1, 1), bo(2, 1)
3939 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3940 deriv_data(i, j, k)*rho1a(i, j, k)
3946 IF (
ASSOCIATED(deriv_att))
THEN
3950 DO k = bo(1, 3), bo(2, 3)
3951 DO j = bo(1, 2), bo(2, 2)
3952 DO i = bo(1, 1), bo(2, 1)
3953 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3954 deriv_data(i, j, k)*dr1dr(i, j, k)
3960 IF (
ASSOCIATED(deriv_att))
THEN
3964 DO k = bo(1, 3), bo(2, 3)
3965 DO j = bo(1, 2), bo(2, 2)
3966 DO i = bo(1, 1), bo(2, 1)
3967 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3968 deriv_data(i, j, k)*dra1dra(i, j, k)
3974 IF (
ASSOCIATED(deriv_att))
THEN
3978 DO k = bo(1, 3), bo(2, 3)
3979 DO j = bo(1, 2), bo(2, 2)
3980 DO i = bo(1, 1), bo(2, 1)
3981 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3982 deriv_data(i, j, k)*tau1a(i, j, k)
3988 IF (
ASSOCIATED(deriv_att))
THEN
3992 DO k = bo(1, 3), bo(2, 3)
3993 DO j = bo(1, 2), bo(2, 2)
3994 DO i = bo(1, 1), bo(2, 1)
3995 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3996 deriv_data(i, j, k)*laplace1a(i, j, k)
4002 IF (
ASSOCIATED(deriv_att))
THEN
4006 DO k = bo(1, 3), bo(2, 3)
4007 DO j = bo(1, 2), bo(2, 2)
4008 DO i = bo(1, 1), bo(2, 1)
4009 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4010 fac*deriv_data(i, j, k)*rho1b(i, j, k)
4016 IF (
ASSOCIATED(deriv_att))
THEN
4020 DO k = bo(1, 3), bo(2, 3)
4021 DO j = bo(1, 2), bo(2, 2)
4022 DO i = bo(1, 1), bo(2, 1)
4023 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4024 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
4030 IF (
ASSOCIATED(deriv_att))
THEN
4034 DO k = bo(1, 3), bo(2, 3)
4035 DO j = bo(1, 2), bo(2, 2)
4036 DO i = bo(1, 1), bo(2, 1)
4037 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4038 fac*deriv_data(i, j, k)*tau1b(i, j, k)
4044 IF (
ASSOCIATED(deriv_att))
THEN
4048 DO k = bo(1, 3), bo(2, 3)
4049 DO j = bo(1, 2), bo(2, 2)
4050 DO i = bo(1, 1), bo(2, 1)
4051 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4052 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
4060 IF (
ASSOCIATED(deriv_att))
THEN
4064 DO k = bo(1, 3), bo(2, 3)
4065 DO j = bo(1, 2), bo(2, 2)
4066 DO i = bo(1, 1), bo(2, 1)
4067 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4068 deriv_data(i, j, k)*rho1a(i, j, k)
4074 IF (
ASSOCIATED(deriv_att))
THEN
4078 DO k = bo(1, 3), bo(2, 3)
4079 DO j = bo(1, 2), bo(2, 2)
4080 DO i = bo(1, 1), bo(2, 1)
4081 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4082 deriv_data(i, j, k)*dr1dr(i, j, k)
4088 IF (
ASSOCIATED(deriv_att))
THEN
4092 DO k = bo(1, 3), bo(2, 3)
4093 DO j = bo(1, 2), bo(2, 2)
4094 DO i = bo(1, 1), bo(2, 1)
4095 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4096 deriv_data(i, j, k)*dra1dra(i, j, k)
4102 IF (
ASSOCIATED(deriv_att))
THEN
4106 DO k = bo(1, 3), bo(2, 3)
4107 DO j = bo(1, 2), bo(2, 2)
4108 DO i = bo(1, 1), bo(2, 1)
4109 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4110 deriv_data(i, j, k)*tau1a(i, j, k)
4116 IF (
ASSOCIATED(deriv_att))
THEN
4120 DO k = bo(1, 3), bo(2, 3)
4121 DO j = bo(1, 2), bo(2, 2)
4122 DO i = bo(1, 1), bo(2, 1)
4123 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4124 deriv_data(i, j, k)*laplace1a(i, j, k)
4130 IF (
ASSOCIATED(deriv_att))
THEN
4134 DO k = bo(1, 3), bo(2, 3)
4135 DO j = bo(1, 2), bo(2, 2)
4136 DO i = bo(1, 1), bo(2, 1)
4137 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4138 fac*deriv_data(i, j, k)*rho1b(i, j, k)
4144 IF (
ASSOCIATED(deriv_att))
THEN
4148 DO k = bo(1, 3), bo(2, 3)
4149 DO j = bo(1, 2), bo(2, 2)
4150 DO i = bo(1, 1), bo(2, 1)
4151 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4152 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
4158 IF (
ASSOCIATED(deriv_att))
THEN
4162 DO k = bo(1, 3), bo(2, 3)
4163 DO j = bo(1, 2), bo(2, 2)
4164 DO i = bo(1, 1), bo(2, 1)
4165 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4166 fac*deriv_data(i, j, k)*tau1b(i, j, k)
4172 IF (
ASSOCIATED(deriv_att))
THEN
4176 DO k = bo(1, 3), bo(2, 3)
4177 DO j = bo(1, 2), bo(2, 2)
4178 DO i = bo(1, 1), bo(2, 1)
4179 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4180 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
4191 IF (gradient_f)
THEN
4192 IF (.NOT. do_spinflip)
THEN
4194 IF (my_compute_virial)
THEN
4195 CALL virial_drho_drho(virial_pw, drhoa, v_drhoa(1), virial_xc)
4196 CALL virial_drho_drho(virial_pw, drhob, v_drhob(2), virial_xc)
4199 virial_pw%array(:, :, :) = drho(idir)%array(:, :, :)*(v_drho(1)%array(:, :, :) + v_drho(2)%array(:, :, :))
4203 drho(jdir)%array(:, :, :))
4204 virial_xc(jdir, idir) = virial_xc(jdir, idir) + tmp
4205 virial_xc(idir, jdir) = virial_xc(jdir, idir)
4215 DO ir = bo(1, 2), bo(2, 2)
4216 DO ia = bo(1, 1), bo(2, 1)
4218 DO ispin = 1, nspins
4219 vxg(idir, ia, ir, ispin) = &
4220 -(v_drhoa(ispin)%array(ia, ir, 1)*drhoa(idir)%array(ia, ir, 1) + &
4221 v_drhob(ispin)%array(ia, ir, 1)*drhob(idir)%array(ia, ir, 1) + &
4222 v_drho(ispin)%array(ia, ir, 1)*drho(idir)%array(ia, ir, 1))
4224 IF (
ASSOCIATED(e_drhoa))
THEN
4225 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + &
4226 e_drhoa(ia, ir, 1)*drho1a(idir)%array(ia, ir, 1)
4228 IF (nspins /= 1 .AND.
ASSOCIATED(e_drhob))
THEN
4229 vxg(idir, ia, ir, 2) = vxg(idir, ia, ir, 2) + &
4230 e_drhob(ia, ir, 1)*drho1b(idir)%array(ia, ir, 1)
4232 IF (
ASSOCIATED(e_drho))
THEN
4233 IF (nspins /= 1)
THEN
4234 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + &
4235 e_drho(ia, ir, 1)*drho1(idir)%array(ia, ir, 1)
4236 vxg(idir, ia, ir, 2) = vxg(idir, ia, ir, 2) + &
4237 e_drho(ia, ir, 1)*drho1(idir)%array(ia, ir, 1)
4239 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + &
4240 e_drho(ia, ir, 1)*(drho1a(idir)%array(ia, ir, 1) + &
4241 fac*drho1b(idir)%array(ia, ir, 1))
4253 DO ispin = 1, nspins
4256 v_drho_r(idir, ispin)%array(:, :, :) = &
4257 v_drhoa(ispin)%array(:, :, :)*drhoa(idir)%array(:, :, :) + &
4258 v_drhob(ispin)%array(:, :, :)*drhob(idir)%array(:, :, :) + &
4259 v_drho(ispin)%array(:, :, :)*drho(idir)%array(:, :, :)
4262 IF (
ASSOCIATED(e_drhoa))
THEN
4265 v_drho_r(idir, 1)%array(:, :, :) = v_drho_r(idir, 1)%array(:, :, :) - &
4266 e_drhoa(:, :, :)*drho1a(idir)%array(:, :, :)
4269 IF (nspins /= 1 .AND.
ASSOCIATED(e_drhob))
THEN
4272 v_drho_r(idir, 2)%array(:, :, :) = v_drho_r(idir, 2)%array(:, :, :) - &
4273 e_drhob(:, :, :)*drho1b(idir)%array(:, :, :)
4276 IF (
ASSOCIATED(e_drho))
THEN
4279 DO k = bo(1, 3), bo(2, 3)
4280 DO j = bo(1, 2), bo(2, 2)
4281 DO i = bo(1, 1), bo(2, 1)
4282 IF (nspins /= 1)
THEN
4283 v_drho_r(idir, 1)%array(i, j, k) = v_drho_r(idir, 1)%array(i, j, k) - &
4284 e_drho(i, j, k)*drho1(idir)%array(i, j, k)
4285 v_drho_r(idir, 2)%array(i, j, k) = v_drho_r(idir, 2)%array(i, j, k) - &
4286 e_drho(i, j, k)*drho1(idir)%array(i, j, k)
4288 v_drho_r(idir, 1)%array(i, j, k) = v_drho_r(idir, 1)%array(i, j, k) - &
4289 e_drho(i, j, k)*(drho1a(idir)%array(i, j, k) + &
4290 fac*drho1b(idir)%array(i, j, k))
4300 DO ispin = 1, nspins
4301 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, ispin), tmp_g, vxc_g, v_xc(ispin))
4309 DEALLOCATE (drho(idir)%array)
4310 DEALLOCATE (drho1(idir)%array)
4313 DO ispin = 1, nspins
4314 CALL deallocate_pw(v_drhoa(ispin), pw_pool)
4315 CALL deallocate_pw(v_drhob(ispin), pw_pool)
4318 DEALLOCATE (v_drhoa, v_drhob)
4322 IF (laplace_f .AND. my_compute_virial)
THEN
4323 virial_pw%array(:, :, :) = -rhoa(:, :, :)
4324 CALL virial_laplace(virial_pw, pw_pool, virial_xc, v_laplace(1)%array)
4325 virial_pw%array(:, :, :) = -rhob(:, :, :)
4326 CALL virial_laplace(virial_pw, pw_pool, virial_xc, v_laplace(2)%array)
4337 IF (gradient_f)
THEN
4340 CALL prepare_dr1dr(dr1dr, drho, drho1)
4346 ALLOCATE (v_laplace(nspins))
4347 DO ispin = 1, nspins
4348 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
4359 IF (
ASSOCIATED(deriv_att))
THEN
4363 DO k = bo(1, 3), bo(2, 3)
4364 DO j = bo(1, 2), bo(2, 2)
4365 DO i = bo(1, 1), bo(2, 1)
4366 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4367 deriv_data(i, j, k)*rho1(i, j, k)
4373 IF (
ASSOCIATED(deriv_att))
THEN
4377 DO k = bo(1, 3), bo(2, 3)
4378 DO j = bo(1, 2), bo(2, 2)
4379 DO i = bo(1, 1), bo(2, 1)
4380 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4381 deriv_data(i, j, k)*dr1dr(i, j, k)
4387 IF (
ASSOCIATED(deriv_att))
THEN
4391 DO k = bo(1, 3), bo(2, 3)
4392 DO j = bo(1, 2), bo(2, 2)
4393 DO i = bo(1, 1), bo(2, 1)
4394 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4395 deriv_data(i, j, k)*tau1(i, j, k)
4401 IF (
ASSOCIATED(deriv_att))
THEN
4405 DO k = bo(1, 3), bo(2, 3)
4406 DO j = bo(1, 2), bo(2, 2)
4407 DO i = bo(1, 1), bo(2, 1)
4408 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4409 deriv_data(i, j, k)*laplace1(i, j, k)
4417 IF (
ASSOCIATED(deriv_att))
THEN
4421 DO k = bo(1, 3), bo(2, 3)
4422 DO j = bo(1, 2), bo(2, 2)
4423 DO i = bo(1, 1), bo(2, 1)
4424 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4425 deriv_data(i, j, k)*rho1(i, j, k)
4431 IF (
ASSOCIATED(deriv_att))
THEN
4435 DO k = bo(1, 3), bo(2, 3)
4436 DO j = bo(1, 2), bo(2, 2)
4437 DO i = bo(1, 1), bo(2, 1)
4438 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4439 deriv_data(i, j, k)*dr1dr(i, j, k)
4445 IF (
ASSOCIATED(deriv_att))
THEN
4449 DO k = bo(1, 3), bo(2, 3)
4450 DO j = bo(1, 2), bo(2, 2)
4451 DO i = bo(1, 1), bo(2, 1)
4452 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4453 deriv_data(i, j, k)*tau1(i, j, k)
4459 IF (
ASSOCIATED(deriv_att))
THEN
4463 DO k = bo(1, 3), bo(2, 3)
4464 DO j = bo(1, 2), bo(2, 2)
4465 DO i = bo(1, 1), bo(2, 1)
4466 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4467 deriv_data(i, j, k)*laplace1(i, j, k)
4474 IF (
ASSOCIATED(deriv_att))
THEN
4478 IF (my_compute_virial)
THEN
4479 CALL virial_drho_drho1(virial_pw, drho, drho1, deriv_data, virial_xc)
4483 v_drho(1)%array(:, :, :) = v_drho(1)%array(:, :, :) + &
4484 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
4489 IF (
ASSOCIATED(deriv_att))
THEN
4493 DO k = bo(1, 3), bo(2, 3)
4494 DO j = bo(1, 2), bo(2, 2)
4495 DO i = bo(1, 1), bo(2, 1)
4496 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4497 deriv_data(i, j, k)*rho1(i, j, k)
4503 IF (
ASSOCIATED(deriv_att))
THEN
4507 DO k = bo(1, 3), bo(2, 3)
4508 DO j = bo(1, 2), bo(2, 2)
4509 DO i = bo(1, 1), bo(2, 1)
4510 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4511 deriv_data(i, j, k)*dr1dr(i, j, k)
4517 IF (
ASSOCIATED(deriv_att))
THEN
4521 DO k = bo(1, 3), bo(2, 3)
4522 DO j = bo(1, 2), bo(2, 2)
4523 DO i = bo(1, 1), bo(2, 1)
4524 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4525 deriv_data(i, j, k)*tau1(i, j, k)
4531 IF (
ASSOCIATED(deriv_att))
THEN
4535 DO k = bo(1, 3), bo(2, 3)
4536 DO j = bo(1, 2), bo(2, 2)
4537 DO i = bo(1, 1), bo(2, 1)
4538 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4539 deriv_data(i, j, k)*laplace1(i, j, k)
4547 IF (
ASSOCIATED(deriv_att))
THEN
4551 DO k = bo(1, 3), bo(2, 3)
4552 DO j = bo(1, 2), bo(2, 2)
4553 DO i = bo(1, 1), bo(2, 1)
4554 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4555 deriv_data(i, j, k)*rho1(i, j, k)
4561 IF (
ASSOCIATED(deriv_att))
THEN
4565 DO k = bo(1, 3), bo(2, 3)
4566 DO j = bo(1, 2), bo(2, 2)
4567 DO i = bo(1, 1), bo(2, 1)
4568 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4569 deriv_data(i, j, k)*dr1dr(i, j, k)
4575 IF (
ASSOCIATED(deriv_att))
THEN
4579 DO k = bo(1, 3), bo(2, 3)
4580 DO j = bo(1, 2), bo(2, 2)
4581 DO i = bo(1, 1), bo(2, 1)
4582 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4583 deriv_data(i, j, k)*tau1(i, j, k)
4589 IF (
ASSOCIATED(deriv_att))
THEN
4593 DO k = bo(1, 3), bo(2, 3)
4594 DO j = bo(1, 2), bo(2, 2)
4595 DO i = bo(1, 1), bo(2, 1)
4596 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4597 deriv_data(i, j, k)*laplace1(i, j, k)
4604 IF (my_compute_virial)
THEN
4606 IF (
ASSOCIATED(deriv_att))
THEN
4609 virial_pw%array(:, :, :) = -rho1(:, :, :)
4610 CALL virial_laplace(virial_pw, pw_pool, virial_xc, deriv_data)
4615 IF (gradient_f)
THEN
4617 IF (my_compute_virial)
THEN
4618 CALL virial_drho_drho(virial_pw, drho, v_drho(1), virial_xc)
4628 DO ia = bo(1, 1), bo(2, 1)
4629 DO ir = bo(1, 2), bo(2, 2)
4630 vxg(idir, ia, ir, 1) = -drho(idir)%array(ia, ir, 1)*v_drho(1)%array(ia, ir, 1)
4631 IF (
ASSOCIATED(e_drho))
THEN
4632 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + factor2*drho1(idir)%array(ia, ir, 1)*e_drho(ia, ir, 1)
4643 v_drho_r(idir, 1)%array(:, :, :) = drho(idir)%array(:, :, :)*v_drho(1)%array(:, :, :) - &
4644 drho1(idir)%array(:, :, :)*e_drho(:, :, :)
4648 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
4653 IF (laplace_f .AND. my_compute_virial)
THEN
4654 virial_pw%array(:, :, :) = -rho(:, :, :)
4655 CALL virial_laplace(virial_pw, pw_pool, virial_xc, v_laplace(1)%array)
4661 DO ispin = 1, nspins
4662 CALL xc_pw_laplace(v_laplace(ispin), pw_pool, xc_deriv_method_id)
4663 CALL pw_axpy(v_laplace(ispin), v_xc(ispin))
4667 IF (gradient_f)
THEN
4669 DO ispin = 1, nspins
4670 CALL deallocate_pw(v_drho(ispin), pw_pool)
4672 CALL deallocate_pw(v_drho_r(idir, ispin), pw_pool)
4675 DEALLOCATE (v_drho, v_drho_r)
4680 DO ispin = 1, nspins
4681 CALL deallocate_pw(v_laplace(ispin), pw_pool)
4683 DEALLOCATE (v_laplace)
4686 IF (
ASSOCIATED(tmp_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
4687 CALL pw_pool%give_back_pw(tmp_g)
4690 IF (
ASSOCIATED(vxc_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
4691 CALL pw_pool%give_back_pw(vxc_g)
4694 IF (my_compute_virial .AND. (gradient_f .OR. laplace_f))
THEN
4695 CALL deallocate_pw(virial_pw, pw_pool)
4698 CALL timestop(handle)
4734 LOGICAL,
INTENT(in),
OPTIONAL :: spinflip
4735 LOGICAL,
INTENT(IN),
OPTIONAL :: gapw
4736 REAL(kind=
dp),
DIMENSION(:, :, :, :),
OPTIONAL,
POINTER :: vxg
4738 CHARACTER(len=*),
PARAMETER :: routinen =
'xc_calc_3rd_deriv_analytical'
4740 INTEGER :: handle, i, idir, ispin, j, &
4741 k, nspins, xc_deriv_method_id
4742 INTEGER,
DIMENSION(2, 3) :: bo
4744 LOGICAL :: lsd, do_spinflip, alda0, &
4745 rho_f, gradient_f, tau_f, laplace_f
4746 REAL(kind=
dp) :: s, s_thresh, s_thresh2, gradient_cut
4747 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: dr1dr, dra1dra, drb1drb, dr1dr1
4748 REAL(kind=
dp) :: g1, g11, uu, aa, bb
4750 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :),
TARGET :: zero_f
4752 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: tau1, laplace1
4754 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: tau1a, tau1b, laplace1a, laplace1b
4755 REAL(kind=
dp) :: mp_rhoa, q_rhoa
4756 REAL(kind=
dp) :: mp_rhob, q_rhob
4757 REAL(kind=
dp) :: mp_gamma_aa, q_gamma_aa
4758 REAL(kind=
dp) :: mp_gamma_ab, q_gamma_ab
4759 REAL(kind=
dp) :: mp_gamma_bb, q_gamma_bb
4760 REAL(kind=
dp) :: mp_laplace_rhoa, q_laplace_rhoa
4761 REAL(kind=
dp) :: mp_laplace_rhob, q_laplace_rhob
4762 REAL(kind=
dp) :: mp_tau_a, q_tau_a
4763 REAL(kind=
dp) :: mp_tau_b, q_tau_b
4764 REAL(kind=
dp) :: mpp_gamma_aa, nb_gamma_aa
4765 REAL(kind=
dp) :: mpp_gamma_ab, nb_gamma_ab
4766 REAL(kind=
dp) :: mpp_gamma_bb, nb_gamma_bb
4767 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa
4768 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob
4769 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa
4770 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab
4771 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb
4772 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa
4773 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob
4774 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_a
4775 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_b
4776 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob
4777 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa
4778 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab
4779 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb
4780 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa
4781 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob
4782 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_a
4783 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_b
4784 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa
4785 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab
4786 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb
4787 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa
4788 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob
4789 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_a
4790 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_b
4791 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab
4792 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb
4793 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa
4794 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob
4795 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_a
4796 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_b
4797 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb
4798 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa
4799 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob
4800 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_a
4801 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_b
4802 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa
4803 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob
4804 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_a
4805 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_b
4806 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob
4807 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_a
4808 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_b
4809 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_a
4810 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_b
4811 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_b_tau_b
4812 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_rhoa
4813 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_rhob
4814 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_gamma_aa
4815 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_gamma_ab
4816 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_gamma_bb
4817 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_laplace_rhoa
4818 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_laplace_rhob
4819 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_tau_a
4820 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_tau_b
4821 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_rhob
4822 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_gamma_aa
4823 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_gamma_ab
4824 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_gamma_bb
4825 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_laplace_rhoa
4826 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_laplace_rhob
4827 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_tau_a
4828 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_tau_b
4829 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_gamma_aa
4830 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_gamma_ab
4831 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_gamma_bb
4832 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_laplace_rhoa
4833 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_laplace_rhob
4834 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_tau_a
4835 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_tau_b
4836 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_gamma_ab
4837 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_gamma_bb
4838 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_laplace_rhoa
4839 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_laplace_rhob
4840 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_tau_a
4841 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_tau_b
4842 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_gamma_bb
4843 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_laplace_rhoa
4844 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_laplace_rhob
4845 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_tau_a
4846 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_tau_b
4847 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_laplace_rhoa
4848 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_laplace_rhob
4849 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_tau_a
4850 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_tau_b
4851 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob_laplace_rhob
4852 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob_tau_a
4853 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob_tau_b
4854 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_a_tau_a
4855 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_a_tau_b
4856 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_b_tau_b
4857 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_rhob
4858 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_gamma_aa
4859 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_gamma_ab
4860 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_gamma_bb
4861 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_laplace_rhoa
4862 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_laplace_rhob
4863 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_tau_a
4864 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_tau_b
4865 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_gamma_aa
4866 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_gamma_ab
4867 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_gamma_bb
4868 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_laplace_rhoa
4869 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_laplace_rhob
4870 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_tau_a
4871 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_tau_b
4872 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_gamma_ab
4873 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_gamma_bb
4874 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_laplace_rhoa
4875 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_laplace_rhob
4876 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_tau_a
4877 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_tau_b
4878 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_gamma_bb
4879 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_laplace_rhoa
4880 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_laplace_rhob
4881 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_tau_a
4882 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_tau_b
4883 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_laplace_rhoa
4884 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_laplace_rhob
4885 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_tau_a
4886 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_tau_b
4887 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob_laplace_rhob
4888 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob_tau_a
4889 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob_tau_b
4890 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_a_tau_a
4891 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_a_tau_b
4892 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_b_tau_b
4893 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_gamma_aa
4894 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_gamma_ab
4895 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_gamma_bb
4896 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_laplace_rhoa
4897 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_laplace_rhob
4898 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_tau_a
4899 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_tau_b
4900 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_gamma_ab
4901 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_gamma_bb
4902 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_laplace_rhoa
4903 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_laplace_rhob
4904 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_tau_a
4905 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_tau_b
4906 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_gamma_bb
4907 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_laplace_rhoa
4908 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_laplace_rhob
4909 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_tau_a
4910 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_tau_b
4911 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_laplace_rhoa
4912 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_laplace_rhob
4913 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_tau_a
4914 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_tau_b
4915 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob_laplace_rhob
4916 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob_tau_a
4917 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob_tau_b
4918 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_a_tau_a
4919 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_a_tau_b
4920 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_b_tau_b
4921 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_gamma_ab
4922 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_gamma_bb
4923 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_laplace_rhoa
4924 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_laplace_rhob
4925 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_tau_a
4926 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_tau_b
4927 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_gamma_bb
4928 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_laplace_rhoa
4929 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_laplace_rhob
4930 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_tau_a
4931 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_tau_b
4932 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_laplace_rhoa
4933 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_laplace_rhob
4934 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_tau_a
4935 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_tau_b
4936 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob_laplace_rhob
4937 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob_tau_a
4938 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob_tau_b
4939 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_a_tau_a
4940 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_a_tau_b
4941 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_b_tau_b
4942 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_gamma_bb
4943 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_laplace_rhoa
4944 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_laplace_rhob
4945 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_tau_a
4946 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_tau_b
4947 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_laplace_rhoa
4948 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_laplace_rhob
4949 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_tau_a
4950 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_tau_b
4951 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob_laplace_rhob
4952 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob_tau_a
4953 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob_tau_b
4954 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_a_tau_a
4955 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_a_tau_b
4956 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_b_tau_b
4957 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_laplace_rhoa
4958 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_laplace_rhob
4959 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_tau_a
4960 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_tau_b
4961 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob_laplace_rhob
4962 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob_tau_a
4963 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob_tau_b
4964 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_a_tau_a
4965 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_a_tau_b
4966 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_b_tau_b
4967 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob_laplace_rhob
4968 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob_tau_a
4969 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob_tau_b
4970 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_a_tau_a
4971 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_a_tau_b
4972 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_b_tau_b
4973 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_a_tau_a
4974 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_a_tau_b
4975 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_b_tau_b
4976 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_b_tau_b_tau_b
4977 REAL(kind=
dp) :: mp_rho, mp_gamma, mp_laplace_rho, mp_tau, mpp_gamma
4978 REAL(kind=
dp) :: m_rho, m_gamma, m_laplace_rho, m_tau, m_b
4979 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho
4980 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma
4981 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_laplace_rho
4982 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_tau
4983 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma
4984 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_laplace_rho
4985 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_tau
4986 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_laplace_rho
4987 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_tau
4988 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_tau_tau
4989 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_rho
4990 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_gamma
4991 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_laplace_rho
4992 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_tau
4993 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma_gamma
4994 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma_laplace_rho
4995 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma_tau
4996 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_laplace_rho_laplace_rho
4997 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_laplace_rho_tau
4998 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_tau_tau
4999 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma_gamma
5000 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma_laplace_rho
5001 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma_tau
5002 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_laplace_rho_laplace_rho
5003 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_laplace_rho_tau
5004 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_tau_tau
5005 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_laplace_rho_laplace_rho
5006 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_laplace_rho_tau
5007 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_tau_tau
5008 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_tau_tau_tau
5010 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: gaa1, gab1, gbb1, gaa11, gab11, gbb11
5011 REAL(kind=
dp) :: p_rhoa, p_rhob, p_gamma_aa, p_gamma_ab, p_gamma_bb
5012 REAL(kind=
dp) :: pp_gamma_aa, pp_gamma_ab, pp_gamma_bb
5013 REAL(kind=
dp) :: u_a, u_b, a_gamma_aa, a_gamma_ab, a_gamma_bb, &
5014 b_gamma_aa, b_gamma_ab, b_gamma_bb
5015 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa
5016 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob
5017 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa
5018 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_ab
5019 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_bb
5020 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob
5021 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa
5022 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_ab
5023 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_bb
5024 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa
5025 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_ab
5026 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_bb
5027 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_ab
5028 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_bb
5029 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_bb_gamma_bb
5030 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_rhoa
5031 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_rhob
5032 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_gamma_aa
5033 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_gamma_ab
5034 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_gamma_bb
5035 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_rhob
5036 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_gamma_aa
5037 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_gamma_ab
5038 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_gamma_bb
5039 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa_gamma_aa
5040 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa_gamma_ab
5041 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa_gamma_bb
5042 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_ab_gamma_ab
5043 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_ab_gamma_bb
5044 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_bb_gamma_bb
5045 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_rhob
5046 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_gamma_aa
5047 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_gamma_ab
5048 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_gamma_bb
5049 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa_gamma_aa
5050 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa_gamma_ab
5051 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa_gamma_bb
5052 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_ab_gamma_ab
5053 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_ab_gamma_bb
5054 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_bb_gamma_bb
5055 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa_gamma_aa
5056 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa_gamma_ab
5057 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa_gamma_bb
5058 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_ab_gamma_ab
5059 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_ab_gamma_bb
5060 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_bb_gamma_bb
5061 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_ab_gamma_ab
5062 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_ab_gamma_bb
5063 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_bb_gamma_bb
5064 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_bb_gamma_bb_gamma_bb
5065 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: deriv_data, deriv_data2, e_drhoa, e_drhob, &
5066 e_drho, norm_drho, norm_drhoa, &
5067 norm_drhob, rho1a, rho1b, &
5069 e_rrr, e_rrg, e_rgg, e_ggg, e_rg, e_gg
5070 TYPE(
cp_3d_r_cp_type),
DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob
5071 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
ALLOCATABLE :: v_drhoa, v_drhob, v_drho
5076 CALL timeset(routinen, handle)
5078 NULLIFY (e_drhoa, e_drhob, e_drho)
5080 cpassert(
ASSOCIATED(v_xc))
5081 cpassert(
ASSOCIATED(xc_section))
5085 i_val=xc_deriv_method_id)
5088 lsd =
ASSOCIATED(rho_set%rhoa)
5090 do_spinflip = .false.
5091 IF (
PRESENT(spinflip)) do_spinflip = spinflip
5093 IF (
PRESENT(gapw)) my_gapw = gapw
5095 cpassert(
PRESENT(vxg))
5098 IF (laplace_f) cpabort(
"Laplace-dependent functional not implemented with GAPW!")
5101 bo = rho_set%local_bounds
5103 CALL check_for_derivatives(deriv_set, lsd, rho_f, gradient_f, tau_f, laplace_f)
5113 DO ispin = 1, nspins
5115 v_xc(ispin)%array = 0.0_dp
5119 IF (gradient_f)
THEN
5120 ALLOCATE (v_drho_r(3, nspins), v_drho(nspins))
5121 DO ispin = 1, nspins
5123 CALL allocate_pw(v_drho_r(idir, ispin), pw_pool, bo)
5125 CALL allocate_pw(v_drho(ispin), pw_pool, bo)
5129 IF (
ASSOCIATED(pw_pool))
THEN
5130 CALL pw_pool%create_pw(tmp_g)
5131 CALL pw_pool%create_pw(vxc_g)
5134 cpabort(
"XC_DERIV method is not implemented in GAPW")
5142 cpassert(
ASSOCIATED(v_xc_tau))
5143 DO ispin = 1, nspins
5144 v_xc_tau(ispin)%array = 0.0_dp
5154 IF (do_spinflip)
THEN
5161 IF (gradient_f)
THEN
5163 norm_drho=norm_drho, norm_drhoa=norm_drhoa, norm_drhob=norm_drhob)
5164 IF (do_spinflip)
THEN
5166 CALL calc_drho_from_a(drho1, drho1a)
5169 CALL calc_drho_from_ab(drho1, drho1a, drho1b)
5172 CALL calc_drho_from_ab(drho, drhoa, drhob)
5174 CALL prepare_dr1dr(dra1dra, drhoa, drho1a)
5175 IF (do_spinflip)
THEN
5176 CALL prepare_dr1dr(drb1drb, drhob, drho1a)
5177 CALL prepare_dr1dr(dr1dr, drho, drho1a)
5178 ELSE IF (nspins /= 1)
THEN
5179 CALL prepare_dr1dr(drb1drb, drhob, drho1b)
5180 CALL prepare_dr1dr(dr1dr, drho, drho1)
5182 cpabort(
"Exchange-correlation's third derivative for closed-shell not yet implemented")
5186 ALLOCATE (v_drhoa(nspins), v_drhob(nspins))
5187 DO ispin = 1, nspins
5188 CALL allocate_pw(v_drhoa(ispin), pw_pool, bo)
5189 CALL allocate_pw(v_drhob(ispin), pw_pool, bo)
5197 IF (laplace_f .AND. (do_spinflip .OR. nspins == 1))
THEN
5198 cpabort(
"Exchange-correlation's laplace analytic third derivative not implemented")
5201 IF (tau_f .AND. (do_spinflip .OR. nspins == 1))
THEN
5202 cpabort(
"Exchange-correlation's mGGA analytic third derivative not implemented")
5205 IF (nspins /= 1)
THEN
5207 IF (.NOT. do_spinflip)
THEN
5221 IF (tau_f .OR. laplace_f)
THEN
5230 IF (tau_f)
CALL xc_rho_set_get(rho1_set, tau_a=tau1a, tau_b=tau1b)
5231 IF (laplace_f)
CALL xc_rho_set_get(rho1_set, laplace_rhoa=laplace1a, &
5232 laplace_rhob=laplace1b)
5233 CALL prepare_dr1dr(gaa1, drhoa, drho1a)
5234 CALL prepare_dr1dr(gbb1, drhob, drho1b)
5235 CALL prepare_dr1dr(gab1, drhoa, drho1b)
5236 CALL prepare_dr1dr(gaa11, drho1a, drho1a)
5237 CALL prepare_dr1dr(gbb11, drho1b, drho1b)
5238 CALL prepare_dr1dr(gab11, drho1a, drho1b)
5240 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: tmp_ba
5241 CALL prepare_dr1dr(tmp_ba, drhob, drho1a)
5242 gab1(:, :, :) = gab1(:, :, :) + tmp_ba(:, :, :)
5245 ALLOCATE (zero_f(bo(1, 1):bo(2, 1), bo(1, 2):bo(2, 2), bo(1, 3):bo(2, 3)))
5249 IF (
ASSOCIATED(deriv_att))
THEN
5252 n_rhoa_rhoa => zero_f
5256 IF (
ASSOCIATED(deriv_att))
THEN
5259 n_rhoa_rhob => zero_f
5263 IF (
ASSOCIATED(deriv_att))
THEN
5266 n_rhoa_gamma_aa => zero_f
5270 IF (
ASSOCIATED(deriv_att))
THEN
5273 n_rhoa_gamma_ab => zero_f
5277 IF (
ASSOCIATED(deriv_att))
THEN
5280 n_rhoa_gamma_bb => zero_f
5284 IF (
ASSOCIATED(deriv_att))
THEN
5287 n_rhoa_laplace_rhoa => zero_f
5291 IF (
ASSOCIATED(deriv_att))
THEN
5294 n_rhoa_laplace_rhob => zero_f
5298 IF (
ASSOCIATED(deriv_att))
THEN
5301 n_rhoa_tau_a => zero_f
5305 IF (
ASSOCIATED(deriv_att))
THEN
5308 n_rhoa_tau_b => zero_f
5312 IF (
ASSOCIATED(deriv_att))
THEN
5315 n_rhob_rhob => zero_f
5319 IF (
ASSOCIATED(deriv_att))
THEN
5322 n_rhob_gamma_aa => zero_f
5326 IF (
ASSOCIATED(deriv_att))
THEN
5329 n_rhob_gamma_ab => zero_f
5333 IF (
ASSOCIATED(deriv_att))
THEN
5336 n_rhob_gamma_bb => zero_f
5340 IF (
ASSOCIATED(deriv_att))
THEN
5343 n_rhob_laplace_rhoa => zero_f
5347 IF (
ASSOCIATED(deriv_att))
THEN
5350 n_rhob_laplace_rhob => zero_f
5354 IF (
ASSOCIATED(deriv_att))
THEN
5357 n_rhob_tau_a => zero_f
5361 IF (
ASSOCIATED(deriv_att))
THEN
5364 n_rhob_tau_b => zero_f
5368 IF (
ASSOCIATED(deriv_att))
THEN
5371 n_gamma_aa_gamma_aa => zero_f
5375 IF (
ASSOCIATED(deriv_att))
THEN
5378 n_gamma_aa_gamma_ab => zero_f
5382 IF (
ASSOCIATED(deriv_att))
THEN
5385 n_gamma_aa_gamma_bb => zero_f
5389 IF (
ASSOCIATED(deriv_att))
THEN
5392 n_gamma_aa_laplace_rhoa => zero_f
5396 IF (
ASSOCIATED(deriv_att))
THEN
5399 n_gamma_aa_laplace_rhob => zero_f
5403 IF (
ASSOCIATED(deriv_att))
THEN
5406 n_gamma_aa_tau_a => zero_f
5410 IF (
ASSOCIATED(deriv_att))
THEN
5413 n_gamma_aa_tau_b => zero_f
5417 IF (
ASSOCIATED(deriv_att))
THEN
5420 n_gamma_ab_gamma_ab => zero_f
5424 IF (
ASSOCIATED(deriv_att))
THEN
5427 n_gamma_ab_gamma_bb => zero_f
5431 IF (
ASSOCIATED(deriv_att))
THEN
5434 n_gamma_ab_laplace_rhoa => zero_f
5438 IF (
ASSOCIATED(deriv_att))
THEN
5441 n_gamma_ab_laplace_rhob => zero_f
5445 IF (
ASSOCIATED(deriv_att))
THEN
5448 n_gamma_ab_tau_a => zero_f
5452 IF (
ASSOCIATED(deriv_att))
THEN
5455 n_gamma_ab_tau_b => zero_f
5459 IF (
ASSOCIATED(deriv_att))
THEN
5462 n_gamma_bb_gamma_bb => zero_f
5466 IF (
ASSOCIATED(deriv_att))
THEN
5469 n_gamma_bb_laplace_rhoa => zero_f
5473 IF (
ASSOCIATED(deriv_att))
THEN
5476 n_gamma_bb_laplace_rhob => zero_f
5480 IF (
ASSOCIATED(deriv_att))
THEN
5483 n_gamma_bb_tau_a => zero_f
5487 IF (
ASSOCIATED(deriv_att))
THEN
5490 n_gamma_bb_tau_b => zero_f
5494 IF (
ASSOCIATED(deriv_att))
THEN
5497 n_laplace_rhoa_laplace_rhoa => zero_f
5501 IF (
ASSOCIATED(deriv_att))
THEN
5504 n_laplace_rhoa_laplace_rhob => zero_f
5508 IF (
ASSOCIATED(deriv_att))
THEN
5511 n_laplace_rhoa_tau_a => zero_f
5515 IF (
ASSOCIATED(deriv_att))
THEN
5518 n_laplace_rhoa_tau_b => zero_f
5522 IF (
ASSOCIATED(deriv_att))
THEN
5525 n_laplace_rhob_laplace_rhob => zero_f
5529 IF (
ASSOCIATED(deriv_att))
THEN
5532 n_laplace_rhob_tau_a => zero_f
5536 IF (
ASSOCIATED(deriv_att))
THEN
5539 n_laplace_rhob_tau_b => zero_f
5543 IF (
ASSOCIATED(deriv_att))
THEN
5546 n_tau_a_tau_a => zero_f
5550 IF (
ASSOCIATED(deriv_att))
THEN
5553 n_tau_a_tau_b => zero_f
5557 IF (
ASSOCIATED(deriv_att))
THEN
5560 n_tau_b_tau_b => zero_f
5564 IF (
ASSOCIATED(deriv_att))
THEN
5567 n_rhoa_rhoa_rhoa => zero_f
5571 IF (
ASSOCIATED(deriv_att))
THEN
5574 n_rhoa_rhoa_rhob => zero_f
5578 IF (
ASSOCIATED(deriv_att))
THEN
5581 n_rhoa_rhoa_gamma_aa => zero_f
5585 IF (
ASSOCIATED(deriv_att))
THEN
5588 n_rhoa_rhoa_gamma_ab => zero_f
5592 IF (
ASSOCIATED(deriv_att))
THEN
5595 n_rhoa_rhoa_gamma_bb => zero_f
5599 IF (
ASSOCIATED(deriv_att))
THEN
5602 n_rhoa_rhoa_laplace_rhoa => zero_f
5606 IF (
ASSOCIATED(deriv_att))
THEN
5609 n_rhoa_rhoa_laplace_rhob => zero_f
5613 IF (
ASSOCIATED(deriv_att))
THEN
5616 n_rhoa_rhoa_tau_a => zero_f
5620 IF (
ASSOCIATED(deriv_att))
THEN
5623 n_rhoa_rhoa_tau_b => zero_f
5627 IF (
ASSOCIATED(deriv_att))
THEN
5630 n_rhoa_rhob_rhob => zero_f
5634 IF (
ASSOCIATED(deriv_att))
THEN
5637 n_rhoa_rhob_gamma_aa => zero_f
5641 IF (
ASSOCIATED(deriv_att))
THEN
5644 n_rhoa_rhob_gamma_ab => zero_f
5648 IF (
ASSOCIATED(deriv_att))
THEN
5651 n_rhoa_rhob_gamma_bb => zero_f
5655 IF (
ASSOCIATED(deriv_att))
THEN
5658 n_rhoa_rhob_laplace_rhoa => zero_f
5662 IF (
ASSOCIATED(deriv_att))
THEN
5665 n_rhoa_rhob_laplace_rhob => zero_f
5669 IF (
ASSOCIATED(deriv_att))
THEN
5672 n_rhoa_rhob_tau_a => zero_f
5676 IF (
ASSOCIATED(deriv_att))
THEN
5679 n_rhoa_rhob_tau_b => zero_f
5683 IF (
ASSOCIATED(deriv_att))
THEN
5686 n_rhoa_gamma_aa_gamma_aa => zero_f
5690 IF (
ASSOCIATED(deriv_att))
THEN
5693 n_rhoa_gamma_aa_gamma_ab => zero_f
5697 IF (
ASSOCIATED(deriv_att))
THEN
5700 n_rhoa_gamma_aa_gamma_bb => zero_f
5704 IF (
ASSOCIATED(deriv_att))
THEN
5707 n_rhoa_gamma_aa_laplace_rhoa => zero_f
5711 IF (
ASSOCIATED(deriv_att))
THEN
5714 n_rhoa_gamma_aa_laplace_rhob => zero_f
5718 IF (
ASSOCIATED(deriv_att))
THEN
5721 n_rhoa_gamma_aa_tau_a => zero_f
5725 IF (
ASSOCIATED(deriv_att))
THEN
5728 n_rhoa_gamma_aa_tau_b => zero_f
5732 IF (
ASSOCIATED(deriv_att))
THEN
5735 n_rhoa_gamma_ab_gamma_ab => zero_f
5739 IF (
ASSOCIATED(deriv_att))
THEN
5742 n_rhoa_gamma_ab_gamma_bb => zero_f
5746 IF (
ASSOCIATED(deriv_att))
THEN
5749 n_rhoa_gamma_ab_laplace_rhoa => zero_f
5753 IF (
ASSOCIATED(deriv_att))
THEN
5756 n_rhoa_gamma_ab_laplace_rhob => zero_f
5760 IF (
ASSOCIATED(deriv_att))
THEN
5763 n_rhoa_gamma_ab_tau_a => zero_f
5767 IF (
ASSOCIATED(deriv_att))
THEN
5770 n_rhoa_gamma_ab_tau_b => zero_f
5774 IF (
ASSOCIATED(deriv_att))
THEN
5777 n_rhoa_gamma_bb_gamma_bb => zero_f
5781 IF (
ASSOCIATED(deriv_att))
THEN
5784 n_rhoa_gamma_bb_laplace_rhoa => zero_f
5788 IF (
ASSOCIATED(deriv_att))
THEN
5791 n_rhoa_gamma_bb_laplace_rhob => zero_f
5795 IF (
ASSOCIATED(deriv_att))
THEN
5798 n_rhoa_gamma_bb_tau_a => zero_f
5802 IF (
ASSOCIATED(deriv_att))
THEN
5805 n_rhoa_gamma_bb_tau_b => zero_f
5809 IF (
ASSOCIATED(deriv_att))
THEN
5812 n_rhoa_laplace_rhoa_laplace_rhoa => zero_f
5816 IF (
ASSOCIATED(deriv_att))
THEN
5819 n_rhoa_laplace_rhoa_laplace_rhob => zero_f
5823 IF (
ASSOCIATED(deriv_att))
THEN
5826 n_rhoa_laplace_rhoa_tau_a => zero_f
5830 IF (
ASSOCIATED(deriv_att))
THEN
5833 n_rhoa_laplace_rhoa_tau_b => zero_f
5837 IF (
ASSOCIATED(deriv_att))
THEN
5840 n_rhoa_laplace_rhob_laplace_rhob => zero_f
5844 IF (
ASSOCIATED(deriv_att))
THEN
5847 n_rhoa_laplace_rhob_tau_a => zero_f
5851 IF (
ASSOCIATED(deriv_att))
THEN
5854 n_rhoa_laplace_rhob_tau_b => zero_f
5858 IF (
ASSOCIATED(deriv_att))
THEN
5861 n_rhoa_tau_a_tau_a => zero_f
5865 IF (
ASSOCIATED(deriv_att))
THEN
5868 n_rhoa_tau_a_tau_b => zero_f
5872 IF (
ASSOCIATED(deriv_att))
THEN
5875 n_rhoa_tau_b_tau_b => zero_f
5879 IF (
ASSOCIATED(deriv_att))
THEN
5882 n_rhob_rhob_rhob => zero_f
5886 IF (
ASSOCIATED(deriv_att))
THEN
5889 n_rhob_rhob_gamma_aa => zero_f
5893 IF (
ASSOCIATED(deriv_att))
THEN
5896 n_rhob_rhob_gamma_ab => zero_f
5900 IF (
ASSOCIATED(deriv_att))
THEN
5903 n_rhob_rhob_gamma_bb => zero_f
5907 IF (
ASSOCIATED(deriv_att))
THEN
5910 n_rhob_rhob_laplace_rhoa => zero_f
5914 IF (
ASSOCIATED(deriv_att))
THEN
5917 n_rhob_rhob_laplace_rhob => zero_f
5921 IF (
ASSOCIATED(deriv_att))
THEN
5924 n_rhob_rhob_tau_a => zero_f
5928 IF (
ASSOCIATED(deriv_att))
THEN
5931 n_rhob_rhob_tau_b => zero_f
5935 IF (
ASSOCIATED(deriv_att))
THEN
5938 n_rhob_gamma_aa_gamma_aa => zero_f
5942 IF (
ASSOCIATED(deriv_att))
THEN
5945 n_rhob_gamma_aa_gamma_ab => zero_f
5949 IF (
ASSOCIATED(deriv_att))
THEN
5952 n_rhob_gamma_aa_gamma_bb => zero_f
5956 IF (
ASSOCIATED(deriv_att))
THEN
5959 n_rhob_gamma_aa_laplace_rhoa => zero_f
5963 IF (
ASSOCIATED(deriv_att))
THEN
5966 n_rhob_gamma_aa_laplace_rhob => zero_f
5970 IF (
ASSOCIATED(deriv_att))
THEN
5973 n_rhob_gamma_aa_tau_a => zero_f
5977 IF (
ASSOCIATED(deriv_att))
THEN
5980 n_rhob_gamma_aa_tau_b => zero_f
5984 IF (
ASSOCIATED(deriv_att))
THEN
5987 n_rhob_gamma_ab_gamma_ab => zero_f
5991 IF (
ASSOCIATED(deriv_att))
THEN
5994 n_rhob_gamma_ab_gamma_bb => zero_f
5998 IF (
ASSOCIATED(deriv_att))
THEN
6001 n_rhob_gamma_ab_laplace_rhoa => zero_f
6005 IF (
ASSOCIATED(deriv_att))
THEN
6008 n_rhob_gamma_ab_laplace_rhob => zero_f
6012 IF (
ASSOCIATED(deriv_att))
THEN
6015 n_rhob_gamma_ab_tau_a => zero_f
6019 IF (
ASSOCIATED(deriv_att))
THEN
6022 n_rhob_gamma_ab_tau_b => zero_f
6026 IF (
ASSOCIATED(deriv_att))
THEN
6029 n_rhob_gamma_bb_gamma_bb => zero_f
6033 IF (
ASSOCIATED(deriv_att))
THEN
6036 n_rhob_gamma_bb_laplace_rhoa => zero_f
6040 IF (
ASSOCIATED(deriv_att))
THEN
6043 n_rhob_gamma_bb_laplace_rhob => zero_f
6047 IF (
ASSOCIATED(deriv_att))
THEN
6050 n_rhob_gamma_bb_tau_a => zero_f
6054 IF (
ASSOCIATED(deriv_att))
THEN
6057 n_rhob_gamma_bb_tau_b => zero_f
6061 IF (
ASSOCIATED(deriv_att))
THEN
6064 n_rhob_laplace_rhoa_laplace_rhoa => zero_f
6068 IF (
ASSOCIATED(deriv_att))
THEN
6071 n_rhob_laplace_rhoa_laplace_rhob => zero_f
6075 IF (
ASSOCIATED(deriv_att))
THEN
6078 n_rhob_laplace_rhoa_tau_a => zero_f
6082 IF (
ASSOCIATED(deriv_att))
THEN
6085 n_rhob_laplace_rhoa_tau_b => zero_f
6089 IF (
ASSOCIATED(deriv_att))
THEN
6092 n_rhob_laplace_rhob_laplace_rhob => zero_f
6096 IF (
ASSOCIATED(deriv_att))
THEN
6099 n_rhob_laplace_rhob_tau_a => zero_f
6103 IF (
ASSOCIATED(deriv_att))
THEN
6106 n_rhob_laplace_rhob_tau_b => zero_f
6110 IF (
ASSOCIATED(deriv_att))
THEN
6113 n_rhob_tau_a_tau_a => zero_f
6117 IF (
ASSOCIATED(deriv_att))
THEN
6120 n_rhob_tau_a_tau_b => zero_f
6124 IF (
ASSOCIATED(deriv_att))
THEN
6127 n_rhob_tau_b_tau_b => zero_f
6131 IF (
ASSOCIATED(deriv_att))
THEN
6134 n_gamma_aa_gamma_aa_gamma_aa => zero_f
6138 IF (
ASSOCIATED(deriv_att))
THEN
6141 n_gamma_aa_gamma_aa_gamma_ab => zero_f
6145 IF (
ASSOCIATED(deriv_att))
THEN
6148 n_gamma_aa_gamma_aa_gamma_bb => zero_f
6152 IF (
ASSOCIATED(deriv_att))
THEN
6155 n_gamma_aa_gamma_aa_laplace_rhoa => zero_f
6159 IF (
ASSOCIATED(deriv_att))
THEN
6162 n_gamma_aa_gamma_aa_laplace_rhob => zero_f
6166 IF (
ASSOCIATED(deriv_att))
THEN
6169 n_gamma_aa_gamma_aa_tau_a => zero_f
6173 IF (
ASSOCIATED(deriv_att))
THEN
6176 n_gamma_aa_gamma_aa_tau_b => zero_f
6180 IF (
ASSOCIATED(deriv_att))
THEN
6183 n_gamma_aa_gamma_ab_gamma_ab => zero_f
6187 IF (
ASSOCIATED(deriv_att))
THEN
6190 n_gamma_aa_gamma_ab_gamma_bb => zero_f
6194 IF (
ASSOCIATED(deriv_att))
THEN
6197 n_gamma_aa_gamma_ab_laplace_rhoa => zero_f
6201 IF (
ASSOCIATED(deriv_att))
THEN
6204 n_gamma_aa_gamma_ab_laplace_rhob => zero_f
6208 IF (
ASSOCIATED(deriv_att))
THEN
6211 n_gamma_aa_gamma_ab_tau_a => zero_f
6215 IF (
ASSOCIATED(deriv_att))
THEN
6218 n_gamma_aa_gamma_ab_tau_b => zero_f
6222 IF (
ASSOCIATED(deriv_att))
THEN
6225 n_gamma_aa_gamma_bb_gamma_bb => zero_f
6229 IF (
ASSOCIATED(deriv_att))
THEN
6232 n_gamma_aa_gamma_bb_laplace_rhoa => zero_f
6236 IF (
ASSOCIATED(deriv_att))
THEN
6239 n_gamma_aa_gamma_bb_laplace_rhob => zero_f
6243 IF (
ASSOCIATED(deriv_att))
THEN
6246 n_gamma_aa_gamma_bb_tau_a => zero_f
6250 IF (
ASSOCIATED(deriv_att))
THEN
6253 n_gamma_aa_gamma_bb_tau_b => zero_f
6257 IF (
ASSOCIATED(deriv_att))
THEN
6258 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_aa_laplace_rhoa_laplace_rhoa)
6260 n_gamma_aa_laplace_rhoa_laplace_rhoa => zero_f
6264 IF (
ASSOCIATED(deriv_att))
THEN
6265 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_aa_laplace_rhoa_laplace_rhob)
6267 n_gamma_aa_laplace_rhoa_laplace_rhob => zero_f
6271 IF (
ASSOCIATED(deriv_att))
THEN
6274 n_gamma_aa_laplace_rhoa_tau_a => zero_f
6278 IF (
ASSOCIATED(deriv_att))
THEN
6281 n_gamma_aa_laplace_rhoa_tau_b => zero_f
6285 IF (
ASSOCIATED(deriv_att))
THEN
6286 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_aa_laplace_rhob_laplace_rhob)
6288 n_gamma_aa_laplace_rhob_laplace_rhob => zero_f
6292 IF (
ASSOCIATED(deriv_att))
THEN
6295 n_gamma_aa_laplace_rhob_tau_a => zero_f
6299 IF (
ASSOCIATED(deriv_att))
THEN
6302 n_gamma_aa_laplace_rhob_tau_b => zero_f
6306 IF (
ASSOCIATED(deriv_att))
THEN
6309 n_gamma_aa_tau_a_tau_a => zero_f
6313 IF (
ASSOCIATED(deriv_att))
THEN
6316 n_gamma_aa_tau_a_tau_b => zero_f
6320 IF (
ASSOCIATED(deriv_att))
THEN
6323 n_gamma_aa_tau_b_tau_b => zero_f
6327 IF (
ASSOCIATED(deriv_att))
THEN
6330 n_gamma_ab_gamma_ab_gamma_ab => zero_f
6334 IF (
ASSOCIATED(deriv_att))
THEN
6337 n_gamma_ab_gamma_ab_gamma_bb => zero_f
6341 IF (
ASSOCIATED(deriv_att))
THEN
6344 n_gamma_ab_gamma_ab_laplace_rhoa => zero_f
6348 IF (
ASSOCIATED(deriv_att))
THEN
6351 n_gamma_ab_gamma_ab_laplace_rhob => zero_f
6355 IF (
ASSOCIATED(deriv_att))
THEN
6358 n_gamma_ab_gamma_ab_tau_a => zero_f
6362 IF (
ASSOCIATED(deriv_att))
THEN
6365 n_gamma_ab_gamma_ab_tau_b => zero_f
6369 IF (
ASSOCIATED(deriv_att))
THEN
6372 n_gamma_ab_gamma_bb_gamma_bb => zero_f
6376 IF (
ASSOCIATED(deriv_att))
THEN
6379 n_gamma_ab_gamma_bb_laplace_rhoa => zero_f
6383 IF (
ASSOCIATED(deriv_att))
THEN
6386 n_gamma_ab_gamma_bb_laplace_rhob => zero_f
6390 IF (
ASSOCIATED(deriv_att))
THEN
6393 n_gamma_ab_gamma_bb_tau_a => zero_f
6397 IF (
ASSOCIATED(deriv_att))
THEN
6400 n_gamma_ab_gamma_bb_tau_b => zero_f
6404 IF (
ASSOCIATED(deriv_att))
THEN
6405 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_ab_laplace_rhoa_laplace_rhoa)
6407 n_gamma_ab_laplace_rhoa_laplace_rhoa => zero_f
6411 IF (
ASSOCIATED(deriv_att))
THEN
6412 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_ab_laplace_rhoa_laplace_rhob)
6414 n_gamma_ab_laplace_rhoa_laplace_rhob => zero_f
6418 IF (
ASSOCIATED(deriv_att))
THEN
6421 n_gamma_ab_laplace_rhoa_tau_a => zero_f
6425 IF (
ASSOCIATED(deriv_att))
THEN
6428 n_gamma_ab_laplace_rhoa_tau_b => zero_f
6432 IF (
ASSOCIATED(deriv_att))
THEN
6433 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_ab_laplace_rhob_laplace_rhob)
6435 n_gamma_ab_laplace_rhob_laplace_rhob => zero_f
6439 IF (
ASSOCIATED(deriv_att))
THEN
6442 n_gamma_ab_laplace_rhob_tau_a => zero_f
6446 IF (
ASSOCIATED(deriv_att))
THEN
6449 n_gamma_ab_laplace_rhob_tau_b => zero_f
6453 IF (
ASSOCIATED(deriv_att))
THEN
6456 n_gamma_ab_tau_a_tau_a => zero_f
6460 IF (
ASSOCIATED(deriv_att))
THEN
6463 n_gamma_ab_tau_a_tau_b => zero_f
6467 IF (
ASSOCIATED(deriv_att))
THEN
6470 n_gamma_ab_tau_b_tau_b => zero_f
6474 IF (
ASSOCIATED(deriv_att))
THEN
6477 n_gamma_bb_gamma_bb_gamma_bb => zero_f
6481 IF (
ASSOCIATED(deriv_att))
THEN
6484 n_gamma_bb_gamma_bb_laplace_rhoa => zero_f
6488 IF (
ASSOCIATED(deriv_att))
THEN
6491 n_gamma_bb_gamma_bb_laplace_rhob => zero_f
6495 IF (
ASSOCIATED(deriv_att))
THEN
6498 n_gamma_bb_gamma_bb_tau_a => zero_f
6502 IF (
ASSOCIATED(deriv_att))
THEN
6505 n_gamma_bb_gamma_bb_tau_b => zero_f
6509 IF (
ASSOCIATED(deriv_att))
THEN
6510 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_bb_laplace_rhoa_laplace_rhoa)
6512 n_gamma_bb_laplace_rhoa_laplace_rhoa => zero_f
6516 IF (
ASSOCIATED(deriv_att))
THEN
6517 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_bb_laplace_rhoa_laplace_rhob)
6519 n_gamma_bb_laplace_rhoa_laplace_rhob => zero_f
6523 IF (
ASSOCIATED(deriv_att))
THEN
6526 n_gamma_bb_laplace_rhoa_tau_a => zero_f
6530 IF (
ASSOCIATED(deriv_att))
THEN
6533 n_gamma_bb_laplace_rhoa_tau_b => zero_f
6537 IF (
ASSOCIATED(deriv_att))
THEN
6538 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_bb_laplace_rhob_laplace_rhob)
6540 n_gamma_bb_laplace_rhob_laplace_rhob => zero_f
6544 IF (
ASSOCIATED(deriv_att))
THEN
6547 n_gamma_bb_laplace_rhob_tau_a => zero_f
6551 IF (
ASSOCIATED(deriv_att))
THEN
6554 n_gamma_bb_laplace_rhob_tau_b => zero_f
6558 IF (
ASSOCIATED(deriv_att))
THEN
6561 n_gamma_bb_tau_a_tau_a => zero_f
6565 IF (
ASSOCIATED(deriv_att))
THEN
6568 n_gamma_bb_tau_a_tau_b => zero_f
6572 IF (
ASSOCIATED(deriv_att))
THEN
6575 n_gamma_bb_tau_b_tau_b => zero_f
6579 IF (
ASSOCIATED(deriv_att))
THEN
6580 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhoa_laplace_rhoa_laplace_rhoa)
6582 n_laplace_rhoa_laplace_rhoa_laplace_rhoa => zero_f
6586 IF (
ASSOCIATED(deriv_att))
THEN
6587 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhoa_laplace_rhoa_laplace_rhob)
6589 n_laplace_rhoa_laplace_rhoa_laplace_rhob => zero_f
6593 IF (
ASSOCIATED(deriv_att))
THEN
6596 n_laplace_rhoa_laplace_rhoa_tau_a => zero_f
6600 IF (
ASSOCIATED(deriv_att))
THEN
6603 n_laplace_rhoa_laplace_rhoa_tau_b => zero_f
6607 IF (
ASSOCIATED(deriv_att))
THEN
6608 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhoa_laplace_rhob_laplace_rhob)
6610 n_laplace_rhoa_laplace_rhob_laplace_rhob => zero_f
6614 IF (
ASSOCIATED(deriv_att))
THEN
6617 n_laplace_rhoa_laplace_rhob_tau_a => zero_f
6621 IF (
ASSOCIATED(deriv_att))
THEN
6624 n_laplace_rhoa_laplace_rhob_tau_b => zero_f
6628 IF (
ASSOCIATED(deriv_att))
THEN
6631 n_laplace_rhoa_tau_a_tau_a => zero_f
6635 IF (
ASSOCIATED(deriv_att))
THEN
6638 n_laplace_rhoa_tau_a_tau_b => zero_f
6642 IF (
ASSOCIATED(deriv_att))
THEN
6645 n_laplace_rhoa_tau_b_tau_b => zero_f
6649 IF (
ASSOCIATED(deriv_att))
THEN
6650 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhob_laplace_rhob_laplace_rhob)
6652 n_laplace_rhob_laplace_rhob_laplace_rhob => zero_f
6656 IF (
ASSOCIATED(deriv_att))
THEN
6659 n_laplace_rhob_laplace_rhob_tau_a => zero_f
6663 IF (
ASSOCIATED(deriv_att))
THEN
6666 n_laplace_rhob_laplace_rhob_tau_b => zero_f
6670 IF (
ASSOCIATED(deriv_att))
THEN
6673 n_laplace_rhob_tau_a_tau_a => zero_f
6677 IF (
ASSOCIATED(deriv_att))
THEN
6680 n_laplace_rhob_tau_a_tau_b => zero_f
6684 IF (
ASSOCIATED(deriv_att))
THEN
6687 n_laplace_rhob_tau_b_tau_b => zero_f
6691 IF (
ASSOCIATED(deriv_att))
THEN
6694 n_tau_a_tau_a_tau_a => zero_f
6698 IF (
ASSOCIATED(deriv_att))
THEN
6701 n_tau_a_tau_a_tau_b => zero_f
6705 IF (
ASSOCIATED(deriv_att))
THEN
6708 n_tau_a_tau_b_tau_b => zero_f
6712 IF (
ASSOCIATED(deriv_att))
THEN
6715 n_tau_b_tau_b_tau_b => zero_f
6718 ALLOCATE (v_laplace(nspins))
6719 DO ispin = 1, nspins
6720 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
6951 DO k = bo(1, 3), bo(2, 3)
6952 DO j = bo(1, 2), bo(2, 2)
6953 DO i = bo(1, 1), bo(2, 1)
6954 mp_rhoa = rho1a(i, j, k)
6955 mp_rhob = rho1b(i, j, k)
6956 mp_gamma_aa = 2.0_dp*gaa1(i, j, k)
6957 mp_gamma_ab = gab1(i, j, k)
6958 mp_gamma_bb = 2.0_dp*gbb1(i, j, k)
6959 mpp_gamma_aa = 2.0_dp*gaa11(i, j, k)
6960 mpp_gamma_ab = 2.0_dp*gab11(i, j, k)
6961 mpp_gamma_bb = 2.0_dp*gbb11(i, j, k)
6964 IF (tau_f) mp_tau_a = tau1a(i, j, k)
6965 IF (tau_f) mp_tau_b = tau1b(i, j, k)
6966 mp_laplace_rhoa = 0.0_dp
6967 mp_laplace_rhob = 0.0_dp
6968 IF (laplace_f) mp_laplace_rhoa = laplace1a(i, j, k)
6969 IF (laplace_f) mp_laplace_rhob = laplace1b(i, j, k)
6972 q_rhoa = q_rhoa + 1.0_dp* &
6973 n_rhoa_rhoa_rhoa(i, j, k)*mp_rhoa*mp_rhoa
6974 q_rhoa = q_rhoa + 2.0_dp* &
6975 n_rhoa_rhoa_rhob(i, j, k)*mp_rhoa*mp_rhob
6976 q_rhoa = q_rhoa + 2.0_dp* &
6977 n_rhoa_rhoa_gamma_aa(i, j, k)*mp_rhoa*mp_gamma_aa
6978 q_rhoa = q_rhoa + 2.0_dp* &
6979 n_rhoa_rhoa_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
6980 q_rhoa = q_rhoa + 2.0_dp* &
6981 n_rhoa_rhoa_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
6982 q_rhoa = q_rhoa + 2.0_dp* &
6983 n_rhoa_rhoa_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
6984 q_rhoa = q_rhoa + 2.0_dp* &
6985 n_rhoa_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
6986 q_rhoa = q_rhoa + 2.0_dp* &
6987 n_rhoa_rhoa_tau_a(i, j, k)*mp_rhoa*mp_tau_a
6988 q_rhoa = q_rhoa + 2.0_dp* &
6989 n_rhoa_rhoa_tau_b(i, j, k)*mp_rhoa*mp_tau_b
6990 q_rhoa = q_rhoa + 1.0_dp* &
6991 n_rhoa_rhob_rhob(i, j, k)*mp_rhob*mp_rhob
6992 q_rhoa = q_rhoa + 2.0_dp* &
6993 n_rhoa_rhob_gamma_aa(i, j, k)*mp_rhob*mp_gamma_aa
6994 q_rhoa = q_rhoa + 2.0_dp* &
6995 n_rhoa_rhob_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
6996 q_rhoa = q_rhoa + 2.0_dp* &
6997 n_rhoa_rhob_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
6998 q_rhoa = q_rhoa + 2.0_dp* &
6999 n_rhoa_rhob_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7000 q_rhoa = q_rhoa + 2.0_dp* &
7001 n_rhoa_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7002 q_rhoa = q_rhoa + 2.0_dp* &
7003 n_rhoa_rhob_tau_a(i, j, k)*mp_rhob*mp_tau_a
7004 q_rhoa = q_rhoa + 2.0_dp* &
7005 n_rhoa_rhob_tau_b(i, j, k)*mp_rhob*mp_tau_b
7006 q_rhoa = q_rhoa + 1.0_dp* &
7007 n_rhoa_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7008 q_rhoa = q_rhoa + 2.0_dp* &
7009 n_rhoa_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7010 q_rhoa = q_rhoa + 2.0_dp* &
7011 n_rhoa_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7012 q_rhoa = q_rhoa + 2.0_dp* &
7013 n_rhoa_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7014 q_rhoa = q_rhoa + 2.0_dp* &
7015 n_rhoa_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7016 q_rhoa = q_rhoa + 2.0_dp* &
7017 n_rhoa_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7018 q_rhoa = q_rhoa + 2.0_dp* &
7019 n_rhoa_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7020 q_rhoa = q_rhoa + 1.0_dp* &
7021 n_rhoa_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7022 q_rhoa = q_rhoa + 2.0_dp* &
7023 n_rhoa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7024 q_rhoa = q_rhoa + 2.0_dp* &
7025 n_rhoa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7026 q_rhoa = q_rhoa + 2.0_dp* &
7027 n_rhoa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7028 q_rhoa = q_rhoa + 2.0_dp* &
7029 n_rhoa_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7030 q_rhoa = q_rhoa + 2.0_dp* &
7031 n_rhoa_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7032 q_rhoa = q_rhoa + 1.0_dp* &
7033 n_rhoa_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7034 q_rhoa = q_rhoa + 2.0_dp* &
7035 n_rhoa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7036 q_rhoa = q_rhoa + 2.0_dp* &
7037 n_rhoa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7038 q_rhoa = q_rhoa + 2.0_dp* &
7039 n_rhoa_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7040 q_rhoa = q_rhoa + 2.0_dp* &
7041 n_rhoa_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7042 q_rhoa = q_rhoa + 1.0_dp* &
7043 n_rhoa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7044 q_rhoa = q_rhoa + 2.0_dp* &
7045 n_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7046 q_rhoa = q_rhoa + 2.0_dp* &
7047 n_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7048 q_rhoa = q_rhoa + 2.0_dp* &
7049 n_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7050 q_rhoa = q_rhoa + 1.0_dp* &
7051 n_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7052 q_rhoa = q_rhoa + 2.0_dp* &
7053 n_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7054 q_rhoa = q_rhoa + 2.0_dp* &
7055 n_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7056 q_rhoa = q_rhoa + 1.0_dp* &
7057 n_rhoa_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7058 q_rhoa = q_rhoa + 2.0_dp* &
7059 n_rhoa_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7060 q_rhoa = q_rhoa + 1.0_dp* &
7061 n_rhoa_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7062 q_rhoa = q_rhoa + n_rhoa_gamma_aa(i, j, k)*mpp_gamma_aa
7063 q_rhoa = q_rhoa + n_rhoa_gamma_ab(i, j, k)*mpp_gamma_ab
7064 q_rhoa = q_rhoa + n_rhoa_gamma_bb(i, j, k)*mpp_gamma_bb
7066 q_rhob = q_rhob + 1.0_dp* &
7067 n_rhoa_rhoa_rhob(i, j, k)*mp_rhoa*mp_rhoa
7068 q_rhob = q_rhob + 2.0_dp* &
7069 n_rhoa_rhob_rhob(i, j, k)*mp_rhoa*mp_rhob
7070 q_rhob = q_rhob + 2.0_dp* &
7071 n_rhoa_rhob_gamma_aa(i, j, k)*mp_rhoa*mp_gamma_aa
7072 q_rhob = q_rhob + 2.0_dp* &
7073 n_rhoa_rhob_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
7074 q_rhob = q_rhob + 2.0_dp* &
7075 n_rhoa_rhob_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7076 q_rhob = q_rhob + 2.0_dp* &
7077 n_rhoa_rhob_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7078 q_rhob = q_rhob + 2.0_dp* &
7079 n_rhoa_rhob_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7080 q_rhob = q_rhob + 2.0_dp* &
7081 n_rhoa_rhob_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7082 q_rhob = q_rhob + 2.0_dp* &
7083 n_rhoa_rhob_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7084 q_rhob = q_rhob + 1.0_dp* &
7085 n_rhob_rhob_rhob(i, j, k)*mp_rhob*mp_rhob
7086 q_rhob = q_rhob + 2.0_dp* &
7087 n_rhob_rhob_gamma_aa(i, j, k)*mp_rhob*mp_gamma_aa
7088 q_rhob = q_rhob + 2.0_dp* &
7089 n_rhob_rhob_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
7090 q_rhob = q_rhob + 2.0_dp* &
7091 n_rhob_rhob_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7092 q_rhob = q_rhob + 2.0_dp* &
7093 n_rhob_rhob_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7094 q_rhob = q_rhob + 2.0_dp* &
7095 n_rhob_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7096 q_rhob = q_rhob + 2.0_dp* &
7097 n_rhob_rhob_tau_a(i, j, k)*mp_rhob*mp_tau_a
7098 q_rhob = q_rhob + 2.0_dp* &
7099 n_rhob_rhob_tau_b(i, j, k)*mp_rhob*mp_tau_b
7100 q_rhob = q_rhob + 1.0_dp* &
7101 n_rhob_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7102 q_rhob = q_rhob + 2.0_dp* &
7103 n_rhob_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7104 q_rhob = q_rhob + 2.0_dp* &
7105 n_rhob_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7106 q_rhob = q_rhob + 2.0_dp* &
7107 n_rhob_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7108 q_rhob = q_rhob + 2.0_dp* &
7109 n_rhob_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7110 q_rhob = q_rhob + 2.0_dp* &
7111 n_rhob_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7112 q_rhob = q_rhob + 2.0_dp* &
7113 n_rhob_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7114 q_rhob = q_rhob + 1.0_dp* &
7115 n_rhob_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7116 q_rhob = q_rhob + 2.0_dp* &
7117 n_rhob_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7118 q_rhob = q_rhob + 2.0_dp* &
7119 n_rhob_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7120 q_rhob = q_rhob + 2.0_dp* &
7121 n_rhob_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7122 q_rhob = q_rhob + 2.0_dp* &
7123 n_rhob_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7124 q_rhob = q_rhob + 2.0_dp* &
7125 n_rhob_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7126 q_rhob = q_rhob + 1.0_dp* &
7127 n_rhob_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7128 q_rhob = q_rhob + 2.0_dp* &
7129 n_rhob_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7130 q_rhob = q_rhob + 2.0_dp* &
7131 n_rhob_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7132 q_rhob = q_rhob + 2.0_dp* &
7133 n_rhob_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7134 q_rhob = q_rhob + 2.0_dp* &
7135 n_rhob_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7136 q_rhob = q_rhob + 1.0_dp* &
7137 n_rhob_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7138 q_rhob = q_rhob + 2.0_dp* &
7139 n_rhob_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7140 q_rhob = q_rhob + 2.0_dp* &
7141 n_rhob_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7142 q_rhob = q_rhob + 2.0_dp* &
7143 n_rhob_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7144 q_rhob = q_rhob + 1.0_dp* &
7145 n_rhob_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7146 q_rhob = q_rhob + 2.0_dp* &
7147 n_rhob_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7148 q_rhob = q_rhob + 2.0_dp* &
7149 n_rhob_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7150 q_rhob = q_rhob + 1.0_dp* &
7151 n_rhob_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7152 q_rhob = q_rhob + 2.0_dp* &
7153 n_rhob_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7154 q_rhob = q_rhob + 1.0_dp* &
7155 n_rhob_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7156 q_rhob = q_rhob + n_rhob_gamma_aa(i, j, k)*mpp_gamma_aa
7157 q_rhob = q_rhob + n_rhob_gamma_ab(i, j, k)*mpp_gamma_ab
7158 q_rhob = q_rhob + n_rhob_gamma_bb(i, j, k)*mpp_gamma_bb
7160 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7161 n_rhoa_rhoa_gamma_aa(i, j, k)*mp_rhoa*mp_rhoa
7162 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7163 n_rhoa_rhob_gamma_aa(i, j, k)*mp_rhoa*mp_rhob
7164 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7165 n_rhoa_gamma_aa_gamma_aa(i, j, k)*mp_rhoa*mp_gamma_aa
7166 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7167 n_rhoa_gamma_aa_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
7168 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7169 n_rhoa_gamma_aa_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7170 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7171 n_rhoa_gamma_aa_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7172 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7173 n_rhoa_gamma_aa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7174 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7175 n_rhoa_gamma_aa_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7176 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7177 n_rhoa_gamma_aa_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7178 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7179 n_rhob_rhob_gamma_aa(i, j, k)*mp_rhob*mp_rhob
7180 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7181 n_rhob_gamma_aa_gamma_aa(i, j, k)*mp_rhob*mp_gamma_aa
7182 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7183 n_rhob_gamma_aa_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
7184 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7185 n_rhob_gamma_aa_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7186 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7187 n_rhob_gamma_aa_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7188 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7189 n_rhob_gamma_aa_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7190 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7191 n_rhob_gamma_aa_tau_a(i, j, k)*mp_rhob*mp_tau_a
7192 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7193 n_rhob_gamma_aa_tau_b(i, j, k)*mp_rhob*mp_tau_b
7194 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7195 n_gamma_aa_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7196 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7197 n_gamma_aa_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7198 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7199 n_gamma_aa_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7200 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7201 n_gamma_aa_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7202 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7203 n_gamma_aa_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7204 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7205 n_gamma_aa_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7206 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7207 n_gamma_aa_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7208 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7209 n_gamma_aa_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7210 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7211 n_gamma_aa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7212 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7213 n_gamma_aa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7214 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7215 n_gamma_aa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7216 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7217 n_gamma_aa_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7218 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7219 n_gamma_aa_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7220 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7221 n_gamma_aa_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7222 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7223 n_gamma_aa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7224 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7225 n_gamma_aa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7226 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7227 n_gamma_aa_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7228 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7229 n_gamma_aa_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7230 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7231 n_gamma_aa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7232 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7233 n_gamma_aa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7234 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7235 n_gamma_aa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7236 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7237 n_gamma_aa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7238 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7239 n_gamma_aa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7240 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7241 n_gamma_aa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7242 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7243 n_gamma_aa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7244 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7245 n_gamma_aa_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7246 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7247 n_gamma_aa_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7248 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7249 n_gamma_aa_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7250 q_gamma_aa = q_gamma_aa + n_gamma_aa_gamma_aa(i, j, k)*mpp_gamma_aa
7251 q_gamma_aa = q_gamma_aa + n_gamma_aa_gamma_ab(i, j, k)*mpp_gamma_ab
7252 q_gamma_aa = q_gamma_aa + n_gamma_aa_gamma_bb(i, j, k)*mpp_gamma_bb
7254 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7255 n_rhoa_rhoa_gamma_ab(i, j, k)*mp_rhoa*mp_rhoa
7256 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7257 n_rhoa_rhob_gamma_ab(i, j, k)*mp_rhoa*mp_rhob
7258 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7259 n_rhoa_gamma_aa_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_aa
7260 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7261 n_rhoa_gamma_ab_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
7262 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7263 n_rhoa_gamma_ab_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7264 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7265 n_rhoa_gamma_ab_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7266 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7267 n_rhoa_gamma_ab_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7268 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7269 n_rhoa_gamma_ab_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7270 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7271 n_rhoa_gamma_ab_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7272 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7273 n_rhob_rhob_gamma_ab(i, j, k)*mp_rhob*mp_rhob
7274 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7275 n_rhob_gamma_aa_gamma_ab(i, j, k)*mp_rhob*mp_gamma_aa
7276 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7277 n_rhob_gamma_ab_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
7278 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7279 n_rhob_gamma_ab_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7280 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7281 n_rhob_gamma_ab_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7282 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7283 n_rhob_gamma_ab_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7284 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7285 n_rhob_gamma_ab_tau_a(i, j, k)*mp_rhob*mp_tau_a
7286 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7287 n_rhob_gamma_ab_tau_b(i, j, k)*mp_rhob*mp_tau_b
7288 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7289 n_gamma_aa_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_aa
7290 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7291 n_gamma_aa_gamma_ab_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7292 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7293 n_gamma_aa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7294 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7295 n_gamma_aa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7296 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7297 n_gamma_aa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7298 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7299 n_gamma_aa_gamma_ab_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7300 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7301 n_gamma_aa_gamma_ab_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7302 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7303 n_gamma_ab_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7304 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7305 n_gamma_ab_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7306 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7307 n_gamma_ab_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7308 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7309 n_gamma_ab_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7310 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7311 n_gamma_ab_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7312 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7313 n_gamma_ab_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7314 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7315 n_gamma_ab_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7316 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7317 n_gamma_ab_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7318 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7319 n_gamma_ab_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7320 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7321 n_gamma_ab_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7322 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7323 n_gamma_ab_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7324 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7325 n_gamma_ab_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7326 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7327 n_gamma_ab_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7328 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7329 n_gamma_ab_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7330 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7331 n_gamma_ab_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7332 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7333 n_gamma_ab_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7334 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7335 n_gamma_ab_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7336 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7337 n_gamma_ab_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7338 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7339 n_gamma_ab_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7340 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7341 n_gamma_ab_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7342 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7343 n_gamma_ab_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7344 q_gamma_ab = q_gamma_ab + n_gamma_aa_gamma_ab(i, j, k)*mpp_gamma_aa
7345 q_gamma_ab = q_gamma_ab + n_gamma_ab_gamma_ab(i, j, k)*mpp_gamma_ab
7346 q_gamma_ab = q_gamma_ab + n_gamma_ab_gamma_bb(i, j, k)*mpp_gamma_bb
7348 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7349 n_rhoa_rhoa_gamma_bb(i, j, k)*mp_rhoa*mp_rhoa
7350 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7351 n_rhoa_rhob_gamma_bb(i, j, k)*mp_rhoa*mp_rhob
7352 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7353 n_rhoa_gamma_aa_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_aa
7354 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7355 n_rhoa_gamma_ab_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_ab
7356 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7357 n_rhoa_gamma_bb_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7358 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7359 n_rhoa_gamma_bb_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7360 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7361 n_rhoa_gamma_bb_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7362 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7363 n_rhoa_gamma_bb_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7364 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7365 n_rhoa_gamma_bb_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7366 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7367 n_rhob_rhob_gamma_bb(i, j, k)*mp_rhob*mp_rhob
7368 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7369 n_rhob_gamma_aa_gamma_bb(i, j, k)*mp_rhob*mp_gamma_aa
7370 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7371 n_rhob_gamma_ab_gamma_bb(i, j, k)*mp_rhob*mp_gamma_ab
7372 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7373 n_rhob_gamma_bb_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7374 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7375 n_rhob_gamma_bb_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7376 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7377 n_rhob_gamma_bb_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7378 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7379 n_rhob_gamma_bb_tau_a(i, j, k)*mp_rhob*mp_tau_a
7380 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7381 n_rhob_gamma_bb_tau_b(i, j, k)*mp_rhob*mp_tau_b
7382 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7383 n_gamma_aa_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_aa
7384 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7385 n_gamma_aa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_ab
7386 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7387 n_gamma_aa_gamma_bb_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7388 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7389 n_gamma_aa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7390 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7391 n_gamma_aa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7392 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7393 n_gamma_aa_gamma_bb_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7394 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7395 n_gamma_aa_gamma_bb_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7396 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7397 n_gamma_ab_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_ab
7398 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7399 n_gamma_ab_gamma_bb_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7400 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7401 n_gamma_ab_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7402 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7403 n_gamma_ab_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7404 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7405 n_gamma_ab_gamma_bb_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7406 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7407 n_gamma_ab_gamma_bb_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7408 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7409 n_gamma_bb_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7410 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7411 n_gamma_bb_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7412 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7413 n_gamma_bb_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7414 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7415 n_gamma_bb_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7416 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7417 n_gamma_bb_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7418 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7419 n_gamma_bb_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7420 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7421 n_gamma_bb_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7422 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7423 n_gamma_bb_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7424 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7425 n_gamma_bb_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7426 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7427 n_gamma_bb_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7428 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7429 n_gamma_bb_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7430 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7431 n_gamma_bb_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7432 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7433 n_gamma_bb_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7434 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7435 n_gamma_bb_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7436 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7437 n_gamma_bb_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7438 q_gamma_bb = q_gamma_bb + n_gamma_aa_gamma_bb(i, j, k)*mpp_gamma_aa
7439 q_gamma_bb = q_gamma_bb + n_gamma_ab_gamma_bb(i, j, k)*mpp_gamma_ab
7440 q_gamma_bb = q_gamma_bb + n_gamma_bb_gamma_bb(i, j, k)*mpp_gamma_bb
7441 q_laplace_rhoa = 0.0_dp
7442 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7443 n_rhoa_rhoa_laplace_rhoa(i, j, k)*mp_rhoa*mp_rhoa
7444 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7445 n_rhoa_rhob_laplace_rhoa(i, j, k)*mp_rhoa*mp_rhob
7446 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7447 n_rhoa_gamma_aa_laplace_rhoa(i, j, k)*mp_rhoa*mp_gamma_aa
7448 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7449 n_rhoa_gamma_ab_laplace_rhoa(i, j, k)*mp_rhoa*mp_gamma_ab
7450 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7451 n_rhoa_gamma_bb_laplace_rhoa(i, j, k)*mp_rhoa*mp_gamma_bb
7452 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7453 n_rhoa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7454 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7455 n_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7456 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7457 n_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7458 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7459 n_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7460 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7461 n_rhob_rhob_laplace_rhoa(i, j, k)*mp_rhob*mp_rhob
7462 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7463 n_rhob_gamma_aa_laplace_rhoa(i, j, k)*mp_rhob*mp_gamma_aa
7464 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7465 n_rhob_gamma_ab_laplace_rhoa(i, j, k)*mp_rhob*mp_gamma_ab
7466 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7467 n_rhob_gamma_bb_laplace_rhoa(i, j, k)*mp_rhob*mp_gamma_bb
7468 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7469 n_rhob_laplace_rhoa_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7470 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7471 n_rhob_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7472 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7473 n_rhob_laplace_rhoa_tau_a(i, j, k)*mp_rhob*mp_tau_a
7474 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7475 n_rhob_laplace_rhoa_tau_b(i, j, k)*mp_rhob*mp_tau_b
7476 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7477 n_gamma_aa_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7478 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7479 n_gamma_aa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_gamma_ab
7480 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7481 n_gamma_aa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_gamma_bb
7482 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7483 n_gamma_aa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7484 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7485 n_gamma_aa_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7486 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7487 n_gamma_aa_laplace_rhoa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7488 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7489 n_gamma_aa_laplace_rhoa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7490 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7491 n_gamma_ab_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_gamma_ab
7492 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7493 n_gamma_ab_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_gamma_bb
7494 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7495 n_gamma_ab_laplace_rhoa_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7496 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7497 n_gamma_ab_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7498 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7499 n_gamma_ab_laplace_rhoa_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7500 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7501 n_gamma_ab_laplace_rhoa_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7502 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7503 n_gamma_bb_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_gamma_bb
7504 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7505 n_gamma_bb_laplace_rhoa_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7506 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7507 n_gamma_bb_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7508 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7509 n_gamma_bb_laplace_rhoa_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7510 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7511 n_gamma_bb_laplace_rhoa_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7512 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7513 n_laplace_rhoa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7514 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7515 n_laplace_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7516 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7517 n_laplace_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7518 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7519 n_laplace_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7520 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7521 n_laplace_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7522 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7523 n_laplace_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7524 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7525 n_laplace_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7526 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7527 n_laplace_rhoa_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7528 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7529 n_laplace_rhoa_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7530 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7531 n_laplace_rhoa_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7532 q_laplace_rhoa = q_laplace_rhoa + n_gamma_aa_laplace_rhoa(i, j, k)*mpp_gamma_aa
7533 q_laplace_rhoa = q_laplace_rhoa + n_gamma_ab_laplace_rhoa(i, j, k)*mpp_gamma_ab
7534 q_laplace_rhoa = q_laplace_rhoa + n_gamma_bb_laplace_rhoa(i, j, k)*mpp_gamma_bb
7535 q_laplace_rhob = 0.0_dp
7536 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7537 n_rhoa_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_rhoa
7538 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7539 n_rhoa_rhob_laplace_rhob(i, j, k)*mp_rhoa*mp_rhob
7540 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7541 n_rhoa_gamma_aa_laplace_rhob(i, j, k)*mp_rhoa*mp_gamma_aa
7542 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7543 n_rhoa_gamma_ab_laplace_rhob(i, j, k)*mp_rhoa*mp_gamma_ab
7544 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7545 n_rhoa_gamma_bb_laplace_rhob(i, j, k)*mp_rhoa*mp_gamma_bb
7546 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7547 n_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhoa
7548 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7549 n_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7550 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7551 n_rhoa_laplace_rhob_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7552 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7553 n_rhoa_laplace_rhob_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7554 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7555 n_rhob_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_rhob
7556 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7557 n_rhob_gamma_aa_laplace_rhob(i, j, k)*mp_rhob*mp_gamma_aa
7558 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7559 n_rhob_gamma_ab_laplace_rhob(i, j, k)*mp_rhob*mp_gamma_ab
7560 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7561 n_rhob_gamma_bb_laplace_rhob(i, j, k)*mp_rhob*mp_gamma_bb
7562 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7563 n_rhob_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhoa
7564 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7565 n_rhob_laplace_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7566 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7567 n_rhob_laplace_rhob_tau_a(i, j, k)*mp_rhob*mp_tau_a
7568 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7569 n_rhob_laplace_rhob_tau_b(i, j, k)*mp_rhob*mp_tau_b
7570 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7571 n_gamma_aa_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_gamma_aa
7572 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7573 n_gamma_aa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_aa*mp_gamma_ab
7574 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7575 n_gamma_aa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_aa*mp_gamma_bb
7576 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7577 n_gamma_aa_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7578 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7579 n_gamma_aa_laplace_rhob_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7580 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7581 n_gamma_aa_laplace_rhob_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7582 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7583 n_gamma_aa_laplace_rhob_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7584 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7585 n_gamma_ab_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_gamma_ab
7586 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7587 n_gamma_ab_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_ab*mp_gamma_bb
7588 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7589 n_gamma_ab_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7590 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7591 n_gamma_ab_laplace_rhob_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7592 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7593 n_gamma_ab_laplace_rhob_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7594 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7595 n_gamma_ab_laplace_rhob_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7596 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7597 n_gamma_bb_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_gamma_bb
7598 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7599 n_gamma_bb_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7600 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7601 n_gamma_bb_laplace_rhob_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7602 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7603 n_gamma_bb_laplace_rhob_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7604 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7605 n_gamma_bb_laplace_rhob_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7606 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7607 n_laplace_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7608 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7609 n_laplace_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7610 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7611 n_laplace_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7612 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7613 n_laplace_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7614 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7615 n_laplace_rhob_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7616 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7617 n_laplace_rhob_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7618 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7619 n_laplace_rhob_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7620 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7621 n_laplace_rhob_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7622 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7623 n_laplace_rhob_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7624 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7625 n_laplace_rhob_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7626 q_laplace_rhob = q_laplace_rhob + n_gamma_aa_laplace_rhob(i, j, k)*mpp_gamma_aa
7627 q_laplace_rhob = q_laplace_rhob + n_gamma_ab_laplace_rhob(i, j, k)*mpp_gamma_ab
7628 q_laplace_rhob = q_laplace_rhob + n_gamma_bb_laplace_rhob(i, j, k)*mpp_gamma_bb
7630 q_tau_a = q_tau_a + 1.0_dp* &
7631 n_rhoa_rhoa_tau_a(i, j, k)*mp_rhoa*mp_rhoa
7632 q_tau_a = q_tau_a + 2.0_dp* &
7633 n_rhoa_rhob_tau_a(i, j, k)*mp_rhoa*mp_rhob
7634 q_tau_a = q_tau_a + 2.0_dp* &
7635 n_rhoa_gamma_aa_tau_a(i, j, k)*mp_rhoa*mp_gamma_aa
7636 q_tau_a = q_tau_a + 2.0_dp* &
7637 n_rhoa_gamma_ab_tau_a(i, j, k)*mp_rhoa*mp_gamma_ab
7638 q_tau_a = q_tau_a + 2.0_dp* &
7639 n_rhoa_gamma_bb_tau_a(i, j, k)*mp_rhoa*mp_gamma_bb
7640 q_tau_a = q_tau_a + 2.0_dp* &
7641 n_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_rhoa*mp_laplace_rhoa
7642 q_tau_a = q_tau_a + 2.0_dp* &
7643 n_rhoa_laplace_rhob_tau_a(i, j, k)*mp_rhoa*mp_laplace_rhob
7644 q_tau_a = q_tau_a + 2.0_dp* &
7645 n_rhoa_tau_a_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7646 q_tau_a = q_tau_a + 2.0_dp* &
7647 n_rhoa_tau_a_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7648 q_tau_a = q_tau_a + 1.0_dp* &
7649 n_rhob_rhob_tau_a(i, j, k)*mp_rhob*mp_rhob
7650 q_tau_a = q_tau_a + 2.0_dp* &
7651 n_rhob_gamma_aa_tau_a(i, j, k)*mp_rhob*mp_gamma_aa
7652 q_tau_a = q_tau_a + 2.0_dp* &
7653 n_rhob_gamma_ab_tau_a(i, j, k)*mp_rhob*mp_gamma_ab
7654 q_tau_a = q_tau_a + 2.0_dp* &
7655 n_rhob_gamma_bb_tau_a(i, j, k)*mp_rhob*mp_gamma_bb
7656 q_tau_a = q_tau_a + 2.0_dp* &
7657 n_rhob_laplace_rhoa_tau_a(i, j, k)*mp_rhob*mp_laplace_rhoa
7658 q_tau_a = q_tau_a + 2.0_dp* &
7659 n_rhob_laplace_rhob_tau_a(i, j, k)*mp_rhob*mp_laplace_rhob
7660 q_tau_a = q_tau_a + 2.0_dp* &
7661 n_rhob_tau_a_tau_a(i, j, k)*mp_rhob*mp_tau_a
7662 q_tau_a = q_tau_a + 2.0_dp* &
7663 n_rhob_tau_a_tau_b(i, j, k)*mp_rhob*mp_tau_b
7664 q_tau_a = q_tau_a + 1.0_dp* &
7665 n_gamma_aa_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_gamma_aa
7666 q_tau_a = q_tau_a + 2.0_dp* &
7667 n_gamma_aa_gamma_ab_tau_a(i, j, k)*mp_gamma_aa*mp_gamma_ab
7668 q_tau_a = q_tau_a + 2.0_dp* &
7669 n_gamma_aa_gamma_bb_tau_a(i, j, k)*mp_gamma_aa*mp_gamma_bb
7670 q_tau_a = q_tau_a + 2.0_dp* &
7671 n_gamma_aa_laplace_rhoa_tau_a(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7672 q_tau_a = q_tau_a + 2.0_dp* &
7673 n_gamma_aa_laplace_rhob_tau_a(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7674 q_tau_a = q_tau_a + 2.0_dp* &
7675 n_gamma_aa_tau_a_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7676 q_tau_a = q_tau_a + 2.0_dp* &
7677 n_gamma_aa_tau_a_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7678 q_tau_a = q_tau_a + 1.0_dp* &
7679 n_gamma_ab_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_gamma_ab
7680 q_tau_a = q_tau_a + 2.0_dp* &
7681 n_gamma_ab_gamma_bb_tau_a(i, j, k)*mp_gamma_ab*mp_gamma_bb
7682 q_tau_a = q_tau_a + 2.0_dp* &
7683 n_gamma_ab_laplace_rhoa_tau_a(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7684 q_tau_a = q_tau_a + 2.0_dp* &
7685 n_gamma_ab_laplace_rhob_tau_a(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7686 q_tau_a = q_tau_a + 2.0_dp* &
7687 n_gamma_ab_tau_a_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7688 q_tau_a = q_tau_a + 2.0_dp* &
7689 n_gamma_ab_tau_a_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7690 q_tau_a = q_tau_a + 1.0_dp* &
7691 n_gamma_bb_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_gamma_bb
7692 q_tau_a = q_tau_a + 2.0_dp* &
7693 n_gamma_bb_laplace_rhoa_tau_a(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7694 q_tau_a = q_tau_a + 2.0_dp* &
7695 n_gamma_bb_laplace_rhob_tau_a(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7696 q_tau_a = q_tau_a + 2.0_dp* &
7697 n_gamma_bb_tau_a_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7698 q_tau_a = q_tau_a + 2.0_dp* &
7699 n_gamma_bb_tau_a_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7700 q_tau_a = q_tau_a + 1.0_dp* &
7701 n_laplace_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7702 q_tau_a = q_tau_a + 2.0_dp* &
7703 n_laplace_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7704 q_tau_a = q_tau_a + 2.0_dp* &
7705 n_laplace_rhoa_tau_a_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7706 q_tau_a = q_tau_a + 2.0_dp* &
7707 n_laplace_rhoa_tau_a_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7708 q_tau_a = q_tau_a + 1.0_dp* &
7709 n_laplace_rhob_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7710 q_tau_a = q_tau_a + 2.0_dp* &
7711 n_laplace_rhob_tau_a_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7712 q_tau_a = q_tau_a + 2.0_dp* &
7713 n_laplace_rhob_tau_a_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7714 q_tau_a = q_tau_a + 1.0_dp* &
7715 n_tau_a_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7716 q_tau_a = q_tau_a + 2.0_dp* &
7717 n_tau_a_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7718 q_tau_a = q_tau_a + 1.0_dp* &
7719 n_tau_a_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7720 q_tau_a = q_tau_a + n_gamma_aa_tau_a(i, j, k)*mpp_gamma_aa
7721 q_tau_a = q_tau_a + n_gamma_ab_tau_a(i, j, k)*mpp_gamma_ab
7722 q_tau_a = q_tau_a + n_gamma_bb_tau_a(i, j, k)*mpp_gamma_bb
7724 q_tau_b = q_tau_b + 1.0_dp* &
7725 n_rhoa_rhoa_tau_b(i, j, k)*mp_rhoa*mp_rhoa
7726 q_tau_b = q_tau_b + 2.0_dp* &
7727 n_rhoa_rhob_tau_b(i, j, k)*mp_rhoa*mp_rhob
7728 q_tau_b = q_tau_b + 2.0_dp* &
7729 n_rhoa_gamma_aa_tau_b(i, j, k)*mp_rhoa*mp_gamma_aa
7730 q_tau_b = q_tau_b + 2.0_dp* &
7731 n_rhoa_gamma_ab_tau_b(i, j, k)*mp_rhoa*mp_gamma_ab
7732 q_tau_b = q_tau_b + 2.0_dp* &
7733 n_rhoa_gamma_bb_tau_b(i, j, k)*mp_rhoa*mp_gamma_bb
7734 q_tau_b = q_tau_b + 2.0_dp* &
7735 n_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_rhoa*mp_laplace_rhoa
7736 q_tau_b = q_tau_b + 2.0_dp* &
7737 n_rhoa_laplace_rhob_tau_b(i, j, k)*mp_rhoa*mp_laplace_rhob
7738 q_tau_b = q_tau_b + 2.0_dp* &
7739 n_rhoa_tau_a_tau_b(i, j, k)*mp_rhoa*mp_tau_a
7740 q_tau_b = q_tau_b + 2.0_dp* &
7741 n_rhoa_tau_b_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7742 q_tau_b = q_tau_b + 1.0_dp* &
7743 n_rhob_rhob_tau_b(i, j, k)*mp_rhob*mp_rhob
7744 q_tau_b = q_tau_b + 2.0_dp* &
7745 n_rhob_gamma_aa_tau_b(i, j, k)*mp_rhob*mp_gamma_aa
7746 q_tau_b = q_tau_b + 2.0_dp* &
7747 n_rhob_gamma_ab_tau_b(i, j, k)*mp_rhob*mp_gamma_ab
7748 q_tau_b = q_tau_b + 2.0_dp* &
7749 n_rhob_gamma_bb_tau_b(i, j, k)*mp_rhob*mp_gamma_bb
7750 q_tau_b = q_tau_b + 2.0_dp* &
7751 n_rhob_laplace_rhoa_tau_b(i, j, k)*mp_rhob*mp_laplace_rhoa
7752 q_tau_b = q_tau_b + 2.0_dp* &
7753 n_rhob_laplace_rhob_tau_b(i, j, k)*mp_rhob*mp_laplace_rhob
7754 q_tau_b = q_tau_b + 2.0_dp* &
7755 n_rhob_tau_a_tau_b(i, j, k)*mp_rhob*mp_tau_a
7756 q_tau_b = q_tau_b + 2.0_dp* &
7757 n_rhob_tau_b_tau_b(i, j, k)*mp_rhob*mp_tau_b
7758 q_tau_b = q_tau_b + 1.0_dp* &
7759 n_gamma_aa_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_gamma_aa
7760 q_tau_b = q_tau_b + 2.0_dp* &
7761 n_gamma_aa_gamma_ab_tau_b(i, j, k)*mp_gamma_aa*mp_gamma_ab
7762 q_tau_b = q_tau_b + 2.0_dp* &
7763 n_gamma_aa_gamma_bb_tau_b(i, j, k)*mp_gamma_aa*mp_gamma_bb
7764 q_tau_b = q_tau_b + 2.0_dp* &
7765 n_gamma_aa_laplace_rhoa_tau_b(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7766 q_tau_b = q_tau_b + 2.0_dp* &
7767 n_gamma_aa_laplace_rhob_tau_b(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7768 q_tau_b = q_tau_b + 2.0_dp* &
7769 n_gamma_aa_tau_a_tau_b(i, j, k)*mp_gamma_aa*mp_tau_a
7770 q_tau_b = q_tau_b + 2.0_dp* &
7771 n_gamma_aa_tau_b_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7772 q_tau_b = q_tau_b + 1.0_dp* &
7773 n_gamma_ab_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_gamma_ab
7774 q_tau_b = q_tau_b + 2.0_dp* &
7775 n_gamma_ab_gamma_bb_tau_b(i, j, k)*mp_gamma_ab*mp_gamma_bb
7776 q_tau_b = q_tau_b + 2.0_dp* &
7777 n_gamma_ab_laplace_rhoa_tau_b(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7778 q_tau_b = q_tau_b + 2.0_dp* &
7779 n_gamma_ab_laplace_rhob_tau_b(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7780 q_tau_b = q_tau_b + 2.0_dp* &
7781 n_gamma_ab_tau_a_tau_b(i, j, k)*mp_gamma_ab*mp_tau_a
7782 q_tau_b = q_tau_b + 2.0_dp* &
7783 n_gamma_ab_tau_b_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7784 q_tau_b = q_tau_b + 1.0_dp* &
7785 n_gamma_bb_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_gamma_bb
7786 q_tau_b = q_tau_b + 2.0_dp* &
7787 n_gamma_bb_laplace_rhoa_tau_b(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7788 q_tau_b = q_tau_b + 2.0_dp* &
7789 n_gamma_bb_laplace_rhob_tau_b(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7790 q_tau_b = q_tau_b + 2.0_dp* &
7791 n_gamma_bb_tau_a_tau_b(i, j, k)*mp_gamma_bb*mp_tau_a
7792 q_tau_b = q_tau_b + 2.0_dp* &
7793 n_gamma_bb_tau_b_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7794 q_tau_b = q_tau_b + 1.0_dp* &
7795 n_laplace_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7796 q_tau_b = q_tau_b + 2.0_dp* &
7797 n_laplace_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7798 q_tau_b = q_tau_b + 2.0_dp* &
7799 n_laplace_rhoa_tau_a_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_a
7800 q_tau_b = q_tau_b + 2.0_dp* &
7801 n_laplace_rhoa_tau_b_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7802 q_tau_b = q_tau_b + 1.0_dp* &
7803 n_laplace_rhob_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7804 q_tau_b = q_tau_b + 2.0_dp* &
7805 n_laplace_rhob_tau_a_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_a
7806 q_tau_b = q_tau_b + 2.0_dp* &
7807 n_laplace_rhob_tau_b_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7808 q_tau_b = q_tau_b + 1.0_dp* &
7809 n_tau_a_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_a
7810 q_tau_b = q_tau_b + 2.0_dp* &
7811 n_tau_a_tau_b_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7812 q_tau_b = q_tau_b + 1.0_dp* &
7813 n_tau_b_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7814 q_tau_b = q_tau_b + n_gamma_aa_tau_b(i, j, k)*mpp_gamma_aa
7815 q_tau_b = q_tau_b + n_gamma_ab_tau_b(i, j, k)*mpp_gamma_ab
7816 q_tau_b = q_tau_b + n_gamma_bb_tau_b(i, j, k)*mpp_gamma_bb
7817 nb_gamma_aa = 0.0_dp
7818 nb_gamma_aa = nb_gamma_aa + n_rhoa_gamma_aa(i, j, k)*mp_rhoa
7819 nb_gamma_aa = nb_gamma_aa + n_rhob_gamma_aa(i, j, k)*mp_rhob
7820 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa
7821 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_gamma_ab(i, j, k)*mp_gamma_ab
7822 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_gamma_bb(i, j, k)*mp_gamma_bb
7823 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_laplace_rhoa(i, j, k)*mp_laplace_rhoa
7824 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_laplace_rhob(i, j, k)*mp_laplace_rhob
7825 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_tau_a(i, j, k)*mp_tau_a
7826 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_tau_b(i, j, k)*mp_tau_b
7827 nb_gamma_ab = 0.0_dp
7828 nb_gamma_ab = nb_gamma_ab + n_rhoa_gamma_ab(i, j, k)*mp_rhoa
7829 nb_gamma_ab = nb_gamma_ab + n_rhob_gamma_ab(i, j, k)*mp_rhob
7830 nb_gamma_ab = nb_gamma_ab + n_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa
7831 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab
7832 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_gamma_bb(i, j, k)*mp_gamma_bb
7833 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_laplace_rhoa(i, j, k)*mp_laplace_rhoa
7834 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_laplace_rhob(i, j, k)*mp_laplace_rhob
7835 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_tau_a(i, j, k)*mp_tau_a
7836 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_tau_b(i, j, k)*mp_tau_b
7837 nb_gamma_bb = 0.0_dp
7838 nb_gamma_bb = nb_gamma_bb + n_rhoa_gamma_bb(i, j, k)*mp_rhoa
7839 nb_gamma_bb = nb_gamma_bb + n_rhob_gamma_bb(i, j, k)*mp_rhob
7840 nb_gamma_bb = nb_gamma_bb + n_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa
7841 nb_gamma_bb = nb_gamma_bb + n_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab
7842 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb
7843 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_laplace_rhoa(i, j, k)*mp_laplace_rhoa
7844 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_laplace_rhob(i, j, k)*mp_laplace_rhob
7845 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_tau_a(i, j, k)*mp_tau_a
7846 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_tau_b(i, j, k)*mp_tau_b
7848 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + q_rhoa
7849 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + q_rhob
7851 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + q_tau_a
7852 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + q_tau_b
7855 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + q_laplace_rhoa
7856 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + q_laplace_rhob
7860 v_drho_r(1, 1)%array(i, j, k) = &
7861 -(2.0_dp*drhoa(1)%array(i, j, k)*q_gamma_aa &
7862 + drhob(1)%array(i, j, k)*q_gamma_ab &
7863 + 2.0_dp*(2.0_dp*drho1a(1)%array(i, j, k)*nb_gamma_aa &
7864 + drho1b(1)%array(i, j, k)*nb_gamma_ab))
7865 v_drho_r(1, 2)%array(i, j, k) = &
7866 -(2.0_dp*drhob(1)%array(i, j, k)*q_gamma_bb &
7867 + drhoa(1)%array(i, j, k)*q_gamma_ab &
7868 + 2.0_dp*(2.0_dp*drho1b(1)%array(i, j, k)*nb_gamma_bb &
7869 + drho1a(1)%array(i, j, k)*nb_gamma_ab))
7870 v_drho_r(2, 1)%array(i, j, k) = &
7871 -(2.0_dp*drhoa(2)%array(i, j, k)*q_gamma_aa &
7872 + drhob(2)%array(i, j, k)*q_gamma_ab &
7873 + 2.0_dp*(2.0_dp*drho1a(2)%array(i, j, k)*nb_gamma_aa &
7874 + drho1b(2)%array(i, j, k)*nb_gamma_ab))
7875 v_drho_r(2, 2)%array(i, j, k) = &
7876 -(2.0_dp*drhob(2)%array(i, j, k)*q_gamma_bb &
7877 + drhoa(2)%array(i, j, k)*q_gamma_ab &
7878 + 2.0_dp*(2.0_dp*drho1b(2)%array(i, j, k)*nb_gamma_bb &
7879 + drho1a(2)%array(i, j, k)*nb_gamma_ab))
7880 v_drho_r(3, 1)%array(i, j, k) = &
7881 -(2.0_dp*drhoa(3)%array(i, j, k)*q_gamma_aa &
7882 + drhob(3)%array(i, j, k)*q_gamma_ab &
7883 + 2.0_dp*(2.0_dp*drho1a(3)%array(i, j, k)*nb_gamma_aa &
7884 + drho1b(3)%array(i, j, k)*nb_gamma_ab))
7885 v_drho_r(3, 2)%array(i, j, k) = &
7886 -(2.0_dp*drhob(3)%array(i, j, k)*q_gamma_bb &
7887 + drhoa(3)%array(i, j, k)*q_gamma_ab &
7888 + 2.0_dp*(2.0_dp*drho1b(3)%array(i, j, k)*nb_gamma_bb &
7889 + drho1a(3)%array(i, j, k)*nb_gamma_ab))
7897 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
7902 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
7905 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
7908 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 2), tmp_g, vxc_g, v_xc(2))
7910 DO ispin = 1, nspins
7911 CALL xc_pw_laplace(v_laplace(ispin), pw_pool, xc_deriv_method_id)
7912 CALL pw_axpy(v_laplace(ispin), v_xc(ispin))
7913 CALL deallocate_pw(v_laplace(ispin), pw_pool)
7915 DEALLOCATE (v_laplace)
7921 IF (.NOT. gradient_f)
THEN
7925 cpassert(
ASSOCIATED(deriv_att))
7929 cpassert(
ASSOCIATED(deriv_att))
7933 cpassert(
ASSOCIATED(deriv_att))
7937 cpassert(
ASSOCIATED(deriv_att))
7945 DO k = bo(1, 3), bo(2, 3)
7946 DO j = bo(1, 2), bo(2, 2)
7947 DO i = bo(1, 1), bo(2, 1)
7948 p_rhoa = rho1a(i, j, k)
7949 p_rhob = rho1b(i, j, k)
7951 u_a = u_a + g_rhoa_rhoa_rhoa(i, j, k)*p_rhoa*p_rhoa
7952 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhob
7953 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhob*p_rhoa
7954 u_a = u_a + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhob
7956 u_b = u_b + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhoa
7957 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhoa*p_rhob
7958 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhoa
7959 u_b = u_b + g_rhob_rhob_rhob(i, j, k)*p_rhob*p_rhob
7960 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + u_a
7961 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + u_b
7968 NULLIFY (g_rhoa_rhoa)
7971 IF (
ASSOCIATED(deriv_att))
THEN
7974 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
7976 NULLIFY (g_rhoa_rhob)
7979 IF (
ASSOCIATED(deriv_att))
THEN
7982 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
7984 NULLIFY (g_rhoa_gamma_aa)
7987 IF (
ASSOCIATED(deriv_att))
THEN
7990 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
7992 NULLIFY (g_rhoa_gamma_ab)
7995 IF (
ASSOCIATED(deriv_att))
THEN
7998 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8000 NULLIFY (g_rhoa_gamma_bb)
8003 IF (
ASSOCIATED(deriv_att))
THEN
8006 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8008 NULLIFY (g_rhob_rhob)
8011 IF (
ASSOCIATED(deriv_att))
THEN
8014 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8016 NULLIFY (g_rhob_gamma_aa)
8019 IF (
ASSOCIATED(deriv_att))
THEN
8022 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8024 NULLIFY (g_rhob_gamma_ab)
8027 IF (
ASSOCIATED(deriv_att))
THEN
8030 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8032 NULLIFY (g_rhob_gamma_bb)
8035 IF (
ASSOCIATED(deriv_att))
THEN
8038 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8040 NULLIFY (g_gamma_aa_gamma_aa)
8043 IF (
ASSOCIATED(deriv_att))
THEN
8046 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8048 NULLIFY (g_gamma_aa_gamma_ab)
8051 IF (
ASSOCIATED(deriv_att))
THEN
8054 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8056 NULLIFY (g_gamma_aa_gamma_bb)
8059 IF (
ASSOCIATED(deriv_att))
THEN
8062 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8064 NULLIFY (g_gamma_ab_gamma_ab)
8067 IF (
ASSOCIATED(deriv_att))
THEN
8070 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8072 NULLIFY (g_gamma_ab_gamma_bb)
8075 IF (
ASSOCIATED(deriv_att))
THEN
8078 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8080 NULLIFY (g_gamma_bb_gamma_bb)
8083 IF (
ASSOCIATED(deriv_att))
THEN
8086 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8088 NULLIFY (g_rhoa_rhoa_rhoa)
8091 IF (
ASSOCIATED(deriv_att))
THEN
8094 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8096 NULLIFY (g_rhoa_rhoa_rhob)
8099 IF (
ASSOCIATED(deriv_att))
THEN
8102 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8104 NULLIFY (g_rhoa_rhoa_gamma_aa)
8107 IF (
ASSOCIATED(deriv_att))
THEN
8110 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8112 NULLIFY (g_rhoa_rhoa_gamma_ab)
8115 IF (
ASSOCIATED(deriv_att))
THEN
8118 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8120 NULLIFY (g_rhoa_rhoa_gamma_bb)
8123 IF (
ASSOCIATED(deriv_att))
THEN
8126 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8128 NULLIFY (g_rhoa_rhob_rhob)
8131 IF (
ASSOCIATED(deriv_att))
THEN
8134 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8136 NULLIFY (g_rhoa_rhob_gamma_aa)
8139 IF (
ASSOCIATED(deriv_att))
THEN
8142 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8144 NULLIFY (g_rhoa_rhob_gamma_ab)
8147 IF (
ASSOCIATED(deriv_att))
THEN
8150 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8152 NULLIFY (g_rhoa_rhob_gamma_bb)
8155 IF (
ASSOCIATED(deriv_att))
THEN
8158 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8160 NULLIFY (g_rhoa_gamma_aa_gamma_aa)
8163 IF (
ASSOCIATED(deriv_att))
THEN
8166 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8168 NULLIFY (g_rhoa_gamma_aa_gamma_ab)
8171 IF (
ASSOCIATED(deriv_att))
THEN
8174 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8176 NULLIFY (g_rhoa_gamma_aa_gamma_bb)
8179 IF (
ASSOCIATED(deriv_att))
THEN
8182 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8184 NULLIFY (g_rhoa_gamma_ab_gamma_ab)
8187 IF (
ASSOCIATED(deriv_att))
THEN
8190 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8192 NULLIFY (g_rhoa_gamma_ab_gamma_bb)
8195 IF (
ASSOCIATED(deriv_att))
THEN
8198 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8200 NULLIFY (g_rhoa_gamma_bb_gamma_bb)
8203 IF (
ASSOCIATED(deriv_att))
THEN
8206 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8208 NULLIFY (g_rhob_rhob_rhob)
8211 IF (
ASSOCIATED(deriv_att))
THEN
8214 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8216 NULLIFY (g_rhob_rhob_gamma_aa)
8219 IF (
ASSOCIATED(deriv_att))
THEN
8222 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8224 NULLIFY (g_rhob_rhob_gamma_ab)
8227 IF (
ASSOCIATED(deriv_att))
THEN
8230 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8232 NULLIFY (g_rhob_rhob_gamma_bb)
8235 IF (
ASSOCIATED(deriv_att))
THEN
8238 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8240 NULLIFY (g_rhob_gamma_aa_gamma_aa)
8243 IF (
ASSOCIATED(deriv_att))
THEN
8246 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8248 NULLIFY (g_rhob_gamma_aa_gamma_ab)
8251 IF (
ASSOCIATED(deriv_att))
THEN
8254 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8256 NULLIFY (g_rhob_gamma_aa_gamma_bb)
8259 IF (
ASSOCIATED(deriv_att))
THEN
8262 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8264 NULLIFY (g_rhob_gamma_ab_gamma_ab)
8267 IF (
ASSOCIATED(deriv_att))
THEN
8270 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8272 NULLIFY (g_rhob_gamma_ab_gamma_bb)
8275 IF (
ASSOCIATED(deriv_att))
THEN
8278 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8280 NULLIFY (g_rhob_gamma_bb_gamma_bb)
8283 IF (
ASSOCIATED(deriv_att))
THEN
8286 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8288 NULLIFY (g_gamma_aa_gamma_aa_gamma_aa)
8291 IF (
ASSOCIATED(deriv_att))
THEN
8294 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8296 NULLIFY (g_gamma_aa_gamma_aa_gamma_ab)
8299 IF (
ASSOCIATED(deriv_att))
THEN
8302 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8304 NULLIFY (g_gamma_aa_gamma_aa_gamma_bb)
8307 IF (
ASSOCIATED(deriv_att))
THEN
8310 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8312 NULLIFY (g_gamma_aa_gamma_ab_gamma_ab)
8315 IF (
ASSOCIATED(deriv_att))
THEN
8318 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8320 NULLIFY (g_gamma_aa_gamma_ab_gamma_bb)
8323 IF (
ASSOCIATED(deriv_att))
THEN
8326 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8328 NULLIFY (g_gamma_aa_gamma_bb_gamma_bb)
8331 IF (
ASSOCIATED(deriv_att))
THEN
8334 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8336 NULLIFY (g_gamma_ab_gamma_ab_gamma_ab)
8339 IF (
ASSOCIATED(deriv_att))
THEN
8342 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8344 NULLIFY (g_gamma_ab_gamma_ab_gamma_bb)
8347 IF (
ASSOCIATED(deriv_att))
THEN
8350 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8352 NULLIFY (g_gamma_ab_gamma_bb_gamma_bb)
8355 IF (
ASSOCIATED(deriv_att))
THEN
8358 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8360 NULLIFY (g_gamma_bb_gamma_bb_gamma_bb)
8363 IF (
ASSOCIATED(deriv_att))
THEN
8366 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8370 CALL prepare_dr1dr(gaa1, drhoa, drho1a)
8371 CALL prepare_dr1dr(gbb1, drhob, drho1b)
8372 CALL prepare_dr1dr(gab1, drhoa, drho1b)
8373 CALL prepare_dr1dr(gaa11, drho1a, drho1a)
8374 CALL prepare_dr1dr(gbb11, drho1b, drho1b)
8375 CALL prepare_dr1dr(gab11, drho1a, drho1b)
8377 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: tmp_ba
8378 CALL prepare_dr1dr(tmp_ba, drhob, drho1a)
8379 gab1(:, :, :) = gab1(:, :, :) + tmp_ba(:, :, :)
8438 DO k = bo(1, 3), bo(2, 3)
8439 DO j = bo(1, 2), bo(2, 2)
8440 DO i = bo(1, 1), bo(2, 1)
8441 p_rhoa = rho1a(i, j, k)
8442 p_rhob = rho1b(i, j, k)
8443 p_gamma_aa = 2.0_dp*gaa1(i, j, k)
8444 p_gamma_ab = gab1(i, j, k)
8445 p_gamma_bb = 2.0_dp*gbb1(i, j, k)
8446 pp_gamma_aa = 2.0_dp*gaa11(i, j, k)
8447 pp_gamma_ab = 2.0_dp*gab11(i, j, k)
8448 pp_gamma_bb = 2.0_dp*gbb11(i, j, k)
8451 u_a = u_a + g_rhoa_rhoa_rhoa(i, j, k)*p_rhoa*p_rhoa
8452 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhob
8453 u_a = u_a + g_rhoa_rhoa_gamma_aa(i, j, k)*p_rhoa*p_gamma_aa
8454 u_a = u_a + g_rhoa_rhoa_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8455 u_a = u_a + g_rhoa_rhoa_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8456 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhob*p_rhoa
8457 u_a = u_a + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhob
8458 u_a = u_a + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhob*p_gamma_aa
8459 u_a = u_a + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8460 u_a = u_a + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8461 u_a = u_a + g_rhoa_rhoa_gamma_aa(i, j, k)*p_gamma_aa*p_rhoa
8462 u_a = u_a + g_rhoa_rhob_gamma_aa(i, j, k)*p_gamma_aa*p_rhob
8463 u_a = u_a + g_rhoa_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_gamma_aa
8464 u_a = u_a + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8465 u_a = u_a + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8466 u_a = u_a + g_rhoa_rhoa_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8467 u_a = u_a + g_rhoa_rhob_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8468 u_a = u_a + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8469 u_a = u_a + g_rhoa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8470 u_a = u_a + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8471 u_a = u_a + g_rhoa_rhoa_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8472 u_a = u_a + g_rhoa_rhob_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8473 u_a = u_a + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8474 u_a = u_a + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8475 u_a = u_a + g_rhoa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8476 u_a = u_a + g_rhoa_gamma_aa(i, j, k)*pp_gamma_aa
8477 u_a = u_a + g_rhoa_gamma_ab(i, j, k)*pp_gamma_ab
8478 u_a = u_a + g_rhoa_gamma_bb(i, j, k)*pp_gamma_bb
8480 u_b = u_b + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhoa
8481 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhoa*p_rhob
8482 u_b = u_b + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhoa*p_gamma_aa
8483 u_b = u_b + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8484 u_b = u_b + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8485 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhoa
8486 u_b = u_b + g_rhob_rhob_rhob(i, j, k)*p_rhob*p_rhob
8487 u_b = u_b + g_rhob_rhob_gamma_aa(i, j, k)*p_rhob*p_gamma_aa
8488 u_b = u_b + g_rhob_rhob_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8489 u_b = u_b + g_rhob_rhob_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8490 u_b = u_b + g_rhoa_rhob_gamma_aa(i, j, k)*p_gamma_aa*p_rhoa
8491 u_b = u_b + g_rhob_rhob_gamma_aa(i, j, k)*p_gamma_aa*p_rhob
8492 u_b = u_b + g_rhob_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_gamma_aa
8493 u_b = u_b + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8494 u_b = u_b + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8495 u_b = u_b + g_rhoa_rhob_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8496 u_b = u_b + g_rhob_rhob_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8497 u_b = u_b + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8498 u_b = u_b + g_rhob_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8499 u_b = u_b + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8500 u_b = u_b + g_rhoa_rhob_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8501 u_b = u_b + g_rhob_rhob_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8502 u_b = u_b + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8503 u_b = u_b + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8504 u_b = u_b + g_rhob_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8505 u_b = u_b + g_rhob_gamma_aa(i, j, k)*pp_gamma_aa
8506 u_b = u_b + g_rhob_gamma_ab(i, j, k)*pp_gamma_ab
8507 u_b = u_b + g_rhob_gamma_bb(i, j, k)*pp_gamma_bb
8509 a_gamma_aa = a_gamma_aa + g_rhoa_rhoa_gamma_aa(i, j, k)*p_rhoa*p_rhoa
8510 a_gamma_aa = a_gamma_aa + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhoa*p_rhob
8511 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_aa(i, j, k)*p_rhoa*p_gamma_aa
8512 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8513 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8514 a_gamma_aa = a_gamma_aa + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhob*p_rhoa
8515 a_gamma_aa = a_gamma_aa + g_rhob_rhob_gamma_aa(i, j, k)*p_rhob*p_rhob
8516 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_aa(i, j, k)*p_rhob*p_gamma_aa
8517 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8518 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8519 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_rhoa
8520 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_rhob
8521 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_gamma_aa
8522 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8523 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8524 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8525 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8526 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8527 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8528 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8529 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8530 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8531 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8532 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8533 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8534 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa(i, j, k)*pp_gamma_aa
8535 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab(i, j, k)*pp_gamma_ab
8536 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_bb(i, j, k)*pp_gamma_bb
8538 a_gamma_ab = a_gamma_ab + g_rhoa_rhoa_gamma_ab(i, j, k)*p_rhoa*p_rhoa
8539 a_gamma_ab = a_gamma_ab + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhoa*p_rhob
8540 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_rhoa*p_gamma_aa
8541 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8542 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8543 a_gamma_ab = a_gamma_ab + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhob*p_rhoa
8544 a_gamma_ab = a_gamma_ab + g_rhob_rhob_gamma_ab(i, j, k)*p_rhob*p_rhob
8545 a_gamma_ab = a_gamma_ab + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_rhob*p_gamma_aa
8546 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8547 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8548 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_rhoa
8549 a_gamma_ab = a_gamma_ab + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_rhob
8550 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_aa
8551 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8552 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8553 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8554 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8555 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8556 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8557 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8558 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8559 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8560 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8561 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8562 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8563 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab(i, j, k)*pp_gamma_aa
8564 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab(i, j, k)*pp_gamma_ab
8565 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_bb(i, j, k)*pp_gamma_bb
8567 a_gamma_bb = a_gamma_bb + g_rhoa_rhoa_gamma_bb(i, j, k)*p_rhoa*p_rhoa
8568 a_gamma_bb = a_gamma_bb + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhoa*p_rhob
8569 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_rhoa*p_gamma_aa
8570 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_rhoa*p_gamma_ab
8571 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_bb_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8572 a_gamma_bb = a_gamma_bb + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhob*p_rhoa
8573 a_gamma_bb = a_gamma_bb + g_rhob_rhob_gamma_bb(i, j, k)*p_rhob*p_rhob
8574 a_gamma_bb = a_gamma_bb + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_rhob*p_gamma_aa
8575 a_gamma_bb = a_gamma_bb + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_rhob*p_gamma_ab
8576 a_gamma_bb = a_gamma_bb + g_rhob_gamma_bb_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8577 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_rhoa
8578 a_gamma_bb = a_gamma_bb + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_rhob
8579 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_aa
8580 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_ab
8581 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_bb_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8582 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_rhoa
8583 a_gamma_bb = a_gamma_bb + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_rhob
8584 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_aa
8585 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_ab
8586 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_bb_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8587 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8588 a_gamma_bb = a_gamma_bb + g_rhob_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8589 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8590 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8591 a_gamma_bb = a_gamma_bb + g_gamma_bb_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8592 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_bb(i, j, k)*pp_gamma_aa
8593 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_bb(i, j, k)*pp_gamma_ab
8594 a_gamma_bb = a_gamma_bb + g_gamma_bb_gamma_bb(i, j, k)*pp_gamma_bb
8596 b_gamma_aa = b_gamma_aa + g_rhoa_gamma_aa(i, j, k)*p_rhoa
8597 b_gamma_aa = b_gamma_aa + g_rhob_gamma_aa(i, j, k)*p_rhob
8598 b_gamma_aa = b_gamma_aa + g_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa
8599 b_gamma_aa = b_gamma_aa + g_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab
8600 b_gamma_aa = b_gamma_aa + g_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb
8602 b_gamma_ab = b_gamma_ab + g_rhoa_gamma_ab(i, j, k)*p_rhoa
8603 b_gamma_ab = b_gamma_ab + g_rhob_gamma_ab(i, j, k)*p_rhob
8604 b_gamma_ab = b_gamma_ab + g_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa
8605 b_gamma_ab = b_gamma_ab + g_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab
8606 b_gamma_ab = b_gamma_ab + g_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb
8608 b_gamma_bb = b_gamma_bb + g_rhoa_gamma_bb(i, j, k)*p_rhoa
8609 b_gamma_bb = b_gamma_bb + g_rhob_gamma_bb(i, j, k)*p_rhob
8610 b_gamma_bb = b_gamma_bb + g_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa
8611 b_gamma_bb = b_gamma_bb + g_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab
8612 b_gamma_bb = b_gamma_bb + g_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb
8614 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + u_a
8615 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + u_b
8618 v_drho_r(1, 1)%array(i, j, k) = &
8619 -(2.0_dp*drhoa(1)%array(i, j, k)*a_gamma_aa &
8620 + drhob(1)%array(i, j, k)*a_gamma_ab &
8621 + 2.0_dp*(2.0_dp*drho1a(1)%array(i, j, k)*b_gamma_aa &
8622 + drho1b(1)%array(i, j, k)*b_gamma_ab))
8623 v_drho_r(1, 2)%array(i, j, k) = &
8624 -(2.0_dp*drhob(1)%array(i, j, k)*a_gamma_bb &
8625 + drhoa(1)%array(i, j, k)*a_gamma_ab &
8626 + 2.0_dp*(2.0_dp*drho1b(1)%array(i, j, k)*b_gamma_bb &
8627 + drho1a(1)%array(i, j, k)*b_gamma_ab))
8628 v_drho_r(2, 1)%array(i, j, k) = &
8629 -(2.0_dp*drhoa(2)%array(i, j, k)*a_gamma_aa &
8630 + drhob(2)%array(i, j, k)*a_gamma_ab &
8631 + 2.0_dp*(2.0_dp*drho1a(2)%array(i, j, k)*b_gamma_aa &
8632 + drho1b(2)%array(i, j, k)*b_gamma_ab))
8633 v_drho_r(2, 2)%array(i, j, k) = &
8634 -(2.0_dp*drhob(2)%array(i, j, k)*a_gamma_bb &
8635 + drhoa(2)%array(i, j, k)*a_gamma_ab &
8636 + 2.0_dp*(2.0_dp*drho1b(2)%array(i, j, k)*b_gamma_bb &
8637 + drho1a(2)%array(i, j, k)*b_gamma_ab))
8638 v_drho_r(3, 1)%array(i, j, k) = &
8639 -(2.0_dp*drhoa(3)%array(i, j, k)*a_gamma_aa &
8640 + drhob(3)%array(i, j, k)*a_gamma_ab &
8641 + 2.0_dp*(2.0_dp*drho1a(3)%array(i, j, k)*b_gamma_aa &
8642 + drho1b(3)%array(i, j, k)*b_gamma_ab))
8643 v_drho_r(3, 2)%array(i, j, k) = &
8644 -(2.0_dp*drhob(3)%array(i, j, k)*a_gamma_bb &
8645 + drhoa(3)%array(i, j, k)*a_gamma_ab &
8646 + 2.0_dp*(2.0_dp*drho1b(3)%array(i, j, k)*b_gamma_bb &
8647 + drho1a(3)%array(i, j, k)*b_gamma_ab))
8653 DO ispin = 1, nspins
8655 vxg(idir, :, :, ispin) = -v_drho_r(idir, ispin)%array(:, :, 1)
8662 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
8667 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
8670 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
8673 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 2), tmp_g, vxc_g, v_xc(2))
8687 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa])
8688 IF (
ASSOCIATED(deriv_att))
THEN
8689 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8690 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob])
8691 IF (
ASSOCIATED(deriv_att))
THEN
8692 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8695 DO k = bo(1, 3), bo(2, 3)
8696 DO j = bo(1, 2), bo(2, 2)
8697 DO i = bo(1, 1), bo(2, 1)
8698 s = rhoa(i, j, k) - rhob(i, j, k)
8699 s = -sign(max(s**2, s_thresh2), s)
8700 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8701 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)**2/s
8713 IF (.NOT. alda0)
THEN
8714 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa])
8715 IF (
ASSOCIATED(deriv_att))
THEN
8716 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8717 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob])
8718 IF (
ASSOCIATED(deriv_att))
THEN
8719 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8722 DO k = bo(1, 3), bo(2, 3)
8723 DO j = bo(1, 2), bo(2, 2)
8724 DO i = bo(1, 1), bo(2, 1)
8725 s = rhoa(i, j, k) - rhob(i, j, k)
8726 s = -sign(max(s**2, s_thresh2), s)
8727 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8728 (deriv_data(i, j, k)*dra1dra(i, j, k) - deriv_data2(i, j, k)*drb1drb(i, j, k)) &
8740 DO k = bo(1, 3), bo(2, 3)
8741 DO j = bo(1, 2), bo(2, 2)
8742 DO i = bo(1, 1), bo(2, 1)
8743 v_xc(2)%array(i, j, k) = -v_xc(1)%array(i, j, k)
8755 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_rhob])
8756 IF (
ASSOCIATED(deriv_att))
THEN
8757 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8758 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_rhoa])
8759 IF (
ASSOCIATED(deriv_att))
THEN
8760 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8763 DO k = bo(1, 3), bo(2, 3)
8764 DO j = bo(1, 2), bo(2, 2)
8765 DO i = bo(1, 1), bo(2, 1)
8766 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8767 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8768 rho1a(i, j, k)**2*(deriv_data(i, j, k) - deriv_data2(i, j, k))/s
8779 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_rhob])
8780 IF (
ASSOCIATED(deriv_att))
THEN
8781 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8782 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_rhoa])
8783 IF (
ASSOCIATED(deriv_att))
THEN
8784 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8787 DO k = bo(1, 3), bo(2, 3)
8788 DO j = bo(1, 2), bo(2, 2)
8789 DO i = bo(1, 1), bo(2, 1)
8790 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8791 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
8792 rho1a(i, j, k)**2*(deriv_data(i, j, k) - deriv_data2(i, j, k))/s
8800 IF (.NOT. alda0)
THEN
8804 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_norm_drhob])
8805 IF (
ASSOCIATED(deriv_att))
THEN
8806 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8807 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_norm_drhoa])
8808 IF (
ASSOCIATED(deriv_att))
THEN
8809 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8812 DO k = bo(1, 3), bo(2, 3)
8813 DO j = bo(1, 2), bo(2, 2)
8814 DO i = bo(1, 1), bo(2, 1)
8815 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8816 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8817 (deriv_data(i, j, k)*dra1dra(i, j, k) - deriv_data2(i, j, k)*drb1drb(i, j, k))* &
8829 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_norm_drhob])
8830 IF (
ASSOCIATED(deriv_att))
THEN
8831 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8832 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_norm_drhoa])
8833 IF (
ASSOCIATED(deriv_att))
THEN
8834 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8837 DO k = bo(1, 3), bo(2, 3)
8838 DO j = bo(1, 2), bo(2, 2)
8839 DO i = bo(1, 1), bo(2, 1)
8840 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8841 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
8842 (deriv_data(i, j, k)*dra1dra(i, j, k) - deriv_data2(i, j, k)*drb1drb(i, j, k))* &
8857 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_rhob])
8858 IF (
ASSOCIATED(deriv_att))
THEN
8859 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8860 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_rhoa])
8861 IF (
ASSOCIATED(deriv_att))
THEN
8862 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8865 DO k = bo(1, 3), bo(2, 3)
8866 DO j = bo(1, 2), bo(2, 2)
8867 DO i = bo(1, 1), bo(2, 1)
8868 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
8869 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8880 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob, deriv_rhoa])
8881 IF (
ASSOCIATED(deriv_att))
THEN
8882 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8883 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob, deriv_rhob])
8884 IF (
ASSOCIATED(deriv_att))
THEN
8885 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8888 DO k = bo(1, 3), bo(2, 3)
8889 DO j = bo(1, 2), bo(2, 2)
8890 DO i = bo(1, 1), bo(2, 1)
8891 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) + &
8892 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8907 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_rhoa])
8908 IF (
ASSOCIATED(deriv_att))
THEN
8909 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8910 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_rhob])
8911 IF (
ASSOCIATED(deriv_att))
THEN
8912 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8915 DO k = bo(1, 3), bo(2, 3)
8916 DO j = bo(1, 2), bo(2, 2)
8917 DO i = bo(1, 1), bo(2, 1)
8918 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
8919 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8920 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
8921 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8929 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_norm_drhob])
8930 IF (
ASSOCIATED(deriv_att))
THEN
8931 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8935 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_norm_drhoa])
8936 IF (
ASSOCIATED(deriv_att))
THEN
8937 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8940 DO k = bo(1, 3), bo(2, 3)
8941 DO j = bo(1, 2), bo(2, 2)
8942 DO i = bo(1, 1), bo(2, 1)
8943 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
8944 deriv_data(i, j, k)*dra1dra(i, j, k) + deriv_data2(i, j, k)*drb1drb(i, j, k)
8953 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob, deriv_norm_drhob])
8954 IF (
ASSOCIATED(deriv_att))
THEN
8955 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8958 DO k = bo(1, 3), bo(2, 3)
8959 DO j = bo(1, 2), bo(2, 2)
8960 DO i = bo(1, 1), bo(2, 1)
8961 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
8962 deriv_data(i, j, k)*dra1dra(i, j, k) + deriv_data2(i, j, k)*drb1drb(i, j, k)
8976 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_norm_drhob])
8977 IF (
ASSOCIATED(deriv_att))
THEN
8978 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8979 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_norm_drhoa])
8980 IF (
ASSOCIATED(deriv_att))
THEN
8981 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8984 DO k = bo(1, 3), bo(2, 3)
8985 DO j = bo(1, 2), bo(2, 2)
8986 DO i = bo(1, 1), bo(2, 1)
8987 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
8988 deriv_data(i, j, k)*dra1dra(i, j, k) + &
8989 deriv_data2(i, j, k)*drb1drb(i, j, k)
8990 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
8991 deriv_data(i, j, k)*dra1dra(i, j, k) + &
8992 deriv_data2(i, j, k)*drb1drb(i, j, k)
9006 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa])
9007 IF (
ASSOCIATED(deriv_att))
THEN
9008 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
9009 CALL xc_derivative_get(deriv_att, deriv_data=e_drhoa)
9012 v_drhoa(1)%array(:, :, :) = v_drhoa(1)%array(:, :, :) + &
9013 deriv_data(:, :, :)*dra1dra(:, :, :)/max(gradient_cut, norm_drhoa(:, :, :))**2
9020 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob])
9021 IF (
ASSOCIATED(deriv_att))
THEN
9022 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
9023 CALL xc_derivative_get(deriv_att, deriv_data=e_drhob)
9026 v_drhob(2)%array(:, :, :) = v_drhob(2)%array(:, :, :) - &
9027 deriv_data(:, :, :)*drb1drb(:, :, :)/max(gradient_cut, norm_drhob(:, :, :))**2
9036 cpabort(
"Exchange-correlation's analytic third derivative not implemented")
9040 IF (gradient_f)
THEN
9044 IF (.NOT. alda0 .AND. do_spinflip)
THEN
9058 IF (do_spinflip)
THEN
9061 DO k = bo(1, 3), bo(2, 3)
9062 DO j = bo(1, 2), bo(2, 2)
9063 DO i = bo(1, 1), bo(2, 1)
9064 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
9066 v_drho_r(idir, ispin)%array(i, j, k) = v_drho_r(idir, ispin)%array(i, j, k) + &
9067 v_drhoa(ispin)%array(i, j, k)*drhoa(idir)%array(i, j, k)*rho1a(i, j, k)/s + &
9068 v_drhob(ispin)%array(i, j, k)*drhob(idir)%array(i, j, k)*rho1a(i, j, k)/s + &
9069 v_drho(ispin)%array(i, j, k)*drho(idir)%array(i, j, k)*rho1a(i, j, k)/s
9081 IF (
ASSOCIATED(e_drhoa))
THEN
9084 DO k = bo(1, 3), bo(2, 3)
9085 DO j = bo(1, 2), bo(2, 2)
9086 DO i = bo(1, 1), bo(2, 1)
9087 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
9088 v_drho_r(idir, 1)%array(i, j, k) = v_drho_r(idir, 1)%array(i, j, k) - &
9089 e_drhoa(i, j, k)*drho1a(idir)%array(i, j, k)*rho1a(i, j, k)/s
9099 IF (
ASSOCIATED(e_drhob))
THEN
9102 DO k = bo(1, 3), bo(2, 3)
9103 DO j = bo(1, 2), bo(2, 2)
9104 DO i = bo(1, 1), bo(2, 1)
9105 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
9106 v_drho_r(idir, 2)%array(i, j, k) = v_drho_r(idir, 2)%array(i, j, k) + &
9107 e_drhob(i, j, k)*drho1a(idir)%array(i, j, k)*rho1a(i, j, k)/s
9116 DO ispin = 1, nspins
9117 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, ispin), tmp_g, vxc_g, v_xc(ispin))
9122 DEALLOCATE (drho(idir)%array)
9123 DEALLOCATE (drho1(idir)%array)
9126 DO ispin = 1, nspins
9127 CALL deallocate_pw(v_drhoa(ispin), pw_pool)
9128 CALL deallocate_pw(v_drhob(ispin), pw_pool)
9131 DEALLOCATE (v_drhoa, v_drhob)
9155 CALL xc_rho_set_get(rho1_set, rho=rho1)
9157 NULLIFY (e_rrr, e_rrg, e_rgg, e_ggg, e_rg, e_gg)
9158 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_rho, deriv_rho])
9159 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rrr)
9161 IF (gradient_f)
THEN
9162 CALL xc_rho_set_get(rho_set, drho=drho)
9163 CALL xc_rho_set_get(rho1_set, drho=drho1)
9164 CALL prepare_dr1dr(dr1dr, drho, drho1)
9165 CALL prepare_dr1dr(dr1dr1, drho1, drho1)
9167 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_rho, deriv_gamma])
9168 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rrg)
9169 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_gamma, deriv_gamma])
9170 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rgg)
9171 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_gamma, deriv_gamma, deriv_gamma])
9172 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_ggg)
9173 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_gamma])
9174 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rg)
9175 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_gamma, deriv_gamma])
9176 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_gg)
9181 IF (.NOT. (
ASSOCIATED(e_rrr) .AND.
ASSOCIATED(e_rrg) .AND.
ASSOCIATED(e_rgg) &
9182 .AND.
ASSOCIATED(e_ggg) .AND.
ASSOCIATED(e_rg) .AND.
ASSOCIATED(e_gg)))
THEN
9183 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
9187 IF (gradient_f .AND. (tau_f .OR. laplace_f))
THEN
9201 CALL xc_rho_set_get(rho_set, drho=drho)
9202 CALL xc_rho_set_get(rho1_set, drho=drho1)
9203 CALL prepare_dr1dr(dr1dr, drho, drho1)
9204 CALL prepare_dr1dr(dr1dr1, drho1, drho1)
9205 IF (tau_f)
CALL xc_rho_set_get(rho1_set, tau=tau1)
9206 IF (laplace_f)
CALL xc_rho_set_get(rho1_set, laplace_rho=laplace1)
9209 ALLOCATE (zero_f(bo(1, 1):bo(2, 1), bo(1, 2):bo(2, 2), bo(1, 3):bo(2, 3)))
9211 deriv_att => xc_dset_get_derivative(deriv_set, &
9212 [deriv_rho, deriv_rho])
9213 IF (
ASSOCIATED(deriv_att))
THEN
9214 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho)
9218 deriv_att => xc_dset_get_derivative(deriv_set, &
9219 [deriv_rho, deriv_gamma])
9220 IF (
ASSOCIATED(deriv_att))
THEN
9221 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma)
9223 m_rho_gamma => zero_f
9225 deriv_att => xc_dset_get_derivative(deriv_set, &
9226 [deriv_rho, deriv_laplace_rho])
9227 IF (
ASSOCIATED(deriv_att))
THEN
9228 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_laplace_rho)
9230 m_rho_laplace_rho => zero_f
9232 deriv_att => xc_dset_get_derivative(deriv_set, &
9233 [deriv_rho, deriv_tau])
9234 IF (
ASSOCIATED(deriv_att))
THEN
9235 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_tau)
9239 deriv_att => xc_dset_get_derivative(deriv_set, &
9240 [deriv_gamma, deriv_gamma])
9241 IF (
ASSOCIATED(deriv_att))
THEN
9242 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma)
9244 m_gamma_gamma => zero_f
9246 deriv_att => xc_dset_get_derivative(deriv_set, &
9247 [deriv_gamma, deriv_laplace_rho])
9248 IF (
ASSOCIATED(deriv_att))
THEN
9249 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_laplace_rho)
9251 m_gamma_laplace_rho => zero_f
9253 deriv_att => xc_dset_get_derivative(deriv_set, &
9254 [deriv_gamma, deriv_tau])
9255 IF (
ASSOCIATED(deriv_att))
THEN
9256 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_tau)
9258 m_gamma_tau => zero_f
9260 deriv_att => xc_dset_get_derivative(deriv_set, &
9261 [deriv_laplace_rho, deriv_laplace_rho])
9262 IF (
ASSOCIATED(deriv_att))
THEN
9263 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_laplace_rho)
9265 m_laplace_rho_laplace_rho => zero_f
9267 deriv_att => xc_dset_get_derivative(deriv_set, &
9268 [deriv_laplace_rho, deriv_tau])
9269 IF (
ASSOCIATED(deriv_att))
THEN
9270 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_tau)
9272 m_laplace_rho_tau => zero_f
9274 deriv_att => xc_dset_get_derivative(deriv_set, &
9275 [deriv_tau, deriv_tau])
9276 IF (
ASSOCIATED(deriv_att))
THEN
9277 CALL xc_derivative_get(deriv_att, deriv_data=m_tau_tau)
9281 deriv_att => xc_dset_get_derivative(deriv_set, &
9282 [deriv_rho, deriv_rho, deriv_rho])
9283 IF (
ASSOCIATED(deriv_att))
THEN
9284 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_rho)
9286 m_rho_rho_rho => zero_f
9288 deriv_att => xc_dset_get_derivative(deriv_set, &
9289 [deriv_rho, deriv_rho, deriv_gamma])
9290 IF (
ASSOCIATED(deriv_att))
THEN
9291 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_gamma)
9293 m_rho_rho_gamma => zero_f
9295 deriv_att => xc_dset_get_derivative(deriv_set, &
9296 [deriv_rho, deriv_rho, deriv_laplace_rho])
9297 IF (
ASSOCIATED(deriv_att))
THEN
9298 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_laplace_rho)
9300 m_rho_rho_laplace_rho => zero_f
9302 deriv_att => xc_dset_get_derivative(deriv_set, &
9303 [deriv_rho, deriv_rho, deriv_tau])
9304 IF (
ASSOCIATED(deriv_att))
THEN
9305 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_tau)
9307 m_rho_rho_tau => zero_f
9309 deriv_att => xc_dset_get_derivative(deriv_set, &
9310 [deriv_rho, deriv_gamma, deriv_gamma])
9311 IF (
ASSOCIATED(deriv_att))
THEN
9312 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma_gamma)
9314 m_rho_gamma_gamma => zero_f
9316 deriv_att => xc_dset_get_derivative(deriv_set, &
9317 [deriv_rho, deriv_gamma, deriv_laplace_rho])
9318 IF (
ASSOCIATED(deriv_att))
THEN
9319 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma_laplace_rho)
9321 m_rho_gamma_laplace_rho => zero_f
9323 deriv_att => xc_dset_get_derivative(deriv_set, &
9324 [deriv_rho, deriv_gamma, deriv_tau])
9325 IF (
ASSOCIATED(deriv_att))
THEN
9326 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma_tau)
9328 m_rho_gamma_tau => zero_f
9330 deriv_att => xc_dset_get_derivative(deriv_set, &
9331 [deriv_rho, deriv_laplace_rho, deriv_laplace_rho])
9332 IF (
ASSOCIATED(deriv_att))
THEN
9333 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_laplace_rho_laplace_rho)
9335 m_rho_laplace_rho_laplace_rho => zero_f
9337 deriv_att => xc_dset_get_derivative(deriv_set, &
9338 [deriv_rho, deriv_laplace_rho, deriv_tau])
9339 IF (
ASSOCIATED(deriv_att))
THEN
9340 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_laplace_rho_tau)
9342 m_rho_laplace_rho_tau => zero_f
9344 deriv_att => xc_dset_get_derivative(deriv_set, &
9345 [deriv_rho, deriv_tau, deriv_tau])
9346 IF (
ASSOCIATED(deriv_att))
THEN
9347 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_tau_tau)
9349 m_rho_tau_tau => zero_f
9351 deriv_att => xc_dset_get_derivative(deriv_set, &
9352 [deriv_gamma, deriv_gamma, deriv_gamma])
9353 IF (
ASSOCIATED(deriv_att))
THEN
9354 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma_gamma)
9356 m_gamma_gamma_gamma => zero_f
9358 deriv_att => xc_dset_get_derivative(deriv_set, &
9359 [deriv_gamma, deriv_gamma, deriv_laplace_rho])
9360 IF (
ASSOCIATED(deriv_att))
THEN
9361 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma_laplace_rho)
9363 m_gamma_gamma_laplace_rho => zero_f
9365 deriv_att => xc_dset_get_derivative(deriv_set, &
9366 [deriv_gamma, deriv_gamma, deriv_tau])
9367 IF (
ASSOCIATED(deriv_att))
THEN
9368 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma_tau)
9370 m_gamma_gamma_tau => zero_f
9372 deriv_att => xc_dset_get_derivative(deriv_set, &
9373 [deriv_gamma, deriv_laplace_rho, deriv_laplace_rho])
9374 IF (
ASSOCIATED(deriv_att))
THEN
9375 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_laplace_rho_laplace_rho)
9377 m_gamma_laplace_rho_laplace_rho => zero_f
9379 deriv_att => xc_dset_get_derivative(deriv_set, &
9380 [deriv_gamma, deriv_laplace_rho, deriv_tau])
9381 IF (
ASSOCIATED(deriv_att))
THEN
9382 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_laplace_rho_tau)
9384 m_gamma_laplace_rho_tau => zero_f
9386 deriv_att => xc_dset_get_derivative(deriv_set, &
9387 [deriv_gamma, deriv_tau, deriv_tau])
9388 IF (
ASSOCIATED(deriv_att))
THEN
9389 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_tau_tau)
9391 m_gamma_tau_tau => zero_f
9393 deriv_att => xc_dset_get_derivative(deriv_set, &
9394 [deriv_laplace_rho, deriv_laplace_rho, deriv_laplace_rho])
9395 IF (
ASSOCIATED(deriv_att))
THEN
9396 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_laplace_rho_laplace_rho)
9398 m_laplace_rho_laplace_rho_laplace_rho => zero_f
9400 deriv_att => xc_dset_get_derivative(deriv_set, &
9401 [deriv_laplace_rho, deriv_laplace_rho, deriv_tau])
9402 IF (
ASSOCIATED(deriv_att))
THEN
9403 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_laplace_rho_tau)
9405 m_laplace_rho_laplace_rho_tau => zero_f
9407 deriv_att => xc_dset_get_derivative(deriv_set, &
9408 [deriv_laplace_rho, deriv_tau, deriv_tau])
9409 IF (
ASSOCIATED(deriv_att))
THEN
9410 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_tau_tau)
9412 m_laplace_rho_tau_tau => zero_f
9414 deriv_att => xc_dset_get_derivative(deriv_set, &
9415 [deriv_tau, deriv_tau, deriv_tau])
9416 IF (
ASSOCIATED(deriv_att))
THEN
9417 CALL xc_derivative_get(deriv_att, deriv_data=m_tau_tau_tau)
9419 m_tau_tau_tau => zero_f
9423 ALLOCATE (v_laplace(nspins))
9424 DO ispin = 1, nspins
9425 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
9463 DO k = bo(1, 3), bo(2, 3)
9464 DO j = bo(1, 2), bo(2, 2)
9465 DO i = bo(1, 1), bo(2, 1)
9466 mp_rho = rho1(i, j, k)
9467 mp_gamma = 2.0_dp*dr1dr(i, j, k)
9468 mpp_gamma = 2.0_dp*dr1dr1(i, j, k)
9470 IF (tau_f) mp_tau = tau1(i, j, k)
9471 mp_laplace_rho = 0.0_dp
9472 IF (laplace_f) mp_laplace_rho = laplace1(i, j, k)
9475 m_rho = m_rho + 1.0_dp* &
9476 m_rho_rho_rho(i, j, k)*mp_rho*mp_rho
9477 m_rho = m_rho + 2.0_dp* &
9478 m_rho_rho_gamma(i, j, k)*mp_rho*mp_gamma
9479 m_rho = m_rho + 2.0_dp* &
9480 m_rho_rho_laplace_rho(i, j, k)*mp_rho*mp_laplace_rho
9481 m_rho = m_rho + 2.0_dp* &
9482 m_rho_rho_tau(i, j, k)*mp_rho*mp_tau
9483 m_rho = m_rho + 1.0_dp* &
9484 m_rho_gamma_gamma(i, j, k)*mp_gamma*mp_gamma
9485 m_rho = m_rho + 2.0_dp* &
9486 m_rho_gamma_laplace_rho(i, j, k)*mp_gamma*mp_laplace_rho
9487 m_rho = m_rho + 2.0_dp* &
9488 m_rho_gamma_tau(i, j, k)*mp_gamma*mp_tau
9489 m_rho = m_rho + 1.0_dp* &
9490 m_rho_laplace_rho_laplace_rho(i, j, k)*mp_laplace_rho*mp_laplace_rho
9491 m_rho = m_rho + 2.0_dp* &
9492 m_rho_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_tau
9493 m_rho = m_rho + 1.0_dp* &
9494 m_rho_tau_tau(i, j, k)*mp_tau*mp_tau
9495 m_rho = m_rho + m_rho_gamma(i, j, k)*mpp_gamma
9497 m_gamma = m_gamma + 1.0_dp* &
9498 m_rho_rho_gamma(i, j, k)*mp_rho*mp_rho
9499 m_gamma = m_gamma + 2.0_dp* &
9500 m_rho_gamma_gamma(i, j, k)*mp_rho*mp_gamma
9501 m_gamma = m_gamma + 2.0_dp* &
9502 m_rho_gamma_laplace_rho(i, j, k)*mp_rho*mp_laplace_rho
9503 m_gamma = m_gamma + 2.0_dp* &
9504 m_rho_gamma_tau(i, j, k)*mp_rho*mp_tau
9505 m_gamma = m_gamma + 1.0_dp* &
9506 m_gamma_gamma_gamma(i, j, k)*mp_gamma*mp_gamma
9507 m_gamma = m_gamma + 2.0_dp* &
9508 m_gamma_gamma_laplace_rho(i, j, k)*mp_gamma*mp_laplace_rho
9509 m_gamma = m_gamma + 2.0_dp* &
9510 m_gamma_gamma_tau(i, j, k)*mp_gamma*mp_tau
9511 m_gamma = m_gamma + 1.0_dp* &
9512 m_gamma_laplace_rho_laplace_rho(i, j, k)*mp_laplace_rho*mp_laplace_rho
9513 m_gamma = m_gamma + 2.0_dp* &
9514 m_gamma_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_tau
9515 m_gamma = m_gamma + 1.0_dp* &
9516 m_gamma_tau_tau(i, j, k)*mp_tau*mp_tau
9517 m_gamma = m_gamma + m_gamma_gamma(i, j, k)*mpp_gamma
9518 m_laplace_rho = 0.0_dp
9519 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9520 m_rho_rho_laplace_rho(i, j, k)*mp_rho*mp_rho
9521 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9522 m_rho_gamma_laplace_rho(i, j, k)*mp_rho*mp_gamma
9523 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9524 m_rho_laplace_rho_laplace_rho(i, j, k)*mp_rho*mp_laplace_rho
9525 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9526 m_rho_laplace_rho_tau(i, j, k)*mp_rho*mp_tau
9527 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9528 m_gamma_gamma_laplace_rho(i, j, k)*mp_gamma*mp_gamma
9529 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9530 m_gamma_laplace_rho_laplace_rho(i, j, k)*mp_gamma*mp_laplace_rho
9531 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9532 m_gamma_laplace_rho_tau(i, j, k)*mp_gamma*mp_tau
9533 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9534 m_laplace_rho_laplace_rho_laplace_rho(i, j, k)*mp_laplace_rho*mp_laplace_rho
9535 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9536 m_laplace_rho_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_tau
9537 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9538 m_laplace_rho_tau_tau(i, j, k)*mp_tau*mp_tau
9539 m_laplace_rho = m_laplace_rho + m_gamma_laplace_rho(i, j, k)*mpp_gamma
9541 m_tau = m_tau + 1.0_dp* &
9542 m_rho_rho_tau(i, j, k)*mp_rho*mp_rho
9543 m_tau = m_tau + 2.0_dp* &
9544 m_rho_gamma_tau(i, j, k)*mp_rho*mp_gamma
9545 m_tau = m_tau + 2.0_dp* &
9546 m_rho_laplace_rho_tau(i, j, k)*mp_rho*mp_laplace_rho
9547 m_tau = m_tau + 2.0_dp* &
9548 m_rho_tau_tau(i, j, k)*mp_rho*mp_tau
9549 m_tau = m_tau + 1.0_dp* &
9550 m_gamma_gamma_tau(i, j, k)*mp_gamma*mp_gamma
9551 m_tau = m_tau + 2.0_dp* &
9552 m_gamma_laplace_rho_tau(i, j, k)*mp_gamma*mp_laplace_rho
9553 m_tau = m_tau + 2.0_dp* &
9554 m_gamma_tau_tau(i, j, k)*mp_gamma*mp_tau
9555 m_tau = m_tau + 1.0_dp* &
9556 m_laplace_rho_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_laplace_rho
9557 m_tau = m_tau + 2.0_dp* &
9558 m_laplace_rho_tau_tau(i, j, k)*mp_laplace_rho*mp_tau
9559 m_tau = m_tau + 1.0_dp* &
9560 m_tau_tau_tau(i, j, k)*mp_tau*mp_tau
9561 m_tau = m_tau + m_gamma_tau(i, j, k)*mpp_gamma
9563 m_b = m_b + m_rho_gamma(i, j, k)*mp_rho
9564 m_b = m_b + m_gamma_gamma(i, j, k)*mp_gamma
9565 m_b = m_b + m_gamma_laplace_rho(i, j, k)*mp_laplace_rho
9566 m_b = m_b + m_gamma_tau(i, j, k)*mp_tau
9568 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + m_rho
9569 IF (tau_f) v_xc_tau(1)%array(i, j, k) = &
9570 v_xc_tau(1)%array(i, j, k) + m_tau
9571 IF (laplace_f) v_laplace(1)%array(i, j, k) = &
9572 v_laplace(1)%array(i, j, k) + m_laplace_rho
9575 v_drho_r(1, 1)%array(i, j, k) = &
9576 -(2.0_dp*drho(1)%array(i, j, k)*m_gamma &
9577 + 4.0_dp*drho1(1)%array(i, j, k)*m_b)
9578 v_drho_r(2, 1)%array(i, j, k) = &
9579 -(2.0_dp*drho(2)%array(i, j, k)*m_gamma &
9580 + 4.0_dp*drho1(2)%array(i, j, k)*m_b)
9581 v_drho_r(3, 1)%array(i, j, k) = &
9582 -(2.0_dp*drho(3)%array(i, j, k)*m_gamma &
9583 + 4.0_dp*drho1(3)%array(i, j, k)*m_b)
9590 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
9593 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
9597 DO ispin = 1, nspins
9598 CALL xc_pw_laplace(v_laplace(ispin), pw_pool, xc_deriv_method_id)
9599 CALL pw_axpy(v_laplace(ispin), v_xc(ispin))
9600 CALL deallocate_pw(v_laplace(ispin), pw_pool)
9602 DEALLOCATE (v_laplace)
9606 ELSE IF (.NOT. gradient_f)
THEN
9607 IF (
ASSOCIATED(e_rrr))
THEN
9609 DO k = bo(1, 3), bo(2, 3)
9610 DO j = bo(1, 2), bo(2, 2)
9611 DO i = bo(1, 1), bo(2, 1)
9612 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
9613 e_rrr(i, j, k)*rho1(i, j, k)**2
9622 DO k = bo(1, 3), bo(2, 3)
9623 DO j = bo(1, 2), bo(2, 2)
9624 DO i = bo(1, 1), bo(2, 1)
9625 g1 = 2.0_dp*dr1dr(i, j, k)
9626 g11 = 2.0_dp*dr1dr1(i, j, k)
9628 uu = e_rrr(i, j, k)*rho1(i, j, k)**2 &
9629 + 2.0_dp*e_rrg(i, j, k)*rho1(i, j, k)*g1 &
9630 + e_rgg(i, j, k)*g1**2 &
9632 aa = e_rrg(i, j, k)*rho1(i, j, k)**2 &
9633 + 2.0_dp*e_rgg(i, j, k)*rho1(i, j, k)*g1 &
9634 + e_ggg(i, j, k)*g1**2 &
9636 bb = e_rg(i, j, k)*rho1(i, j, k) + e_gg(i, j, k)*g1
9638 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + uu
9641 v_drho_r(1, 1)%array(i, j, k) = -(2.0_dp*drho(1)%array(i, j, k)*aa &
9642 + 4.0_dp*drho1(1)%array(i, j, k)*bb)
9643 v_drho_r(2, 1)%array(i, j, k) = -(2.0_dp*drho(2)%array(i, j, k)*aa &
9644 + 4.0_dp*drho1(2)%array(i, j, k)*bb)
9645 v_drho_r(3, 1)%array(i, j, k) = -(2.0_dp*drho(3)%array(i, j, k)*aa &
9646 + 4.0_dp*drho1(3)%array(i, j, k)*bb)
9653 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
9656 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
9662 IF (gradient_f)
THEN
9664 DO ispin = 1, nspins
9665 CALL deallocate_pw(v_drho(ispin), pw_pool)
9667 CALL deallocate_pw(v_drho_r(idir, ispin), pw_pool)
9670 DEALLOCATE (v_drho, v_drho_r)
9674 IF (
ASSOCIATED(tmp_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
9675 CALL pw_pool%give_back_pw(tmp_g)
9678 IF (
ASSOCIATED(vxc_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
9679 CALL pw_pool%give_back_pw(vxc_g)
9682 CALL timestop(handle)