2058 LOGICAL,
INTENT(IN),
OPTIONAL :: gapw
2059 REAL(kind=
dp),
DIMENSION(:, :, :, :),
OPTIONAL, &
2061 REAL(kind=
dp),
INTENT(in),
OPTIONAL :: tddfpt_fac
2062 LOGICAL,
INTENT(IN),
OPTIONAL :: compute_virial
2063 REAL(kind=
dp),
DIMENSION(3, 3),
INTENT(INOUT), &
2064 OPTIONAL :: virial_xc
2065 LOGICAL,
INTENT(in),
OPTIONAL :: spinflip
2067 CHARACTER(len=*),
PARAMETER :: routinen =
'xc_calc_2nd_deriv_analytical'
2069 INTEGER :: handle, i, ia, idir, ir, ispin, j, jdir, &
2070 k, nspins, xc_deriv_method_id
2071 INTEGER,
DIMENSION(2, 3) :: bo
2072 LOGICAL :: gradient_f, lsd, my_compute_virial, alda0, &
2073 my_gapw, tau_f, laplace_f, rho_f, do_spinflip
2074 REAL(kind=
dp) ::
fac, gradient_cut, tmp, factor2, s, s_thresh
2075 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: dr1dr, dra1dra, drb1drb
2076 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: deriv_data, deriv_data2, &
2077 e_drhoa, e_drhob, e_drho, norm_drho, norm_drhoa, &
2078 norm_drhob, rho1, rho1a, rho1b, &
2079 tau1, tau1a, tau1b, laplace1, laplace1a, laplace1b, &
2081 TYPE(
cp_3d_r_cp_type),
DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob
2082 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
ALLOCATABLE :: v_drhoa, v_drhob, v_drho, v_laplace
2088 CALL timeset(routinen, handle)
2090 NULLIFY (e_drhoa, e_drhob, e_drho)
2093 IF (
PRESENT(gapw)) my_gapw = gapw
2095 my_compute_virial = .false.
2096 IF (
PRESENT(compute_virial)) my_compute_virial = compute_virial
2098 cpassert(
ASSOCIATED(v_xc))
2099 cpassert(
ASSOCIATED(xc_section))
2101 cpassert(
PRESENT(vxg))
2103 IF (my_compute_virial)
THEN
2104 cpassert(
PRESENT(virial_xc))
2108 i_val=xc_deriv_method_id)
2111 lsd =
ASSOCIATED(rho_set%rhoa)
2114 IF (
PRESENT(tddfpt_fac))
fac = tddfpt_fac
2115 IF (
PRESENT(tddfpt_fac)) factor2 = tddfpt_fac
2116 do_spinflip = .false.
2117 IF (
PRESENT(spinflip)) do_spinflip = spinflip
2119 bo = rho_set%local_bounds
2121 CALL check_for_derivatives(deriv_set, lsd, rho_f, gradient_f, tau_f, laplace_f)
2124 IF (gradient_f)
THEN
2125 s_thresh = 1.0e-04_dp
2127 s_thresh = 1.0e-10_dp
2131 cpassert(
ASSOCIATED(v_xc_tau))
2134 IF (gradient_f)
THEN
2135 ALLOCATE (v_drho_r(3, nspins), v_drho(nspins))
2136 DO ispin = 1, nspins
2138 CALL allocate_pw(v_drho_r(idir, ispin), pw_pool, bo)
2140 CALL allocate_pw(v_drho(ispin), pw_pool, bo)
2144 IF (
ASSOCIATED(pw_pool))
THEN
2145 CALL pw_pool%create_pw(tmp_g)
2146 CALL pw_pool%create_pw(vxc_g)
2149 cpabort(
"XC_DERIV method is not implemented in GAPW")
2154 DO ispin = 1, nspins
2155 v_xc(ispin)%array = 0.0_dp
2159 DO ispin = 1, nspins
2160 v_xc_tau(ispin)%array = 0.0_dp
2164 IF (laplace_f .AND. my_gapw)
THEN
2165 cpabort(
"Laplace-dependent functional not implemented with GAPW!")
2168 IF (my_compute_virial .AND. (gradient_f .OR. laplace_f))
CALL allocate_pw(virial_pw, pw_pool, bo)
2176 IF (do_spinflip)
THEN
2183 IF (gradient_f)
THEN
2185 norm_drho=norm_drho, norm_drhoa=norm_drhoa, norm_drhob=norm_drhob)
2186 IF (do_spinflip)
THEN
2188 CALL calc_drho_from_a(drho1, drho1a)
2191 CALL calc_drho_from_ab(drho1, drho1a, drho1b)
2194 CALL calc_drho_from_ab(drho, drhoa, drhob)
2196 CALL prepare_dr1dr(dra1dra, drhoa, drho1a)
2197 IF (do_spinflip)
THEN
2198 CALL prepare_dr1dr(drb1drb, drhob, drho1a)
2199 CALL prepare_dr1dr(dr1dr, drho, drho1a)
2200 ELSE IF (nspins /= 1)
THEN
2201 CALL prepare_dr1dr(drb1drb, drhob, drho1b)
2202 CALL prepare_dr1dr(dr1dr, drho, drho1)
2204 CALL prepare_dr1dr(drb1drb, drhob, drho1b)
2205 CALL prepare_dr1dr_ab(dr1dr, drhoa, drhob, drho1a, drho1b,
fac)
2208 ALLOCATE (v_drhoa(nspins), v_drhob(nspins))
2209 DO ispin = 1, nspins
2210 CALL allocate_pw(v_drhoa(ispin), pw_pool, bo)
2211 CALL allocate_pw(v_drhob(ispin), pw_pool, bo)
2217 CALL xc_rho_set_get(rho1_set, laplace_rhoa=laplace1a, laplace_rhob=laplace1b)
2219 ALLOCATE (v_laplace(nspins))
2220 DO ispin = 1, nspins
2221 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
2224 IF (my_compute_virial)
CALL xc_rho_set_get(rho_set, rhoa=rhoa, rhob=rhob)
2231 IF (do_spinflip)
THEN
2240 IF (
ASSOCIATED(deriv_att))
THEN
2243 IF (
ASSOCIATED(deriv_att))
THEN
2247 DO k = bo(1, 3), bo(2, 3)
2248 DO j = bo(1, 2), bo(2, 2)
2249 DO i = bo(1, 1), bo(2, 1)
2250 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
2251 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2252 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)/s
2264 IF (.NOT. alda0)
THEN
2266 IF (
ASSOCIATED(deriv_att))
THEN
2269 IF (
ASSOCIATED(deriv_att))
THEN
2273 DO k = bo(1, 3), bo(2, 3)
2274 DO j = bo(1, 2), bo(2, 2)
2275 DO i = bo(1, 1), bo(2, 1)
2276 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
2277 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2278 (deriv_data(i, j, k)*dra1dra(i, j, k) - &
2279 deriv_data2(i, j, k)*drb1drb(i, j, k))/s
2288 ELSE IF (nspins /= 1)
THEN
2292 IF (
ASSOCIATED(deriv_att))
THEN
2296 DO k = bo(1, 3), bo(2, 3)
2297 DO j = bo(1, 2), bo(2, 2)
2298 DO i = bo(1, 1), bo(2, 1)
2299 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2300 deriv_data(i, j, k)*rho1a(i, j, k)
2306 IF (
ASSOCIATED(deriv_att))
THEN
2310 DO k = bo(1, 3), bo(2, 3)
2311 DO j = bo(1, 2), bo(2, 2)
2312 DO i = bo(1, 1), bo(2, 1)
2313 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2314 deriv_data(i, j, k)*rho1b(i, j, k)
2320 IF (
ASSOCIATED(deriv_att))
THEN
2324 DO k = bo(1, 3), bo(2, 3)
2325 DO j = bo(1, 2), bo(2, 2)
2326 DO i = bo(1, 1), bo(2, 1)
2327 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2328 deriv_data(i, j, k)*dr1dr(i, j, k)
2334 IF (
ASSOCIATED(deriv_att))
THEN
2338 DO k = bo(1, 3), bo(2, 3)
2339 DO j = bo(1, 2), bo(2, 2)
2340 DO i = bo(1, 1), bo(2, 1)
2341 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2342 deriv_data(i, j, k)*dra1dra(i, j, k)
2348 IF (
ASSOCIATED(deriv_att))
THEN
2352 DO k = bo(1, 3), bo(2, 3)
2353 DO j = bo(1, 2), bo(2, 2)
2354 DO i = bo(1, 1), bo(2, 1)
2355 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2356 deriv_data(i, j, k)*drb1drb(i, j, k)
2362 IF (
ASSOCIATED(deriv_att))
THEN
2366 DO k = bo(1, 3), bo(2, 3)
2367 DO j = bo(1, 2), bo(2, 2)
2368 DO i = bo(1, 1), bo(2, 1)
2369 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2370 deriv_data(i, j, k)*tau1a(i, j, k)
2376 IF (
ASSOCIATED(deriv_att))
THEN
2380 DO k = bo(1, 3), bo(2, 3)
2381 DO j = bo(1, 2), bo(2, 2)
2382 DO i = bo(1, 1), bo(2, 1)
2383 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2384 deriv_data(i, j, k)*tau1b(i, j, k)
2390 IF (
ASSOCIATED(deriv_att))
THEN
2394 DO k = bo(1, 3), bo(2, 3)
2395 DO j = bo(1, 2), bo(2, 2)
2396 DO i = bo(1, 1), bo(2, 1)
2397 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2398 deriv_data(i, j, k)*laplace1a(i, j, k)
2404 IF (
ASSOCIATED(deriv_att))
THEN
2408 DO k = bo(1, 3), bo(2, 3)
2409 DO j = bo(1, 2), bo(2, 2)
2410 DO i = bo(1, 1), bo(2, 1)
2411 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
2412 deriv_data(i, j, k)*laplace1b(i, j, k)
2420 IF (
ASSOCIATED(deriv_att))
THEN
2424 DO k = bo(1, 3), bo(2, 3)
2425 DO j = bo(1, 2), bo(2, 2)
2426 DO i = bo(1, 1), bo(2, 1)
2427 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2428 deriv_data(i, j, k)*rho1a(i, j, k)
2434 IF (
ASSOCIATED(deriv_att))
THEN
2438 DO k = bo(1, 3), bo(2, 3)
2439 DO j = bo(1, 2), bo(2, 2)
2440 DO i = bo(1, 1), bo(2, 1)
2441 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2442 deriv_data(i, j, k)*rho1b(i, j, k)
2448 IF (
ASSOCIATED(deriv_att))
THEN
2452 DO k = bo(1, 3), bo(2, 3)
2453 DO j = bo(1, 2), bo(2, 2)
2454 DO i = bo(1, 1), bo(2, 1)
2455 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2456 deriv_data(i, j, k)*dr1dr(i, j, k)
2462 IF (
ASSOCIATED(deriv_att))
THEN
2466 DO k = bo(1, 3), bo(2, 3)
2467 DO j = bo(1, 2), bo(2, 2)
2468 DO i = bo(1, 1), bo(2, 1)
2469 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2470 deriv_data(i, j, k)*dra1dra(i, j, k)
2476 IF (
ASSOCIATED(deriv_att))
THEN
2480 DO k = bo(1, 3), bo(2, 3)
2481 DO j = bo(1, 2), bo(2, 2)
2482 DO i = bo(1, 1), bo(2, 1)
2483 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2484 deriv_data(i, j, k)*drb1drb(i, j, k)
2490 IF (
ASSOCIATED(deriv_att))
THEN
2494 DO k = bo(1, 3), bo(2, 3)
2495 DO j = bo(1, 2), bo(2, 2)
2496 DO i = bo(1, 1), bo(2, 1)
2497 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2498 deriv_data(i, j, k)*tau1a(i, j, k)
2504 IF (
ASSOCIATED(deriv_att))
THEN
2508 DO k = bo(1, 3), bo(2, 3)
2509 DO j = bo(1, 2), bo(2, 2)
2510 DO i = bo(1, 1), bo(2, 1)
2511 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2512 deriv_data(i, j, k)*tau1b(i, j, k)
2518 IF (
ASSOCIATED(deriv_att))
THEN
2522 DO k = bo(1, 3), bo(2, 3)
2523 DO j = bo(1, 2), bo(2, 2)
2524 DO i = bo(1, 1), bo(2, 1)
2525 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2526 deriv_data(i, j, k)*laplace1a(i, j, k)
2532 IF (
ASSOCIATED(deriv_att))
THEN
2536 DO k = bo(1, 3), bo(2, 3)
2537 DO j = bo(1, 2), bo(2, 2)
2538 DO i = bo(1, 1), bo(2, 1)
2539 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
2540 deriv_data(i, j, k)*laplace1b(i, j, k)
2548 IF (
ASSOCIATED(deriv_att))
THEN
2552 DO k = bo(1, 3), bo(2, 3)
2553 DO j = bo(1, 2), bo(2, 2)
2554 DO i = bo(1, 1), bo(2, 1)
2555 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2556 deriv_data(i, j, k)*rho1a(i, j, k)
2557 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2558 deriv_data(i, j, k)*rho1a(i, j, k)
2564 IF (
ASSOCIATED(deriv_att))
THEN
2568 DO k = bo(1, 3), bo(2, 3)
2569 DO j = bo(1, 2), bo(2, 2)
2570 DO i = bo(1, 1), bo(2, 1)
2571 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2572 deriv_data(i, j, k)*rho1b(i, j, k)
2573 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2574 deriv_data(i, j, k)*rho1b(i, j, k)
2580 IF (
ASSOCIATED(deriv_att))
THEN
2584 DO k = bo(1, 3), bo(2, 3)
2585 DO j = bo(1, 2), bo(2, 2)
2586 DO i = bo(1, 1), bo(2, 1)
2587 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2588 deriv_data(i, j, k)*dr1dr(i, j, k)
2589 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2590 deriv_data(i, j, k)*dr1dr(i, j, k)
2596 IF (
ASSOCIATED(deriv_att))
THEN
2600 DO k = bo(1, 3), bo(2, 3)
2601 DO j = bo(1, 2), bo(2, 2)
2602 DO i = bo(1, 1), bo(2, 1)
2603 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2604 deriv_data(i, j, k)*dra1dra(i, j, k)
2605 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2606 deriv_data(i, j, k)*dra1dra(i, j, k)
2612 IF (
ASSOCIATED(deriv_att))
THEN
2616 DO k = bo(1, 3), bo(2, 3)
2617 DO j = bo(1, 2), bo(2, 2)
2618 DO i = bo(1, 1), bo(2, 1)
2619 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2620 deriv_data(i, j, k)*drb1drb(i, j, k)
2621 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2622 deriv_data(i, j, k)*drb1drb(i, j, k)
2628 IF (
ASSOCIATED(deriv_att))
THEN
2632 DO k = bo(1, 3), bo(2, 3)
2633 DO j = bo(1, 2), bo(2, 2)
2634 DO i = bo(1, 1), bo(2, 1)
2635 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2636 deriv_data(i, j, k)*tau1a(i, j, k)
2637 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2638 deriv_data(i, j, k)*tau1a(i, j, k)
2644 IF (
ASSOCIATED(deriv_att))
THEN
2648 DO k = bo(1, 3), bo(2, 3)
2649 DO j = bo(1, 2), bo(2, 2)
2650 DO i = bo(1, 1), bo(2, 1)
2651 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2652 deriv_data(i, j, k)*tau1b(i, j, k)
2653 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2654 deriv_data(i, j, k)*tau1b(i, j, k)
2660 IF (
ASSOCIATED(deriv_att))
THEN
2664 DO k = bo(1, 3), bo(2, 3)
2665 DO j = bo(1, 2), bo(2, 2)
2666 DO i = bo(1, 1), bo(2, 1)
2667 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2668 deriv_data(i, j, k)*laplace1a(i, j, k)
2669 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2670 deriv_data(i, j, k)*laplace1a(i, j, k)
2676 IF (
ASSOCIATED(deriv_att))
THEN
2680 DO k = bo(1, 3), bo(2, 3)
2681 DO j = bo(1, 2), bo(2, 2)
2682 DO i = bo(1, 1), bo(2, 1)
2683 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
2684 deriv_data(i, j, k)*laplace1b(i, j, k)
2685 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
2686 deriv_data(i, j, k)*laplace1b(i, j, k)
2693 IF (
ASSOCIATED(deriv_att))
THEN
2697 IF (my_compute_virial)
THEN
2698 CALL virial_drho_drho1(virial_pw, drho, drho1, deriv_data, virial_xc)
2702 v_drho(1)%array(:, :, :) = v_drho(1)%array(:, :, :) + &
2703 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
2704 v_drho(2)%array(:, :, :) = v_drho(2)%array(:, :, :) + &
2705 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
2710 IF (
ASSOCIATED(deriv_att))
THEN
2714 DO k = bo(1, 3), bo(2, 3)
2715 DO j = bo(1, 2), bo(2, 2)
2716 DO i = bo(1, 1), bo(2, 1)
2717 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2718 deriv_data(i, j, k)*rho1a(i, j, k)
2724 IF (
ASSOCIATED(deriv_att))
THEN
2728 DO k = bo(1, 3), bo(2, 3)
2729 DO j = bo(1, 2), bo(2, 2)
2730 DO i = bo(1, 1), bo(2, 1)
2731 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2732 deriv_data(i, j, k)*rho1b(i, j, k)
2738 IF (
ASSOCIATED(deriv_att))
THEN
2742 DO k = bo(1, 3), bo(2, 3)
2743 DO j = bo(1, 2), bo(2, 2)
2744 DO i = bo(1, 1), bo(2, 1)
2745 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2746 deriv_data(i, j, k)*dr1dr(i, j, k)
2752 IF (
ASSOCIATED(deriv_att))
THEN
2756 DO k = bo(1, 3), bo(2, 3)
2757 DO j = bo(1, 2), bo(2, 2)
2758 DO i = bo(1, 1), bo(2, 1)
2759 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2760 deriv_data(i, j, k)*dra1dra(i, j, k)
2766 IF (
ASSOCIATED(deriv_att))
THEN
2770 DO k = bo(1, 3), bo(2, 3)
2771 DO j = bo(1, 2), bo(2, 2)
2772 DO i = bo(1, 1), bo(2, 1)
2773 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2774 deriv_data(i, j, k)*drb1drb(i, j, k)
2780 IF (
ASSOCIATED(deriv_att))
THEN
2784 DO k = bo(1, 3), bo(2, 3)
2785 DO j = bo(1, 2), bo(2, 2)
2786 DO i = bo(1, 1), bo(2, 1)
2787 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2788 deriv_data(i, j, k)*tau1a(i, j, k)
2794 IF (
ASSOCIATED(deriv_att))
THEN
2798 DO k = bo(1, 3), bo(2, 3)
2799 DO j = bo(1, 2), bo(2, 2)
2800 DO i = bo(1, 1), bo(2, 1)
2801 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2802 deriv_data(i, j, k)*tau1b(i, j, k)
2808 IF (
ASSOCIATED(deriv_att))
THEN
2812 DO k = bo(1, 3), bo(2, 3)
2813 DO j = bo(1, 2), bo(2, 2)
2814 DO i = bo(1, 1), bo(2, 1)
2815 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2816 deriv_data(i, j, k)*laplace1a(i, j, k)
2822 IF (
ASSOCIATED(deriv_att))
THEN
2826 DO k = bo(1, 3), bo(2, 3)
2827 DO j = bo(1, 2), bo(2, 2)
2828 DO i = bo(1, 1), bo(2, 1)
2829 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
2830 deriv_data(i, j, k)*laplace1b(i, j, k)
2837 IF (
ASSOCIATED(deriv_att))
THEN
2841 IF (my_compute_virial)
THEN
2842 CALL virial_drho_drho1(virial_pw, drhoa, drho1a, deriv_data, virial_xc)
2846 v_drhoa(1)%array(:, :, :) = v_drhoa(1)%array(:, :, :) + &
2847 deriv_data(:, :, :)*dra1dra(:, :, :)/max(gradient_cut, norm_drhoa(:, :, :))**2
2852 IF (
ASSOCIATED(deriv_att))
THEN
2856 DO k = bo(1, 3), bo(2, 3)
2857 DO j = bo(1, 2), bo(2, 2)
2858 DO i = bo(1, 1), bo(2, 1)
2859 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2860 deriv_data(i, j, k)*rho1a(i, j, k)
2866 IF (
ASSOCIATED(deriv_att))
THEN
2870 DO k = bo(1, 3), bo(2, 3)
2871 DO j = bo(1, 2), bo(2, 2)
2872 DO i = bo(1, 1), bo(2, 1)
2873 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2874 deriv_data(i, j, k)*rho1b(i, j, k)
2880 IF (
ASSOCIATED(deriv_att))
THEN
2884 DO k = bo(1, 3), bo(2, 3)
2885 DO j = bo(1, 2), bo(2, 2)
2886 DO i = bo(1, 1), bo(2, 1)
2887 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2888 deriv_data(i, j, k)*dr1dr(i, j, k)
2894 IF (
ASSOCIATED(deriv_att))
THEN
2898 DO k = bo(1, 3), bo(2, 3)
2899 DO j = bo(1, 2), bo(2, 2)
2900 DO i = bo(1, 1), bo(2, 1)
2901 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2902 deriv_data(i, j, k)*dra1dra(i, j, k)
2908 IF (
ASSOCIATED(deriv_att))
THEN
2912 DO k = bo(1, 3), bo(2, 3)
2913 DO j = bo(1, 2), bo(2, 2)
2914 DO i = bo(1, 1), bo(2, 1)
2915 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2916 deriv_data(i, j, k)*drb1drb(i, j, k)
2922 IF (
ASSOCIATED(deriv_att))
THEN
2926 DO k = bo(1, 3), bo(2, 3)
2927 DO j = bo(1, 2), bo(2, 2)
2928 DO i = bo(1, 1), bo(2, 1)
2929 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2930 deriv_data(i, j, k)*tau1a(i, j, k)
2936 IF (
ASSOCIATED(deriv_att))
THEN
2940 DO k = bo(1, 3), bo(2, 3)
2941 DO j = bo(1, 2), bo(2, 2)
2942 DO i = bo(1, 1), bo(2, 1)
2943 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2944 deriv_data(i, j, k)*tau1b(i, j, k)
2950 IF (
ASSOCIATED(deriv_att))
THEN
2954 DO k = bo(1, 3), bo(2, 3)
2955 DO j = bo(1, 2), bo(2, 2)
2956 DO i = bo(1, 1), bo(2, 1)
2957 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2958 deriv_data(i, j, k)*laplace1a(i, j, k)
2964 IF (
ASSOCIATED(deriv_att))
THEN
2968 DO k = bo(1, 3), bo(2, 3)
2969 DO j = bo(1, 2), bo(2, 2)
2970 DO i = bo(1, 1), bo(2, 1)
2971 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
2972 deriv_data(i, j, k)*laplace1b(i, j, k)
2979 IF (
ASSOCIATED(deriv_att))
THEN
2983 IF (my_compute_virial)
THEN
2984 CALL virial_drho_drho1(virial_pw, drhob, drho1b, deriv_data, virial_xc)
2988 v_drhob(2)%array(:, :, :) = v_drhob(2)%array(:, :, :) + &
2989 deriv_data(:, :, :)*drb1drb(:, :, :)/max(gradient_cut, norm_drhob(:, :, :))**2
2994 IF (
ASSOCIATED(deriv_att))
THEN
2998 DO k = bo(1, 3), bo(2, 3)
2999 DO j = bo(1, 2), bo(2, 2)
3000 DO i = bo(1, 1), bo(2, 1)
3001 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3002 deriv_data(i, j, k)*rho1a(i, j, k)
3008 IF (
ASSOCIATED(deriv_att))
THEN
3012 DO k = bo(1, 3), bo(2, 3)
3013 DO j = bo(1, 2), bo(2, 2)
3014 DO i = bo(1, 1), bo(2, 1)
3015 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3016 deriv_data(i, j, k)*rho1b(i, j, k)
3022 IF (
ASSOCIATED(deriv_att))
THEN
3026 DO k = bo(1, 3), bo(2, 3)
3027 DO j = bo(1, 2), bo(2, 2)
3028 DO i = bo(1, 1), bo(2, 1)
3029 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3030 deriv_data(i, j, k)*dr1dr(i, j, k)
3036 IF (
ASSOCIATED(deriv_att))
THEN
3040 DO k = bo(1, 3), bo(2, 3)
3041 DO j = bo(1, 2), bo(2, 2)
3042 DO i = bo(1, 1), bo(2, 1)
3043 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3044 deriv_data(i, j, k)*dra1dra(i, j, k)
3050 IF (
ASSOCIATED(deriv_att))
THEN
3054 DO k = bo(1, 3), bo(2, 3)
3055 DO j = bo(1, 2), bo(2, 2)
3056 DO i = bo(1, 1), bo(2, 1)
3057 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3058 deriv_data(i, j, k)*drb1drb(i, j, k)
3064 IF (
ASSOCIATED(deriv_att))
THEN
3068 DO k = bo(1, 3), bo(2, 3)
3069 DO j = bo(1, 2), bo(2, 2)
3070 DO i = bo(1, 1), bo(2, 1)
3071 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3072 deriv_data(i, j, k)*tau1a(i, j, k)
3078 IF (
ASSOCIATED(deriv_att))
THEN
3082 DO k = bo(1, 3), bo(2, 3)
3083 DO j = bo(1, 2), bo(2, 2)
3084 DO i = bo(1, 1), bo(2, 1)
3085 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3086 deriv_data(i, j, k)*tau1b(i, j, k)
3092 IF (
ASSOCIATED(deriv_att))
THEN
3096 DO k = bo(1, 3), bo(2, 3)
3097 DO j = bo(1, 2), bo(2, 2)
3098 DO i = bo(1, 1), bo(2, 1)
3099 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3100 deriv_data(i, j, k)*laplace1a(i, j, k)
3106 IF (
ASSOCIATED(deriv_att))
THEN
3110 DO k = bo(1, 3), bo(2, 3)
3111 DO j = bo(1, 2), bo(2, 2)
3112 DO i = bo(1, 1), bo(2, 1)
3113 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3114 deriv_data(i, j, k)*laplace1b(i, j, k)
3122 IF (
ASSOCIATED(deriv_att))
THEN
3126 DO k = bo(1, 3), bo(2, 3)
3127 DO j = bo(1, 2), bo(2, 2)
3128 DO i = bo(1, 1), bo(2, 1)
3129 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3130 deriv_data(i, j, k)*rho1a(i, j, k)
3136 IF (
ASSOCIATED(deriv_att))
THEN
3140 DO k = bo(1, 3), bo(2, 3)
3141 DO j = bo(1, 2), bo(2, 2)
3142 DO i = bo(1, 1), bo(2, 1)
3143 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3144 deriv_data(i, j, k)*rho1b(i, j, k)
3150 IF (
ASSOCIATED(deriv_att))
THEN
3154 DO k = bo(1, 3), bo(2, 3)
3155 DO j = bo(1, 2), bo(2, 2)
3156 DO i = bo(1, 1), bo(2, 1)
3157 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3158 deriv_data(i, j, k)*dr1dr(i, j, k)
3164 IF (
ASSOCIATED(deriv_att))
THEN
3168 DO k = bo(1, 3), bo(2, 3)
3169 DO j = bo(1, 2), bo(2, 2)
3170 DO i = bo(1, 1), bo(2, 1)
3171 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3172 deriv_data(i, j, k)*dra1dra(i, j, k)
3178 IF (
ASSOCIATED(deriv_att))
THEN
3182 DO k = bo(1, 3), bo(2, 3)
3183 DO j = bo(1, 2), bo(2, 2)
3184 DO i = bo(1, 1), bo(2, 1)
3185 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3186 deriv_data(i, j, k)*drb1drb(i, j, k)
3192 IF (
ASSOCIATED(deriv_att))
THEN
3196 DO k = bo(1, 3), bo(2, 3)
3197 DO j = bo(1, 2), bo(2, 2)
3198 DO i = bo(1, 1), bo(2, 1)
3199 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3200 deriv_data(i, j, k)*tau1a(i, j, k)
3206 IF (
ASSOCIATED(deriv_att))
THEN
3210 DO k = bo(1, 3), bo(2, 3)
3211 DO j = bo(1, 2), bo(2, 2)
3212 DO i = bo(1, 1), bo(2, 1)
3213 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3214 deriv_data(i, j, k)*tau1b(i, j, k)
3220 IF (
ASSOCIATED(deriv_att))
THEN
3224 DO k = bo(1, 3), bo(2, 3)
3225 DO j = bo(1, 2), bo(2, 2)
3226 DO i = bo(1, 1), bo(2, 1)
3227 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3228 deriv_data(i, j, k)*laplace1a(i, j, k)
3234 IF (
ASSOCIATED(deriv_att))
THEN
3238 DO k = bo(1, 3), bo(2, 3)
3239 DO j = bo(1, 2), bo(2, 2)
3240 DO i = bo(1, 1), bo(2, 1)
3241 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + &
3242 deriv_data(i, j, k)*laplace1b(i, j, k)
3250 IF (
ASSOCIATED(deriv_att))
THEN
3254 DO k = bo(1, 3), bo(2, 3)
3255 DO j = bo(1, 2), bo(2, 2)
3256 DO i = bo(1, 1), bo(2, 1)
3257 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3258 deriv_data(i, j, k)*rho1a(i, j, k)
3264 IF (
ASSOCIATED(deriv_att))
THEN
3268 DO k = bo(1, 3), bo(2, 3)
3269 DO j = bo(1, 2), bo(2, 2)
3270 DO i = bo(1, 1), bo(2, 1)
3271 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3272 deriv_data(i, j, k)*rho1b(i, j, k)
3278 IF (
ASSOCIATED(deriv_att))
THEN
3282 DO k = bo(1, 3), bo(2, 3)
3283 DO j = bo(1, 2), bo(2, 2)
3284 DO i = bo(1, 1), bo(2, 1)
3285 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3286 deriv_data(i, j, k)*dr1dr(i, j, k)
3292 IF (
ASSOCIATED(deriv_att))
THEN
3296 DO k = bo(1, 3), bo(2, 3)
3297 DO j = bo(1, 2), bo(2, 2)
3298 DO i = bo(1, 1), bo(2, 1)
3299 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3300 deriv_data(i, j, k)*dra1dra(i, j, k)
3306 IF (
ASSOCIATED(deriv_att))
THEN
3310 DO k = bo(1, 3), bo(2, 3)
3311 DO j = bo(1, 2), bo(2, 2)
3312 DO i = bo(1, 1), bo(2, 1)
3313 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3314 deriv_data(i, j, k)*drb1drb(i, j, k)
3320 IF (
ASSOCIATED(deriv_att))
THEN
3324 DO k = bo(1, 3), bo(2, 3)
3325 DO j = bo(1, 2), bo(2, 2)
3326 DO i = bo(1, 1), bo(2, 1)
3327 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3328 deriv_data(i, j, k)*tau1a(i, j, k)
3334 IF (
ASSOCIATED(deriv_att))
THEN
3338 DO k = bo(1, 3), bo(2, 3)
3339 DO j = bo(1, 2), bo(2, 2)
3340 DO i = bo(1, 1), bo(2, 1)
3341 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3342 deriv_data(i, j, k)*tau1b(i, j, k)
3348 IF (
ASSOCIATED(deriv_att))
THEN
3352 DO k = bo(1, 3), bo(2, 3)
3353 DO j = bo(1, 2), bo(2, 2)
3354 DO i = bo(1, 1), bo(2, 1)
3355 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3356 deriv_data(i, j, k)*laplace1a(i, j, k)
3362 IF (
ASSOCIATED(deriv_att))
THEN
3366 DO k = bo(1, 3), bo(2, 3)
3367 DO j = bo(1, 2), bo(2, 2)
3368 DO i = bo(1, 1), bo(2, 1)
3369 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
3370 deriv_data(i, j, k)*laplace1b(i, j, k)
3377 IF (my_compute_virial)
THEN
3379 IF (
ASSOCIATED(deriv_att))
THEN
3382 virial_pw%array(:, :, :) = -rho1a(:, :, :)
3383 CALL virial_laplace(virial_pw, pw_pool, virial_xc, deriv_data)
3387 IF (
ASSOCIATED(deriv_att))
THEN
3391 DO k = bo(1, 3), bo(2, 3)
3392 DO j = bo(1, 2), bo(2, 2)
3393 DO i = bo(1, 1), bo(2, 1)
3394 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3395 deriv_data(i, j, k)*rho1a(i, j, k)
3401 IF (
ASSOCIATED(deriv_att))
THEN
3405 DO k = bo(1, 3), bo(2, 3)
3406 DO j = bo(1, 2), bo(2, 2)
3407 DO i = bo(1, 1), bo(2, 1)
3408 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3409 deriv_data(i, j, k)*rho1b(i, j, k)
3415 IF (
ASSOCIATED(deriv_att))
THEN
3419 DO k = bo(1, 3), bo(2, 3)
3420 DO j = bo(1, 2), bo(2, 2)
3421 DO i = bo(1, 1), bo(2, 1)
3422 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3423 deriv_data(i, j, k)*dr1dr(i, j, k)
3429 IF (
ASSOCIATED(deriv_att))
THEN
3433 DO k = bo(1, 3), bo(2, 3)
3434 DO j = bo(1, 2), bo(2, 2)
3435 DO i = bo(1, 1), bo(2, 1)
3436 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3437 deriv_data(i, j, k)*dra1dra(i, j, k)
3443 IF (
ASSOCIATED(deriv_att))
THEN
3447 DO k = bo(1, 3), bo(2, 3)
3448 DO j = bo(1, 2), bo(2, 2)
3449 DO i = bo(1, 1), bo(2, 1)
3450 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3451 deriv_data(i, j, k)*drb1drb(i, j, k)
3457 IF (
ASSOCIATED(deriv_att))
THEN
3461 DO k = bo(1, 3), bo(2, 3)
3462 DO j = bo(1, 2), bo(2, 2)
3463 DO i = bo(1, 1), bo(2, 1)
3464 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3465 deriv_data(i, j, k)*tau1a(i, j, k)
3471 IF (
ASSOCIATED(deriv_att))
THEN
3475 DO k = bo(1, 3), bo(2, 3)
3476 DO j = bo(1, 2), bo(2, 2)
3477 DO i = bo(1, 1), bo(2, 1)
3478 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3479 deriv_data(i, j, k)*tau1b(i, j, k)
3485 IF (
ASSOCIATED(deriv_att))
THEN
3489 DO k = bo(1, 3), bo(2, 3)
3490 DO j = bo(1, 2), bo(2, 2)
3491 DO i = bo(1, 1), bo(2, 1)
3492 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3493 deriv_data(i, j, k)*laplace1a(i, j, k)
3499 IF (
ASSOCIATED(deriv_att))
THEN
3503 DO k = bo(1, 3), bo(2, 3)
3504 DO j = bo(1, 2), bo(2, 2)
3505 DO i = bo(1, 1), bo(2, 1)
3506 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
3507 deriv_data(i, j, k)*laplace1b(i, j, k)
3514 IF (my_compute_virial)
THEN
3516 IF (
ASSOCIATED(deriv_att))
THEN
3519 virial_pw%array(:, :, :) = -rho1b(:, :, :)
3520 CALL virial_laplace(virial_pw, pw_pool, virial_xc, deriv_data)
3529 IF (
ASSOCIATED(deriv_att))
THEN
3533 DO k = bo(1, 3), bo(2, 3)
3534 DO j = bo(1, 2), bo(2, 2)
3535 DO i = bo(1, 1), bo(2, 1)
3536 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3537 deriv_data(i, j, k)*rho1a(i, j, k)
3543 IF (
ASSOCIATED(deriv_att))
THEN
3547 DO k = bo(1, 3), bo(2, 3)
3548 DO j = bo(1, 2), bo(2, 2)
3549 DO i = bo(1, 1), bo(2, 1)
3550 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3551 deriv_data(i, j, k)*dr1dr(i, j, k)
3557 IF (
ASSOCIATED(deriv_att))
THEN
3561 DO k = bo(1, 3), bo(2, 3)
3562 DO j = bo(1, 2), bo(2, 2)
3563 DO i = bo(1, 1), bo(2, 1)
3564 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3565 deriv_data(i, j, k)*dra1dra(i, j, k)
3571 IF (
ASSOCIATED(deriv_att))
THEN
3575 DO k = bo(1, 3), bo(2, 3)
3576 DO j = bo(1, 2), bo(2, 2)
3577 DO i = bo(1, 1), bo(2, 1)
3578 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3579 deriv_data(i, j, k)*tau1a(i, j, k)
3585 IF (
ASSOCIATED(deriv_att))
THEN
3589 DO k = bo(1, 3), bo(2, 3)
3590 DO j = bo(1, 2), bo(2, 2)
3591 DO i = bo(1, 1), bo(2, 1)
3592 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3593 deriv_data(i, j, k)*laplace1a(i, j, k)
3599 IF (
ASSOCIATED(deriv_att))
THEN
3603 DO k = bo(1, 3), bo(2, 3)
3604 DO j = bo(1, 2), bo(2, 2)
3605 DO i = bo(1, 1), bo(2, 1)
3606 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3607 fac*deriv_data(i, j, k)*rho1b(i, j, k)
3613 IF (
ASSOCIATED(deriv_att))
THEN
3617 DO k = bo(1, 3), bo(2, 3)
3618 DO j = bo(1, 2), bo(2, 2)
3619 DO i = bo(1, 1), bo(2, 1)
3620 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3621 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
3627 IF (
ASSOCIATED(deriv_att))
THEN
3631 DO k = bo(1, 3), bo(2, 3)
3632 DO j = bo(1, 2), bo(2, 2)
3633 DO i = bo(1, 1), bo(2, 1)
3634 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3635 fac*deriv_data(i, j, k)*tau1b(i, j, k)
3641 IF (
ASSOCIATED(deriv_att))
THEN
3645 DO k = bo(1, 3), bo(2, 3)
3646 DO j = bo(1, 2), bo(2, 2)
3647 DO i = bo(1, 1), bo(2, 1)
3648 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
3649 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
3657 IF (
ASSOCIATED(deriv_att))
THEN
3661 DO k = bo(1, 3), bo(2, 3)
3662 DO j = bo(1, 2), bo(2, 2)
3663 DO i = bo(1, 1), bo(2, 1)
3664 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3665 deriv_data(i, j, k)*rho1a(i, j, k)
3671 IF (
ASSOCIATED(deriv_att))
THEN
3675 DO k = bo(1, 3), bo(2, 3)
3676 DO j = bo(1, 2), bo(2, 2)
3677 DO i = bo(1, 1), bo(2, 1)
3678 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3679 deriv_data(i, j, k)*dr1dr(i, j, k)
3685 IF (
ASSOCIATED(deriv_att))
THEN
3689 DO k = bo(1, 3), bo(2, 3)
3690 DO j = bo(1, 2), bo(2, 2)
3691 DO i = bo(1, 1), bo(2, 1)
3692 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3693 deriv_data(i, j, k)*dra1dra(i, j, k)
3699 IF (
ASSOCIATED(deriv_att))
THEN
3703 DO k = bo(1, 3), bo(2, 3)
3704 DO j = bo(1, 2), bo(2, 2)
3705 DO i = bo(1, 1), bo(2, 1)
3706 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3707 deriv_data(i, j, k)*tau1a(i, j, k)
3713 IF (
ASSOCIATED(deriv_att))
THEN
3717 DO k = bo(1, 3), bo(2, 3)
3718 DO j = bo(1, 2), bo(2, 2)
3719 DO i = bo(1, 1), bo(2, 1)
3720 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3721 deriv_data(i, j, k)*laplace1a(i, j, k)
3727 IF (
ASSOCIATED(deriv_att))
THEN
3731 DO k = bo(1, 3), bo(2, 3)
3732 DO j = bo(1, 2), bo(2, 2)
3733 DO i = bo(1, 1), bo(2, 1)
3734 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3735 fac*deriv_data(i, j, k)*rho1b(i, j, k)
3741 IF (
ASSOCIATED(deriv_att))
THEN
3745 DO k = bo(1, 3), bo(2, 3)
3746 DO j = bo(1, 2), bo(2, 2)
3747 DO i = bo(1, 1), bo(2, 1)
3748 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3749 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
3755 IF (
ASSOCIATED(deriv_att))
THEN
3759 DO k = bo(1, 3), bo(2, 3)
3760 DO j = bo(1, 2), bo(2, 2)
3761 DO i = bo(1, 1), bo(2, 1)
3762 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3763 fac*deriv_data(i, j, k)*tau1b(i, j, k)
3769 IF (
ASSOCIATED(deriv_att))
THEN
3773 DO k = bo(1, 3), bo(2, 3)
3774 DO j = bo(1, 2), bo(2, 2)
3775 DO i = bo(1, 1), bo(2, 1)
3776 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
3777 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
3784 IF (
ASSOCIATED(deriv_att))
THEN
3790 v_drho(1)%array(:, :, :) = v_drho(1)%array(:, :, :) + &
3791 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
3796 IF (
ASSOCIATED(deriv_att))
THEN
3800 DO k = bo(1, 3), bo(2, 3)
3801 DO j = bo(1, 2), bo(2, 2)
3802 DO i = bo(1, 1), bo(2, 1)
3803 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3804 deriv_data(i, j, k)*rho1a(i, j, k)
3810 IF (
ASSOCIATED(deriv_att))
THEN
3814 DO k = bo(1, 3), bo(2, 3)
3815 DO j = bo(1, 2), bo(2, 2)
3816 DO i = bo(1, 1), bo(2, 1)
3817 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3818 deriv_data(i, j, k)*dr1dr(i, j, k)
3824 IF (
ASSOCIATED(deriv_att))
THEN
3828 DO k = bo(1, 3), bo(2, 3)
3829 DO j = bo(1, 2), bo(2, 2)
3830 DO i = bo(1, 1), bo(2, 1)
3831 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3832 deriv_data(i, j, k)*dra1dra(i, j, k)
3838 IF (
ASSOCIATED(deriv_att))
THEN
3842 DO k = bo(1, 3), bo(2, 3)
3843 DO j = bo(1, 2), bo(2, 2)
3844 DO i = bo(1, 1), bo(2, 1)
3845 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3846 deriv_data(i, j, k)*tau1a(i, j, k)
3852 IF (
ASSOCIATED(deriv_att))
THEN
3856 DO k = bo(1, 3), bo(2, 3)
3857 DO j = bo(1, 2), bo(2, 2)
3858 DO i = bo(1, 1), bo(2, 1)
3859 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3860 deriv_data(i, j, k)*laplace1a(i, j, k)
3866 IF (
ASSOCIATED(deriv_att))
THEN
3870 DO k = bo(1, 3), bo(2, 3)
3871 DO j = bo(1, 2), bo(2, 2)
3872 DO i = bo(1, 1), bo(2, 1)
3873 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3874 fac*deriv_data(i, j, k)*rho1b(i, j, k)
3880 IF (
ASSOCIATED(deriv_att))
THEN
3884 DO k = bo(1, 3), bo(2, 3)
3885 DO j = bo(1, 2), bo(2, 2)
3886 DO i = bo(1, 1), bo(2, 1)
3887 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3888 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
3894 IF (
ASSOCIATED(deriv_att))
THEN
3898 DO k = bo(1, 3), bo(2, 3)
3899 DO j = bo(1, 2), bo(2, 2)
3900 DO i = bo(1, 1), bo(2, 1)
3901 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3902 fac*deriv_data(i, j, k)*tau1b(i, j, k)
3908 IF (
ASSOCIATED(deriv_att))
THEN
3912 DO k = bo(1, 3), bo(2, 3)
3913 DO j = bo(1, 2), bo(2, 2)
3914 DO i = bo(1, 1), bo(2, 1)
3915 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
3916 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
3923 IF (
ASSOCIATED(deriv_att))
THEN
3929 v_drhoa(1)%array(:, :, :) = v_drhoa(1)%array(:, :, :) + &
3930 deriv_data(:, :, :)*dra1dra(:, :, :)/max(gradient_cut, norm_drhoa(:, :, :))**2
3935 IF (
ASSOCIATED(deriv_att))
THEN
3939 DO k = bo(1, 3), bo(2, 3)
3940 DO j = bo(1, 2), bo(2, 2)
3941 DO i = bo(1, 1), bo(2, 1)
3942 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3943 deriv_data(i, j, k)*rho1a(i, j, k)
3949 IF (
ASSOCIATED(deriv_att))
THEN
3953 DO k = bo(1, 3), bo(2, 3)
3954 DO j = bo(1, 2), bo(2, 2)
3955 DO i = bo(1, 1), bo(2, 1)
3956 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3957 deriv_data(i, j, k)*dr1dr(i, j, k)
3963 IF (
ASSOCIATED(deriv_att))
THEN
3967 DO k = bo(1, 3), bo(2, 3)
3968 DO j = bo(1, 2), bo(2, 2)
3969 DO i = bo(1, 1), bo(2, 1)
3970 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3971 deriv_data(i, j, k)*dra1dra(i, j, k)
3977 IF (
ASSOCIATED(deriv_att))
THEN
3981 DO k = bo(1, 3), bo(2, 3)
3982 DO j = bo(1, 2), bo(2, 2)
3983 DO i = bo(1, 1), bo(2, 1)
3984 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3985 deriv_data(i, j, k)*tau1a(i, j, k)
3991 IF (
ASSOCIATED(deriv_att))
THEN
3995 DO k = bo(1, 3), bo(2, 3)
3996 DO j = bo(1, 2), bo(2, 2)
3997 DO i = bo(1, 1), bo(2, 1)
3998 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
3999 deriv_data(i, j, k)*laplace1a(i, j, k)
4005 IF (
ASSOCIATED(deriv_att))
THEN
4009 DO k = bo(1, 3), bo(2, 3)
4010 DO j = bo(1, 2), bo(2, 2)
4011 DO i = bo(1, 1), bo(2, 1)
4012 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4013 fac*deriv_data(i, j, k)*rho1b(i, j, k)
4019 IF (
ASSOCIATED(deriv_att))
THEN
4023 DO k = bo(1, 3), bo(2, 3)
4024 DO j = bo(1, 2), bo(2, 2)
4025 DO i = bo(1, 1), bo(2, 1)
4026 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4027 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
4033 IF (
ASSOCIATED(deriv_att))
THEN
4037 DO k = bo(1, 3), bo(2, 3)
4038 DO j = bo(1, 2), bo(2, 2)
4039 DO i = bo(1, 1), bo(2, 1)
4040 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4041 fac*deriv_data(i, j, k)*tau1b(i, j, k)
4047 IF (
ASSOCIATED(deriv_att))
THEN
4051 DO k = bo(1, 3), bo(2, 3)
4052 DO j = bo(1, 2), bo(2, 2)
4053 DO i = bo(1, 1), bo(2, 1)
4054 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4055 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
4063 IF (
ASSOCIATED(deriv_att))
THEN
4067 DO k = bo(1, 3), bo(2, 3)
4068 DO j = bo(1, 2), bo(2, 2)
4069 DO i = bo(1, 1), bo(2, 1)
4070 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4071 deriv_data(i, j, k)*rho1a(i, j, k)
4077 IF (
ASSOCIATED(deriv_att))
THEN
4081 DO k = bo(1, 3), bo(2, 3)
4082 DO j = bo(1, 2), bo(2, 2)
4083 DO i = bo(1, 1), bo(2, 1)
4084 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4085 deriv_data(i, j, k)*dr1dr(i, j, k)
4091 IF (
ASSOCIATED(deriv_att))
THEN
4095 DO k = bo(1, 3), bo(2, 3)
4096 DO j = bo(1, 2), bo(2, 2)
4097 DO i = bo(1, 1), bo(2, 1)
4098 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4099 deriv_data(i, j, k)*dra1dra(i, j, k)
4105 IF (
ASSOCIATED(deriv_att))
THEN
4109 DO k = bo(1, 3), bo(2, 3)
4110 DO j = bo(1, 2), bo(2, 2)
4111 DO i = bo(1, 1), bo(2, 1)
4112 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4113 deriv_data(i, j, k)*tau1a(i, j, k)
4119 IF (
ASSOCIATED(deriv_att))
THEN
4123 DO k = bo(1, 3), bo(2, 3)
4124 DO j = bo(1, 2), bo(2, 2)
4125 DO i = bo(1, 1), bo(2, 1)
4126 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4127 deriv_data(i, j, k)*laplace1a(i, j, k)
4133 IF (
ASSOCIATED(deriv_att))
THEN
4137 DO k = bo(1, 3), bo(2, 3)
4138 DO j = bo(1, 2), bo(2, 2)
4139 DO i = bo(1, 1), bo(2, 1)
4140 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4141 fac*deriv_data(i, j, k)*rho1b(i, j, k)
4147 IF (
ASSOCIATED(deriv_att))
THEN
4151 DO k = bo(1, 3), bo(2, 3)
4152 DO j = bo(1, 2), bo(2, 2)
4153 DO i = bo(1, 1), bo(2, 1)
4154 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4155 fac*deriv_data(i, j, k)*drb1drb(i, j, k)
4161 IF (
ASSOCIATED(deriv_att))
THEN
4165 DO k = bo(1, 3), bo(2, 3)
4166 DO j = bo(1, 2), bo(2, 2)
4167 DO i = bo(1, 1), bo(2, 1)
4168 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4169 fac*deriv_data(i, j, k)*tau1b(i, j, k)
4175 IF (
ASSOCIATED(deriv_att))
THEN
4179 DO k = bo(1, 3), bo(2, 3)
4180 DO j = bo(1, 2), bo(2, 2)
4181 DO i = bo(1, 1), bo(2, 1)
4182 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + &
4183 fac*deriv_data(i, j, k)*laplace1b(i, j, k)
4194 IF (gradient_f)
THEN
4195 IF (.NOT. do_spinflip)
THEN
4197 IF (my_compute_virial)
THEN
4198 CALL virial_drho_drho(virial_pw, drhoa, v_drhoa(1), virial_xc)
4199 CALL virial_drho_drho(virial_pw, drhob, v_drhob(2), virial_xc)
4202 virial_pw%array(:, :, :) = drho(idir)%array(:, :, :)*(v_drho(1)%array(:, :, :) + v_drho(2)%array(:, :, :))
4206 drho(jdir)%array(:, :, :))
4207 virial_xc(jdir, idir) = virial_xc(jdir, idir) + tmp
4208 virial_xc(idir, jdir) = virial_xc(jdir, idir)
4218 DO ir = bo(1, 2), bo(2, 2)
4219 DO ia = bo(1, 1), bo(2, 1)
4221 DO ispin = 1, nspins
4222 vxg(idir, ia, ir, ispin) = &
4223 -(v_drhoa(ispin)%array(ia, ir, 1)*drhoa(idir)%array(ia, ir, 1) + &
4224 v_drhob(ispin)%array(ia, ir, 1)*drhob(idir)%array(ia, ir, 1) + &
4225 v_drho(ispin)%array(ia, ir, 1)*drho(idir)%array(ia, ir, 1))
4227 IF (
ASSOCIATED(e_drhoa))
THEN
4228 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + &
4229 e_drhoa(ia, ir, 1)*drho1a(idir)%array(ia, ir, 1)
4231 IF (nspins /= 1 .AND.
ASSOCIATED(e_drhob))
THEN
4232 vxg(idir, ia, ir, 2) = vxg(idir, ia, ir, 2) + &
4233 e_drhob(ia, ir, 1)*drho1b(idir)%array(ia, ir, 1)
4235 IF (
ASSOCIATED(e_drho))
THEN
4236 IF (nspins /= 1)
THEN
4237 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + &
4238 e_drho(ia, ir, 1)*drho1(idir)%array(ia, ir, 1)
4239 vxg(idir, ia, ir, 2) = vxg(idir, ia, ir, 2) + &
4240 e_drho(ia, ir, 1)*drho1(idir)%array(ia, ir, 1)
4242 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + &
4243 e_drho(ia, ir, 1)*(drho1a(idir)%array(ia, ir, 1) + &
4244 fac*drho1b(idir)%array(ia, ir, 1))
4256 DO ispin = 1, nspins
4259 v_drho_r(idir, ispin)%array(:, :, :) = &
4260 v_drhoa(ispin)%array(:, :, :)*drhoa(idir)%array(:, :, :) + &
4261 v_drhob(ispin)%array(:, :, :)*drhob(idir)%array(:, :, :) + &
4262 v_drho(ispin)%array(:, :, :)*drho(idir)%array(:, :, :)
4265 IF (
ASSOCIATED(e_drhoa))
THEN
4268 v_drho_r(idir, 1)%array(:, :, :) = v_drho_r(idir, 1)%array(:, :, :) - &
4269 e_drhoa(:, :, :)*drho1a(idir)%array(:, :, :)
4272 IF (nspins /= 1 .AND.
ASSOCIATED(e_drhob))
THEN
4275 v_drho_r(idir, 2)%array(:, :, :) = v_drho_r(idir, 2)%array(:, :, :) - &
4276 e_drhob(:, :, :)*drho1b(idir)%array(:, :, :)
4279 IF (
ASSOCIATED(e_drho))
THEN
4282 DO k = bo(1, 3), bo(2, 3)
4283 DO j = bo(1, 2), bo(2, 2)
4284 DO i = bo(1, 1), bo(2, 1)
4285 IF (nspins /= 1)
THEN
4286 v_drho_r(idir, 1)%array(i, j, k) = v_drho_r(idir, 1)%array(i, j, k) - &
4287 e_drho(i, j, k)*drho1(idir)%array(i, j, k)
4288 v_drho_r(idir, 2)%array(i, j, k) = v_drho_r(idir, 2)%array(i, j, k) - &
4289 e_drho(i, j, k)*drho1(idir)%array(i, j, k)
4291 v_drho_r(idir, 1)%array(i, j, k) = v_drho_r(idir, 1)%array(i, j, k) - &
4292 e_drho(i, j, k)*(drho1a(idir)%array(i, j, k) + &
4293 fac*drho1b(idir)%array(i, j, k))
4303 DO ispin = 1, nspins
4304 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, ispin), tmp_g, vxc_g, v_xc(ispin))
4312 DEALLOCATE (drho(idir)%array)
4313 DEALLOCATE (drho1(idir)%array)
4316 DO ispin = 1, nspins
4317 CALL deallocate_pw(v_drhoa(ispin), pw_pool)
4318 CALL deallocate_pw(v_drhob(ispin), pw_pool)
4321 DEALLOCATE (v_drhoa, v_drhob)
4325 IF (laplace_f .AND. my_compute_virial)
THEN
4326 virial_pw%array(:, :, :) = -rhoa(:, :, :)
4327 CALL virial_laplace(virial_pw, pw_pool, virial_xc, v_laplace(1)%array)
4328 virial_pw%array(:, :, :) = -rhob(:, :, :)
4329 CALL virial_laplace(virial_pw, pw_pool, virial_xc, v_laplace(2)%array)
4340 IF (gradient_f)
THEN
4343 CALL prepare_dr1dr(dr1dr, drho, drho1)
4349 ALLOCATE (v_laplace(nspins))
4350 DO ispin = 1, nspins
4351 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
4362 IF (
ASSOCIATED(deriv_att))
THEN
4366 DO k = bo(1, 3), bo(2, 3)
4367 DO j = bo(1, 2), bo(2, 2)
4368 DO i = bo(1, 1), bo(2, 1)
4369 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4370 deriv_data(i, j, k)*rho1(i, j, k)
4376 IF (
ASSOCIATED(deriv_att))
THEN
4380 DO k = bo(1, 3), bo(2, 3)
4381 DO j = bo(1, 2), bo(2, 2)
4382 DO i = bo(1, 1), bo(2, 1)
4383 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4384 deriv_data(i, j, k)*dr1dr(i, j, k)
4390 IF (
ASSOCIATED(deriv_att))
THEN
4394 DO k = bo(1, 3), bo(2, 3)
4395 DO j = bo(1, 2), bo(2, 2)
4396 DO i = bo(1, 1), bo(2, 1)
4397 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4398 deriv_data(i, j, k)*tau1(i, j, k)
4404 IF (
ASSOCIATED(deriv_att))
THEN
4408 DO k = bo(1, 3), bo(2, 3)
4409 DO j = bo(1, 2), bo(2, 2)
4410 DO i = bo(1, 1), bo(2, 1)
4411 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
4412 deriv_data(i, j, k)*laplace1(i, j, k)
4420 IF (
ASSOCIATED(deriv_att))
THEN
4424 DO k = bo(1, 3), bo(2, 3)
4425 DO j = bo(1, 2), bo(2, 2)
4426 DO i = bo(1, 1), bo(2, 1)
4427 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4428 deriv_data(i, j, k)*rho1(i, j, k)
4434 IF (
ASSOCIATED(deriv_att))
THEN
4438 DO k = bo(1, 3), bo(2, 3)
4439 DO j = bo(1, 2), bo(2, 2)
4440 DO i = bo(1, 1), bo(2, 1)
4441 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4442 deriv_data(i, j, k)*dr1dr(i, j, k)
4448 IF (
ASSOCIATED(deriv_att))
THEN
4452 DO k = bo(1, 3), bo(2, 3)
4453 DO j = bo(1, 2), bo(2, 2)
4454 DO i = bo(1, 1), bo(2, 1)
4455 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4456 deriv_data(i, j, k)*tau1(i, j, k)
4462 IF (
ASSOCIATED(deriv_att))
THEN
4466 DO k = bo(1, 3), bo(2, 3)
4467 DO j = bo(1, 2), bo(2, 2)
4468 DO i = bo(1, 1), bo(2, 1)
4469 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
4470 deriv_data(i, j, k)*laplace1(i, j, k)
4477 IF (
ASSOCIATED(deriv_att))
THEN
4481 IF (my_compute_virial)
THEN
4482 CALL virial_drho_drho1(virial_pw, drho, drho1, deriv_data, virial_xc)
4486 v_drho(1)%array(:, :, :) = v_drho(1)%array(:, :, :) + &
4487 deriv_data(:, :, :)*dr1dr(:, :, :)/max(gradient_cut, norm_drho(:, :, :))**2
4492 IF (
ASSOCIATED(deriv_att))
THEN
4496 DO k = bo(1, 3), bo(2, 3)
4497 DO j = bo(1, 2), bo(2, 2)
4498 DO i = bo(1, 1), bo(2, 1)
4499 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4500 deriv_data(i, j, k)*rho1(i, j, k)
4506 IF (
ASSOCIATED(deriv_att))
THEN
4510 DO k = bo(1, 3), bo(2, 3)
4511 DO j = bo(1, 2), bo(2, 2)
4512 DO i = bo(1, 1), bo(2, 1)
4513 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4514 deriv_data(i, j, k)*dr1dr(i, j, k)
4520 IF (
ASSOCIATED(deriv_att))
THEN
4524 DO k = bo(1, 3), bo(2, 3)
4525 DO j = bo(1, 2), bo(2, 2)
4526 DO i = bo(1, 1), bo(2, 1)
4527 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4528 deriv_data(i, j, k)*tau1(i, j, k)
4534 IF (
ASSOCIATED(deriv_att))
THEN
4538 DO k = bo(1, 3), bo(2, 3)
4539 DO j = bo(1, 2), bo(2, 2)
4540 DO i = bo(1, 1), bo(2, 1)
4541 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + &
4542 deriv_data(i, j, k)*laplace1(i, j, k)
4550 IF (
ASSOCIATED(deriv_att))
THEN
4554 DO k = bo(1, 3), bo(2, 3)
4555 DO j = bo(1, 2), bo(2, 2)
4556 DO i = bo(1, 1), bo(2, 1)
4557 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4558 deriv_data(i, j, k)*rho1(i, j, k)
4564 IF (
ASSOCIATED(deriv_att))
THEN
4568 DO k = bo(1, 3), bo(2, 3)
4569 DO j = bo(1, 2), bo(2, 2)
4570 DO i = bo(1, 1), bo(2, 1)
4571 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4572 deriv_data(i, j, k)*dr1dr(i, j, k)
4578 IF (
ASSOCIATED(deriv_att))
THEN
4582 DO k = bo(1, 3), bo(2, 3)
4583 DO j = bo(1, 2), bo(2, 2)
4584 DO i = bo(1, 1), bo(2, 1)
4585 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4586 deriv_data(i, j, k)*tau1(i, j, k)
4592 IF (
ASSOCIATED(deriv_att))
THEN
4596 DO k = bo(1, 3), bo(2, 3)
4597 DO j = bo(1, 2), bo(2, 2)
4598 DO i = bo(1, 1), bo(2, 1)
4599 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + &
4600 deriv_data(i, j, k)*laplace1(i, j, k)
4607 IF (my_compute_virial)
THEN
4609 IF (
ASSOCIATED(deriv_att))
THEN
4612 virial_pw%array(:, :, :) = -rho1(:, :, :)
4613 CALL virial_laplace(virial_pw, pw_pool, virial_xc, deriv_data)
4618 IF (gradient_f)
THEN
4620 IF (my_compute_virial)
THEN
4621 CALL virial_drho_drho(virial_pw, drho, v_drho(1), virial_xc)
4631 DO ia = bo(1, 1), bo(2, 1)
4632 DO ir = bo(1, 2), bo(2, 2)
4633 vxg(idir, ia, ir, 1) = -drho(idir)%array(ia, ir, 1)*v_drho(1)%array(ia, ir, 1)
4634 IF (
ASSOCIATED(e_drho))
THEN
4635 vxg(idir, ia, ir, 1) = vxg(idir, ia, ir, 1) + factor2*drho1(idir)%array(ia, ir, 1)*e_drho(ia, ir, 1)
4646 v_drho_r(idir, 1)%array(:, :, :) = drho(idir)%array(:, :, :)*v_drho(1)%array(:, :, :) - &
4647 drho1(idir)%array(:, :, :)*e_drho(:, :, :)
4651 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
4656 IF (laplace_f .AND. my_compute_virial)
THEN
4657 virial_pw%array(:, :, :) = -rho(:, :, :)
4658 CALL virial_laplace(virial_pw, pw_pool, virial_xc, v_laplace(1)%array)
4664 DO ispin = 1, nspins
4665 CALL xc_pw_laplace(v_laplace(ispin), pw_pool, xc_deriv_method_id)
4666 CALL pw_axpy(v_laplace(ispin), v_xc(ispin))
4670 IF (gradient_f)
THEN
4672 DO ispin = 1, nspins
4673 CALL deallocate_pw(v_drho(ispin), pw_pool)
4675 CALL deallocate_pw(v_drho_r(idir, ispin), pw_pool)
4678 DEALLOCATE (v_drho, v_drho_r)
4683 DO ispin = 1, nspins
4684 CALL deallocate_pw(v_laplace(ispin), pw_pool)
4686 DEALLOCATE (v_laplace)
4689 IF (
ASSOCIATED(tmp_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
4690 CALL pw_pool%give_back_pw(tmp_g)
4693 IF (
ASSOCIATED(vxc_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
4694 CALL pw_pool%give_back_pw(vxc_g)
4697 IF (my_compute_virial .AND. (gradient_f .OR. laplace_f))
THEN
4698 CALL deallocate_pw(virial_pw, pw_pool)
4701 CALL timestop(handle)
4737 LOGICAL,
INTENT(in),
OPTIONAL :: spinflip
4738 LOGICAL,
INTENT(IN),
OPTIONAL :: gapw
4739 REAL(kind=
dp),
DIMENSION(:, :, :, :),
OPTIONAL,
POINTER :: vxg
4741 CHARACTER(len=*),
PARAMETER :: routinen =
'xc_calc_3rd_deriv_analytical'
4743 INTEGER :: handle, i, idir, ispin, j, &
4744 k, nspins, xc_deriv_method_id
4745 INTEGER,
DIMENSION(2, 3) :: bo
4747 LOGICAL :: lsd, do_spinflip, alda0, &
4748 rho_f, gradient_f, tau_f, laplace_f
4749 REAL(kind=
dp) :: s, s_thresh, s_thresh2, gradient_cut
4750 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: dr1dr, dra1dra, drb1drb, dr1dr1
4751 REAL(kind=
dp) :: g1, g11, uu, aa, bb
4753 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :),
TARGET :: zero_f
4755 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: tau1, laplace1
4757 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: tau1a, tau1b, laplace1a, laplace1b
4758 REAL(kind=
dp) :: mp_rhoa, q_rhoa
4759 REAL(kind=
dp) :: mp_rhob, q_rhob
4760 REAL(kind=
dp) :: mp_gamma_aa, q_gamma_aa
4761 REAL(kind=
dp) :: mp_gamma_ab, q_gamma_ab
4762 REAL(kind=
dp) :: mp_gamma_bb, q_gamma_bb
4763 REAL(kind=
dp) :: mp_laplace_rhoa, q_laplace_rhoa
4764 REAL(kind=
dp) :: mp_laplace_rhob, q_laplace_rhob
4765 REAL(kind=
dp) :: mp_tau_a, q_tau_a
4766 REAL(kind=
dp) :: mp_tau_b, q_tau_b
4767 REAL(kind=
dp) :: mpp_gamma_aa, nb_gamma_aa
4768 REAL(kind=
dp) :: mpp_gamma_ab, nb_gamma_ab
4769 REAL(kind=
dp) :: mpp_gamma_bb, nb_gamma_bb
4770 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa
4771 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob
4772 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa
4773 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab
4774 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb
4775 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa
4776 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob
4777 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_a
4778 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_b
4779 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob
4780 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa
4781 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab
4782 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb
4783 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa
4784 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob
4785 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_a
4786 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_b
4787 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa
4788 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab
4789 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb
4790 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa
4791 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob
4792 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_a
4793 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_b
4794 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab
4795 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb
4796 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa
4797 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob
4798 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_a
4799 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_b
4800 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb
4801 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa
4802 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob
4803 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_a
4804 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_b
4805 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa
4806 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob
4807 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_a
4808 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_b
4809 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob
4810 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_a
4811 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_b
4812 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_a
4813 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_b
4814 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_b_tau_b
4815 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_rhoa
4816 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_rhob
4817 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_gamma_aa
4818 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_gamma_ab
4819 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_gamma_bb
4820 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_laplace_rhoa
4821 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_laplace_rhob
4822 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_tau_a
4823 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhoa_tau_b
4824 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_rhob
4825 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_gamma_aa
4826 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_gamma_ab
4827 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_gamma_bb
4828 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_laplace_rhoa
4829 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_laplace_rhob
4830 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_tau_a
4831 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_rhob_tau_b
4832 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_gamma_aa
4833 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_gamma_ab
4834 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_gamma_bb
4835 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_laplace_rhoa
4836 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_laplace_rhob
4837 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_tau_a
4838 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_aa_tau_b
4839 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_gamma_ab
4840 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_gamma_bb
4841 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_laplace_rhoa
4842 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_laplace_rhob
4843 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_tau_a
4844 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_ab_tau_b
4845 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_gamma_bb
4846 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_laplace_rhoa
4847 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_laplace_rhob
4848 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_tau_a
4849 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_gamma_bb_tau_b
4850 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_laplace_rhoa
4851 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_laplace_rhob
4852 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_tau_a
4853 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhoa_tau_b
4854 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob_laplace_rhob
4855 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob_tau_a
4856 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_laplace_rhob_tau_b
4857 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_a_tau_a
4858 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_a_tau_b
4859 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhoa_tau_b_tau_b
4860 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_rhob
4861 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_gamma_aa
4862 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_gamma_ab
4863 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_gamma_bb
4864 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_laplace_rhoa
4865 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_laplace_rhob
4866 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_tau_a
4867 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_rhob_tau_b
4868 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_gamma_aa
4869 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_gamma_ab
4870 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_gamma_bb
4871 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_laplace_rhoa
4872 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_laplace_rhob
4873 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_tau_a
4874 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_aa_tau_b
4875 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_gamma_ab
4876 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_gamma_bb
4877 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_laplace_rhoa
4878 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_laplace_rhob
4879 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_tau_a
4880 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_ab_tau_b
4881 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_gamma_bb
4882 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_laplace_rhoa
4883 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_laplace_rhob
4884 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_tau_a
4885 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_gamma_bb_tau_b
4886 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_laplace_rhoa
4887 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_laplace_rhob
4888 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_tau_a
4889 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhoa_tau_b
4890 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob_laplace_rhob
4891 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob_tau_a
4892 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_laplace_rhob_tau_b
4893 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_a_tau_a
4894 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_a_tau_b
4895 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_rhob_tau_b_tau_b
4896 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_gamma_aa
4897 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_gamma_ab
4898 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_gamma_bb
4899 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_laplace_rhoa
4900 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_laplace_rhob
4901 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_tau_a
4902 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_aa_tau_b
4903 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_gamma_ab
4904 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_gamma_bb
4905 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_laplace_rhoa
4906 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_laplace_rhob
4907 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_tau_a
4908 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_ab_tau_b
4909 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_gamma_bb
4910 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_laplace_rhoa
4911 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_laplace_rhob
4912 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_tau_a
4913 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_gamma_bb_tau_b
4914 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_laplace_rhoa
4915 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_laplace_rhob
4916 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_tau_a
4917 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhoa_tau_b
4918 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob_laplace_rhob
4919 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob_tau_a
4920 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_laplace_rhob_tau_b
4921 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_a_tau_a
4922 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_a_tau_b
4923 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_aa_tau_b_tau_b
4924 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_gamma_ab
4925 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_gamma_bb
4926 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_laplace_rhoa
4927 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_laplace_rhob
4928 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_tau_a
4929 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_ab_tau_b
4930 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_gamma_bb
4931 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_laplace_rhoa
4932 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_laplace_rhob
4933 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_tau_a
4934 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_gamma_bb_tau_b
4935 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_laplace_rhoa
4936 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_laplace_rhob
4937 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_tau_a
4938 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhoa_tau_b
4939 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob_laplace_rhob
4940 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob_tau_a
4941 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_laplace_rhob_tau_b
4942 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_a_tau_a
4943 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_a_tau_b
4944 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_ab_tau_b_tau_b
4945 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_gamma_bb
4946 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_laplace_rhoa
4947 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_laplace_rhob
4948 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_tau_a
4949 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_gamma_bb_tau_b
4950 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_laplace_rhoa
4951 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_laplace_rhob
4952 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_tau_a
4953 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhoa_tau_b
4954 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob_laplace_rhob
4955 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob_tau_a
4956 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_laplace_rhob_tau_b
4957 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_a_tau_a
4958 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_a_tau_b
4959 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_gamma_bb_tau_b_tau_b
4960 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_laplace_rhoa
4961 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_laplace_rhob
4962 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_tau_a
4963 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhoa_tau_b
4964 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob_laplace_rhob
4965 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob_tau_a
4966 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_laplace_rhob_tau_b
4967 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_a_tau_a
4968 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_a_tau_b
4969 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhoa_tau_b_tau_b
4970 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob_laplace_rhob
4971 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob_tau_a
4972 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_laplace_rhob_tau_b
4973 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_a_tau_a
4974 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_a_tau_b
4975 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_laplace_rhob_tau_b_tau_b
4976 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_a_tau_a
4977 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_a_tau_b
4978 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_a_tau_b_tau_b
4979 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: n_tau_b_tau_b_tau_b
4980 REAL(kind=
dp) :: mp_rho, mp_gamma, mp_laplace_rho, mp_tau, mpp_gamma
4981 REAL(kind=
dp) :: m_rho, m_gamma, m_laplace_rho, m_tau, m_b
4982 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho
4983 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma
4984 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_laplace_rho
4985 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_tau
4986 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma
4987 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_laplace_rho
4988 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_tau
4989 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_laplace_rho
4990 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_tau
4991 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_tau_tau
4992 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_rho
4993 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_gamma
4994 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_laplace_rho
4995 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_rho_tau
4996 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma_gamma
4997 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma_laplace_rho
4998 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_gamma_tau
4999 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_laplace_rho_laplace_rho
5000 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_laplace_rho_tau
5001 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_rho_tau_tau
5002 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma_gamma
5003 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma_laplace_rho
5004 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_gamma_tau
5005 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_laplace_rho_laplace_rho
5006 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_laplace_rho_tau
5007 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_gamma_tau_tau
5008 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_laplace_rho_laplace_rho
5009 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_laplace_rho_tau
5010 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_laplace_rho_tau_tau
5011 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: m_tau_tau_tau
5013 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: gaa1, gab1, gbb1, gaa11, gab11, gbb11
5014 REAL(kind=
dp) :: p_rhoa, p_rhob, p_gamma_aa, p_gamma_ab, p_gamma_bb
5015 REAL(kind=
dp) :: pp_gamma_aa, pp_gamma_ab, pp_gamma_bb
5016 REAL(kind=
dp) :: u_a, u_b, a_gamma_aa, a_gamma_ab, a_gamma_bb, &
5017 b_gamma_aa, b_gamma_ab, b_gamma_bb
5018 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa
5019 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob
5020 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa
5021 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_ab
5022 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_bb
5023 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob
5024 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa
5025 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_ab
5026 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_bb
5027 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa
5028 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_ab
5029 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_bb
5030 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_ab
5031 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_bb
5032 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_bb_gamma_bb
5033 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_rhoa
5034 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_rhob
5035 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_gamma_aa
5036 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_gamma_ab
5037 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhoa_gamma_bb
5038 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_rhob
5039 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_gamma_aa
5040 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_gamma_ab
5041 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_rhob_gamma_bb
5042 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa_gamma_aa
5043 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa_gamma_ab
5044 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_aa_gamma_bb
5045 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_ab_gamma_ab
5046 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_ab_gamma_bb
5047 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhoa_gamma_bb_gamma_bb
5048 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_rhob
5049 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_gamma_aa
5050 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_gamma_ab
5051 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_rhob_gamma_bb
5052 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa_gamma_aa
5053 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa_gamma_ab
5054 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_aa_gamma_bb
5055 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_ab_gamma_ab
5056 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_ab_gamma_bb
5057 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_rhob_gamma_bb_gamma_bb
5058 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa_gamma_aa
5059 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa_gamma_ab
5060 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_aa_gamma_bb
5061 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_ab_gamma_ab
5062 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_ab_gamma_bb
5063 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_aa_gamma_bb_gamma_bb
5064 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_ab_gamma_ab
5065 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_ab_gamma_bb
5066 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_ab_gamma_bb_gamma_bb
5067 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: g_gamma_bb_gamma_bb_gamma_bb
5068 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: deriv_data, deriv_data2, e_drhoa, e_drhob, &
5069 e_drho, norm_drho, norm_drhoa, &
5070 norm_drhob, rho1a, rho1b, &
5072 e_rrr, e_rrg, e_rgg, e_ggg, e_rg, e_gg
5073 TYPE(
cp_3d_r_cp_type),
DIMENSION(3) :: drho, drho1, drho1a, drho1b, drhoa, drhob
5074 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
ALLOCATABLE :: v_drhoa, v_drhob, v_drho
5079 CALL timeset(routinen, handle)
5081 NULLIFY (e_drhoa, e_drhob, e_drho)
5083 cpassert(
ASSOCIATED(v_xc))
5084 cpassert(
ASSOCIATED(xc_section))
5088 i_val=xc_deriv_method_id)
5091 lsd =
ASSOCIATED(rho_set%rhoa)
5093 do_spinflip = .false.
5094 IF (
PRESENT(spinflip)) do_spinflip = spinflip
5096 IF (
PRESENT(gapw)) my_gapw = gapw
5098 cpassert(
PRESENT(vxg))
5101 IF (laplace_f) cpabort(
"Laplace-dependent functional not implemented with GAPW!")
5104 bo = rho_set%local_bounds
5106 CALL check_for_derivatives(deriv_set, lsd, rho_f, gradient_f, tau_f, laplace_f)
5112 s_thresh = 1.0e-04_dp
5113 s_thresh2 = 1.0e-07_dp
5116 DO ispin = 1, nspins
5118 v_xc(ispin)%array = 0.0_dp
5122 IF (gradient_f)
THEN
5123 ALLOCATE (v_drho_r(3, nspins), v_drho(nspins))
5124 DO ispin = 1, nspins
5126 CALL allocate_pw(v_drho_r(idir, ispin), pw_pool, bo)
5128 CALL allocate_pw(v_drho(ispin), pw_pool, bo)
5132 IF (
ASSOCIATED(pw_pool))
THEN
5133 CALL pw_pool%create_pw(tmp_g)
5134 CALL pw_pool%create_pw(vxc_g)
5137 cpabort(
"XC_DERIV method is not implemented in GAPW")
5145 cpassert(
ASSOCIATED(v_xc_tau))
5146 DO ispin = 1, nspins
5147 v_xc_tau(ispin)%array = 0.0_dp
5157 IF (do_spinflip)
THEN
5164 IF (gradient_f)
THEN
5166 norm_drho=norm_drho, norm_drhoa=norm_drhoa, norm_drhob=norm_drhob)
5167 IF (do_spinflip)
THEN
5169 CALL calc_drho_from_a(drho1, drho1a)
5172 CALL calc_drho_from_ab(drho1, drho1a, drho1b)
5175 CALL calc_drho_from_ab(drho, drhoa, drhob)
5177 CALL prepare_dr1dr(dra1dra, drhoa, drho1a)
5178 IF (do_spinflip)
THEN
5179 CALL prepare_dr1dr(drb1drb, drhob, drho1a)
5180 CALL prepare_dr1dr(dr1dr, drho, drho1a)
5181 ELSE IF (nspins /= 1)
THEN
5182 CALL prepare_dr1dr(drb1drb, drhob, drho1b)
5183 CALL prepare_dr1dr(dr1dr, drho, drho1)
5185 cpabort(
"Exchange-correlation's third derivative for closed-shell not yet implemented")
5189 ALLOCATE (v_drhoa(nspins), v_drhob(nspins))
5190 DO ispin = 1, nspins
5191 CALL allocate_pw(v_drhoa(ispin), pw_pool, bo)
5192 CALL allocate_pw(v_drhob(ispin), pw_pool, bo)
5200 IF (laplace_f .AND. (do_spinflip .OR. nspins == 1))
THEN
5201 cpabort(
"Exchange-correlation's laplace analytic third derivative not implemented")
5204 IF (tau_f .AND. (do_spinflip .OR. nspins == 1))
THEN
5205 cpabort(
"Exchange-correlation's mGGA analytic third derivative not implemented")
5208 IF (nspins /= 1)
THEN
5210 IF (.NOT. do_spinflip)
THEN
5224 IF (tau_f .OR. laplace_f)
THEN
5233 IF (tau_f)
CALL xc_rho_set_get(rho1_set, tau_a=tau1a, tau_b=tau1b)
5234 IF (laplace_f)
CALL xc_rho_set_get(rho1_set, laplace_rhoa=laplace1a, &
5235 laplace_rhob=laplace1b)
5236 CALL prepare_dr1dr(gaa1, drhoa, drho1a)
5237 CALL prepare_dr1dr(gbb1, drhob, drho1b)
5238 CALL prepare_dr1dr(gab1, drhoa, drho1b)
5239 CALL prepare_dr1dr(gaa11, drho1a, drho1a)
5240 CALL prepare_dr1dr(gbb11, drho1b, drho1b)
5241 CALL prepare_dr1dr(gab11, drho1a, drho1b)
5243 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: tmp_ba
5244 CALL prepare_dr1dr(tmp_ba, drhob, drho1a)
5245 gab1(:, :, :) = gab1(:, :, :) + tmp_ba(:, :, :)
5248 ALLOCATE (zero_f(bo(1, 1):bo(2, 1), bo(1, 2):bo(2, 2), bo(1, 3):bo(2, 3)))
5252 IF (
ASSOCIATED(deriv_att))
THEN
5255 n_rhoa_rhoa => zero_f
5259 IF (
ASSOCIATED(deriv_att))
THEN
5262 n_rhoa_rhob => zero_f
5266 IF (
ASSOCIATED(deriv_att))
THEN
5269 n_rhoa_gamma_aa => zero_f
5273 IF (
ASSOCIATED(deriv_att))
THEN
5276 n_rhoa_gamma_ab => zero_f
5280 IF (
ASSOCIATED(deriv_att))
THEN
5283 n_rhoa_gamma_bb => zero_f
5287 IF (
ASSOCIATED(deriv_att))
THEN
5290 n_rhoa_laplace_rhoa => zero_f
5294 IF (
ASSOCIATED(deriv_att))
THEN
5297 n_rhoa_laplace_rhob => zero_f
5301 IF (
ASSOCIATED(deriv_att))
THEN
5304 n_rhoa_tau_a => zero_f
5308 IF (
ASSOCIATED(deriv_att))
THEN
5311 n_rhoa_tau_b => zero_f
5315 IF (
ASSOCIATED(deriv_att))
THEN
5318 n_rhob_rhob => zero_f
5322 IF (
ASSOCIATED(deriv_att))
THEN
5325 n_rhob_gamma_aa => zero_f
5329 IF (
ASSOCIATED(deriv_att))
THEN
5332 n_rhob_gamma_ab => zero_f
5336 IF (
ASSOCIATED(deriv_att))
THEN
5339 n_rhob_gamma_bb => zero_f
5343 IF (
ASSOCIATED(deriv_att))
THEN
5346 n_rhob_laplace_rhoa => zero_f
5350 IF (
ASSOCIATED(deriv_att))
THEN
5353 n_rhob_laplace_rhob => zero_f
5357 IF (
ASSOCIATED(deriv_att))
THEN
5360 n_rhob_tau_a => zero_f
5364 IF (
ASSOCIATED(deriv_att))
THEN
5367 n_rhob_tau_b => zero_f
5371 IF (
ASSOCIATED(deriv_att))
THEN
5374 n_gamma_aa_gamma_aa => zero_f
5378 IF (
ASSOCIATED(deriv_att))
THEN
5381 n_gamma_aa_gamma_ab => zero_f
5385 IF (
ASSOCIATED(deriv_att))
THEN
5388 n_gamma_aa_gamma_bb => zero_f
5392 IF (
ASSOCIATED(deriv_att))
THEN
5395 n_gamma_aa_laplace_rhoa => zero_f
5399 IF (
ASSOCIATED(deriv_att))
THEN
5402 n_gamma_aa_laplace_rhob => zero_f
5406 IF (
ASSOCIATED(deriv_att))
THEN
5409 n_gamma_aa_tau_a => zero_f
5413 IF (
ASSOCIATED(deriv_att))
THEN
5416 n_gamma_aa_tau_b => zero_f
5420 IF (
ASSOCIATED(deriv_att))
THEN
5423 n_gamma_ab_gamma_ab => zero_f
5427 IF (
ASSOCIATED(deriv_att))
THEN
5430 n_gamma_ab_gamma_bb => zero_f
5434 IF (
ASSOCIATED(deriv_att))
THEN
5437 n_gamma_ab_laplace_rhoa => zero_f
5441 IF (
ASSOCIATED(deriv_att))
THEN
5444 n_gamma_ab_laplace_rhob => zero_f
5448 IF (
ASSOCIATED(deriv_att))
THEN
5451 n_gamma_ab_tau_a => zero_f
5455 IF (
ASSOCIATED(deriv_att))
THEN
5458 n_gamma_ab_tau_b => zero_f
5462 IF (
ASSOCIATED(deriv_att))
THEN
5465 n_gamma_bb_gamma_bb => zero_f
5469 IF (
ASSOCIATED(deriv_att))
THEN
5472 n_gamma_bb_laplace_rhoa => zero_f
5476 IF (
ASSOCIATED(deriv_att))
THEN
5479 n_gamma_bb_laplace_rhob => zero_f
5483 IF (
ASSOCIATED(deriv_att))
THEN
5486 n_gamma_bb_tau_a => zero_f
5490 IF (
ASSOCIATED(deriv_att))
THEN
5493 n_gamma_bb_tau_b => zero_f
5497 IF (
ASSOCIATED(deriv_att))
THEN
5500 n_laplace_rhoa_laplace_rhoa => zero_f
5504 IF (
ASSOCIATED(deriv_att))
THEN
5507 n_laplace_rhoa_laplace_rhob => zero_f
5511 IF (
ASSOCIATED(deriv_att))
THEN
5514 n_laplace_rhoa_tau_a => zero_f
5518 IF (
ASSOCIATED(deriv_att))
THEN
5521 n_laplace_rhoa_tau_b => zero_f
5525 IF (
ASSOCIATED(deriv_att))
THEN
5528 n_laplace_rhob_laplace_rhob => zero_f
5532 IF (
ASSOCIATED(deriv_att))
THEN
5535 n_laplace_rhob_tau_a => zero_f
5539 IF (
ASSOCIATED(deriv_att))
THEN
5542 n_laplace_rhob_tau_b => zero_f
5546 IF (
ASSOCIATED(deriv_att))
THEN
5549 n_tau_a_tau_a => zero_f
5553 IF (
ASSOCIATED(deriv_att))
THEN
5556 n_tau_a_tau_b => zero_f
5560 IF (
ASSOCIATED(deriv_att))
THEN
5563 n_tau_b_tau_b => zero_f
5567 IF (
ASSOCIATED(deriv_att))
THEN
5570 n_rhoa_rhoa_rhoa => zero_f
5574 IF (
ASSOCIATED(deriv_att))
THEN
5577 n_rhoa_rhoa_rhob => zero_f
5581 IF (
ASSOCIATED(deriv_att))
THEN
5584 n_rhoa_rhoa_gamma_aa => zero_f
5588 IF (
ASSOCIATED(deriv_att))
THEN
5591 n_rhoa_rhoa_gamma_ab => zero_f
5595 IF (
ASSOCIATED(deriv_att))
THEN
5598 n_rhoa_rhoa_gamma_bb => zero_f
5602 IF (
ASSOCIATED(deriv_att))
THEN
5605 n_rhoa_rhoa_laplace_rhoa => zero_f
5609 IF (
ASSOCIATED(deriv_att))
THEN
5612 n_rhoa_rhoa_laplace_rhob => zero_f
5616 IF (
ASSOCIATED(deriv_att))
THEN
5619 n_rhoa_rhoa_tau_a => zero_f
5623 IF (
ASSOCIATED(deriv_att))
THEN
5626 n_rhoa_rhoa_tau_b => zero_f
5630 IF (
ASSOCIATED(deriv_att))
THEN
5633 n_rhoa_rhob_rhob => zero_f
5637 IF (
ASSOCIATED(deriv_att))
THEN
5640 n_rhoa_rhob_gamma_aa => zero_f
5644 IF (
ASSOCIATED(deriv_att))
THEN
5647 n_rhoa_rhob_gamma_ab => zero_f
5651 IF (
ASSOCIATED(deriv_att))
THEN
5654 n_rhoa_rhob_gamma_bb => zero_f
5658 IF (
ASSOCIATED(deriv_att))
THEN
5661 n_rhoa_rhob_laplace_rhoa => zero_f
5665 IF (
ASSOCIATED(deriv_att))
THEN
5668 n_rhoa_rhob_laplace_rhob => zero_f
5672 IF (
ASSOCIATED(deriv_att))
THEN
5675 n_rhoa_rhob_tau_a => zero_f
5679 IF (
ASSOCIATED(deriv_att))
THEN
5682 n_rhoa_rhob_tau_b => zero_f
5686 IF (
ASSOCIATED(deriv_att))
THEN
5689 n_rhoa_gamma_aa_gamma_aa => zero_f
5693 IF (
ASSOCIATED(deriv_att))
THEN
5696 n_rhoa_gamma_aa_gamma_ab => zero_f
5700 IF (
ASSOCIATED(deriv_att))
THEN
5703 n_rhoa_gamma_aa_gamma_bb => zero_f
5707 IF (
ASSOCIATED(deriv_att))
THEN
5710 n_rhoa_gamma_aa_laplace_rhoa => zero_f
5714 IF (
ASSOCIATED(deriv_att))
THEN
5717 n_rhoa_gamma_aa_laplace_rhob => zero_f
5721 IF (
ASSOCIATED(deriv_att))
THEN
5724 n_rhoa_gamma_aa_tau_a => zero_f
5728 IF (
ASSOCIATED(deriv_att))
THEN
5731 n_rhoa_gamma_aa_tau_b => zero_f
5735 IF (
ASSOCIATED(deriv_att))
THEN
5738 n_rhoa_gamma_ab_gamma_ab => zero_f
5742 IF (
ASSOCIATED(deriv_att))
THEN
5745 n_rhoa_gamma_ab_gamma_bb => zero_f
5749 IF (
ASSOCIATED(deriv_att))
THEN
5752 n_rhoa_gamma_ab_laplace_rhoa => zero_f
5756 IF (
ASSOCIATED(deriv_att))
THEN
5759 n_rhoa_gamma_ab_laplace_rhob => zero_f
5763 IF (
ASSOCIATED(deriv_att))
THEN
5766 n_rhoa_gamma_ab_tau_a => zero_f
5770 IF (
ASSOCIATED(deriv_att))
THEN
5773 n_rhoa_gamma_ab_tau_b => zero_f
5777 IF (
ASSOCIATED(deriv_att))
THEN
5780 n_rhoa_gamma_bb_gamma_bb => zero_f
5784 IF (
ASSOCIATED(deriv_att))
THEN
5787 n_rhoa_gamma_bb_laplace_rhoa => zero_f
5791 IF (
ASSOCIATED(deriv_att))
THEN
5794 n_rhoa_gamma_bb_laplace_rhob => zero_f
5798 IF (
ASSOCIATED(deriv_att))
THEN
5801 n_rhoa_gamma_bb_tau_a => zero_f
5805 IF (
ASSOCIATED(deriv_att))
THEN
5808 n_rhoa_gamma_bb_tau_b => zero_f
5812 IF (
ASSOCIATED(deriv_att))
THEN
5815 n_rhoa_laplace_rhoa_laplace_rhoa => zero_f
5819 IF (
ASSOCIATED(deriv_att))
THEN
5822 n_rhoa_laplace_rhoa_laplace_rhob => zero_f
5826 IF (
ASSOCIATED(deriv_att))
THEN
5829 n_rhoa_laplace_rhoa_tau_a => zero_f
5833 IF (
ASSOCIATED(deriv_att))
THEN
5836 n_rhoa_laplace_rhoa_tau_b => zero_f
5840 IF (
ASSOCIATED(deriv_att))
THEN
5843 n_rhoa_laplace_rhob_laplace_rhob => zero_f
5847 IF (
ASSOCIATED(deriv_att))
THEN
5850 n_rhoa_laplace_rhob_tau_a => zero_f
5854 IF (
ASSOCIATED(deriv_att))
THEN
5857 n_rhoa_laplace_rhob_tau_b => zero_f
5861 IF (
ASSOCIATED(deriv_att))
THEN
5864 n_rhoa_tau_a_tau_a => zero_f
5868 IF (
ASSOCIATED(deriv_att))
THEN
5871 n_rhoa_tau_a_tau_b => zero_f
5875 IF (
ASSOCIATED(deriv_att))
THEN
5878 n_rhoa_tau_b_tau_b => zero_f
5882 IF (
ASSOCIATED(deriv_att))
THEN
5885 n_rhob_rhob_rhob => zero_f
5889 IF (
ASSOCIATED(deriv_att))
THEN
5892 n_rhob_rhob_gamma_aa => zero_f
5896 IF (
ASSOCIATED(deriv_att))
THEN
5899 n_rhob_rhob_gamma_ab => zero_f
5903 IF (
ASSOCIATED(deriv_att))
THEN
5906 n_rhob_rhob_gamma_bb => zero_f
5910 IF (
ASSOCIATED(deriv_att))
THEN
5913 n_rhob_rhob_laplace_rhoa => zero_f
5917 IF (
ASSOCIATED(deriv_att))
THEN
5920 n_rhob_rhob_laplace_rhob => zero_f
5924 IF (
ASSOCIATED(deriv_att))
THEN
5927 n_rhob_rhob_tau_a => zero_f
5931 IF (
ASSOCIATED(deriv_att))
THEN
5934 n_rhob_rhob_tau_b => zero_f
5938 IF (
ASSOCIATED(deriv_att))
THEN
5941 n_rhob_gamma_aa_gamma_aa => zero_f
5945 IF (
ASSOCIATED(deriv_att))
THEN
5948 n_rhob_gamma_aa_gamma_ab => zero_f
5952 IF (
ASSOCIATED(deriv_att))
THEN
5955 n_rhob_gamma_aa_gamma_bb => zero_f
5959 IF (
ASSOCIATED(deriv_att))
THEN
5962 n_rhob_gamma_aa_laplace_rhoa => zero_f
5966 IF (
ASSOCIATED(deriv_att))
THEN
5969 n_rhob_gamma_aa_laplace_rhob => zero_f
5973 IF (
ASSOCIATED(deriv_att))
THEN
5976 n_rhob_gamma_aa_tau_a => zero_f
5980 IF (
ASSOCIATED(deriv_att))
THEN
5983 n_rhob_gamma_aa_tau_b => zero_f
5987 IF (
ASSOCIATED(deriv_att))
THEN
5990 n_rhob_gamma_ab_gamma_ab => zero_f
5994 IF (
ASSOCIATED(deriv_att))
THEN
5997 n_rhob_gamma_ab_gamma_bb => zero_f
6001 IF (
ASSOCIATED(deriv_att))
THEN
6004 n_rhob_gamma_ab_laplace_rhoa => zero_f
6008 IF (
ASSOCIATED(deriv_att))
THEN
6011 n_rhob_gamma_ab_laplace_rhob => zero_f
6015 IF (
ASSOCIATED(deriv_att))
THEN
6018 n_rhob_gamma_ab_tau_a => zero_f
6022 IF (
ASSOCIATED(deriv_att))
THEN
6025 n_rhob_gamma_ab_tau_b => zero_f
6029 IF (
ASSOCIATED(deriv_att))
THEN
6032 n_rhob_gamma_bb_gamma_bb => zero_f
6036 IF (
ASSOCIATED(deriv_att))
THEN
6039 n_rhob_gamma_bb_laplace_rhoa => zero_f
6043 IF (
ASSOCIATED(deriv_att))
THEN
6046 n_rhob_gamma_bb_laplace_rhob => zero_f
6050 IF (
ASSOCIATED(deriv_att))
THEN
6053 n_rhob_gamma_bb_tau_a => zero_f
6057 IF (
ASSOCIATED(deriv_att))
THEN
6060 n_rhob_gamma_bb_tau_b => zero_f
6064 IF (
ASSOCIATED(deriv_att))
THEN
6067 n_rhob_laplace_rhoa_laplace_rhoa => zero_f
6071 IF (
ASSOCIATED(deriv_att))
THEN
6074 n_rhob_laplace_rhoa_laplace_rhob => zero_f
6078 IF (
ASSOCIATED(deriv_att))
THEN
6081 n_rhob_laplace_rhoa_tau_a => zero_f
6085 IF (
ASSOCIATED(deriv_att))
THEN
6088 n_rhob_laplace_rhoa_tau_b => zero_f
6092 IF (
ASSOCIATED(deriv_att))
THEN
6095 n_rhob_laplace_rhob_laplace_rhob => zero_f
6099 IF (
ASSOCIATED(deriv_att))
THEN
6102 n_rhob_laplace_rhob_tau_a => zero_f
6106 IF (
ASSOCIATED(deriv_att))
THEN
6109 n_rhob_laplace_rhob_tau_b => zero_f
6113 IF (
ASSOCIATED(deriv_att))
THEN
6116 n_rhob_tau_a_tau_a => zero_f
6120 IF (
ASSOCIATED(deriv_att))
THEN
6123 n_rhob_tau_a_tau_b => zero_f
6127 IF (
ASSOCIATED(deriv_att))
THEN
6130 n_rhob_tau_b_tau_b => zero_f
6134 IF (
ASSOCIATED(deriv_att))
THEN
6137 n_gamma_aa_gamma_aa_gamma_aa => zero_f
6141 IF (
ASSOCIATED(deriv_att))
THEN
6144 n_gamma_aa_gamma_aa_gamma_ab => zero_f
6148 IF (
ASSOCIATED(deriv_att))
THEN
6151 n_gamma_aa_gamma_aa_gamma_bb => zero_f
6155 IF (
ASSOCIATED(deriv_att))
THEN
6158 n_gamma_aa_gamma_aa_laplace_rhoa => zero_f
6162 IF (
ASSOCIATED(deriv_att))
THEN
6165 n_gamma_aa_gamma_aa_laplace_rhob => zero_f
6169 IF (
ASSOCIATED(deriv_att))
THEN
6172 n_gamma_aa_gamma_aa_tau_a => zero_f
6176 IF (
ASSOCIATED(deriv_att))
THEN
6179 n_gamma_aa_gamma_aa_tau_b => zero_f
6183 IF (
ASSOCIATED(deriv_att))
THEN
6186 n_gamma_aa_gamma_ab_gamma_ab => zero_f
6190 IF (
ASSOCIATED(deriv_att))
THEN
6193 n_gamma_aa_gamma_ab_gamma_bb => zero_f
6197 IF (
ASSOCIATED(deriv_att))
THEN
6200 n_gamma_aa_gamma_ab_laplace_rhoa => zero_f
6204 IF (
ASSOCIATED(deriv_att))
THEN
6207 n_gamma_aa_gamma_ab_laplace_rhob => zero_f
6211 IF (
ASSOCIATED(deriv_att))
THEN
6214 n_gamma_aa_gamma_ab_tau_a => zero_f
6218 IF (
ASSOCIATED(deriv_att))
THEN
6221 n_gamma_aa_gamma_ab_tau_b => zero_f
6225 IF (
ASSOCIATED(deriv_att))
THEN
6228 n_gamma_aa_gamma_bb_gamma_bb => zero_f
6232 IF (
ASSOCIATED(deriv_att))
THEN
6235 n_gamma_aa_gamma_bb_laplace_rhoa => zero_f
6239 IF (
ASSOCIATED(deriv_att))
THEN
6242 n_gamma_aa_gamma_bb_laplace_rhob => zero_f
6246 IF (
ASSOCIATED(deriv_att))
THEN
6249 n_gamma_aa_gamma_bb_tau_a => zero_f
6253 IF (
ASSOCIATED(deriv_att))
THEN
6256 n_gamma_aa_gamma_bb_tau_b => zero_f
6260 IF (
ASSOCIATED(deriv_att))
THEN
6261 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_aa_laplace_rhoa_laplace_rhoa)
6263 n_gamma_aa_laplace_rhoa_laplace_rhoa => zero_f
6267 IF (
ASSOCIATED(deriv_att))
THEN
6268 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_aa_laplace_rhoa_laplace_rhob)
6270 n_gamma_aa_laplace_rhoa_laplace_rhob => zero_f
6274 IF (
ASSOCIATED(deriv_att))
THEN
6277 n_gamma_aa_laplace_rhoa_tau_a => zero_f
6281 IF (
ASSOCIATED(deriv_att))
THEN
6284 n_gamma_aa_laplace_rhoa_tau_b => zero_f
6288 IF (
ASSOCIATED(deriv_att))
THEN
6289 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_aa_laplace_rhob_laplace_rhob)
6291 n_gamma_aa_laplace_rhob_laplace_rhob => zero_f
6295 IF (
ASSOCIATED(deriv_att))
THEN
6298 n_gamma_aa_laplace_rhob_tau_a => zero_f
6302 IF (
ASSOCIATED(deriv_att))
THEN
6305 n_gamma_aa_laplace_rhob_tau_b => zero_f
6309 IF (
ASSOCIATED(deriv_att))
THEN
6312 n_gamma_aa_tau_a_tau_a => zero_f
6316 IF (
ASSOCIATED(deriv_att))
THEN
6319 n_gamma_aa_tau_a_tau_b => zero_f
6323 IF (
ASSOCIATED(deriv_att))
THEN
6326 n_gamma_aa_tau_b_tau_b => zero_f
6330 IF (
ASSOCIATED(deriv_att))
THEN
6333 n_gamma_ab_gamma_ab_gamma_ab => zero_f
6337 IF (
ASSOCIATED(deriv_att))
THEN
6340 n_gamma_ab_gamma_ab_gamma_bb => zero_f
6344 IF (
ASSOCIATED(deriv_att))
THEN
6347 n_gamma_ab_gamma_ab_laplace_rhoa => zero_f
6351 IF (
ASSOCIATED(deriv_att))
THEN
6354 n_gamma_ab_gamma_ab_laplace_rhob => zero_f
6358 IF (
ASSOCIATED(deriv_att))
THEN
6361 n_gamma_ab_gamma_ab_tau_a => zero_f
6365 IF (
ASSOCIATED(deriv_att))
THEN
6368 n_gamma_ab_gamma_ab_tau_b => zero_f
6372 IF (
ASSOCIATED(deriv_att))
THEN
6375 n_gamma_ab_gamma_bb_gamma_bb => zero_f
6379 IF (
ASSOCIATED(deriv_att))
THEN
6382 n_gamma_ab_gamma_bb_laplace_rhoa => zero_f
6386 IF (
ASSOCIATED(deriv_att))
THEN
6389 n_gamma_ab_gamma_bb_laplace_rhob => zero_f
6393 IF (
ASSOCIATED(deriv_att))
THEN
6396 n_gamma_ab_gamma_bb_tau_a => zero_f
6400 IF (
ASSOCIATED(deriv_att))
THEN
6403 n_gamma_ab_gamma_bb_tau_b => zero_f
6407 IF (
ASSOCIATED(deriv_att))
THEN
6408 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_ab_laplace_rhoa_laplace_rhoa)
6410 n_gamma_ab_laplace_rhoa_laplace_rhoa => zero_f
6414 IF (
ASSOCIATED(deriv_att))
THEN
6415 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_ab_laplace_rhoa_laplace_rhob)
6417 n_gamma_ab_laplace_rhoa_laplace_rhob => zero_f
6421 IF (
ASSOCIATED(deriv_att))
THEN
6424 n_gamma_ab_laplace_rhoa_tau_a => zero_f
6428 IF (
ASSOCIATED(deriv_att))
THEN
6431 n_gamma_ab_laplace_rhoa_tau_b => zero_f
6435 IF (
ASSOCIATED(deriv_att))
THEN
6436 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_ab_laplace_rhob_laplace_rhob)
6438 n_gamma_ab_laplace_rhob_laplace_rhob => zero_f
6442 IF (
ASSOCIATED(deriv_att))
THEN
6445 n_gamma_ab_laplace_rhob_tau_a => zero_f
6449 IF (
ASSOCIATED(deriv_att))
THEN
6452 n_gamma_ab_laplace_rhob_tau_b => zero_f
6456 IF (
ASSOCIATED(deriv_att))
THEN
6459 n_gamma_ab_tau_a_tau_a => zero_f
6463 IF (
ASSOCIATED(deriv_att))
THEN
6466 n_gamma_ab_tau_a_tau_b => zero_f
6470 IF (
ASSOCIATED(deriv_att))
THEN
6473 n_gamma_ab_tau_b_tau_b => zero_f
6477 IF (
ASSOCIATED(deriv_att))
THEN
6480 n_gamma_bb_gamma_bb_gamma_bb => zero_f
6484 IF (
ASSOCIATED(deriv_att))
THEN
6487 n_gamma_bb_gamma_bb_laplace_rhoa => zero_f
6491 IF (
ASSOCIATED(deriv_att))
THEN
6494 n_gamma_bb_gamma_bb_laplace_rhob => zero_f
6498 IF (
ASSOCIATED(deriv_att))
THEN
6501 n_gamma_bb_gamma_bb_tau_a => zero_f
6505 IF (
ASSOCIATED(deriv_att))
THEN
6508 n_gamma_bb_gamma_bb_tau_b => zero_f
6512 IF (
ASSOCIATED(deriv_att))
THEN
6513 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_bb_laplace_rhoa_laplace_rhoa)
6515 n_gamma_bb_laplace_rhoa_laplace_rhoa => zero_f
6519 IF (
ASSOCIATED(deriv_att))
THEN
6520 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_bb_laplace_rhoa_laplace_rhob)
6522 n_gamma_bb_laplace_rhoa_laplace_rhob => zero_f
6526 IF (
ASSOCIATED(deriv_att))
THEN
6529 n_gamma_bb_laplace_rhoa_tau_a => zero_f
6533 IF (
ASSOCIATED(deriv_att))
THEN
6536 n_gamma_bb_laplace_rhoa_tau_b => zero_f
6540 IF (
ASSOCIATED(deriv_att))
THEN
6541 CALL xc_derivative_get(deriv_att, deriv_data=n_gamma_bb_laplace_rhob_laplace_rhob)
6543 n_gamma_bb_laplace_rhob_laplace_rhob => zero_f
6547 IF (
ASSOCIATED(deriv_att))
THEN
6550 n_gamma_bb_laplace_rhob_tau_a => zero_f
6554 IF (
ASSOCIATED(deriv_att))
THEN
6557 n_gamma_bb_laplace_rhob_tau_b => zero_f
6561 IF (
ASSOCIATED(deriv_att))
THEN
6564 n_gamma_bb_tau_a_tau_a => zero_f
6568 IF (
ASSOCIATED(deriv_att))
THEN
6571 n_gamma_bb_tau_a_tau_b => zero_f
6575 IF (
ASSOCIATED(deriv_att))
THEN
6578 n_gamma_bb_tau_b_tau_b => zero_f
6582 IF (
ASSOCIATED(deriv_att))
THEN
6583 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhoa_laplace_rhoa_laplace_rhoa)
6585 n_laplace_rhoa_laplace_rhoa_laplace_rhoa => zero_f
6589 IF (
ASSOCIATED(deriv_att))
THEN
6590 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhoa_laplace_rhoa_laplace_rhob)
6592 n_laplace_rhoa_laplace_rhoa_laplace_rhob => zero_f
6596 IF (
ASSOCIATED(deriv_att))
THEN
6599 n_laplace_rhoa_laplace_rhoa_tau_a => zero_f
6603 IF (
ASSOCIATED(deriv_att))
THEN
6606 n_laplace_rhoa_laplace_rhoa_tau_b => zero_f
6610 IF (
ASSOCIATED(deriv_att))
THEN
6611 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhoa_laplace_rhob_laplace_rhob)
6613 n_laplace_rhoa_laplace_rhob_laplace_rhob => zero_f
6617 IF (
ASSOCIATED(deriv_att))
THEN
6620 n_laplace_rhoa_laplace_rhob_tau_a => zero_f
6624 IF (
ASSOCIATED(deriv_att))
THEN
6627 n_laplace_rhoa_laplace_rhob_tau_b => zero_f
6631 IF (
ASSOCIATED(deriv_att))
THEN
6634 n_laplace_rhoa_tau_a_tau_a => zero_f
6638 IF (
ASSOCIATED(deriv_att))
THEN
6641 n_laplace_rhoa_tau_a_tau_b => zero_f
6645 IF (
ASSOCIATED(deriv_att))
THEN
6648 n_laplace_rhoa_tau_b_tau_b => zero_f
6652 IF (
ASSOCIATED(deriv_att))
THEN
6653 CALL xc_derivative_get(deriv_att, deriv_data=n_laplace_rhob_laplace_rhob_laplace_rhob)
6655 n_laplace_rhob_laplace_rhob_laplace_rhob => zero_f
6659 IF (
ASSOCIATED(deriv_att))
THEN
6662 n_laplace_rhob_laplace_rhob_tau_a => zero_f
6666 IF (
ASSOCIATED(deriv_att))
THEN
6669 n_laplace_rhob_laplace_rhob_tau_b => zero_f
6673 IF (
ASSOCIATED(deriv_att))
THEN
6676 n_laplace_rhob_tau_a_tau_a => zero_f
6680 IF (
ASSOCIATED(deriv_att))
THEN
6683 n_laplace_rhob_tau_a_tau_b => zero_f
6687 IF (
ASSOCIATED(deriv_att))
THEN
6690 n_laplace_rhob_tau_b_tau_b => zero_f
6694 IF (
ASSOCIATED(deriv_att))
THEN
6697 n_tau_a_tau_a_tau_a => zero_f
6701 IF (
ASSOCIATED(deriv_att))
THEN
6704 n_tau_a_tau_a_tau_b => zero_f
6708 IF (
ASSOCIATED(deriv_att))
THEN
6711 n_tau_a_tau_b_tau_b => zero_f
6715 IF (
ASSOCIATED(deriv_att))
THEN
6718 n_tau_b_tau_b_tau_b => zero_f
6721 ALLOCATE (v_laplace(nspins))
6722 DO ispin = 1, nspins
6723 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
6954 DO k = bo(1, 3), bo(2, 3)
6955 DO j = bo(1, 2), bo(2, 2)
6956 DO i = bo(1, 1), bo(2, 1)
6957 mp_rhoa = rho1a(i, j, k)
6958 mp_rhob = rho1b(i, j, k)
6959 mp_gamma_aa = 2.0_dp*gaa1(i, j, k)
6960 mp_gamma_ab = gab1(i, j, k)
6961 mp_gamma_bb = 2.0_dp*gbb1(i, j, k)
6962 mpp_gamma_aa = 2.0_dp*gaa11(i, j, k)
6963 mpp_gamma_ab = 2.0_dp*gab11(i, j, k)
6964 mpp_gamma_bb = 2.0_dp*gbb11(i, j, k)
6967 IF (tau_f) mp_tau_a = tau1a(i, j, k)
6968 IF (tau_f) mp_tau_b = tau1b(i, j, k)
6969 mp_laplace_rhoa = 0.0_dp
6970 mp_laplace_rhob = 0.0_dp
6971 IF (laplace_f) mp_laplace_rhoa = laplace1a(i, j, k)
6972 IF (laplace_f) mp_laplace_rhob = laplace1b(i, j, k)
6975 q_rhoa = q_rhoa + 1.0_dp* &
6976 n_rhoa_rhoa_rhoa(i, j, k)*mp_rhoa*mp_rhoa
6977 q_rhoa = q_rhoa + 2.0_dp* &
6978 n_rhoa_rhoa_rhob(i, j, k)*mp_rhoa*mp_rhob
6979 q_rhoa = q_rhoa + 2.0_dp* &
6980 n_rhoa_rhoa_gamma_aa(i, j, k)*mp_rhoa*mp_gamma_aa
6981 q_rhoa = q_rhoa + 2.0_dp* &
6982 n_rhoa_rhoa_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
6983 q_rhoa = q_rhoa + 2.0_dp* &
6984 n_rhoa_rhoa_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
6985 q_rhoa = q_rhoa + 2.0_dp* &
6986 n_rhoa_rhoa_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
6987 q_rhoa = q_rhoa + 2.0_dp* &
6988 n_rhoa_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
6989 q_rhoa = q_rhoa + 2.0_dp* &
6990 n_rhoa_rhoa_tau_a(i, j, k)*mp_rhoa*mp_tau_a
6991 q_rhoa = q_rhoa + 2.0_dp* &
6992 n_rhoa_rhoa_tau_b(i, j, k)*mp_rhoa*mp_tau_b
6993 q_rhoa = q_rhoa + 1.0_dp* &
6994 n_rhoa_rhob_rhob(i, j, k)*mp_rhob*mp_rhob
6995 q_rhoa = q_rhoa + 2.0_dp* &
6996 n_rhoa_rhob_gamma_aa(i, j, k)*mp_rhob*mp_gamma_aa
6997 q_rhoa = q_rhoa + 2.0_dp* &
6998 n_rhoa_rhob_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
6999 q_rhoa = q_rhoa + 2.0_dp* &
7000 n_rhoa_rhob_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7001 q_rhoa = q_rhoa + 2.0_dp* &
7002 n_rhoa_rhob_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7003 q_rhoa = q_rhoa + 2.0_dp* &
7004 n_rhoa_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7005 q_rhoa = q_rhoa + 2.0_dp* &
7006 n_rhoa_rhob_tau_a(i, j, k)*mp_rhob*mp_tau_a
7007 q_rhoa = q_rhoa + 2.0_dp* &
7008 n_rhoa_rhob_tau_b(i, j, k)*mp_rhob*mp_tau_b
7009 q_rhoa = q_rhoa + 1.0_dp* &
7010 n_rhoa_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7011 q_rhoa = q_rhoa + 2.0_dp* &
7012 n_rhoa_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7013 q_rhoa = q_rhoa + 2.0_dp* &
7014 n_rhoa_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7015 q_rhoa = q_rhoa + 2.0_dp* &
7016 n_rhoa_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7017 q_rhoa = q_rhoa + 2.0_dp* &
7018 n_rhoa_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7019 q_rhoa = q_rhoa + 2.0_dp* &
7020 n_rhoa_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7021 q_rhoa = q_rhoa + 2.0_dp* &
7022 n_rhoa_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7023 q_rhoa = q_rhoa + 1.0_dp* &
7024 n_rhoa_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7025 q_rhoa = q_rhoa + 2.0_dp* &
7026 n_rhoa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7027 q_rhoa = q_rhoa + 2.0_dp* &
7028 n_rhoa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7029 q_rhoa = q_rhoa + 2.0_dp* &
7030 n_rhoa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7031 q_rhoa = q_rhoa + 2.0_dp* &
7032 n_rhoa_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7033 q_rhoa = q_rhoa + 2.0_dp* &
7034 n_rhoa_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7035 q_rhoa = q_rhoa + 1.0_dp* &
7036 n_rhoa_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7037 q_rhoa = q_rhoa + 2.0_dp* &
7038 n_rhoa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7039 q_rhoa = q_rhoa + 2.0_dp* &
7040 n_rhoa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7041 q_rhoa = q_rhoa + 2.0_dp* &
7042 n_rhoa_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7043 q_rhoa = q_rhoa + 2.0_dp* &
7044 n_rhoa_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7045 q_rhoa = q_rhoa + 1.0_dp* &
7046 n_rhoa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7047 q_rhoa = q_rhoa + 2.0_dp* &
7048 n_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7049 q_rhoa = q_rhoa + 2.0_dp* &
7050 n_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7051 q_rhoa = q_rhoa + 2.0_dp* &
7052 n_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7053 q_rhoa = q_rhoa + 1.0_dp* &
7054 n_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7055 q_rhoa = q_rhoa + 2.0_dp* &
7056 n_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7057 q_rhoa = q_rhoa + 2.0_dp* &
7058 n_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7059 q_rhoa = q_rhoa + 1.0_dp* &
7060 n_rhoa_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7061 q_rhoa = q_rhoa + 2.0_dp* &
7062 n_rhoa_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7063 q_rhoa = q_rhoa + 1.0_dp* &
7064 n_rhoa_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7065 q_rhoa = q_rhoa + n_rhoa_gamma_aa(i, j, k)*mpp_gamma_aa
7066 q_rhoa = q_rhoa + n_rhoa_gamma_ab(i, j, k)*mpp_gamma_ab
7067 q_rhoa = q_rhoa + n_rhoa_gamma_bb(i, j, k)*mpp_gamma_bb
7069 q_rhob = q_rhob + 1.0_dp* &
7070 n_rhoa_rhoa_rhob(i, j, k)*mp_rhoa*mp_rhoa
7071 q_rhob = q_rhob + 2.0_dp* &
7072 n_rhoa_rhob_rhob(i, j, k)*mp_rhoa*mp_rhob
7073 q_rhob = q_rhob + 2.0_dp* &
7074 n_rhoa_rhob_gamma_aa(i, j, k)*mp_rhoa*mp_gamma_aa
7075 q_rhob = q_rhob + 2.0_dp* &
7076 n_rhoa_rhob_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
7077 q_rhob = q_rhob + 2.0_dp* &
7078 n_rhoa_rhob_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7079 q_rhob = q_rhob + 2.0_dp* &
7080 n_rhoa_rhob_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7081 q_rhob = q_rhob + 2.0_dp* &
7082 n_rhoa_rhob_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7083 q_rhob = q_rhob + 2.0_dp* &
7084 n_rhoa_rhob_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7085 q_rhob = q_rhob + 2.0_dp* &
7086 n_rhoa_rhob_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7087 q_rhob = q_rhob + 1.0_dp* &
7088 n_rhob_rhob_rhob(i, j, k)*mp_rhob*mp_rhob
7089 q_rhob = q_rhob + 2.0_dp* &
7090 n_rhob_rhob_gamma_aa(i, j, k)*mp_rhob*mp_gamma_aa
7091 q_rhob = q_rhob + 2.0_dp* &
7092 n_rhob_rhob_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
7093 q_rhob = q_rhob + 2.0_dp* &
7094 n_rhob_rhob_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7095 q_rhob = q_rhob + 2.0_dp* &
7096 n_rhob_rhob_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7097 q_rhob = q_rhob + 2.0_dp* &
7098 n_rhob_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7099 q_rhob = q_rhob + 2.0_dp* &
7100 n_rhob_rhob_tau_a(i, j, k)*mp_rhob*mp_tau_a
7101 q_rhob = q_rhob + 2.0_dp* &
7102 n_rhob_rhob_tau_b(i, j, k)*mp_rhob*mp_tau_b
7103 q_rhob = q_rhob + 1.0_dp* &
7104 n_rhob_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7105 q_rhob = q_rhob + 2.0_dp* &
7106 n_rhob_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7107 q_rhob = q_rhob + 2.0_dp* &
7108 n_rhob_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7109 q_rhob = q_rhob + 2.0_dp* &
7110 n_rhob_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7111 q_rhob = q_rhob + 2.0_dp* &
7112 n_rhob_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7113 q_rhob = q_rhob + 2.0_dp* &
7114 n_rhob_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7115 q_rhob = q_rhob + 2.0_dp* &
7116 n_rhob_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7117 q_rhob = q_rhob + 1.0_dp* &
7118 n_rhob_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7119 q_rhob = q_rhob + 2.0_dp* &
7120 n_rhob_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7121 q_rhob = q_rhob + 2.0_dp* &
7122 n_rhob_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7123 q_rhob = q_rhob + 2.0_dp* &
7124 n_rhob_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7125 q_rhob = q_rhob + 2.0_dp* &
7126 n_rhob_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7127 q_rhob = q_rhob + 2.0_dp* &
7128 n_rhob_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7129 q_rhob = q_rhob + 1.0_dp* &
7130 n_rhob_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7131 q_rhob = q_rhob + 2.0_dp* &
7132 n_rhob_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7133 q_rhob = q_rhob + 2.0_dp* &
7134 n_rhob_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7135 q_rhob = q_rhob + 2.0_dp* &
7136 n_rhob_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7137 q_rhob = q_rhob + 2.0_dp* &
7138 n_rhob_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7139 q_rhob = q_rhob + 1.0_dp* &
7140 n_rhob_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7141 q_rhob = q_rhob + 2.0_dp* &
7142 n_rhob_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7143 q_rhob = q_rhob + 2.0_dp* &
7144 n_rhob_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7145 q_rhob = q_rhob + 2.0_dp* &
7146 n_rhob_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7147 q_rhob = q_rhob + 1.0_dp* &
7148 n_rhob_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7149 q_rhob = q_rhob + 2.0_dp* &
7150 n_rhob_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7151 q_rhob = q_rhob + 2.0_dp* &
7152 n_rhob_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7153 q_rhob = q_rhob + 1.0_dp* &
7154 n_rhob_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7155 q_rhob = q_rhob + 2.0_dp* &
7156 n_rhob_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7157 q_rhob = q_rhob + 1.0_dp* &
7158 n_rhob_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7159 q_rhob = q_rhob + n_rhob_gamma_aa(i, j, k)*mpp_gamma_aa
7160 q_rhob = q_rhob + n_rhob_gamma_ab(i, j, k)*mpp_gamma_ab
7161 q_rhob = q_rhob + n_rhob_gamma_bb(i, j, k)*mpp_gamma_bb
7163 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7164 n_rhoa_rhoa_gamma_aa(i, j, k)*mp_rhoa*mp_rhoa
7165 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7166 n_rhoa_rhob_gamma_aa(i, j, k)*mp_rhoa*mp_rhob
7167 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7168 n_rhoa_gamma_aa_gamma_aa(i, j, k)*mp_rhoa*mp_gamma_aa
7169 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7170 n_rhoa_gamma_aa_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
7171 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7172 n_rhoa_gamma_aa_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7173 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7174 n_rhoa_gamma_aa_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7175 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7176 n_rhoa_gamma_aa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7177 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7178 n_rhoa_gamma_aa_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7179 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7180 n_rhoa_gamma_aa_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7181 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7182 n_rhob_rhob_gamma_aa(i, j, k)*mp_rhob*mp_rhob
7183 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7184 n_rhob_gamma_aa_gamma_aa(i, j, k)*mp_rhob*mp_gamma_aa
7185 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7186 n_rhob_gamma_aa_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
7187 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7188 n_rhob_gamma_aa_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7189 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7190 n_rhob_gamma_aa_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7191 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7192 n_rhob_gamma_aa_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7193 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7194 n_rhob_gamma_aa_tau_a(i, j, k)*mp_rhob*mp_tau_a
7195 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7196 n_rhob_gamma_aa_tau_b(i, j, k)*mp_rhob*mp_tau_b
7197 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7198 n_gamma_aa_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7199 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7200 n_gamma_aa_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7201 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7202 n_gamma_aa_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7203 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7204 n_gamma_aa_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7205 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7206 n_gamma_aa_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7207 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7208 n_gamma_aa_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7209 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7210 n_gamma_aa_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7211 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7212 n_gamma_aa_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7213 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7214 n_gamma_aa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7215 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7216 n_gamma_aa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7217 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7218 n_gamma_aa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7219 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7220 n_gamma_aa_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7221 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7222 n_gamma_aa_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7223 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7224 n_gamma_aa_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7225 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7226 n_gamma_aa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7227 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7228 n_gamma_aa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7229 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7230 n_gamma_aa_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7231 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7232 n_gamma_aa_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7233 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7234 n_gamma_aa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7235 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7236 n_gamma_aa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7237 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7238 n_gamma_aa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7239 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7240 n_gamma_aa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7241 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7242 n_gamma_aa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7243 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7244 n_gamma_aa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7245 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7246 n_gamma_aa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7247 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7248 n_gamma_aa_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7249 q_gamma_aa = q_gamma_aa + 2.0_dp* &
7250 n_gamma_aa_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7251 q_gamma_aa = q_gamma_aa + 1.0_dp* &
7252 n_gamma_aa_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7253 q_gamma_aa = q_gamma_aa + n_gamma_aa_gamma_aa(i, j, k)*mpp_gamma_aa
7254 q_gamma_aa = q_gamma_aa + n_gamma_aa_gamma_ab(i, j, k)*mpp_gamma_ab
7255 q_gamma_aa = q_gamma_aa + n_gamma_aa_gamma_bb(i, j, k)*mpp_gamma_bb
7257 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7258 n_rhoa_rhoa_gamma_ab(i, j, k)*mp_rhoa*mp_rhoa
7259 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7260 n_rhoa_rhob_gamma_ab(i, j, k)*mp_rhoa*mp_rhob
7261 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7262 n_rhoa_gamma_aa_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_aa
7263 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7264 n_rhoa_gamma_ab_gamma_ab(i, j, k)*mp_rhoa*mp_gamma_ab
7265 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7266 n_rhoa_gamma_ab_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7267 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7268 n_rhoa_gamma_ab_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7269 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7270 n_rhoa_gamma_ab_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7271 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7272 n_rhoa_gamma_ab_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7273 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7274 n_rhoa_gamma_ab_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7275 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7276 n_rhob_rhob_gamma_ab(i, j, k)*mp_rhob*mp_rhob
7277 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7278 n_rhob_gamma_aa_gamma_ab(i, j, k)*mp_rhob*mp_gamma_aa
7279 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7280 n_rhob_gamma_ab_gamma_ab(i, j, k)*mp_rhob*mp_gamma_ab
7281 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7282 n_rhob_gamma_ab_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7283 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7284 n_rhob_gamma_ab_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7285 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7286 n_rhob_gamma_ab_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7287 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7288 n_rhob_gamma_ab_tau_a(i, j, k)*mp_rhob*mp_tau_a
7289 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7290 n_rhob_gamma_ab_tau_b(i, j, k)*mp_rhob*mp_tau_b
7291 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7292 n_gamma_aa_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_aa
7293 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7294 n_gamma_aa_gamma_ab_gamma_ab(i, j, k)*mp_gamma_aa*mp_gamma_ab
7295 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7296 n_gamma_aa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7297 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7298 n_gamma_aa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7299 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7300 n_gamma_aa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7301 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7302 n_gamma_aa_gamma_ab_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7303 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7304 n_gamma_aa_gamma_ab_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7305 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7306 n_gamma_ab_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab*mp_gamma_ab
7307 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7308 n_gamma_ab_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7309 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7310 n_gamma_ab_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7311 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7312 n_gamma_ab_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7313 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7314 n_gamma_ab_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7315 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7316 n_gamma_ab_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7317 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7318 n_gamma_ab_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7319 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7320 n_gamma_ab_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7321 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7322 n_gamma_ab_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7323 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7324 n_gamma_ab_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7325 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7326 n_gamma_ab_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7327 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7328 n_gamma_ab_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7329 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7330 n_gamma_ab_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7331 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7332 n_gamma_ab_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7333 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7334 n_gamma_ab_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7335 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7336 n_gamma_ab_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7337 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7338 n_gamma_ab_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7339 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7340 n_gamma_ab_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7341 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7342 n_gamma_ab_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7343 q_gamma_ab = q_gamma_ab + 2.0_dp* &
7344 n_gamma_ab_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7345 q_gamma_ab = q_gamma_ab + 1.0_dp* &
7346 n_gamma_ab_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7347 q_gamma_ab = q_gamma_ab + n_gamma_aa_gamma_ab(i, j, k)*mpp_gamma_aa
7348 q_gamma_ab = q_gamma_ab + n_gamma_ab_gamma_ab(i, j, k)*mpp_gamma_ab
7349 q_gamma_ab = q_gamma_ab + n_gamma_ab_gamma_bb(i, j, k)*mpp_gamma_bb
7351 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7352 n_rhoa_rhoa_gamma_bb(i, j, k)*mp_rhoa*mp_rhoa
7353 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7354 n_rhoa_rhob_gamma_bb(i, j, k)*mp_rhoa*mp_rhob
7355 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7356 n_rhoa_gamma_aa_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_aa
7357 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7358 n_rhoa_gamma_ab_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_ab
7359 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7360 n_rhoa_gamma_bb_gamma_bb(i, j, k)*mp_rhoa*mp_gamma_bb
7361 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7362 n_rhoa_gamma_bb_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7363 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7364 n_rhoa_gamma_bb_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7365 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7366 n_rhoa_gamma_bb_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7367 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7368 n_rhoa_gamma_bb_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7369 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7370 n_rhob_rhob_gamma_bb(i, j, k)*mp_rhob*mp_rhob
7371 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7372 n_rhob_gamma_aa_gamma_bb(i, j, k)*mp_rhob*mp_gamma_aa
7373 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7374 n_rhob_gamma_ab_gamma_bb(i, j, k)*mp_rhob*mp_gamma_ab
7375 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7376 n_rhob_gamma_bb_gamma_bb(i, j, k)*mp_rhob*mp_gamma_bb
7377 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7378 n_rhob_gamma_bb_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7379 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7380 n_rhob_gamma_bb_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7381 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7382 n_rhob_gamma_bb_tau_a(i, j, k)*mp_rhob*mp_tau_a
7383 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7384 n_rhob_gamma_bb_tau_b(i, j, k)*mp_rhob*mp_tau_b
7385 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7386 n_gamma_aa_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_aa
7387 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7388 n_gamma_aa_gamma_ab_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_ab
7389 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7390 n_gamma_aa_gamma_bb_gamma_bb(i, j, k)*mp_gamma_aa*mp_gamma_bb
7391 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7392 n_gamma_aa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7393 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7394 n_gamma_aa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7395 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7396 n_gamma_aa_gamma_bb_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7397 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7398 n_gamma_aa_gamma_bb_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7399 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7400 n_gamma_ab_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_ab
7401 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7402 n_gamma_ab_gamma_bb_gamma_bb(i, j, k)*mp_gamma_ab*mp_gamma_bb
7403 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7404 n_gamma_ab_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7405 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7406 n_gamma_ab_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7407 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7408 n_gamma_ab_gamma_bb_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7409 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7410 n_gamma_ab_gamma_bb_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7411 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7412 n_gamma_bb_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb*mp_gamma_bb
7413 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7414 n_gamma_bb_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7415 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7416 n_gamma_bb_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7417 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7418 n_gamma_bb_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7419 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7420 n_gamma_bb_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7421 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7422 n_gamma_bb_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7423 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7424 n_gamma_bb_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7425 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7426 n_gamma_bb_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7427 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7428 n_gamma_bb_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7429 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7430 n_gamma_bb_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7431 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7432 n_gamma_bb_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7433 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7434 n_gamma_bb_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7435 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7436 n_gamma_bb_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7437 q_gamma_bb = q_gamma_bb + 2.0_dp* &
7438 n_gamma_bb_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7439 q_gamma_bb = q_gamma_bb + 1.0_dp* &
7440 n_gamma_bb_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7441 q_gamma_bb = q_gamma_bb + n_gamma_aa_gamma_bb(i, j, k)*mpp_gamma_aa
7442 q_gamma_bb = q_gamma_bb + n_gamma_ab_gamma_bb(i, j, k)*mpp_gamma_ab
7443 q_gamma_bb = q_gamma_bb + n_gamma_bb_gamma_bb(i, j, k)*mpp_gamma_bb
7444 q_laplace_rhoa = 0.0_dp
7445 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7446 n_rhoa_rhoa_laplace_rhoa(i, j, k)*mp_rhoa*mp_rhoa
7447 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7448 n_rhoa_rhob_laplace_rhoa(i, j, k)*mp_rhoa*mp_rhob
7449 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7450 n_rhoa_gamma_aa_laplace_rhoa(i, j, k)*mp_rhoa*mp_gamma_aa
7451 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7452 n_rhoa_gamma_ab_laplace_rhoa(i, j, k)*mp_rhoa*mp_gamma_ab
7453 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7454 n_rhoa_gamma_bb_laplace_rhoa(i, j, k)*mp_rhoa*mp_gamma_bb
7455 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7456 n_rhoa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_rhoa*mp_laplace_rhoa
7457 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7458 n_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7459 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7460 n_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7461 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7462 n_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7463 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7464 n_rhob_rhob_laplace_rhoa(i, j, k)*mp_rhob*mp_rhob
7465 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7466 n_rhob_gamma_aa_laplace_rhoa(i, j, k)*mp_rhob*mp_gamma_aa
7467 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7468 n_rhob_gamma_ab_laplace_rhoa(i, j, k)*mp_rhob*mp_gamma_ab
7469 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7470 n_rhob_gamma_bb_laplace_rhoa(i, j, k)*mp_rhob*mp_gamma_bb
7471 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7472 n_rhob_laplace_rhoa_laplace_rhoa(i, j, k)*mp_rhob*mp_laplace_rhoa
7473 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7474 n_rhob_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7475 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7476 n_rhob_laplace_rhoa_tau_a(i, j, k)*mp_rhob*mp_tau_a
7477 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7478 n_rhob_laplace_rhoa_tau_b(i, j, k)*mp_rhob*mp_tau_b
7479 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7480 n_gamma_aa_gamma_aa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_gamma_aa
7481 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7482 n_gamma_aa_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_gamma_ab
7483 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7484 n_gamma_aa_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_gamma_bb
7485 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7486 n_gamma_aa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7487 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7488 n_gamma_aa_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7489 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7490 n_gamma_aa_laplace_rhoa_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7491 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7492 n_gamma_aa_laplace_rhoa_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7493 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7494 n_gamma_ab_gamma_ab_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_gamma_ab
7495 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7496 n_gamma_ab_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_gamma_bb
7497 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7498 n_gamma_ab_laplace_rhoa_laplace_rhoa(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7499 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7500 n_gamma_ab_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7501 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7502 n_gamma_ab_laplace_rhoa_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7503 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7504 n_gamma_ab_laplace_rhoa_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7505 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7506 n_gamma_bb_gamma_bb_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_gamma_bb
7507 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7508 n_gamma_bb_laplace_rhoa_laplace_rhoa(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7509 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7510 n_gamma_bb_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7511 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7512 n_gamma_bb_laplace_rhoa_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7513 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7514 n_gamma_bb_laplace_rhoa_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7515 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7516 n_laplace_rhoa_laplace_rhoa_laplace_rhoa(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7517 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7518 n_laplace_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7519 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7520 n_laplace_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7521 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7522 n_laplace_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7523 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7524 n_laplace_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7525 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7526 n_laplace_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7527 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7528 n_laplace_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7529 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7530 n_laplace_rhoa_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7531 q_laplace_rhoa = q_laplace_rhoa + 2.0_dp* &
7532 n_laplace_rhoa_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7533 q_laplace_rhoa = q_laplace_rhoa + 1.0_dp* &
7534 n_laplace_rhoa_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7535 q_laplace_rhoa = q_laplace_rhoa + n_gamma_aa_laplace_rhoa(i, j, k)*mpp_gamma_aa
7536 q_laplace_rhoa = q_laplace_rhoa + n_gamma_ab_laplace_rhoa(i, j, k)*mpp_gamma_ab
7537 q_laplace_rhoa = q_laplace_rhoa + n_gamma_bb_laplace_rhoa(i, j, k)*mpp_gamma_bb
7538 q_laplace_rhob = 0.0_dp
7539 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7540 n_rhoa_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_rhoa
7541 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7542 n_rhoa_rhob_laplace_rhob(i, j, k)*mp_rhoa*mp_rhob
7543 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7544 n_rhoa_gamma_aa_laplace_rhob(i, j, k)*mp_rhoa*mp_gamma_aa
7545 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7546 n_rhoa_gamma_ab_laplace_rhob(i, j, k)*mp_rhoa*mp_gamma_ab
7547 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7548 n_rhoa_gamma_bb_laplace_rhob(i, j, k)*mp_rhoa*mp_gamma_bb
7549 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7550 n_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhoa
7551 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7552 n_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_rhoa*mp_laplace_rhob
7553 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7554 n_rhoa_laplace_rhob_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7555 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7556 n_rhoa_laplace_rhob_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7557 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7558 n_rhob_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_rhob
7559 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7560 n_rhob_gamma_aa_laplace_rhob(i, j, k)*mp_rhob*mp_gamma_aa
7561 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7562 n_rhob_gamma_ab_laplace_rhob(i, j, k)*mp_rhob*mp_gamma_ab
7563 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7564 n_rhob_gamma_bb_laplace_rhob(i, j, k)*mp_rhob*mp_gamma_bb
7565 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7566 n_rhob_laplace_rhoa_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhoa
7567 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7568 n_rhob_laplace_rhob_laplace_rhob(i, j, k)*mp_rhob*mp_laplace_rhob
7569 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7570 n_rhob_laplace_rhob_tau_a(i, j, k)*mp_rhob*mp_tau_a
7571 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7572 n_rhob_laplace_rhob_tau_b(i, j, k)*mp_rhob*mp_tau_b
7573 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7574 n_gamma_aa_gamma_aa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_gamma_aa
7575 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7576 n_gamma_aa_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_aa*mp_gamma_ab
7577 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7578 n_gamma_aa_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_aa*mp_gamma_bb
7579 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7580 n_gamma_aa_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7581 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7582 n_gamma_aa_laplace_rhob_laplace_rhob(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7583 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7584 n_gamma_aa_laplace_rhob_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7585 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7586 n_gamma_aa_laplace_rhob_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7587 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7588 n_gamma_ab_gamma_ab_laplace_rhob(i, j, k)*mp_gamma_ab*mp_gamma_ab
7589 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7590 n_gamma_ab_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_ab*mp_gamma_bb
7591 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7592 n_gamma_ab_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7593 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7594 n_gamma_ab_laplace_rhob_laplace_rhob(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7595 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7596 n_gamma_ab_laplace_rhob_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7597 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7598 n_gamma_ab_laplace_rhob_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7599 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7600 n_gamma_bb_gamma_bb_laplace_rhob(i, j, k)*mp_gamma_bb*mp_gamma_bb
7601 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7602 n_gamma_bb_laplace_rhoa_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7603 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7604 n_gamma_bb_laplace_rhob_laplace_rhob(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7605 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7606 n_gamma_bb_laplace_rhob_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7607 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7608 n_gamma_bb_laplace_rhob_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7609 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7610 n_laplace_rhoa_laplace_rhoa_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7611 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7612 n_laplace_rhoa_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7613 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7614 n_laplace_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7615 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7616 n_laplace_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7617 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7618 n_laplace_rhob_laplace_rhob_laplace_rhob(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7619 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7620 n_laplace_rhob_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7621 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7622 n_laplace_rhob_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7623 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7624 n_laplace_rhob_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7625 q_laplace_rhob = q_laplace_rhob + 2.0_dp* &
7626 n_laplace_rhob_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7627 q_laplace_rhob = q_laplace_rhob + 1.0_dp* &
7628 n_laplace_rhob_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7629 q_laplace_rhob = q_laplace_rhob + n_gamma_aa_laplace_rhob(i, j, k)*mpp_gamma_aa
7630 q_laplace_rhob = q_laplace_rhob + n_gamma_ab_laplace_rhob(i, j, k)*mpp_gamma_ab
7631 q_laplace_rhob = q_laplace_rhob + n_gamma_bb_laplace_rhob(i, j, k)*mpp_gamma_bb
7633 q_tau_a = q_tau_a + 1.0_dp* &
7634 n_rhoa_rhoa_tau_a(i, j, k)*mp_rhoa*mp_rhoa
7635 q_tau_a = q_tau_a + 2.0_dp* &
7636 n_rhoa_rhob_tau_a(i, j, k)*mp_rhoa*mp_rhob
7637 q_tau_a = q_tau_a + 2.0_dp* &
7638 n_rhoa_gamma_aa_tau_a(i, j, k)*mp_rhoa*mp_gamma_aa
7639 q_tau_a = q_tau_a + 2.0_dp* &
7640 n_rhoa_gamma_ab_tau_a(i, j, k)*mp_rhoa*mp_gamma_ab
7641 q_tau_a = q_tau_a + 2.0_dp* &
7642 n_rhoa_gamma_bb_tau_a(i, j, k)*mp_rhoa*mp_gamma_bb
7643 q_tau_a = q_tau_a + 2.0_dp* &
7644 n_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_rhoa*mp_laplace_rhoa
7645 q_tau_a = q_tau_a + 2.0_dp* &
7646 n_rhoa_laplace_rhob_tau_a(i, j, k)*mp_rhoa*mp_laplace_rhob
7647 q_tau_a = q_tau_a + 2.0_dp* &
7648 n_rhoa_tau_a_tau_a(i, j, k)*mp_rhoa*mp_tau_a
7649 q_tau_a = q_tau_a + 2.0_dp* &
7650 n_rhoa_tau_a_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7651 q_tau_a = q_tau_a + 1.0_dp* &
7652 n_rhob_rhob_tau_a(i, j, k)*mp_rhob*mp_rhob
7653 q_tau_a = q_tau_a + 2.0_dp* &
7654 n_rhob_gamma_aa_tau_a(i, j, k)*mp_rhob*mp_gamma_aa
7655 q_tau_a = q_tau_a + 2.0_dp* &
7656 n_rhob_gamma_ab_tau_a(i, j, k)*mp_rhob*mp_gamma_ab
7657 q_tau_a = q_tau_a + 2.0_dp* &
7658 n_rhob_gamma_bb_tau_a(i, j, k)*mp_rhob*mp_gamma_bb
7659 q_tau_a = q_tau_a + 2.0_dp* &
7660 n_rhob_laplace_rhoa_tau_a(i, j, k)*mp_rhob*mp_laplace_rhoa
7661 q_tau_a = q_tau_a + 2.0_dp* &
7662 n_rhob_laplace_rhob_tau_a(i, j, k)*mp_rhob*mp_laplace_rhob
7663 q_tau_a = q_tau_a + 2.0_dp* &
7664 n_rhob_tau_a_tau_a(i, j, k)*mp_rhob*mp_tau_a
7665 q_tau_a = q_tau_a + 2.0_dp* &
7666 n_rhob_tau_a_tau_b(i, j, k)*mp_rhob*mp_tau_b
7667 q_tau_a = q_tau_a + 1.0_dp* &
7668 n_gamma_aa_gamma_aa_tau_a(i, j, k)*mp_gamma_aa*mp_gamma_aa
7669 q_tau_a = q_tau_a + 2.0_dp* &
7670 n_gamma_aa_gamma_ab_tau_a(i, j, k)*mp_gamma_aa*mp_gamma_ab
7671 q_tau_a = q_tau_a + 2.0_dp* &
7672 n_gamma_aa_gamma_bb_tau_a(i, j, k)*mp_gamma_aa*mp_gamma_bb
7673 q_tau_a = q_tau_a + 2.0_dp* &
7674 n_gamma_aa_laplace_rhoa_tau_a(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7675 q_tau_a = q_tau_a + 2.0_dp* &
7676 n_gamma_aa_laplace_rhob_tau_a(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7677 q_tau_a = q_tau_a + 2.0_dp* &
7678 n_gamma_aa_tau_a_tau_a(i, j, k)*mp_gamma_aa*mp_tau_a
7679 q_tau_a = q_tau_a + 2.0_dp* &
7680 n_gamma_aa_tau_a_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7681 q_tau_a = q_tau_a + 1.0_dp* &
7682 n_gamma_ab_gamma_ab_tau_a(i, j, k)*mp_gamma_ab*mp_gamma_ab
7683 q_tau_a = q_tau_a + 2.0_dp* &
7684 n_gamma_ab_gamma_bb_tau_a(i, j, k)*mp_gamma_ab*mp_gamma_bb
7685 q_tau_a = q_tau_a + 2.0_dp* &
7686 n_gamma_ab_laplace_rhoa_tau_a(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7687 q_tau_a = q_tau_a + 2.0_dp* &
7688 n_gamma_ab_laplace_rhob_tau_a(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7689 q_tau_a = q_tau_a + 2.0_dp* &
7690 n_gamma_ab_tau_a_tau_a(i, j, k)*mp_gamma_ab*mp_tau_a
7691 q_tau_a = q_tau_a + 2.0_dp* &
7692 n_gamma_ab_tau_a_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7693 q_tau_a = q_tau_a + 1.0_dp* &
7694 n_gamma_bb_gamma_bb_tau_a(i, j, k)*mp_gamma_bb*mp_gamma_bb
7695 q_tau_a = q_tau_a + 2.0_dp* &
7696 n_gamma_bb_laplace_rhoa_tau_a(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7697 q_tau_a = q_tau_a + 2.0_dp* &
7698 n_gamma_bb_laplace_rhob_tau_a(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7699 q_tau_a = q_tau_a + 2.0_dp* &
7700 n_gamma_bb_tau_a_tau_a(i, j, k)*mp_gamma_bb*mp_tau_a
7701 q_tau_a = q_tau_a + 2.0_dp* &
7702 n_gamma_bb_tau_a_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7703 q_tau_a = q_tau_a + 1.0_dp* &
7704 n_laplace_rhoa_laplace_rhoa_tau_a(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7705 q_tau_a = q_tau_a + 2.0_dp* &
7706 n_laplace_rhoa_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7707 q_tau_a = q_tau_a + 2.0_dp* &
7708 n_laplace_rhoa_tau_a_tau_a(i, j, k)*mp_laplace_rhoa*mp_tau_a
7709 q_tau_a = q_tau_a + 2.0_dp* &
7710 n_laplace_rhoa_tau_a_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7711 q_tau_a = q_tau_a + 1.0_dp* &
7712 n_laplace_rhob_laplace_rhob_tau_a(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7713 q_tau_a = q_tau_a + 2.0_dp* &
7714 n_laplace_rhob_tau_a_tau_a(i, j, k)*mp_laplace_rhob*mp_tau_a
7715 q_tau_a = q_tau_a + 2.0_dp* &
7716 n_laplace_rhob_tau_a_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7717 q_tau_a = q_tau_a + 1.0_dp* &
7718 n_tau_a_tau_a_tau_a(i, j, k)*mp_tau_a*mp_tau_a
7719 q_tau_a = q_tau_a + 2.0_dp* &
7720 n_tau_a_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7721 q_tau_a = q_tau_a + 1.0_dp* &
7722 n_tau_a_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7723 q_tau_a = q_tau_a + n_gamma_aa_tau_a(i, j, k)*mpp_gamma_aa
7724 q_tau_a = q_tau_a + n_gamma_ab_tau_a(i, j, k)*mpp_gamma_ab
7725 q_tau_a = q_tau_a + n_gamma_bb_tau_a(i, j, k)*mpp_gamma_bb
7727 q_tau_b = q_tau_b + 1.0_dp* &
7728 n_rhoa_rhoa_tau_b(i, j, k)*mp_rhoa*mp_rhoa
7729 q_tau_b = q_tau_b + 2.0_dp* &
7730 n_rhoa_rhob_tau_b(i, j, k)*mp_rhoa*mp_rhob
7731 q_tau_b = q_tau_b + 2.0_dp* &
7732 n_rhoa_gamma_aa_tau_b(i, j, k)*mp_rhoa*mp_gamma_aa
7733 q_tau_b = q_tau_b + 2.0_dp* &
7734 n_rhoa_gamma_ab_tau_b(i, j, k)*mp_rhoa*mp_gamma_ab
7735 q_tau_b = q_tau_b + 2.0_dp* &
7736 n_rhoa_gamma_bb_tau_b(i, j, k)*mp_rhoa*mp_gamma_bb
7737 q_tau_b = q_tau_b + 2.0_dp* &
7738 n_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_rhoa*mp_laplace_rhoa
7739 q_tau_b = q_tau_b + 2.0_dp* &
7740 n_rhoa_laplace_rhob_tau_b(i, j, k)*mp_rhoa*mp_laplace_rhob
7741 q_tau_b = q_tau_b + 2.0_dp* &
7742 n_rhoa_tau_a_tau_b(i, j, k)*mp_rhoa*mp_tau_a
7743 q_tau_b = q_tau_b + 2.0_dp* &
7744 n_rhoa_tau_b_tau_b(i, j, k)*mp_rhoa*mp_tau_b
7745 q_tau_b = q_tau_b + 1.0_dp* &
7746 n_rhob_rhob_tau_b(i, j, k)*mp_rhob*mp_rhob
7747 q_tau_b = q_tau_b + 2.0_dp* &
7748 n_rhob_gamma_aa_tau_b(i, j, k)*mp_rhob*mp_gamma_aa
7749 q_tau_b = q_tau_b + 2.0_dp* &
7750 n_rhob_gamma_ab_tau_b(i, j, k)*mp_rhob*mp_gamma_ab
7751 q_tau_b = q_tau_b + 2.0_dp* &
7752 n_rhob_gamma_bb_tau_b(i, j, k)*mp_rhob*mp_gamma_bb
7753 q_tau_b = q_tau_b + 2.0_dp* &
7754 n_rhob_laplace_rhoa_tau_b(i, j, k)*mp_rhob*mp_laplace_rhoa
7755 q_tau_b = q_tau_b + 2.0_dp* &
7756 n_rhob_laplace_rhob_tau_b(i, j, k)*mp_rhob*mp_laplace_rhob
7757 q_tau_b = q_tau_b + 2.0_dp* &
7758 n_rhob_tau_a_tau_b(i, j, k)*mp_rhob*mp_tau_a
7759 q_tau_b = q_tau_b + 2.0_dp* &
7760 n_rhob_tau_b_tau_b(i, j, k)*mp_rhob*mp_tau_b
7761 q_tau_b = q_tau_b + 1.0_dp* &
7762 n_gamma_aa_gamma_aa_tau_b(i, j, k)*mp_gamma_aa*mp_gamma_aa
7763 q_tau_b = q_tau_b + 2.0_dp* &
7764 n_gamma_aa_gamma_ab_tau_b(i, j, k)*mp_gamma_aa*mp_gamma_ab
7765 q_tau_b = q_tau_b + 2.0_dp* &
7766 n_gamma_aa_gamma_bb_tau_b(i, j, k)*mp_gamma_aa*mp_gamma_bb
7767 q_tau_b = q_tau_b + 2.0_dp* &
7768 n_gamma_aa_laplace_rhoa_tau_b(i, j, k)*mp_gamma_aa*mp_laplace_rhoa
7769 q_tau_b = q_tau_b + 2.0_dp* &
7770 n_gamma_aa_laplace_rhob_tau_b(i, j, k)*mp_gamma_aa*mp_laplace_rhob
7771 q_tau_b = q_tau_b + 2.0_dp* &
7772 n_gamma_aa_tau_a_tau_b(i, j, k)*mp_gamma_aa*mp_tau_a
7773 q_tau_b = q_tau_b + 2.0_dp* &
7774 n_gamma_aa_tau_b_tau_b(i, j, k)*mp_gamma_aa*mp_tau_b
7775 q_tau_b = q_tau_b + 1.0_dp* &
7776 n_gamma_ab_gamma_ab_tau_b(i, j, k)*mp_gamma_ab*mp_gamma_ab
7777 q_tau_b = q_tau_b + 2.0_dp* &
7778 n_gamma_ab_gamma_bb_tau_b(i, j, k)*mp_gamma_ab*mp_gamma_bb
7779 q_tau_b = q_tau_b + 2.0_dp* &
7780 n_gamma_ab_laplace_rhoa_tau_b(i, j, k)*mp_gamma_ab*mp_laplace_rhoa
7781 q_tau_b = q_tau_b + 2.0_dp* &
7782 n_gamma_ab_laplace_rhob_tau_b(i, j, k)*mp_gamma_ab*mp_laplace_rhob
7783 q_tau_b = q_tau_b + 2.0_dp* &
7784 n_gamma_ab_tau_a_tau_b(i, j, k)*mp_gamma_ab*mp_tau_a
7785 q_tau_b = q_tau_b + 2.0_dp* &
7786 n_gamma_ab_tau_b_tau_b(i, j, k)*mp_gamma_ab*mp_tau_b
7787 q_tau_b = q_tau_b + 1.0_dp* &
7788 n_gamma_bb_gamma_bb_tau_b(i, j, k)*mp_gamma_bb*mp_gamma_bb
7789 q_tau_b = q_tau_b + 2.0_dp* &
7790 n_gamma_bb_laplace_rhoa_tau_b(i, j, k)*mp_gamma_bb*mp_laplace_rhoa
7791 q_tau_b = q_tau_b + 2.0_dp* &
7792 n_gamma_bb_laplace_rhob_tau_b(i, j, k)*mp_gamma_bb*mp_laplace_rhob
7793 q_tau_b = q_tau_b + 2.0_dp* &
7794 n_gamma_bb_tau_a_tau_b(i, j, k)*mp_gamma_bb*mp_tau_a
7795 q_tau_b = q_tau_b + 2.0_dp* &
7796 n_gamma_bb_tau_b_tau_b(i, j, k)*mp_gamma_bb*mp_tau_b
7797 q_tau_b = q_tau_b + 1.0_dp* &
7798 n_laplace_rhoa_laplace_rhoa_tau_b(i, j, k)*mp_laplace_rhoa*mp_laplace_rhoa
7799 q_tau_b = q_tau_b + 2.0_dp* &
7800 n_laplace_rhoa_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhoa*mp_laplace_rhob
7801 q_tau_b = q_tau_b + 2.0_dp* &
7802 n_laplace_rhoa_tau_a_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_a
7803 q_tau_b = q_tau_b + 2.0_dp* &
7804 n_laplace_rhoa_tau_b_tau_b(i, j, k)*mp_laplace_rhoa*mp_tau_b
7805 q_tau_b = q_tau_b + 1.0_dp* &
7806 n_laplace_rhob_laplace_rhob_tau_b(i, j, k)*mp_laplace_rhob*mp_laplace_rhob
7807 q_tau_b = q_tau_b + 2.0_dp* &
7808 n_laplace_rhob_tau_a_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_a
7809 q_tau_b = q_tau_b + 2.0_dp* &
7810 n_laplace_rhob_tau_b_tau_b(i, j, k)*mp_laplace_rhob*mp_tau_b
7811 q_tau_b = q_tau_b + 1.0_dp* &
7812 n_tau_a_tau_a_tau_b(i, j, k)*mp_tau_a*mp_tau_a
7813 q_tau_b = q_tau_b + 2.0_dp* &
7814 n_tau_a_tau_b_tau_b(i, j, k)*mp_tau_a*mp_tau_b
7815 q_tau_b = q_tau_b + 1.0_dp* &
7816 n_tau_b_tau_b_tau_b(i, j, k)*mp_tau_b*mp_tau_b
7817 q_tau_b = q_tau_b + n_gamma_aa_tau_b(i, j, k)*mpp_gamma_aa
7818 q_tau_b = q_tau_b + n_gamma_ab_tau_b(i, j, k)*mpp_gamma_ab
7819 q_tau_b = q_tau_b + n_gamma_bb_tau_b(i, j, k)*mpp_gamma_bb
7820 nb_gamma_aa = 0.0_dp
7821 nb_gamma_aa = nb_gamma_aa + n_rhoa_gamma_aa(i, j, k)*mp_rhoa
7822 nb_gamma_aa = nb_gamma_aa + n_rhob_gamma_aa(i, j, k)*mp_rhob
7823 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_gamma_aa(i, j, k)*mp_gamma_aa
7824 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_gamma_ab(i, j, k)*mp_gamma_ab
7825 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_gamma_bb(i, j, k)*mp_gamma_bb
7826 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_laplace_rhoa(i, j, k)*mp_laplace_rhoa
7827 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_laplace_rhob(i, j, k)*mp_laplace_rhob
7828 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_tau_a(i, j, k)*mp_tau_a
7829 nb_gamma_aa = nb_gamma_aa + n_gamma_aa_tau_b(i, j, k)*mp_tau_b
7830 nb_gamma_ab = 0.0_dp
7831 nb_gamma_ab = nb_gamma_ab + n_rhoa_gamma_ab(i, j, k)*mp_rhoa
7832 nb_gamma_ab = nb_gamma_ab + n_rhob_gamma_ab(i, j, k)*mp_rhob
7833 nb_gamma_ab = nb_gamma_ab + n_gamma_aa_gamma_ab(i, j, k)*mp_gamma_aa
7834 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_gamma_ab(i, j, k)*mp_gamma_ab
7835 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_gamma_bb(i, j, k)*mp_gamma_bb
7836 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_laplace_rhoa(i, j, k)*mp_laplace_rhoa
7837 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_laplace_rhob(i, j, k)*mp_laplace_rhob
7838 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_tau_a(i, j, k)*mp_tau_a
7839 nb_gamma_ab = nb_gamma_ab + n_gamma_ab_tau_b(i, j, k)*mp_tau_b
7840 nb_gamma_bb = 0.0_dp
7841 nb_gamma_bb = nb_gamma_bb + n_rhoa_gamma_bb(i, j, k)*mp_rhoa
7842 nb_gamma_bb = nb_gamma_bb + n_rhob_gamma_bb(i, j, k)*mp_rhob
7843 nb_gamma_bb = nb_gamma_bb + n_gamma_aa_gamma_bb(i, j, k)*mp_gamma_aa
7844 nb_gamma_bb = nb_gamma_bb + n_gamma_ab_gamma_bb(i, j, k)*mp_gamma_ab
7845 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_gamma_bb(i, j, k)*mp_gamma_bb
7846 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_laplace_rhoa(i, j, k)*mp_laplace_rhoa
7847 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_laplace_rhob(i, j, k)*mp_laplace_rhob
7848 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_tau_a(i, j, k)*mp_tau_a
7849 nb_gamma_bb = nb_gamma_bb + n_gamma_bb_tau_b(i, j, k)*mp_tau_b
7851 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + q_rhoa
7852 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + q_rhob
7854 v_xc_tau(1)%array(i, j, k) = v_xc_tau(1)%array(i, j, k) + q_tau_a
7855 v_xc_tau(2)%array(i, j, k) = v_xc_tau(2)%array(i, j, k) + q_tau_b
7858 v_laplace(1)%array(i, j, k) = v_laplace(1)%array(i, j, k) + q_laplace_rhoa
7859 v_laplace(2)%array(i, j, k) = v_laplace(2)%array(i, j, k) + q_laplace_rhob
7863 v_drho_r(1, 1)%array(i, j, k) = &
7864 -(2.0_dp*drhoa(1)%array(i, j, k)*q_gamma_aa &
7865 + drhob(1)%array(i, j, k)*q_gamma_ab &
7866 + 2.0_dp*(2.0_dp*drho1a(1)%array(i, j, k)*nb_gamma_aa &
7867 + drho1b(1)%array(i, j, k)*nb_gamma_ab))
7868 v_drho_r(1, 2)%array(i, j, k) = &
7869 -(2.0_dp*drhob(1)%array(i, j, k)*q_gamma_bb &
7870 + drhoa(1)%array(i, j, k)*q_gamma_ab &
7871 + 2.0_dp*(2.0_dp*drho1b(1)%array(i, j, k)*nb_gamma_bb &
7872 + drho1a(1)%array(i, j, k)*nb_gamma_ab))
7873 v_drho_r(2, 1)%array(i, j, k) = &
7874 -(2.0_dp*drhoa(2)%array(i, j, k)*q_gamma_aa &
7875 + drhob(2)%array(i, j, k)*q_gamma_ab &
7876 + 2.0_dp*(2.0_dp*drho1a(2)%array(i, j, k)*nb_gamma_aa &
7877 + drho1b(2)%array(i, j, k)*nb_gamma_ab))
7878 v_drho_r(2, 2)%array(i, j, k) = &
7879 -(2.0_dp*drhob(2)%array(i, j, k)*q_gamma_bb &
7880 + drhoa(2)%array(i, j, k)*q_gamma_ab &
7881 + 2.0_dp*(2.0_dp*drho1b(2)%array(i, j, k)*nb_gamma_bb &
7882 + drho1a(2)%array(i, j, k)*nb_gamma_ab))
7883 v_drho_r(3, 1)%array(i, j, k) = &
7884 -(2.0_dp*drhoa(3)%array(i, j, k)*q_gamma_aa &
7885 + drhob(3)%array(i, j, k)*q_gamma_ab &
7886 + 2.0_dp*(2.0_dp*drho1a(3)%array(i, j, k)*nb_gamma_aa &
7887 + drho1b(3)%array(i, j, k)*nb_gamma_ab))
7888 v_drho_r(3, 2)%array(i, j, k) = &
7889 -(2.0_dp*drhob(3)%array(i, j, k)*q_gamma_bb &
7890 + drhoa(3)%array(i, j, k)*q_gamma_ab &
7891 + 2.0_dp*(2.0_dp*drho1b(3)%array(i, j, k)*nb_gamma_bb &
7892 + drho1a(3)%array(i, j, k)*nb_gamma_ab))
7900 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
7905 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
7908 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
7911 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 2), tmp_g, vxc_g, v_xc(2))
7913 DO ispin = 1, nspins
7914 CALL xc_pw_laplace(v_laplace(ispin), pw_pool, xc_deriv_method_id)
7915 CALL pw_axpy(v_laplace(ispin), v_xc(ispin))
7916 CALL deallocate_pw(v_laplace(ispin), pw_pool)
7918 DEALLOCATE (v_laplace)
7924 IF (.NOT. gradient_f)
THEN
7928 cpassert(
ASSOCIATED(deriv_att))
7932 cpassert(
ASSOCIATED(deriv_att))
7936 cpassert(
ASSOCIATED(deriv_att))
7940 cpassert(
ASSOCIATED(deriv_att))
7948 DO k = bo(1, 3), bo(2, 3)
7949 DO j = bo(1, 2), bo(2, 2)
7950 DO i = bo(1, 1), bo(2, 1)
7951 p_rhoa = rho1a(i, j, k)
7952 p_rhob = rho1b(i, j, k)
7954 u_a = u_a + g_rhoa_rhoa_rhoa(i, j, k)*p_rhoa*p_rhoa
7955 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhob
7956 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhob*p_rhoa
7957 u_a = u_a + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhob
7959 u_b = u_b + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhoa
7960 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhoa*p_rhob
7961 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhoa
7962 u_b = u_b + g_rhob_rhob_rhob(i, j, k)*p_rhob*p_rhob
7963 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + u_a
7964 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + u_b
7971 NULLIFY (g_rhoa_rhoa)
7974 IF (
ASSOCIATED(deriv_att))
THEN
7977 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
7979 NULLIFY (g_rhoa_rhob)
7982 IF (
ASSOCIATED(deriv_att))
THEN
7985 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
7987 NULLIFY (g_rhoa_gamma_aa)
7990 IF (
ASSOCIATED(deriv_att))
THEN
7993 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
7995 NULLIFY (g_rhoa_gamma_ab)
7998 IF (
ASSOCIATED(deriv_att))
THEN
8001 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8003 NULLIFY (g_rhoa_gamma_bb)
8006 IF (
ASSOCIATED(deriv_att))
THEN
8009 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8011 NULLIFY (g_rhob_rhob)
8014 IF (
ASSOCIATED(deriv_att))
THEN
8017 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8019 NULLIFY (g_rhob_gamma_aa)
8022 IF (
ASSOCIATED(deriv_att))
THEN
8025 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8027 NULLIFY (g_rhob_gamma_ab)
8030 IF (
ASSOCIATED(deriv_att))
THEN
8033 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8035 NULLIFY (g_rhob_gamma_bb)
8038 IF (
ASSOCIATED(deriv_att))
THEN
8041 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8043 NULLIFY (g_gamma_aa_gamma_aa)
8046 IF (
ASSOCIATED(deriv_att))
THEN
8049 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8051 NULLIFY (g_gamma_aa_gamma_ab)
8054 IF (
ASSOCIATED(deriv_att))
THEN
8057 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8059 NULLIFY (g_gamma_aa_gamma_bb)
8062 IF (
ASSOCIATED(deriv_att))
THEN
8065 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8067 NULLIFY (g_gamma_ab_gamma_ab)
8070 IF (
ASSOCIATED(deriv_att))
THEN
8073 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8075 NULLIFY (g_gamma_ab_gamma_bb)
8078 IF (
ASSOCIATED(deriv_att))
THEN
8081 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8083 NULLIFY (g_gamma_bb_gamma_bb)
8086 IF (
ASSOCIATED(deriv_att))
THEN
8089 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8091 NULLIFY (g_rhoa_rhoa_rhoa)
8094 IF (
ASSOCIATED(deriv_att))
THEN
8097 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8099 NULLIFY (g_rhoa_rhoa_rhob)
8102 IF (
ASSOCIATED(deriv_att))
THEN
8105 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8107 NULLIFY (g_rhoa_rhoa_gamma_aa)
8110 IF (
ASSOCIATED(deriv_att))
THEN
8113 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8115 NULLIFY (g_rhoa_rhoa_gamma_ab)
8118 IF (
ASSOCIATED(deriv_att))
THEN
8121 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8123 NULLIFY (g_rhoa_rhoa_gamma_bb)
8126 IF (
ASSOCIATED(deriv_att))
THEN
8129 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8131 NULLIFY (g_rhoa_rhob_rhob)
8134 IF (
ASSOCIATED(deriv_att))
THEN
8137 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8139 NULLIFY (g_rhoa_rhob_gamma_aa)
8142 IF (
ASSOCIATED(deriv_att))
THEN
8145 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8147 NULLIFY (g_rhoa_rhob_gamma_ab)
8150 IF (
ASSOCIATED(deriv_att))
THEN
8153 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8155 NULLIFY (g_rhoa_rhob_gamma_bb)
8158 IF (
ASSOCIATED(deriv_att))
THEN
8161 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8163 NULLIFY (g_rhoa_gamma_aa_gamma_aa)
8166 IF (
ASSOCIATED(deriv_att))
THEN
8169 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8171 NULLIFY (g_rhoa_gamma_aa_gamma_ab)
8174 IF (
ASSOCIATED(deriv_att))
THEN
8177 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8179 NULLIFY (g_rhoa_gamma_aa_gamma_bb)
8182 IF (
ASSOCIATED(deriv_att))
THEN
8185 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8187 NULLIFY (g_rhoa_gamma_ab_gamma_ab)
8190 IF (
ASSOCIATED(deriv_att))
THEN
8193 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8195 NULLIFY (g_rhoa_gamma_ab_gamma_bb)
8198 IF (
ASSOCIATED(deriv_att))
THEN
8201 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8203 NULLIFY (g_rhoa_gamma_bb_gamma_bb)
8206 IF (
ASSOCIATED(deriv_att))
THEN
8209 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8211 NULLIFY (g_rhob_rhob_rhob)
8214 IF (
ASSOCIATED(deriv_att))
THEN
8217 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8219 NULLIFY (g_rhob_rhob_gamma_aa)
8222 IF (
ASSOCIATED(deriv_att))
THEN
8225 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8227 NULLIFY (g_rhob_rhob_gamma_ab)
8230 IF (
ASSOCIATED(deriv_att))
THEN
8233 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8235 NULLIFY (g_rhob_rhob_gamma_bb)
8238 IF (
ASSOCIATED(deriv_att))
THEN
8241 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8243 NULLIFY (g_rhob_gamma_aa_gamma_aa)
8246 IF (
ASSOCIATED(deriv_att))
THEN
8249 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8251 NULLIFY (g_rhob_gamma_aa_gamma_ab)
8254 IF (
ASSOCIATED(deriv_att))
THEN
8257 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8259 NULLIFY (g_rhob_gamma_aa_gamma_bb)
8262 IF (
ASSOCIATED(deriv_att))
THEN
8265 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8267 NULLIFY (g_rhob_gamma_ab_gamma_ab)
8270 IF (
ASSOCIATED(deriv_att))
THEN
8273 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8275 NULLIFY (g_rhob_gamma_ab_gamma_bb)
8278 IF (
ASSOCIATED(deriv_att))
THEN
8281 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8283 NULLIFY (g_rhob_gamma_bb_gamma_bb)
8286 IF (
ASSOCIATED(deriv_att))
THEN
8289 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8291 NULLIFY (g_gamma_aa_gamma_aa_gamma_aa)
8294 IF (
ASSOCIATED(deriv_att))
THEN
8297 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8299 NULLIFY (g_gamma_aa_gamma_aa_gamma_ab)
8302 IF (
ASSOCIATED(deriv_att))
THEN
8305 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8307 NULLIFY (g_gamma_aa_gamma_aa_gamma_bb)
8310 IF (
ASSOCIATED(deriv_att))
THEN
8313 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8315 NULLIFY (g_gamma_aa_gamma_ab_gamma_ab)
8318 IF (
ASSOCIATED(deriv_att))
THEN
8321 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8323 NULLIFY (g_gamma_aa_gamma_ab_gamma_bb)
8326 IF (
ASSOCIATED(deriv_att))
THEN
8329 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8331 NULLIFY (g_gamma_aa_gamma_bb_gamma_bb)
8334 IF (
ASSOCIATED(deriv_att))
THEN
8337 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8339 NULLIFY (g_gamma_ab_gamma_ab_gamma_ab)
8342 IF (
ASSOCIATED(deriv_att))
THEN
8345 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8347 NULLIFY (g_gamma_ab_gamma_ab_gamma_bb)
8350 IF (
ASSOCIATED(deriv_att))
THEN
8353 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8355 NULLIFY (g_gamma_ab_gamma_bb_gamma_bb)
8358 IF (
ASSOCIATED(deriv_att))
THEN
8361 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8363 NULLIFY (g_gamma_bb_gamma_bb_gamma_bb)
8366 IF (
ASSOCIATED(deriv_att))
THEN
8369 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
8373 CALL prepare_dr1dr(gaa1, drhoa, drho1a)
8374 CALL prepare_dr1dr(gbb1, drhob, drho1b)
8375 CALL prepare_dr1dr(gab1, drhoa, drho1b)
8376 CALL prepare_dr1dr(gaa11, drho1a, drho1a)
8377 CALL prepare_dr1dr(gbb11, drho1b, drho1b)
8378 CALL prepare_dr1dr(gab11, drho1a, drho1b)
8380 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :, :) :: tmp_ba
8381 CALL prepare_dr1dr(tmp_ba, drhob, drho1a)
8382 gab1(:, :, :) = gab1(:, :, :) + tmp_ba(:, :, :)
8441 DO k = bo(1, 3), bo(2, 3)
8442 DO j = bo(1, 2), bo(2, 2)
8443 DO i = bo(1, 1), bo(2, 1)
8444 p_rhoa = rho1a(i, j, k)
8445 p_rhob = rho1b(i, j, k)
8446 p_gamma_aa = 2.0_dp*gaa1(i, j, k)
8447 p_gamma_ab = gab1(i, j, k)
8448 p_gamma_bb = 2.0_dp*gbb1(i, j, k)
8449 pp_gamma_aa = 2.0_dp*gaa11(i, j, k)
8450 pp_gamma_ab = 2.0_dp*gab11(i, j, k)
8451 pp_gamma_bb = 2.0_dp*gbb11(i, j, k)
8454 u_a = u_a + g_rhoa_rhoa_rhoa(i, j, k)*p_rhoa*p_rhoa
8455 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhob
8456 u_a = u_a + g_rhoa_rhoa_gamma_aa(i, j, k)*p_rhoa*p_gamma_aa
8457 u_a = u_a + g_rhoa_rhoa_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8458 u_a = u_a + g_rhoa_rhoa_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8459 u_a = u_a + g_rhoa_rhoa_rhob(i, j, k)*p_rhob*p_rhoa
8460 u_a = u_a + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhob
8461 u_a = u_a + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhob*p_gamma_aa
8462 u_a = u_a + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8463 u_a = u_a + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8464 u_a = u_a + g_rhoa_rhoa_gamma_aa(i, j, k)*p_gamma_aa*p_rhoa
8465 u_a = u_a + g_rhoa_rhob_gamma_aa(i, j, k)*p_gamma_aa*p_rhob
8466 u_a = u_a + g_rhoa_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_gamma_aa
8467 u_a = u_a + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8468 u_a = u_a + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8469 u_a = u_a + g_rhoa_rhoa_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8470 u_a = u_a + g_rhoa_rhob_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8471 u_a = u_a + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8472 u_a = u_a + g_rhoa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8473 u_a = u_a + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8474 u_a = u_a + g_rhoa_rhoa_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8475 u_a = u_a + g_rhoa_rhob_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8476 u_a = u_a + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8477 u_a = u_a + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8478 u_a = u_a + g_rhoa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8479 u_a = u_a + g_rhoa_gamma_aa(i, j, k)*pp_gamma_aa
8480 u_a = u_a + g_rhoa_gamma_ab(i, j, k)*pp_gamma_ab
8481 u_a = u_a + g_rhoa_gamma_bb(i, j, k)*pp_gamma_bb
8483 u_b = u_b + g_rhoa_rhoa_rhob(i, j, k)*p_rhoa*p_rhoa
8484 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhoa*p_rhob
8485 u_b = u_b + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhoa*p_gamma_aa
8486 u_b = u_b + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8487 u_b = u_b + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8488 u_b = u_b + g_rhoa_rhob_rhob(i, j, k)*p_rhob*p_rhoa
8489 u_b = u_b + g_rhob_rhob_rhob(i, j, k)*p_rhob*p_rhob
8490 u_b = u_b + g_rhob_rhob_gamma_aa(i, j, k)*p_rhob*p_gamma_aa
8491 u_b = u_b + g_rhob_rhob_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8492 u_b = u_b + g_rhob_rhob_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8493 u_b = u_b + g_rhoa_rhob_gamma_aa(i, j, k)*p_gamma_aa*p_rhoa
8494 u_b = u_b + g_rhob_rhob_gamma_aa(i, j, k)*p_gamma_aa*p_rhob
8495 u_b = u_b + g_rhob_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_gamma_aa
8496 u_b = u_b + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8497 u_b = u_b + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8498 u_b = u_b + g_rhoa_rhob_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8499 u_b = u_b + g_rhob_rhob_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8500 u_b = u_b + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8501 u_b = u_b + g_rhob_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8502 u_b = u_b + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8503 u_b = u_b + g_rhoa_rhob_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8504 u_b = u_b + g_rhob_rhob_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8505 u_b = u_b + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8506 u_b = u_b + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8507 u_b = u_b + g_rhob_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8508 u_b = u_b + g_rhob_gamma_aa(i, j, k)*pp_gamma_aa
8509 u_b = u_b + g_rhob_gamma_ab(i, j, k)*pp_gamma_ab
8510 u_b = u_b + g_rhob_gamma_bb(i, j, k)*pp_gamma_bb
8512 a_gamma_aa = a_gamma_aa + g_rhoa_rhoa_gamma_aa(i, j, k)*p_rhoa*p_rhoa
8513 a_gamma_aa = a_gamma_aa + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhoa*p_rhob
8514 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_aa(i, j, k)*p_rhoa*p_gamma_aa
8515 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8516 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8517 a_gamma_aa = a_gamma_aa + g_rhoa_rhob_gamma_aa(i, j, k)*p_rhob*p_rhoa
8518 a_gamma_aa = a_gamma_aa + g_rhob_rhob_gamma_aa(i, j, k)*p_rhob*p_rhob
8519 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_aa(i, j, k)*p_rhob*p_gamma_aa
8520 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8521 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8522 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_rhoa
8523 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_rhob
8524 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa*p_gamma_aa
8525 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8526 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8527 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8528 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8529 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8530 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8531 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8532 a_gamma_aa = a_gamma_aa + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8533 a_gamma_aa = a_gamma_aa + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8534 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8535 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8536 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8537 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_aa(i, j, k)*pp_gamma_aa
8538 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_ab(i, j, k)*pp_gamma_ab
8539 a_gamma_aa = a_gamma_aa + g_gamma_aa_gamma_bb(i, j, k)*pp_gamma_bb
8541 a_gamma_ab = a_gamma_ab + g_rhoa_rhoa_gamma_ab(i, j, k)*p_rhoa*p_rhoa
8542 a_gamma_ab = a_gamma_ab + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhoa*p_rhob
8543 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_rhoa*p_gamma_aa
8544 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_ab(i, j, k)*p_rhoa*p_gamma_ab
8545 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8546 a_gamma_ab = a_gamma_ab + g_rhoa_rhob_gamma_ab(i, j, k)*p_rhob*p_rhoa
8547 a_gamma_ab = a_gamma_ab + g_rhob_rhob_gamma_ab(i, j, k)*p_rhob*p_rhob
8548 a_gamma_ab = a_gamma_ab + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_rhob*p_gamma_aa
8549 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_ab(i, j, k)*p_rhob*p_gamma_ab
8550 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8551 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_rhoa
8552 a_gamma_ab = a_gamma_ab + g_rhob_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_rhob
8553 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_aa
8554 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_ab(i, j, k)*p_gamma_aa*p_gamma_ab
8555 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8556 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_rhoa
8557 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_rhob
8558 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_aa
8559 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab*p_gamma_ab
8560 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8561 a_gamma_ab = a_gamma_ab + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8562 a_gamma_ab = a_gamma_ab + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8563 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8564 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8565 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8566 a_gamma_ab = a_gamma_ab + g_gamma_aa_gamma_ab(i, j, k)*pp_gamma_aa
8567 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_ab(i, j, k)*pp_gamma_ab
8568 a_gamma_ab = a_gamma_ab + g_gamma_ab_gamma_bb(i, j, k)*pp_gamma_bb
8570 a_gamma_bb = a_gamma_bb + g_rhoa_rhoa_gamma_bb(i, j, k)*p_rhoa*p_rhoa
8571 a_gamma_bb = a_gamma_bb + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhoa*p_rhob
8572 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_rhoa*p_gamma_aa
8573 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_rhoa*p_gamma_ab
8574 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_bb_gamma_bb(i, j, k)*p_rhoa*p_gamma_bb
8575 a_gamma_bb = a_gamma_bb + g_rhoa_rhob_gamma_bb(i, j, k)*p_rhob*p_rhoa
8576 a_gamma_bb = a_gamma_bb + g_rhob_rhob_gamma_bb(i, j, k)*p_rhob*p_rhob
8577 a_gamma_bb = a_gamma_bb + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_rhob*p_gamma_aa
8578 a_gamma_bb = a_gamma_bb + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_rhob*p_gamma_ab
8579 a_gamma_bb = a_gamma_bb + g_rhob_gamma_bb_gamma_bb(i, j, k)*p_rhob*p_gamma_bb
8580 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_rhoa
8581 a_gamma_bb = a_gamma_bb + g_rhob_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_rhob
8582 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_aa
8583 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_ab
8584 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_bb_gamma_bb(i, j, k)*p_gamma_aa*p_gamma_bb
8585 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_rhoa
8586 a_gamma_bb = a_gamma_bb + g_rhob_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_rhob
8587 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_aa
8588 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_ab
8589 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_bb_gamma_bb(i, j, k)*p_gamma_ab*p_gamma_bb
8590 a_gamma_bb = a_gamma_bb + g_rhoa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_rhoa
8591 a_gamma_bb = a_gamma_bb + g_rhob_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_rhob
8592 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_aa
8593 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_ab
8594 a_gamma_bb = a_gamma_bb + g_gamma_bb_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb*p_gamma_bb
8595 a_gamma_bb = a_gamma_bb + g_gamma_aa_gamma_bb(i, j, k)*pp_gamma_aa
8596 a_gamma_bb = a_gamma_bb + g_gamma_ab_gamma_bb(i, j, k)*pp_gamma_ab
8597 a_gamma_bb = a_gamma_bb + g_gamma_bb_gamma_bb(i, j, k)*pp_gamma_bb
8599 b_gamma_aa = b_gamma_aa + g_rhoa_gamma_aa(i, j, k)*p_rhoa
8600 b_gamma_aa = b_gamma_aa + g_rhob_gamma_aa(i, j, k)*p_rhob
8601 b_gamma_aa = b_gamma_aa + g_gamma_aa_gamma_aa(i, j, k)*p_gamma_aa
8602 b_gamma_aa = b_gamma_aa + g_gamma_aa_gamma_ab(i, j, k)*p_gamma_ab
8603 b_gamma_aa = b_gamma_aa + g_gamma_aa_gamma_bb(i, j, k)*p_gamma_bb
8605 b_gamma_ab = b_gamma_ab + g_rhoa_gamma_ab(i, j, k)*p_rhoa
8606 b_gamma_ab = b_gamma_ab + g_rhob_gamma_ab(i, j, k)*p_rhob
8607 b_gamma_ab = b_gamma_ab + g_gamma_aa_gamma_ab(i, j, k)*p_gamma_aa
8608 b_gamma_ab = b_gamma_ab + g_gamma_ab_gamma_ab(i, j, k)*p_gamma_ab
8609 b_gamma_ab = b_gamma_ab + g_gamma_ab_gamma_bb(i, j, k)*p_gamma_bb
8611 b_gamma_bb = b_gamma_bb + g_rhoa_gamma_bb(i, j, k)*p_rhoa
8612 b_gamma_bb = b_gamma_bb + g_rhob_gamma_bb(i, j, k)*p_rhob
8613 b_gamma_bb = b_gamma_bb + g_gamma_aa_gamma_bb(i, j, k)*p_gamma_aa
8614 b_gamma_bb = b_gamma_bb + g_gamma_ab_gamma_bb(i, j, k)*p_gamma_ab
8615 b_gamma_bb = b_gamma_bb + g_gamma_bb_gamma_bb(i, j, k)*p_gamma_bb
8617 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + u_a
8618 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + u_b
8621 v_drho_r(1, 1)%array(i, j, k) = &
8622 -(2.0_dp*drhoa(1)%array(i, j, k)*a_gamma_aa &
8623 + drhob(1)%array(i, j, k)*a_gamma_ab &
8624 + 2.0_dp*(2.0_dp*drho1a(1)%array(i, j, k)*b_gamma_aa &
8625 + drho1b(1)%array(i, j, k)*b_gamma_ab))
8626 v_drho_r(1, 2)%array(i, j, k) = &
8627 -(2.0_dp*drhob(1)%array(i, j, k)*a_gamma_bb &
8628 + drhoa(1)%array(i, j, k)*a_gamma_ab &
8629 + 2.0_dp*(2.0_dp*drho1b(1)%array(i, j, k)*b_gamma_bb &
8630 + drho1a(1)%array(i, j, k)*b_gamma_ab))
8631 v_drho_r(2, 1)%array(i, j, k) = &
8632 -(2.0_dp*drhoa(2)%array(i, j, k)*a_gamma_aa &
8633 + drhob(2)%array(i, j, k)*a_gamma_ab &
8634 + 2.0_dp*(2.0_dp*drho1a(2)%array(i, j, k)*b_gamma_aa &
8635 + drho1b(2)%array(i, j, k)*b_gamma_ab))
8636 v_drho_r(2, 2)%array(i, j, k) = &
8637 -(2.0_dp*drhob(2)%array(i, j, k)*a_gamma_bb &
8638 + drhoa(2)%array(i, j, k)*a_gamma_ab &
8639 + 2.0_dp*(2.0_dp*drho1b(2)%array(i, j, k)*b_gamma_bb &
8640 + drho1a(2)%array(i, j, k)*b_gamma_ab))
8641 v_drho_r(3, 1)%array(i, j, k) = &
8642 -(2.0_dp*drhoa(3)%array(i, j, k)*a_gamma_aa &
8643 + drhob(3)%array(i, j, k)*a_gamma_ab &
8644 + 2.0_dp*(2.0_dp*drho1a(3)%array(i, j, k)*b_gamma_aa &
8645 + drho1b(3)%array(i, j, k)*b_gamma_ab))
8646 v_drho_r(3, 2)%array(i, j, k) = &
8647 -(2.0_dp*drhob(3)%array(i, j, k)*a_gamma_bb &
8648 + drhoa(3)%array(i, j, k)*a_gamma_ab &
8649 + 2.0_dp*(2.0_dp*drho1b(3)%array(i, j, k)*b_gamma_bb &
8650 + drho1a(3)%array(i, j, k)*b_gamma_ab))
8656 DO ispin = 1, nspins
8658 vxg(idir, :, :, ispin) = -v_drho_r(idir, ispin)%array(:, :, 1)
8665 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
8670 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
8673 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
8676 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 2), tmp_g, vxc_g, v_xc(2))
8690 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa])
8691 IF (
ASSOCIATED(deriv_att))
THEN
8692 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8693 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob])
8694 IF (
ASSOCIATED(deriv_att))
THEN
8695 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8698 DO k = bo(1, 3), bo(2, 3)
8699 DO j = bo(1, 2), bo(2, 2)
8700 DO i = bo(1, 1), bo(2, 1)
8701 s = rhoa(i, j, k) - rhob(i, j, k)
8702 s = -sign(max(s**2, s_thresh2), s)
8703 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8704 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)**2/s
8716 IF (.NOT. alda0)
THEN
8717 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa])
8718 IF (
ASSOCIATED(deriv_att))
THEN
8719 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8720 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob])
8721 IF (
ASSOCIATED(deriv_att))
THEN
8722 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8725 DO k = bo(1, 3), bo(2, 3)
8726 DO j = bo(1, 2), bo(2, 2)
8727 DO i = bo(1, 1), bo(2, 1)
8728 s = rhoa(i, j, k) - rhob(i, j, k)
8729 s = -sign(max(s**2, s_thresh2), s)
8730 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8731 (deriv_data(i, j, k)*dra1dra(i, j, k) - deriv_data2(i, j, k)*drb1drb(i, j, k)) &
8743 DO k = bo(1, 3), bo(2, 3)
8744 DO j = bo(1, 2), bo(2, 2)
8745 DO i = bo(1, 1), bo(2, 1)
8746 v_xc(2)%array(i, j, k) = -v_xc(1)%array(i, j, k)
8758 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_rhob])
8759 IF (
ASSOCIATED(deriv_att))
THEN
8760 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8761 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_rhoa])
8762 IF (
ASSOCIATED(deriv_att))
THEN
8763 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8766 DO k = bo(1, 3), bo(2, 3)
8767 DO j = bo(1, 2), bo(2, 2)
8768 DO i = bo(1, 1), bo(2, 1)
8769 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8770 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8771 rho1a(i, j, k)**2*(deriv_data(i, j, k) - deriv_data2(i, j, k))/s
8782 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_rhob])
8783 IF (
ASSOCIATED(deriv_att))
THEN
8784 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8785 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_rhoa])
8786 IF (
ASSOCIATED(deriv_att))
THEN
8787 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8790 DO k = bo(1, 3), bo(2, 3)
8791 DO j = bo(1, 2), bo(2, 2)
8792 DO i = bo(1, 1), bo(2, 1)
8793 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8794 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
8795 rho1a(i, j, k)**2*(deriv_data(i, j, k) - deriv_data2(i, j, k))/s
8803 IF (.NOT. alda0)
THEN
8807 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_norm_drhob])
8808 IF (
ASSOCIATED(deriv_att))
THEN
8809 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8810 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_norm_drhoa])
8811 IF (
ASSOCIATED(deriv_att))
THEN
8812 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8815 DO k = bo(1, 3), bo(2, 3)
8816 DO j = bo(1, 2), bo(2, 2)
8817 DO i = bo(1, 1), bo(2, 1)
8818 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8819 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
8820 (deriv_data(i, j, k)*dra1dra(i, j, k) - deriv_data2(i, j, k)*drb1drb(i, j, k))* &
8832 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_norm_drhob])
8833 IF (
ASSOCIATED(deriv_att))
THEN
8834 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8835 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_norm_drhoa])
8836 IF (
ASSOCIATED(deriv_att))
THEN
8837 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8840 DO k = bo(1, 3), bo(2, 3)
8841 DO j = bo(1, 2), bo(2, 2)
8842 DO i = bo(1, 1), bo(2, 1)
8843 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
8844 v_xc(2)%array(i, j, k) = v_xc(2)%array(i, j, k) + &
8845 (deriv_data(i, j, k)*dra1dra(i, j, k) - deriv_data2(i, j, k)*drb1drb(i, j, k))* &
8860 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_rhob])
8861 IF (
ASSOCIATED(deriv_att))
THEN
8862 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8863 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_rhoa])
8864 IF (
ASSOCIATED(deriv_att))
THEN
8865 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8868 DO k = bo(1, 3), bo(2, 3)
8869 DO j = bo(1, 2), bo(2, 2)
8870 DO i = bo(1, 1), bo(2, 1)
8871 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
8872 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8883 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob, deriv_rhoa])
8884 IF (
ASSOCIATED(deriv_att))
THEN
8885 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8886 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob, deriv_rhob])
8887 IF (
ASSOCIATED(deriv_att))
THEN
8888 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8891 DO k = bo(1, 3), bo(2, 3)
8892 DO j = bo(1, 2), bo(2, 2)
8893 DO i = bo(1, 1), bo(2, 1)
8894 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) + &
8895 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8910 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_rhoa])
8911 IF (
ASSOCIATED(deriv_att))
THEN
8912 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8913 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_rhob])
8914 IF (
ASSOCIATED(deriv_att))
THEN
8915 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8918 DO k = bo(1, 3), bo(2, 3)
8919 DO j = bo(1, 2), bo(2, 2)
8920 DO i = bo(1, 1), bo(2, 1)
8921 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
8922 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8923 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
8924 (deriv_data(i, j, k) - deriv_data2(i, j, k))*rho1a(i, j, k)
8932 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_norm_drhob])
8933 IF (
ASSOCIATED(deriv_att))
THEN
8934 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8938 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_norm_drhoa])
8939 IF (
ASSOCIATED(deriv_att))
THEN
8940 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8943 DO k = bo(1, 3), bo(2, 3)
8944 DO j = bo(1, 2), bo(2, 2)
8945 DO i = bo(1, 1), bo(2, 1)
8946 v_drhoa(1)%array(i, j, k) = v_drhoa(1)%array(i, j, k) - &
8947 deriv_data(i, j, k)*dra1dra(i, j, k) + deriv_data2(i, j, k)*drb1drb(i, j, k)
8956 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob, deriv_norm_drhob])
8957 IF (
ASSOCIATED(deriv_att))
THEN
8958 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8961 DO k = bo(1, 3), bo(2, 3)
8962 DO j = bo(1, 2), bo(2, 2)
8963 DO i = bo(1, 1), bo(2, 1)
8964 v_drhob(2)%array(i, j, k) = v_drhob(2)%array(i, j, k) - &
8965 deriv_data(i, j, k)*dra1dra(i, j, k) + deriv_data2(i, j, k)*drb1drb(i, j, k)
8979 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_norm_drhob])
8980 IF (
ASSOCIATED(deriv_att))
THEN
8981 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data2)
8982 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_norm_drhoa])
8983 IF (
ASSOCIATED(deriv_att))
THEN
8984 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
8987 DO k = bo(1, 3), bo(2, 3)
8988 DO j = bo(1, 2), bo(2, 2)
8989 DO i = bo(1, 1), bo(2, 1)
8990 v_drho(1)%array(i, j, k) = v_drho(1)%array(i, j, k) - &
8991 deriv_data(i, j, k)*dra1dra(i, j, k) + &
8992 deriv_data2(i, j, k)*drb1drb(i, j, k)
8993 v_drho(2)%array(i, j, k) = v_drho(2)%array(i, j, k) - &
8994 deriv_data(i, j, k)*dra1dra(i, j, k) + &
8995 deriv_data2(i, j, k)*drb1drb(i, j, k)
9009 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa])
9010 IF (
ASSOCIATED(deriv_att))
THEN
9011 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
9012 CALL xc_derivative_get(deriv_att, deriv_data=e_drhoa)
9015 v_drhoa(1)%array(:, :, :) = v_drhoa(1)%array(:, :, :) + &
9016 deriv_data(:, :, :)*dra1dra(:, :, :)/max(gradient_cut, norm_drhoa(:, :, :))**2
9023 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob])
9024 IF (
ASSOCIATED(deriv_att))
THEN
9025 CALL xc_derivative_get(deriv_att, deriv_data=deriv_data)
9026 CALL xc_derivative_get(deriv_att, deriv_data=e_drhob)
9029 v_drhob(2)%array(:, :, :) = v_drhob(2)%array(:, :, :) - &
9030 deriv_data(:, :, :)*drb1drb(:, :, :)/max(gradient_cut, norm_drhob(:, :, :))**2
9039 cpabort(
"Exchange-correlation's analytic third derivative not implemented")
9043 IF (gradient_f)
THEN
9047 IF (.NOT. alda0 .AND. do_spinflip)
THEN
9061 IF (do_spinflip)
THEN
9064 DO k = bo(1, 3), bo(2, 3)
9065 DO j = bo(1, 2), bo(2, 2)
9066 DO i = bo(1, 1), bo(2, 1)
9067 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
9069 v_drho_r(idir, ispin)%array(i, j, k) = v_drho_r(idir, ispin)%array(i, j, k) + &
9070 v_drhoa(ispin)%array(i, j, k)*drhoa(idir)%array(i, j, k)*rho1a(i, j, k)/s + &
9071 v_drhob(ispin)%array(i, j, k)*drhob(idir)%array(i, j, k)*rho1a(i, j, k)/s + &
9072 v_drho(ispin)%array(i, j, k)*drho(idir)%array(i, j, k)*rho1a(i, j, k)/s
9084 IF (
ASSOCIATED(e_drhoa))
THEN
9087 DO k = bo(1, 3), bo(2, 3)
9088 DO j = bo(1, 2), bo(2, 2)
9089 DO i = bo(1, 1), bo(2, 1)
9090 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
9091 v_drho_r(idir, 1)%array(i, j, k) = v_drho_r(idir, 1)%array(i, j, k) - &
9092 e_drhoa(i, j, k)*drho1a(idir)%array(i, j, k)*rho1a(i, j, k)/s
9102 IF (
ASSOCIATED(e_drhob))
THEN
9105 DO k = bo(1, 3), bo(2, 3)
9106 DO j = bo(1, 2), bo(2, 2)
9107 DO i = bo(1, 1), bo(2, 1)
9108 s = max(abs(rhoa(i, j, k) - rhob(i, j, k)), s_thresh)
9109 v_drho_r(idir, 2)%array(i, j, k) = v_drho_r(idir, 2)%array(i, j, k) + &
9110 e_drhob(i, j, k)*drho1a(idir)%array(i, j, k)*rho1a(i, j, k)/s
9119 DO ispin = 1, nspins
9120 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, ispin), tmp_g, vxc_g, v_xc(ispin))
9125 DEALLOCATE (drho(idir)%array)
9126 DEALLOCATE (drho1(idir)%array)
9129 DO ispin = 1, nspins
9130 CALL deallocate_pw(v_drhoa(ispin), pw_pool)
9131 CALL deallocate_pw(v_drhob(ispin), pw_pool)
9134 DEALLOCATE (v_drhoa, v_drhob)
9158 CALL xc_rho_set_get(rho1_set, rho=rho1)
9160 NULLIFY (e_rrr, e_rrg, e_rgg, e_ggg, e_rg, e_gg)
9161 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_rho, deriv_rho])
9162 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rrr)
9164 IF (gradient_f)
THEN
9165 CALL xc_rho_set_get(rho_set, drho=drho)
9166 CALL xc_rho_set_get(rho1_set, drho=drho1)
9167 CALL prepare_dr1dr(dr1dr, drho, drho1)
9168 CALL prepare_dr1dr(dr1dr1, drho1, drho1)
9170 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_rho, deriv_gamma])
9171 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rrg)
9172 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_gamma, deriv_gamma])
9173 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rgg)
9174 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_gamma, deriv_gamma, deriv_gamma])
9175 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_ggg)
9176 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_gamma])
9177 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_rg)
9178 deriv_att => xc_dset_get_derivative(deriv_set, [deriv_gamma, deriv_gamma])
9179 IF (
ASSOCIATED(deriv_att))
CALL xc_derivative_get(deriv_att, deriv_data=e_gg)
9184 IF (.NOT. (
ASSOCIATED(e_rrr) .AND.
ASSOCIATED(e_rrg) .AND.
ASSOCIATED(e_rgg) &
9185 .AND.
ASSOCIATED(e_ggg) .AND.
ASSOCIATED(e_rg) .AND.
ASSOCIATED(e_gg)))
THEN
9186 cpabort(
"Analytic 3rd GGA derivatives need the LibXC gamma derivatives")
9190 IF (gradient_f .AND. (tau_f .OR. laplace_f))
THEN
9204 CALL xc_rho_set_get(rho_set, drho=drho)
9205 CALL xc_rho_set_get(rho1_set, drho=drho1)
9206 CALL prepare_dr1dr(dr1dr, drho, drho1)
9207 CALL prepare_dr1dr(dr1dr1, drho1, drho1)
9208 IF (tau_f)
CALL xc_rho_set_get(rho1_set, tau=tau1)
9209 IF (laplace_f)
CALL xc_rho_set_get(rho1_set, laplace_rho=laplace1)
9212 ALLOCATE (zero_f(bo(1, 1):bo(2, 1), bo(1, 2):bo(2, 2), bo(1, 3):bo(2, 3)))
9214 deriv_att => xc_dset_get_derivative(deriv_set, &
9215 [deriv_rho, deriv_rho])
9216 IF (
ASSOCIATED(deriv_att))
THEN
9217 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho)
9221 deriv_att => xc_dset_get_derivative(deriv_set, &
9222 [deriv_rho, deriv_gamma])
9223 IF (
ASSOCIATED(deriv_att))
THEN
9224 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma)
9226 m_rho_gamma => zero_f
9228 deriv_att => xc_dset_get_derivative(deriv_set, &
9229 [deriv_rho, deriv_laplace_rho])
9230 IF (
ASSOCIATED(deriv_att))
THEN
9231 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_laplace_rho)
9233 m_rho_laplace_rho => zero_f
9235 deriv_att => xc_dset_get_derivative(deriv_set, &
9236 [deriv_rho, deriv_tau])
9237 IF (
ASSOCIATED(deriv_att))
THEN
9238 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_tau)
9242 deriv_att => xc_dset_get_derivative(deriv_set, &
9243 [deriv_gamma, deriv_gamma])
9244 IF (
ASSOCIATED(deriv_att))
THEN
9245 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma)
9247 m_gamma_gamma => zero_f
9249 deriv_att => xc_dset_get_derivative(deriv_set, &
9250 [deriv_gamma, deriv_laplace_rho])
9251 IF (
ASSOCIATED(deriv_att))
THEN
9252 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_laplace_rho)
9254 m_gamma_laplace_rho => zero_f
9256 deriv_att => xc_dset_get_derivative(deriv_set, &
9257 [deriv_gamma, deriv_tau])
9258 IF (
ASSOCIATED(deriv_att))
THEN
9259 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_tau)
9261 m_gamma_tau => zero_f
9263 deriv_att => xc_dset_get_derivative(deriv_set, &
9264 [deriv_laplace_rho, deriv_laplace_rho])
9265 IF (
ASSOCIATED(deriv_att))
THEN
9266 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_laplace_rho)
9268 m_laplace_rho_laplace_rho => zero_f
9270 deriv_att => xc_dset_get_derivative(deriv_set, &
9271 [deriv_laplace_rho, deriv_tau])
9272 IF (
ASSOCIATED(deriv_att))
THEN
9273 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_tau)
9275 m_laplace_rho_tau => zero_f
9277 deriv_att => xc_dset_get_derivative(deriv_set, &
9278 [deriv_tau, deriv_tau])
9279 IF (
ASSOCIATED(deriv_att))
THEN
9280 CALL xc_derivative_get(deriv_att, deriv_data=m_tau_tau)
9284 deriv_att => xc_dset_get_derivative(deriv_set, &
9285 [deriv_rho, deriv_rho, deriv_rho])
9286 IF (
ASSOCIATED(deriv_att))
THEN
9287 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_rho)
9289 m_rho_rho_rho => zero_f
9291 deriv_att => xc_dset_get_derivative(deriv_set, &
9292 [deriv_rho, deriv_rho, deriv_gamma])
9293 IF (
ASSOCIATED(deriv_att))
THEN
9294 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_gamma)
9296 m_rho_rho_gamma => zero_f
9298 deriv_att => xc_dset_get_derivative(deriv_set, &
9299 [deriv_rho, deriv_rho, deriv_laplace_rho])
9300 IF (
ASSOCIATED(deriv_att))
THEN
9301 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_laplace_rho)
9303 m_rho_rho_laplace_rho => zero_f
9305 deriv_att => xc_dset_get_derivative(deriv_set, &
9306 [deriv_rho, deriv_rho, deriv_tau])
9307 IF (
ASSOCIATED(deriv_att))
THEN
9308 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_rho_tau)
9310 m_rho_rho_tau => zero_f
9312 deriv_att => xc_dset_get_derivative(deriv_set, &
9313 [deriv_rho, deriv_gamma, deriv_gamma])
9314 IF (
ASSOCIATED(deriv_att))
THEN
9315 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma_gamma)
9317 m_rho_gamma_gamma => zero_f
9319 deriv_att => xc_dset_get_derivative(deriv_set, &
9320 [deriv_rho, deriv_gamma, deriv_laplace_rho])
9321 IF (
ASSOCIATED(deriv_att))
THEN
9322 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma_laplace_rho)
9324 m_rho_gamma_laplace_rho => zero_f
9326 deriv_att => xc_dset_get_derivative(deriv_set, &
9327 [deriv_rho, deriv_gamma, deriv_tau])
9328 IF (
ASSOCIATED(deriv_att))
THEN
9329 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_gamma_tau)
9331 m_rho_gamma_tau => zero_f
9333 deriv_att => xc_dset_get_derivative(deriv_set, &
9334 [deriv_rho, deriv_laplace_rho, deriv_laplace_rho])
9335 IF (
ASSOCIATED(deriv_att))
THEN
9336 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_laplace_rho_laplace_rho)
9338 m_rho_laplace_rho_laplace_rho => zero_f
9340 deriv_att => xc_dset_get_derivative(deriv_set, &
9341 [deriv_rho, deriv_laplace_rho, deriv_tau])
9342 IF (
ASSOCIATED(deriv_att))
THEN
9343 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_laplace_rho_tau)
9345 m_rho_laplace_rho_tau => zero_f
9347 deriv_att => xc_dset_get_derivative(deriv_set, &
9348 [deriv_rho, deriv_tau, deriv_tau])
9349 IF (
ASSOCIATED(deriv_att))
THEN
9350 CALL xc_derivative_get(deriv_att, deriv_data=m_rho_tau_tau)
9352 m_rho_tau_tau => zero_f
9354 deriv_att => xc_dset_get_derivative(deriv_set, &
9355 [deriv_gamma, deriv_gamma, deriv_gamma])
9356 IF (
ASSOCIATED(deriv_att))
THEN
9357 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma_gamma)
9359 m_gamma_gamma_gamma => zero_f
9361 deriv_att => xc_dset_get_derivative(deriv_set, &
9362 [deriv_gamma, deriv_gamma, deriv_laplace_rho])
9363 IF (
ASSOCIATED(deriv_att))
THEN
9364 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma_laplace_rho)
9366 m_gamma_gamma_laplace_rho => zero_f
9368 deriv_att => xc_dset_get_derivative(deriv_set, &
9369 [deriv_gamma, deriv_gamma, deriv_tau])
9370 IF (
ASSOCIATED(deriv_att))
THEN
9371 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_gamma_tau)
9373 m_gamma_gamma_tau => zero_f
9375 deriv_att => xc_dset_get_derivative(deriv_set, &
9376 [deriv_gamma, deriv_laplace_rho, deriv_laplace_rho])
9377 IF (
ASSOCIATED(deriv_att))
THEN
9378 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_laplace_rho_laplace_rho)
9380 m_gamma_laplace_rho_laplace_rho => zero_f
9382 deriv_att => xc_dset_get_derivative(deriv_set, &
9383 [deriv_gamma, deriv_laplace_rho, deriv_tau])
9384 IF (
ASSOCIATED(deriv_att))
THEN
9385 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_laplace_rho_tau)
9387 m_gamma_laplace_rho_tau => zero_f
9389 deriv_att => xc_dset_get_derivative(deriv_set, &
9390 [deriv_gamma, deriv_tau, deriv_tau])
9391 IF (
ASSOCIATED(deriv_att))
THEN
9392 CALL xc_derivative_get(deriv_att, deriv_data=m_gamma_tau_tau)
9394 m_gamma_tau_tau => zero_f
9396 deriv_att => xc_dset_get_derivative(deriv_set, &
9397 [deriv_laplace_rho, deriv_laplace_rho, deriv_laplace_rho])
9398 IF (
ASSOCIATED(deriv_att))
THEN
9399 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_laplace_rho_laplace_rho)
9401 m_laplace_rho_laplace_rho_laplace_rho => zero_f
9403 deriv_att => xc_dset_get_derivative(deriv_set, &
9404 [deriv_laplace_rho, deriv_laplace_rho, deriv_tau])
9405 IF (
ASSOCIATED(deriv_att))
THEN
9406 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_laplace_rho_tau)
9408 m_laplace_rho_laplace_rho_tau => zero_f
9410 deriv_att => xc_dset_get_derivative(deriv_set, &
9411 [deriv_laplace_rho, deriv_tau, deriv_tau])
9412 IF (
ASSOCIATED(deriv_att))
THEN
9413 CALL xc_derivative_get(deriv_att, deriv_data=m_laplace_rho_tau_tau)
9415 m_laplace_rho_tau_tau => zero_f
9417 deriv_att => xc_dset_get_derivative(deriv_set, &
9418 [deriv_tau, deriv_tau, deriv_tau])
9419 IF (
ASSOCIATED(deriv_att))
THEN
9420 CALL xc_derivative_get(deriv_att, deriv_data=m_tau_tau_tau)
9422 m_tau_tau_tau => zero_f
9426 ALLOCATE (v_laplace(nspins))
9427 DO ispin = 1, nspins
9428 CALL allocate_pw(v_laplace(ispin), pw_pool, bo)
9466 DO k = bo(1, 3), bo(2, 3)
9467 DO j = bo(1, 2), bo(2, 2)
9468 DO i = bo(1, 1), bo(2, 1)
9469 mp_rho = rho1(i, j, k)
9470 mp_gamma = 2.0_dp*dr1dr(i, j, k)
9471 mpp_gamma = 2.0_dp*dr1dr1(i, j, k)
9473 IF (tau_f) mp_tau = tau1(i, j, k)
9474 mp_laplace_rho = 0.0_dp
9475 IF (laplace_f) mp_laplace_rho = laplace1(i, j, k)
9478 m_rho = m_rho + 1.0_dp* &
9479 m_rho_rho_rho(i, j, k)*mp_rho*mp_rho
9480 m_rho = m_rho + 2.0_dp* &
9481 m_rho_rho_gamma(i, j, k)*mp_rho*mp_gamma
9482 m_rho = m_rho + 2.0_dp* &
9483 m_rho_rho_laplace_rho(i, j, k)*mp_rho*mp_laplace_rho
9484 m_rho = m_rho + 2.0_dp* &
9485 m_rho_rho_tau(i, j, k)*mp_rho*mp_tau
9486 m_rho = m_rho + 1.0_dp* &
9487 m_rho_gamma_gamma(i, j, k)*mp_gamma*mp_gamma
9488 m_rho = m_rho + 2.0_dp* &
9489 m_rho_gamma_laplace_rho(i, j, k)*mp_gamma*mp_laplace_rho
9490 m_rho = m_rho + 2.0_dp* &
9491 m_rho_gamma_tau(i, j, k)*mp_gamma*mp_tau
9492 m_rho = m_rho + 1.0_dp* &
9493 m_rho_laplace_rho_laplace_rho(i, j, k)*mp_laplace_rho*mp_laplace_rho
9494 m_rho = m_rho + 2.0_dp* &
9495 m_rho_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_tau
9496 m_rho = m_rho + 1.0_dp* &
9497 m_rho_tau_tau(i, j, k)*mp_tau*mp_tau
9498 m_rho = m_rho + m_rho_gamma(i, j, k)*mpp_gamma
9500 m_gamma = m_gamma + 1.0_dp* &
9501 m_rho_rho_gamma(i, j, k)*mp_rho*mp_rho
9502 m_gamma = m_gamma + 2.0_dp* &
9503 m_rho_gamma_gamma(i, j, k)*mp_rho*mp_gamma
9504 m_gamma = m_gamma + 2.0_dp* &
9505 m_rho_gamma_laplace_rho(i, j, k)*mp_rho*mp_laplace_rho
9506 m_gamma = m_gamma + 2.0_dp* &
9507 m_rho_gamma_tau(i, j, k)*mp_rho*mp_tau
9508 m_gamma = m_gamma + 1.0_dp* &
9509 m_gamma_gamma_gamma(i, j, k)*mp_gamma*mp_gamma
9510 m_gamma = m_gamma + 2.0_dp* &
9511 m_gamma_gamma_laplace_rho(i, j, k)*mp_gamma*mp_laplace_rho
9512 m_gamma = m_gamma + 2.0_dp* &
9513 m_gamma_gamma_tau(i, j, k)*mp_gamma*mp_tau
9514 m_gamma = m_gamma + 1.0_dp* &
9515 m_gamma_laplace_rho_laplace_rho(i, j, k)*mp_laplace_rho*mp_laplace_rho
9516 m_gamma = m_gamma + 2.0_dp* &
9517 m_gamma_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_tau
9518 m_gamma = m_gamma + 1.0_dp* &
9519 m_gamma_tau_tau(i, j, k)*mp_tau*mp_tau
9520 m_gamma = m_gamma + m_gamma_gamma(i, j, k)*mpp_gamma
9521 m_laplace_rho = 0.0_dp
9522 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9523 m_rho_rho_laplace_rho(i, j, k)*mp_rho*mp_rho
9524 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9525 m_rho_gamma_laplace_rho(i, j, k)*mp_rho*mp_gamma
9526 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9527 m_rho_laplace_rho_laplace_rho(i, j, k)*mp_rho*mp_laplace_rho
9528 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9529 m_rho_laplace_rho_tau(i, j, k)*mp_rho*mp_tau
9530 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9531 m_gamma_gamma_laplace_rho(i, j, k)*mp_gamma*mp_gamma
9532 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9533 m_gamma_laplace_rho_laplace_rho(i, j, k)*mp_gamma*mp_laplace_rho
9534 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9535 m_gamma_laplace_rho_tau(i, j, k)*mp_gamma*mp_tau
9536 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9537 m_laplace_rho_laplace_rho_laplace_rho(i, j, k)*mp_laplace_rho*mp_laplace_rho
9538 m_laplace_rho = m_laplace_rho + 2.0_dp* &
9539 m_laplace_rho_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_tau
9540 m_laplace_rho = m_laplace_rho + 1.0_dp* &
9541 m_laplace_rho_tau_tau(i, j, k)*mp_tau*mp_tau
9542 m_laplace_rho = m_laplace_rho + m_gamma_laplace_rho(i, j, k)*mpp_gamma
9544 m_tau = m_tau + 1.0_dp* &
9545 m_rho_rho_tau(i, j, k)*mp_rho*mp_rho
9546 m_tau = m_tau + 2.0_dp* &
9547 m_rho_gamma_tau(i, j, k)*mp_rho*mp_gamma
9548 m_tau = m_tau + 2.0_dp* &
9549 m_rho_laplace_rho_tau(i, j, k)*mp_rho*mp_laplace_rho
9550 m_tau = m_tau + 2.0_dp* &
9551 m_rho_tau_tau(i, j, k)*mp_rho*mp_tau
9552 m_tau = m_tau + 1.0_dp* &
9553 m_gamma_gamma_tau(i, j, k)*mp_gamma*mp_gamma
9554 m_tau = m_tau + 2.0_dp* &
9555 m_gamma_laplace_rho_tau(i, j, k)*mp_gamma*mp_laplace_rho
9556 m_tau = m_tau + 2.0_dp* &
9557 m_gamma_tau_tau(i, j, k)*mp_gamma*mp_tau
9558 m_tau = m_tau + 1.0_dp* &
9559 m_laplace_rho_laplace_rho_tau(i, j, k)*mp_laplace_rho*mp_laplace_rho
9560 m_tau = m_tau + 2.0_dp* &
9561 m_laplace_rho_tau_tau(i, j, k)*mp_laplace_rho*mp_tau
9562 m_tau = m_tau + 1.0_dp* &
9563 m_tau_tau_tau(i, j, k)*mp_tau*mp_tau
9564 m_tau = m_tau + m_gamma_tau(i, j, k)*mpp_gamma
9566 m_b = m_b + m_rho_gamma(i, j, k)*mp_rho
9567 m_b = m_b + m_gamma_gamma(i, j, k)*mp_gamma
9568 m_b = m_b + m_gamma_laplace_rho(i, j, k)*mp_laplace_rho
9569 m_b = m_b + m_gamma_tau(i, j, k)*mp_tau
9571 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + m_rho
9572 IF (tau_f) v_xc_tau(1)%array(i, j, k) = &
9573 v_xc_tau(1)%array(i, j, k) + m_tau
9574 IF (laplace_f) v_laplace(1)%array(i, j, k) = &
9575 v_laplace(1)%array(i, j, k) + m_laplace_rho
9578 v_drho_r(1, 1)%array(i, j, k) = &
9579 -(2.0_dp*drho(1)%array(i, j, k)*m_gamma &
9580 + 4.0_dp*drho1(1)%array(i, j, k)*m_b)
9581 v_drho_r(2, 1)%array(i, j, k) = &
9582 -(2.0_dp*drho(2)%array(i, j, k)*m_gamma &
9583 + 4.0_dp*drho1(2)%array(i, j, k)*m_b)
9584 v_drho_r(3, 1)%array(i, j, k) = &
9585 -(2.0_dp*drho(3)%array(i, j, k)*m_gamma &
9586 + 4.0_dp*drho1(3)%array(i, j, k)*m_b)
9593 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
9596 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
9600 DO ispin = 1, nspins
9601 CALL xc_pw_laplace(v_laplace(ispin), pw_pool, xc_deriv_method_id)
9602 CALL pw_axpy(v_laplace(ispin), v_xc(ispin))
9603 CALL deallocate_pw(v_laplace(ispin), pw_pool)
9605 DEALLOCATE (v_laplace)
9609 ELSE IF (.NOT. gradient_f)
THEN
9610 IF (
ASSOCIATED(e_rrr))
THEN
9612 DO k = bo(1, 3), bo(2, 3)
9613 DO j = bo(1, 2), bo(2, 2)
9614 DO i = bo(1, 1), bo(2, 1)
9615 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + &
9616 e_rrr(i, j, k)*rho1(i, j, k)**2
9625 DO k = bo(1, 3), bo(2, 3)
9626 DO j = bo(1, 2), bo(2, 2)
9627 DO i = bo(1, 1), bo(2, 1)
9628 g1 = 2.0_dp*dr1dr(i, j, k)
9629 g11 = 2.0_dp*dr1dr1(i, j, k)
9631 uu = e_rrr(i, j, k)*rho1(i, j, k)**2 &
9632 + 2.0_dp*e_rrg(i, j, k)*rho1(i, j, k)*g1 &
9633 + e_rgg(i, j, k)*g1**2 &
9635 aa = e_rrg(i, j, k)*rho1(i, j, k)**2 &
9636 + 2.0_dp*e_rgg(i, j, k)*rho1(i, j, k)*g1 &
9637 + e_ggg(i, j, k)*g1**2 &
9639 bb = e_rg(i, j, k)*rho1(i, j, k) + e_gg(i, j, k)*g1
9641 v_xc(1)%array(i, j, k) = v_xc(1)%array(i, j, k) + uu
9644 v_drho_r(1, 1)%array(i, j, k) = -(2.0_dp*drho(1)%array(i, j, k)*aa &
9645 + 4.0_dp*drho1(1)%array(i, j, k)*bb)
9646 v_drho_r(2, 1)%array(i, j, k) = -(2.0_dp*drho(2)%array(i, j, k)*aa &
9647 + 4.0_dp*drho1(2)%array(i, j, k)*bb)
9648 v_drho_r(3, 1)%array(i, j, k) = -(2.0_dp*drho(3)%array(i, j, k)*aa &
9649 + 4.0_dp*drho1(3)%array(i, j, k)*bb)
9656 vxg(idir, :, :, 1) = -v_drho_r(idir, 1)%array(:, :, 1)
9659 CALL xc_pw_divergence(xc_deriv_method_id, v_drho_r(:, 1), tmp_g, vxc_g, v_xc(1))
9665 IF (gradient_f)
THEN
9667 DO ispin = 1, nspins
9668 CALL deallocate_pw(v_drho(ispin), pw_pool)
9670 CALL deallocate_pw(v_drho_r(idir, ispin), pw_pool)
9673 DEALLOCATE (v_drho, v_drho_r)
9677 IF (
ASSOCIATED(tmp_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
9678 CALL pw_pool%give_back_pw(tmp_g)
9681 IF (
ASSOCIATED(vxc_g%pw_grid) .AND.
ASSOCIATED(pw_pool))
THEN
9682 CALL pw_pool%give_back_pw(vxc_g)
9685 CALL timestop(handle)