37 #include "../base/base_uses.f90"
42 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
43 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'xc_xbecke_roussel'
45 REAL(dp),
PARAMETER,
PRIVATE :: br_a1 = 1.5255251812009530_dp, &
46 br_a2 = 0.4576575543602858_dp, &
47 br_a3 = 0.4292036732051034_dp, &
48 br_c0 = 0.7566445420735584_dp, &
49 br_c1 = -2.6363977871370960_dp, &
50 br_c2 = 5.4745159964232880_dp, &
51 br_c3 = -12.657308127108290_dp, &
52 br_c4 = 4.1250584725121360_dp, &
53 br_c5 = -30.425133957163840_dp, &
54 br_b0 = 0.4771976183772063_dp, &
55 br_b1 = -1.7799813494556270_dp, &
56 br_b2 = 3.8433841862302150_dp, &
57 br_b3 = -9.5912050880518490_dp, &
58 br_b4 = 2.1730180285916720_dp, &
59 br_b5 = -30.425133851603660_dp, &
60 br_d0 = 0.00004435009886795587_dp, &
61 br_d1 = 0.58128653604457910_dp, &
62 br_d2 = 66.742764515940610_dp, &
63 br_d3 = 434.26780897229770_dp, &
64 br_d4 = 824.7765766052239000_dp, &
65 br_d5 = 1657.9652731582120_dp, &
66 br_e0 = 0.00003347285060926091_dp, &
67 br_e1 = 0.47917931023971350_dp, &
68 br_e2 = 62.392268338574240_dp, &
69 br_e3 = 463.14816427938120_dp, &
70 br_e4 = 785.2360350104029000_dp, &
71 br_e5 = 1657.962968223273000000_dp, &
72 br_bb = 2.085749716493756_dp
91 CHARACTER(LEN=*),
INTENT(OUT),
OPTIONAL :: reference, shortform
92 TYPE(xc_rho_cflags_type),
INTENT(inout),
OPTIONAL :: needs
93 INTEGER,
INTENT(out),
OPTIONAL :: max_deriv
97 IF (
PRESENT(reference))
THEN
98 reference =
"A.D. Becke, M.R. Roussel, "// &
99 "Phys. Rev. A, vol. 39, n 8, pp. 3761-3767, (1989) {spin unpolarized}"
101 IF (
PRESENT(shortform))
THEN
102 shortform =
"Becke-Roussel exchange hole (spin unpolarized)"
104 IF (
PRESENT(needs))
THEN
106 needs%norm_drho = .true.
108 needs%laplace_rho = .true.
111 IF (
PRESENT(max_deriv)) max_deriv = 1
127 CHARACTER(LEN=*),
INTENT(OUT),
OPTIONAL :: reference, shortform
128 TYPE(xc_rho_cflags_type),
INTENT(inout),
OPTIONAL :: needs
129 INTEGER,
INTENT(out),
OPTIONAL :: max_deriv
133 IF (
PRESENT(reference))
THEN
134 reference =
"A.D. Becke, M.R. Roussel, "// &
135 "Phys. Rev. A, vol. 39, n 8, pp. 3761-3767, (1989) {spin polarized}"
137 IF (
PRESENT(shortform))
THEN
138 shortform =
"Becke-Roussel exchange hole (spin polarized)"
140 IF (
PRESENT(needs))
THEN
141 needs%rho_spin = .true.
142 needs%norm_drho_spin = .true.
143 needs%tau_spin = .true.
144 needs%laplace_rho_spin = .true.
146 IF (
PRESENT(max_deriv)) max_deriv = 1
164 TYPE(xc_rho_set_type),
INTENT(IN) :: rho_set
165 TYPE(xc_derivative_set_type),
INTENT(IN) :: deriv_set
166 INTEGER,
INTENT(in) :: grad_deriv
167 TYPE(section_vals_type),
POINTER :: br_params
169 CHARACTER(len=*),
PARAMETER :: routinen =
'xbecke_roussel_lda_eval'
171 INTEGER :: handle, npoints
172 INTEGER,
DIMENSION(2, 3) :: bo
173 REAL(dp) ::
gamma, r, sx
174 REAL(kind=dp) :: epsilon_rho
175 REAL(kind=dp),
CONTIGUOUS,
DIMENSION(:, :, :), &
176 POINTER :: dummy, e_0, e_laplace_rho, e_ndrho, &
177 e_rho, e_tau, laplace_rho, norm_drho, &
179 TYPE(xc_derivative_type),
POINTER :: deriv
181 CALL timeset(routinen, handle)
184 tau=tau, laplace_rho=laplace_rho, local_bounds=bo, &
185 rho_cutoff=epsilon_rho)
186 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
194 e_laplace_rho => dummy
196 IF (grad_deriv >= 0)
THEN
198 allocate_deriv=.true.)
201 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
203 allocate_deriv=.true.)
206 allocate_deriv=.true.)
209 allocate_deriv=.true.)
212 allocate_deriv=.true.)
215 IF (grad_deriv > 1 .OR. grad_deriv < -1)
THEN
216 cpabort(
"derivatives bigger than 1 not implemented")
229 CALL xbecke_roussel_lda_calc(rho=rho, norm_drho=norm_drho, &
230 laplace_rho=laplace_rho, tau=tau, e_0=e_0, e_rho=e_rho, e_ndrho=e_ndrho, &
231 e_tau=e_tau, e_laplace_rho=e_laplace_rho, grad_deriv=grad_deriv, &
232 npoints=npoints, epsilon_rho=epsilon_rho, &
237 CALL timestop(handle)
267 SUBROUTINE xbecke_roussel_lda_calc(rho, norm_drho, laplace_rho, tau, e_0, e_rho, &
268 e_ndrho, e_tau, e_laplace_rho, grad_deriv, npoints, &
269 epsilon_rho, sx, R, gamma)
271 INTEGER,
INTENT(in) :: npoints, grad_deriv
272 REAL(kind=dp),
DIMENSION(1:npoints),
INTENT(inout) :: e_laplace_rho, e_tau, e_ndrho, e_rho, e_0
273 REAL(kind=dp),
DIMENSION(1:npoints),
INTENT(in) :: tau, laplace_rho, norm_drho, rho
274 REAL(kind=dp),
INTENT(in) :: epsilon_rho, sx, r,
gamma
277 REAL(dp) :: e_diff, e_old, my_laplace_rho, my_ndrho, &
278 my_rho, my_tau, t1, t15, t16, t2, t3, &
286 my_rho = 0.5_dp*max(rho(ip), 0.0_dp)
287 IF (my_rho > epsilon_rho)
THEN
288 my_ndrho = 0.5_dp*max(norm_drho(ip), epsilon(0.0_dp)*1.e4_dp)
289 my_tau = 0.5_dp*max(epsilon(0.0_dp)*1.e4_dp, tau(ip))
290 my_laplace_rho = 0.5_dp*laplace_rho(ip)
292 t1 =
pi**(0.1e1_dp/0.3e1_dp)
294 t3 = my_rho**(0.1e1_dp/0.3e1_dp)
300 t15 = my_laplace_rho/0.6e1_dp -
gamma*(2.0_dp*my_tau - t8*t9/0.4e1_dp)/0.3e1_dp
302 yval = 0.2e1_dp/0.3e1_dp*t2*t5*t16
303 IF (r == 0.0_dp)
THEN
304 IF (yval <= 0.0_dp)
THEN
307 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
308 sx,
gamma, grad_deriv)
310 e_diff = e_0(ip) - e_old
311 e_0(ip) = e_0(ip) + e_diff
314 CALL x_br_lsd_y_gt_0(my_rho, my_ndrho, my_tau, my_laplace_rho, e_0(ip), &
315 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
316 sx,
gamma, grad_deriv)
318 e_diff = e_0(ip) - e_old
319 e_0(ip) = e_0(ip) + e_diff
322 IF (yval <= 0.0_dp)
THEN
325 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
326 sx, r,
gamma, grad_deriv)
328 e_diff = e_0(ip) - e_old
329 e_0(ip) = e_0(ip) + e_diff
333 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
334 sx, r,
gamma, grad_deriv)
336 e_diff = e_0(ip) - e_old
337 e_0(ip) = e_0(ip) + e_diff
345 END SUBROUTINE xbecke_roussel_lda_calc
361 TYPE(xc_rho_set_type),
INTENT(IN) :: rho_set
362 TYPE(xc_derivative_set_type),
INTENT(IN) :: deriv_set
363 INTEGER,
INTENT(in) :: grad_deriv
364 TYPE(section_vals_type),
POINTER :: br_params
366 CHARACTER(len=*),
PARAMETER :: routinen =
'xbecke_roussel_lsd_eval'
368 INTEGER :: handle, npoints
369 INTEGER,
DIMENSION(2, 3) :: bo
370 REAL(dp) ::
gamma, r, sx
371 REAL(kind=dp) :: epsilon_rho
372 REAL(kind=dp),
CONTIGUOUS,
DIMENSION(:, :, :),
POINTER :: dummy, e_0, e_laplace_rhoa, &
373 e_laplace_rhob, e_ndrhoa, e_ndrhob, e_rhoa, e_rhob, e_tau_a, e_tau_b, laplace_rhoa, &
374 laplace_rhob, norm_drhoa, norm_drhob, rhoa, rhob, tau_a, tau_b
375 TYPE(xc_derivative_type),
POINTER :: deriv
377 CALL timeset(routinen, handle)
379 CALL xc_rho_set_get(rho_set, rhoa=rhoa, rhob=rhob, norm_drhoa=norm_drhoa, &
380 norm_drhob=norm_drhob, tau_a=tau_a, tau_b=tau_b, laplace_rhoa=laplace_rhoa, &
381 laplace_rhob=laplace_rhob, local_bounds=bo, &
382 rho_cutoff=epsilon_rho)
383 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
394 e_laplace_rhoa => dummy
395 e_laplace_rhob => dummy
397 IF (grad_deriv >= 0)
THEN
399 allocate_deriv=.true.)
402 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
404 allocate_deriv=.true.)
407 allocate_deriv=.true.)
411 allocate_deriv=.true.)
414 allocate_deriv=.true.)
418 allocate_deriv=.true.)
421 allocate_deriv=.true.)
425 allocate_deriv=.true.)
428 allocate_deriv=.true.)
431 IF (grad_deriv > 1 .OR. grad_deriv < -1)
THEN
432 cpabort(
"derivatives bigger than 1 not implemented")
447 CALL xbecke_roussel_lsd_calc(rho=rhoa, norm_drho=norm_drhoa, &
448 laplace_rho=laplace_rhoa, tau=tau_a, e_0=e_0, e_rho=e_rhoa, e_ndrho=e_ndrhoa, &
449 e_tau=e_tau_a, e_laplace_rho=e_laplace_rhoa, grad_deriv=grad_deriv, &
450 npoints=npoints, epsilon_rho=epsilon_rho, &
453 CALL xbecke_roussel_lsd_calc(rho=rhob, norm_drho=norm_drhob, &
454 laplace_rho=laplace_rhob, tau=tau_b, e_0=e_0, e_rho=e_rhob, e_ndrho=e_ndrhob, &
455 e_tau=e_tau_b, e_laplace_rho=e_laplace_rhob, grad_deriv=grad_deriv, &
456 npoints=npoints, epsilon_rho=epsilon_rho, &
461 CALL timestop(handle)
489 SUBROUTINE xbecke_roussel_lsd_calc(rho, norm_drho, laplace_rho, tau, e_0, e_rho, &
490 e_ndrho, e_tau, e_laplace_rho, grad_deriv, npoints, &
491 epsilon_rho, sx, R, gamma)
493 INTEGER,
INTENT(in) :: npoints, grad_deriv
494 REAL(kind=dp),
DIMENSION(1:npoints),
INTENT(inout) :: e_laplace_rho, e_tau, e_ndrho, e_rho, e_0
495 REAL(kind=dp),
DIMENSION(1:npoints),
INTENT(in) :: tau, laplace_rho, norm_drho, rho
496 REAL(kind=dp),
INTENT(in) :: epsilon_rho, sx, r,
gamma
499 REAL(dp) :: my_laplace_rho, my_ndrho, my_rho, &
500 my_tau, t1, t15, t16, t2, t3, t4, t5, &
508 my_rho = max(rho(ip), 0.0_dp)
509 IF (my_rho > epsilon_rho)
THEN
510 my_ndrho = max(norm_drho(ip), epsilon(0.0_dp)*1.e4_dp)
511 my_tau = 1.0_dp*max(epsilon(0.0_dp)*1.e4_dp, tau(ip))
512 my_laplace_rho = 1.0_dp*laplace_rho(ip)
514 t1 =
pi**(0.1e1_dp/0.3e1_dp)
516 t3 = my_rho**(0.1e1_dp/0.3e1_dp)
522 t15 = my_laplace_rho/0.6e1_dp -
gamma*(2.0_dp*my_tau - t8*t9/0.4e1_dp)/0.3e1_dp
524 yval = 0.2e1_dp/0.3e1_dp*t2*t5*t16
525 IF (r == 0.0_dp)
THEN
526 IF (yval <= 0.0_dp)
THEN
528 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
529 sx,
gamma, grad_deriv)
531 CALL x_br_lsd_y_gt_0(my_rho, my_ndrho, my_tau, my_laplace_rho, e_0(ip), &
532 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
533 sx,
gamma, grad_deriv)
536 IF (yval <= 0.0_dp)
THEN
538 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
539 sx, r,
gamma, grad_deriv)
542 e_rho(ip), e_ndrho(ip), e_tau(ip), e_laplace_rho(ip), &
543 sx, r,
gamma, grad_deriv)
551 END SUBROUTINE xbecke_roussel_lsd_calc
572 e_rho, e_ndrho, e_tau, e_laplace_rho, &
573 sx, gamma, grad_deriv)
574 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
575 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
576 REAL(dp),
INTENT(IN) :: sx,
gamma
577 INTEGER,
INTENT(IN) :: grad_deriv
579 REAL(kind=dp) :: t1, t100, t101, t102, t108, t111, t113, t114, t117, t118, t120, t121, t122, &
580 t129, t130, t134, t135, t138, t142, t143, t146, t147, t150, t152, t153, t157, t158, t16, &
581 t161, t164, t165, t166, t169, t17, t170, t172, t173, t19, t199, t2, t20, t202, t207, &
582 t208, t209, t21, t217, t218, t22, t220, t227, t229, t23, t234, t246, t249, t252, t255, &
583 t259, t26, t263, t267, t27, t271, t274, t275, t276, t28, t29, t293, t295, t3, t304, t307, &
584 t308, t32, t320, t33, t34, t340, t341, t342, t344, t346, t349, t35, t350, t353, t354, &
585 t357, t358, t36, t361, t362, t365, t366, t367, t37, t379, t38
586 REAL(kind=dp) :: t381, t387, t39, t4, t401, t42, t422, t43, t434, t435, t436, t44, t448, &
587 t45, t450, t47, t471, t48, t5, t51, t52, t53, t54, t55, t56, t57, t61, t62, t63, t64, &
588 t66, t67, t70, t71, t72, t75, t78, t81, t84, t87, t88, t89, t9, t91, t92, t93, t94, t95, &
591 IF (grad_deriv >= 0)
THEN
592 t1 =
pi**(0.1e1_dp/0.3e1_dp)
594 t3 = rho**(0.1e1_dp/0.3e1_dp)
598 t16 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t9/rho/0.4e1_dp)/0.3e1_dp
600 yval = 0.2e1_dp/0.3e1_dp*t2*t5*t17
602 t20 = 0.3141592654e1_dp**(0.1e1_dp/0.3e1_dp)
606 t26 = 0.2e1_dp/0.3e1_dp*t22*t23 + br_a2
622 t47 = 0.1e1_dp/t37/t16
635 t66 = 0.1e1_dp/t55/t16
637 t70 = br_c0 + 0.2e1_dp/0.3e1_dp*t29*t23 + 0.4e1_dp/0.9e1_dp*t33*t39 &
638 + 0.8e1_dp/0.27e2_dp*t43*t48 + 0.16e2_dp/0.81e2_dp*t52*t57 + 0.32e2_dp &
646 t87 = br_b0 + 0.2e1_dp/0.3e1_dp*t72*t23 + 0.4e1_dp/0.9e1_dp*t75*t39 &
647 + 0.8e1_dp/0.27e2_dp*t78*t48 + 0.16e2_dp/0.81e2_dp*t81*t57 + 0.32e2_dp &
651 t91 = exp(t89/0.3e1_dp)
658 t100 = 0.1e1_dp - t96 - t71*t97/0.2e1_dp
661 e_0 = e_0 + (-t92*t102)*sx
663 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
668 t117 = 0.10e2_dp/0.9e1_dp*t22*t108 + t22*t111*t114/0.18e2_dp
670 t120 = 0.1e1_dp/(0.1e1_dp + t118)
688 t164 = 0.1e1_dp/t55/t37
691 t169 = 0.10e2_dp/0.9e1_dp*t29*t108 + t29*t111*t114/0.18e2_dp + 0.40e2_dp &
692 /0.27e2_dp*t33*t130 + 0.2e1_dp/0.27e2_dp*t33*t19*t135 + &
693 0.40e2_dp/0.27e2_dp*t43*t138 + 0.2e1_dp/0.27e2_dp*t43*t35*t143 + &
694 0.320e3_dp/0.243e3_dp*t52*t147 + 0.16e2_dp/0.243e3_dp*t52*t150* &
695 t153 + 0.800e3_dp/0.729e3_dp*t62*t158 + 0.40e2_dp/0.729e3_dp*t62*t161 &
700 t199 = 0.10e2_dp/0.9e1_dp*t72*t108 + t72*t111*t114/0.18e2_dp + 0.40e2_dp &
701 /0.27e2_dp*t75*t130 + 0.2e1_dp/0.27e2_dp*t75*t19*t135 + &
702 0.40e2_dp/0.27e2_dp*t78*t138 + 0.2e1_dp/0.27e2_dp*t78*t35*t143 + &
703 0.320e3_dp/0.243e3_dp*t81*t147 + 0.16e2_dp/0.243e3_dp*t81*t150* &
704 t153 + 0.800e3_dp/0.729e3_dp*t84*t158 + 0.40e2_dp/0.729e3_dp*t84*t161 &
706 t202 = -t121*t122 + t170*t88 - t71*t173*t199
712 t220 = 0.1e1_dp/t218*t87
716 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t3*t20*t91*t102 - t21*t202*t91* &
717 t102/0.3e1_dp - t21*t209*t94*t87*t100*t117*t120 + t217 &
718 *t220*t100*t169 - t92*t95*t199*t100 - t92*t95*t87* &
719 (-t227*t96 + t121*t229/0.2e1_dp - t170*t97/0.2e1_dp + t71*t234 &
720 *t199/0.2e1_dp - t71*t88*t227*t96/0.2e1_dp))*sx
723 t252 = t22*t246*
gamma*ndrho*t249*t88
729 t274 = -t29*t4*t255/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t33*t129*t259 &
730 - 0.4e1_dp/0.27e2_dp*t43*t44*t263 - 0.32e2_dp/0.243e3_dp*t52*t146 &
731 *t267 - 0.80e2_dp/0.729e3_dp*t62*t157*t271
734 t293 = -t72*t4*t255/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t75*t129*t259 &
735 - 0.4e1_dp/0.27e2_dp*t78*t44*t263 - 0.32e2_dp/0.243e3_dp*t81*t146 &
736 *t267 - 0.80e2_dp/0.729e3_dp*t84*t157*t271
741 t320 = -t252/0.9e1_dp - t276 + t295
742 e_ndrho = e_ndrho + (-t21*(t252/0.27e2_dp + t276/0.3e1_dp - t295/0.3e1_dp)*t91 &
743 *t102 + t34*t20*t91*t304*t307*t113*t308/0.9e1_dp + t217 &
744 *t220*t100*t274 - t92*t95*t293*t100 - t92*t95*t87 &
745 *(-t320*t96 - t22*t246*
gamma*t308*t229/0.18e2_dp - t275 &
746 *t97/0.2e1_dp + t71*t234*t293/0.2e1_dp - t71*t88*t320*t96 &
751 t344 = t341*t342*t122
761 t365 = 0.4e1_dp/0.9e1_dp*t29*t346 + 0.16e2_dp/0.27e2_dp*t33*t350 + &
762 0.16e2_dp/0.27e2_dp*t43*t354 + 0.128e3_dp/0.243e3_dp*t52*t358 + 0.320e3_dp &
766 t379 = 0.4e1_dp/0.9e1_dp*t72*t346 + 0.16e2_dp/0.27e2_dp*t75*t350 + &
767 0.16e2_dp/0.27e2_dp*t78*t354 + 0.128e3_dp/0.243e3_dp*t81*t358 + 0.320e3_dp &
771 t401 = 0.4e1_dp/0.9e1_dp*t344 - t367 + t381
772 e_tau = e_tau + (-t21*(-0.4e1_dp/0.27e2_dp*t344 + t367/0.3e1_dp - t381/0.3e1_dp) &
773 *t91*t102 - 0.4e1_dp/0.9e1_dp*t387*t91*t304*t307*t113* &
774 t120 + t217*t220*t100*t365 - t92*t95*t379*t100 - t92 &
775 *t95*t87*(-t401*t96 + 0.2e1_dp/0.9e1_dp*t341*t342*t229 - &
776 t366*t97/0.2e1_dp + t71*t234*t379/0.2e1_dp - t71*t88*t401 &
778 t422 = t22*t5*t38*t120*t122
779 t434 = -t29*t340/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t33*t349 - 0.4e1_dp/ &
780 0.27e2_dp*t43*t353 - 0.32e2_dp/0.243e3_dp*t52*t357 - 0.80e2_dp/0.729e3_dp &
784 t448 = -t72*t340/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t75*t349 - 0.4e1_dp/ &
785 0.27e2_dp*t78*t353 - 0.32e2_dp/0.243e3_dp*t81*t357 - 0.80e2_dp/0.729e3_dp &
788 t471 = -t422/0.9e1_dp - t436 + t450
789 e_laplace_rho = e_laplace_rho + (-t21*(t422/0.27e2_dp + t436/0.3e1_dp - t450/0.3e1_dp)*t91* &
790 t102 + t387*t209*t94*t101*br_a1*t2*t38*t120/0.9e1_dp &
791 + t217*t220*t100*t434 - t92*t95*t448*t100 - t92*t95 &
792 *t87*(-t471*t96 - t341*t249*t97/0.18e2_dp - t435*t97/0.2e1_dp &
793 + t71*t234*t448/0.2e1_dp - t71*t88*t471*t96/0.2e1_dp))*sx
816 e_rho, e_ndrho, e_tau, e_laplace_rho, &
817 sx, gamma, grad_deriv)
818 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
819 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
820 REAL(dp),
INTENT(IN) :: sx,
gamma
821 INTEGER,
INTENT(IN) :: grad_deriv
823 REAL(kind=dp) :: t1, t102, t103, t104, t106, t107, t108, t109, t110, t111, t112, t115, t117, &
824 t124, t131, t134, t137, t138, t142, t143, t154, t157, t158, t159, t16, t160, t162, t165, &
825 t167, t168, t17, t176, t180, t181, t184, t185, t188, t19, t190, t191, t195, t196, t199, &
826 t2, t20, t202, t203, t204, t207, t208, t21, t210, t211, t22, t23, t237, t24, t240, t245, &
827 t248, t249, t25, t255, t256, t258, t26, t265, t267, t272, t285, t288, t289, t29, t297, &
828 t298, t3, t30, t301, t305, t309, t31, t313, t317, t32, t320, t321, t33, t338, t34, t341, &
829 t35, t356, t36, t37, t376, t377, t382, t383, t387, t388, t391
830 REAL(kind=dp) :: t392, t395, t396, t399, t4, t400, t403, t404, t41, t416, t419, t42, t43, &
831 t434, t458, t459, t47, t471, t472, t48, t484, t487, t49, t5, t50, t502, t51, t54, t57, &
832 t58, t59, t6, t60, t62, t63, t66, t67, t68, t69, t70, t71, t72, t76, t77, t78, t79, t81, &
833 t82, t85, t86, t87, t9, t90, t93, t96, t99, yval
835 IF (grad_deriv >= 0)
THEN
836 t1 =
pi**(0.1e1_dp/0.3e1_dp)
838 t3 = rho**(0.1e1_dp/0.3e1_dp)
843 t16 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t9/rho/0.4e1_dp)/0.3e1_dp
845 yval = 0.2e1_dp/0.3e1_dp*t6*t17
847 t20 = 0.3141592654e1_dp**(0.1e1_dp/0.3e1_dp)
863 t41 = sqrt(0.10e1_dp + 0.4e1_dp/0.9e1_dp*t31*t37)
866 t47 = 0.1500000000000000e1_dp*t24*t26 + 0.3e1_dp/0.2e1_dp*t42*t43 &
877 t62 = 0.1e1_dp/t35/t16
890 t81 = 0.1e1_dp/t70/t16
892 t85 = br_d0 + 0.2e1_dp/0.3e1_dp*t50*t51 + 0.4e1_dp/0.9e1_dp*t54*t37 &
893 + 0.8e1_dp/0.27e2_dp*t58*t63 + 0.16e2_dp/0.81e2_dp*t67*t72 + 0.32e2_dp &
901 t102 = br_e0 + 0.2e1_dp/0.3e1_dp*t87*t51 + 0.4e1_dp/0.9e1_dp*t90*t37 &
902 + 0.8e1_dp/0.27e2_dp*t93*t63 + 0.16e2_dp/0.81e2_dp*t96*t72 + 0.32e2_dp &
906 t106 = exp(t104/0.3e1_dp)
913 t115 = 0.1e1_dp - t111 - t86*t112/0.2e1_dp
914 t117 = t110*t102*t115
915 e_0 = e_0 + (-t107*t117)*sx
917 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
918 t124 = 0.1e1_dp/t4/t32
919 t131 = 0.1e1_dp/t4/t33*
gamma*t9
926 t157 = -0.2500000000e1_dp*t24*t124*t16 - 0.1250000000e0_dp*t24* &
927 t131 + 0.3e1_dp/0.4e1_dp*t134*t22*t23*t26*(0.40e2_dp/0.27e2_dp* &
928 t31*t138 + 0.2e1_dp/0.27e2_dp*t31*t19*t143) - 0.5e1_dp/0.2e1_dp* &
929 t42*t23*t124*t16 - t154*t131/0.8e1_dp
948 t202 = 0.1e1_dp/t70/t35
951 t207 = 0.10e2_dp/0.9e1_dp*t50*t162 + t50*t165*t168/0.18e2_dp + 0.40e2_dp &
952 /0.27e2_dp*t54*t138 + 0.2e1_dp/0.27e2_dp*t54*t19*t143 + &
953 0.40e2_dp/0.27e2_dp*t58*t176 + 0.2e1_dp/0.27e2_dp*t58*t33*t181 + &
954 0.320e3_dp/0.243e3_dp*t67*t185 + 0.16e2_dp/0.243e3_dp*t67*t188* &
955 t191 + 0.800e3_dp/0.729e3_dp*t77*t196 + 0.40e2_dp/0.729e3_dp*t77*t199 &
960 t237 = 0.10e2_dp/0.9e1_dp*t87*t162 + t87*t165*t168/0.18e2_dp + 0.40e2_dp &
961 /0.27e2_dp*t90*t138 + 0.2e1_dp/0.27e2_dp*t90*t19*t143 + &
962 0.40e2_dp/0.27e2_dp*t93*t176 + 0.2e1_dp/0.27e2_dp*t93*t33*t181 + &
963 0.320e3_dp/0.243e3_dp*t96*t185 + 0.16e2_dp/0.243e3_dp*t96*t188* &
964 t191 + 0.800e3_dp/0.729e3_dp*t99*t196 + 0.40e2_dp/0.729e3_dp*t99*t199 &
966 t240 = t159*t160 + t208*t103 - t86*t211*t237
972 t258 = 0.1e1_dp/t256*t102
976 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t3*t20*t106*t117 - t21*t240*t106 &
977 *t117/0.3e1_dp + t248*t249*t115*t157*t158 + t255*t258* &
978 t115*t207 - t107*t110*t237*t115 - t107*t110*t102*(-t265 &
979 *t111 - t159*t267/0.2e1_dp - t208*t112/0.2e1_dp + t86*t272 &
980 *t237/0.2e1_dp - t86*t103*t265*t111/0.2e1_dp))*sx
981 t285 = t124*
gamma*ndrho
984 t297 = 0.2500000000000000e0_dp*t24*t285 - t289*t4*t36*
gamma* &
985 ndrho/0.9e1_dp + t154*t285/0.4e1_dp
992 t320 = -t50*t4*t301/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t54*t137*t305 &
993 - 0.4e1_dp/0.27e2_dp*t58*t59*t309 - 0.32e2_dp/0.243e3_dp*t67*t184 &
994 *t313 - 0.80e2_dp/0.729e3_dp*t77*t195*t317
996 t338 = -t87*t4*t301/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t90*t137*t305 &
997 - 0.4e1_dp/0.27e2_dp*t93*t59*t309 - 0.32e2_dp/0.243e3_dp*t96*t184 &
998 *t313 - 0.80e2_dp/0.729e3_dp*t99*t195*t317
999 t341 = t298*t160 + t321*t103 - t86*t211*t338
1001 e_ndrho = e_ndrho + (-t21*t341*t106*t117/0.3e1_dp + t248*t249*t115*t297 &
1002 *t158 + t255*t258*t115*t320 - t107*t110*t338*t115 &
1003 - t107*t110*t102*(-t356*t111 - t298*t267/0.2e1_dp - t321 &
1004 *t112/0.2e1_dp + t86*t272*t338/0.2e1_dp - t86*t103*t356* &
1008 t382 = -0.1000000000e1_dp*t24*t25*
gamma + 0.4e1_dp/0.9e1_dp*t289*t377 &
1019 t403 = 0.4e1_dp/0.9e1_dp*t50*t377 + 0.16e2_dp/0.27e2_dp*t54*t388 + &
1020 0.16e2_dp/0.27e2_dp*t58*t392 + 0.128e3_dp/0.243e3_dp*t67*t396 + 0.320e3_dp &
1021 /0.729e3_dp*t77*t400
1023 t416 = 0.4e1_dp/0.9e1_dp*t87*t377 + 0.16e2_dp/0.27e2_dp*t90*t388 + &
1024 0.16e2_dp/0.27e2_dp*t93*t392 + 0.128e3_dp/0.243e3_dp*t96*t396 + 0.320e3_dp &
1025 /0.729e3_dp*t99*t400
1026 t419 = t383*t160 + t404*t103 - t86*t211*t416
1028 e_tau = e_tau + (-t21*t419*t106*t117/0.3e1_dp + t248*t249*t115*t382 &
1029 *t158 + t255*t258*t115*t403 - t107*t110*t416*t115 - &
1030 t107*t110*t102*(-t434*t111 - t383*t267/0.2e1_dp - t404* &
1031 t112/0.2e1_dp + t86*t272*t416/0.2e1_dp - t86*t103*t434*t111 &
1033 t458 = 0.2500000000000000e0_dp*t24*t25 - t288*t6*t36/0.9e1_dp + &
1036 t471 = -t50*t376/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t54*t387 - 0.4e1_dp/ &
1037 0.27e2_dp*t58*t391 - 0.32e2_dp/0.243e3_dp*t67*t395 - 0.80e2_dp/0.729e3_dp &
1040 t484 = -t87*t376/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t90*t387 - 0.4e1_dp/ &
1041 0.27e2_dp*t93*t391 - 0.32e2_dp/0.243e3_dp*t96*t395 - 0.80e2_dp/0.729e3_dp &
1043 t487 = t459*t160 + t472*t103 - t86*t211*t484
1045 e_laplace_rho = e_laplace_rho + (-t21*t487*t106*t117/0.3e1_dp + t248*t249*t115*t458 &
1046 *t158 + t255*t258*t115*t471 - t107*t110*t484*t115 - &
1047 t107*t110*t102*(-t502*t111 - t459*t267/0.2e1_dp - t472* &
1048 t112/0.2e1_dp + t86*t272*t484/0.2e1_dp - t86*t103*t502*t111 &
1074 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1075 sx, R, gamma, grad_deriv)
1076 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
1077 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
1078 REAL(dp),
INTENT(IN) :: sx, r,
gamma
1079 INTEGER,
INTENT(IN) :: grad_deriv
1081 REAL(kind=dp) :: brval, t1, t101, t11, t12, t18, t2, t20, &
1082 t24, t25, t26, t3, t31, t33, t36, t38, &
1083 t4, t41, t43, t47, t50, t54, t56, t6, &
1084 t60, t62, t66, t69, t7, t70, t88, t89, &
1087 t1 = 8**(0.1e1_dp/0.3e1_dp)
1089 t3 =
pi**(0.1e1_dp/0.3e1_dp)
1091 t6 = rho**(0.1e1_dp/0.3e1_dp)
1095 t18 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t11*t12/0.4e1_dp)/0.3e1_dp
1097 t24 = atan(0.2e1_dp/0.3e1_dp*br_a1*t4*t20 + br_a2)
1103 t38 = t6*t33*rho/t36
1106 t47 = t43*rho/t36/t18
1109 t56 = t7*t43*t33/t54
1112 t66 = t6*t62/t54/t18
1113 t69 = br_c0 + 0.2e1_dp/0.3e1_dp*br_c1*t4*t20 + 0.4e1_dp/0.9e1_dp*br_c2 &
1114 *t31*t38 + 0.8e1_dp/0.27e2_dp*br_c3*t41*t47 + 0.16e2_dp/0.81e2_dp &
1115 *br_c4*t50*t56 + 0.32e2_dp/0.243e3_dp*br_c5*t60*t66
1117 t88 = br_b0 + 0.2e1_dp/0.3e1_dp*br_b1*t4*t20 + 0.4e1_dp/0.9e1_dp*br_b2 &
1118 *t31*t38 + 0.8e1_dp/0.27e2_dp*br_b3*t41*t47 + 0.16e2_dp/0.81e2_dp &
1119 *br_b4*t50*t56 + 0.32e2_dp/0.243e3_dp*br_b5*t60*t66
1121 t96 = exp(-t25*t69/t88)
1122 t101 = (t26*t25*t70*t69/t89/t88*t96/0.3141592654e1_dp* &
1123 t12)**(0.1e1_dp/0.3e1_dp)
1124 brval = real(t2, kind=dp)*t101/0.8e1_dp
1127 CALL x_br_lsd_y_lte_0_cutoff_r_gt_b(rho, ndrho, tau, laplace_rho, e_0, &
1128 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1129 sx, r,
gamma, grad_deriv)
1131 CALL x_br_lsd_y_lte_0_cutoff_r_lte_b(rho, ndrho, tau, laplace_rho, e_0, &
1132 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1133 sx, r,
gamma, grad_deriv)
1157 SUBROUTINE x_br_lsd_y_lte_0_cutoff_r_gt_b(rho, ndrho, tau, laplace_rho, e_0, &
1158 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1159 sx, R, gamma, grad_deriv)
1160 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
1161 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
1162 REAL(dp),
INTENT(IN) :: sx, r,
gamma
1163 INTEGER,
INTENT(IN) :: grad_deriv
1165 REAL(kind=dp) :: t1, t10, t100, t101, t102, t103, t104, t106, t108, t109, t110, t114, t117, &
1166 t119, t120, t123, t124, t129, t132, t134, t135, t138, t139, t141, t142, t143, t149, t150, &
1167 t153, t155, t156, t159, t16, t163, t164, t167, t168, t17, t171, t173, t174, t178, t179, &
1168 t18, t182, t185, t186, t187, t190, t192, t193, t2, t21, t219, t22, t221, t223, t224, &
1169 t225, t227, t228, t23, t231, t232, t233, t235, t24, t240, t245, t247, t259, t261, t263, &
1170 t265, t268, t269, t27, t270, t272, t274, t275, t28, t283, t288, t29, t291, t3, t30, t301, &
1171 t305, t31, t312, t314, t315, t317, t319, t32, t323, t327, t33
1172 REAL(kind=dp) :: t331, t335, t338, t34, t340, t356, t358, t359, t361, t363, t364, t366, &
1173 t367, t37, t38, t388, t39, t390, t392, t394, t397, t399, t4, t40, t403, t405, t409, t410, &
1174 t414, t42, t423, t426, t43, t434, t443, t450, t455, t456, t459, t46, t460, t463, t464, &
1175 t467, t468, t47, t471, t472, t475, t477, t48, t488, t49, t490, t493, t494, t496, t497, &
1176 t499, t5, t50, t51, t516, t518, t52, t520, t522, t525, t526, t527, t530, t532, t545, &
1177 t548, t56, t563, t57, t572, t574, t58, t585, t587, t59, t598, t6, t600, t605, t606, t608, &
1178 t609, t61, t62, t628, t630, t632, t634, t639, t641, t645, t65, t655
1179 REAL(kind=dp) :: t66, t67, t672, t70, t73, t76, t79, t82, t83, t84, t85, t86, t87, t88, t89, &
1180 t9, t90, t91, t93, t94, t95, t96, t97, t99
1182 IF (grad_deriv >= 0)
THEN
1183 t1 =
pi**(0.1e1_dp/0.3e1_dp)
1186 t4 = rho**(0.1e1_dp/0.3e1_dp)
1191 t16 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t9*t10/0.4e1_dp)/0.3e1_dp
1194 t21 = 0.2e1_dp/0.3e1_dp*t3*t18 + br_a2
1210 t42 = 0.1e1_dp/t32/t16
1223 t61 = 0.1e1_dp/t50/t16
1225 t65 = br_c0 + 0.2e1_dp/0.3e1_dp*t24*t18 + 0.4e1_dp/0.9e1_dp*t28*t34 &
1226 + 0.8e1_dp/0.27e2_dp*t38*t43 + 0.16e2_dp/0.81e2_dp*t47*t52 + 0.32e2_dp &
1234 t82 = br_b0 + 0.2e1_dp/0.3e1_dp*t67*t18 + 0.4e1_dp/0.9e1_dp*t70*t34 &
1235 + 0.8e1_dp/0.27e2_dp*t73*t43 + 0.16e2_dp/0.81e2_dp*t76*t52 + 0.32e2_dp &
1239 t85 = 8**(0.1e1_dp/0.3e1_dp)
1246 t93 = 0.1e1_dp/t91/t82
1249 t96 = 0.1e1_dp/0.3141592654e1_dp
1252 t100 = t99**(0.1e1_dp/0.3e1_dp)
1253 t101 = 0.1e1_dp/t100
1254 t102 = real(t85, kind=dp)*t101
1257 t106 = exp(t84 - t104)
1261 t114 = t83*real(t85, kind=dp)*t101*r
1262 t117 = exp(-t84 - t104)
1265 t123 = -0.2e1_dp*t106 + t110 - t108*t65*t114 + 0.2e1_dp*t117 + t120 &
1268 e_0 = e_0 + (t124*t102/0.8e1_dp)*sx
1270 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1275 t138 = 0.10e2_dp/0.9e1_dp*t3*t129 + t3*t132*t135/0.18e2_dp
1277 t141 = 0.1e1_dp/(0.1e1_dp + t139)
1296 t185 = 0.1e1_dp/t50/t32
1299 t190 = 0.10e2_dp/0.9e1_dp*t24*t129 + t24*t132*t135/0.18e2_dp + 0.40e2_dp &
1300 /0.27e2_dp*t28*t150 + 0.2e1_dp/0.27e2_dp*t28*t153*t156 + &
1301 0.40e2_dp/0.27e2_dp*t38*t159 + 0.2e1_dp/0.27e2_dp*t38*t30*t164 &
1302 + 0.320e3_dp/0.243e3_dp*t47*t168 + 0.16e2_dp/0.243e3_dp*t47*t171* &
1303 t174 + 0.800e3_dp/0.729e3_dp*t57*t179 + 0.40e2_dp/0.729e3_dp*t57* &
1307 t219 = 0.10e2_dp/0.9e1_dp*t67*t129 + t67*t132*t135/0.18e2_dp + 0.40e2_dp &
1308 /0.27e2_dp*t70*t150 + 0.2e1_dp/0.27e2_dp*t70*t153*t156 + &
1309 0.40e2_dp/0.27e2_dp*t73*t159 + 0.2e1_dp/0.27e2_dp*t73*t30*t164 &
1310 + 0.320e3_dp/0.243e3_dp*t76*t168 + 0.16e2_dp/0.243e3_dp*t76*t171* &
1311 t174 + 0.800e3_dp/0.729e3_dp*t79*t179 + 0.40e2_dp/0.729e3_dp*t79* &
1313 t221 = t66*t193*t219
1314 t223 = t142*t65*t114
1319 t231 = real(t85, kind=dp)/t100/t99
1326 t259 = -0.3e1_dp*t232*t233*t235*t142 + 0.3e1_dp*t240*t97*t10 &
1327 *t190 - 0.3e1_dp*t247*t97*t10*t219 + t94*(t143 - t192 + &
1328 t221)*t95*t235 - t94*t97/t29
1330 t263 = t84*t261/0.3e1_dp
1331 t265 = (-t143 + t192 - t221 + t223 - t224 + t228 + t263)*t106
1339 t288 = (t143 - t192 + t221 + t223 - t224 + t228 + t263)*t117
1342 t305 = -0.2e1_dp*t265 + t265*t84 - t268*t270 + t108*t272 - t108 &
1343 *t275 - t265*t66*t114 + t268*t269*t114 - t108*t190* &
1344 t114 + t283*t227 + t110*t261/0.3e1_dp + 0.2e1_dp*t288 + t288*t84 &
1345 - t291*t270 + t119*t272 - t119*t275 + t288*t66*t114 - &
1346 t291*t269*t114 + t119*t190*t114 - t301*t227 - t120*t261 &
1348 e_rho = e_rho + (t123*real(t85, kind=dp)*t101/0.8e1_dp + rho*t305*t102/0.8e1_dp &
1349 - t124*t231*t259/0.24e2_dp)*sx
1353 t317 = t3*t312*t315/0.9e1_dp
1359 t338 = -t24*t5*t319/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t28*t149*t323 &
1360 - 0.4e1_dp/0.27e2_dp*t38*t39*t327 - 0.32e2_dp/0.243e3_dp*t47*t167 &
1361 *t331 - 0.80e2_dp/0.729e3_dp*t57*t178*t335
1363 t356 = -t67*t5*t319/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t70*t149*t323 &
1364 - 0.4e1_dp/0.27e2_dp*t73*t39*t327 - 0.32e2_dp/0.243e3_dp*t76*t167 &
1365 *t331 - 0.80e2_dp/0.729e3_dp*t79*t178*t335
1366 t358 = t66*t193*t356
1369 t363 = t359*t319*t361/0.9e1_dp
1373 t388 = t232*t93*t97*t132*t3*t33*t314*t141/0.3e1_dp + 0.3e1_dp &
1374 *t240*t97*t10*t338 - 0.3e1_dp*t247*t97*t10*t356 + &
1375 t94*(-t317 - t340 + t358)*t95*t235
1377 t392 = t84*t390/0.3e1_dp
1378 t394 = (t317 + t340 - t358 - t363 - t364 + t367 + t392)*t106
1385 t414 = ndrho*t141*t65*t114
1386 t423 = (-t317 - t340 + t358 - t363 - t364 + t367 + t392)*t117
1389 t443 = -0.2e1_dp*t394 + t394*t84 + t397*t399*t315/0.9e1_dp + t108 &
1390 *t403 - t108*t405 - t394*t66*t114 - t409*t410*t414/ &
1391 0.9e1_dp - t108*t338*t114 + t283*t366 + t110*t390/0.3e1_dp + &
1392 0.2e1_dp*t423 + t423*t84 + t426*t399*t315/0.9e1_dp + t119*t403 &
1393 - t119*t405 + t423*t66*t114 + t434*t410*t414/0.9e1_dp &
1394 + t119*t338*t114 - t301*t366 - t120*t390/0.3e1_dp
1395 e_ndrho = e_ndrho + (rho*t443*t102/0.8e1_dp - t124*t231*t388/0.24e2_dp)*sx
1397 t455 = 0.4e1_dp/0.9e1_dp*t3*t450*
gamma*t141*t109
1407 t475 = 0.4e1_dp/0.9e1_dp*t24*t456 + 0.16e2_dp/0.27e2_dp*t28*t460 + &
1408 0.16e2_dp/0.27e2_dp*t38*t464 + 0.128e3_dp/0.243e3_dp*t47*t468 + 0.320e3_dp &
1409 /0.729e3_dp*t57*t472
1411 t488 = 0.4e1_dp/0.9e1_dp*t67*t456 + 0.16e2_dp/0.27e2_dp*t70*t460 + &
1412 0.16e2_dp/0.27e2_dp*t73*t464 + 0.128e3_dp/0.243e3_dp*t76*t468 + 0.320e3_dp &
1413 /0.729e3_dp*t79*t472
1414 t490 = t66*t193*t488
1415 t493 = 0.4e1_dp/0.9e1_dp*t3*t456*t361
1419 t499 = t232*t233*t96
1420 t516 = -0.4e1_dp/0.3e1_dp*t499*t359*t134*t141 + 0.3e1_dp*t240* &
1421 t97*t10*t475 - 0.3e1_dp*t247*t97*t10*t488 + t94*(t455 - &
1422 t477 + t490)*t95*t235
1424 t520 = t84*t518/0.3e1_dp
1425 t522 = (-t455 + t477 - t490 + t493 - t494 + t497 + t520)*t106
1431 t545 = (t455 - t477 + t490 + t493 - t494 + t497 + t520)*t117
1433 t563 = -0.2e1_dp*t522 + t522*t84 - 0.4e1_dp/0.9e1_dp*t526*t527 + t108 &
1434 *t530 - t108*t532 - t522*t66*t114 + 0.4e1_dp/0.9e1_dp*t409 &
1435 *t456*t361 - t108*t475*t114 + t283*t496 + t110*t518/ &
1436 0.3e1_dp + 0.2e1_dp*t545 + t545*t84 - 0.4e1_dp/0.9e1_dp*t548*t527 + &
1437 t119*t530 - t119*t532 + t545*t66*t114 - 0.4e1_dp/0.9e1_dp*t434 &
1438 *t456*t361 + t119*t475*t114 - t301*t496 - t120*t518 &
1440 e_tau = e_tau + (rho*t563*t102/0.8e1_dp - t124*t231*t516/0.24e2_dp)*sx
1441 t572 = t33*t141*t109
1442 t574 = t3*t6*t572/0.9e1_dp
1443 t585 = -t24*t450/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t28*t459 - 0.4e1_dp/ &
1444 0.27e2_dp*t38*t463 - 0.32e2_dp/0.243e3_dp*t47*t467 - 0.80e2_dp/0.729e3_dp &
1447 t598 = -t67*t450/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t70*t459 - 0.4e1_dp/ &
1448 0.27e2_dp*t73*t463 - 0.32e2_dp/0.243e3_dp*t76*t467 - 0.80e2_dp/0.729e3_dp &
1450 t600 = t66*t193*t598
1451 t605 = t3*t450*t141*t109*t103/0.9e1_dp
1455 t628 = t499*t5*br_a1*t2*t33*t141/0.3e1_dp + 0.3e1_dp*t240* &
1456 t97*t10*t585 - 0.3e1_dp*t247*t97*t10*t598 + t94*(-t574 &
1457 - t587 + t600)*t95*t235
1459 t632 = t84*t630/0.3e1_dp
1460 t634 = (t574 + t587 - t600 - t605 - t606 + t609 + t632)*t106
1464 t655 = (-t574 - t587 + t600 - t605 - t606 + t609 + t632)*t117
1465 t672 = -0.2e1_dp*t634 + t634*t84 + t526*t572/0.9e1_dp + t108*t639 &
1466 - t108*t641 - t634*t66*t114 - t397*t645*t361/0.9e1_dp &
1467 - t108*t585*t114 + t283*t608 + t110*t630/0.3e1_dp + 0.2e1_dp* &
1468 t655 + t655*t84 + t548*t572/0.9e1_dp + t119*t639 - t119*t641 &
1469 + t655*t66*t114 + t426*t645*t361/0.9e1_dp + t119*t585 &
1470 *t114 - t301*t608 - t120*t630/0.3e1_dp
1471 e_laplace_rho = e_laplace_rho + (rho*t672*t102/0.8e1_dp - t124*t231*t628/0.24e2_dp)*sx
1474 END SUBROUTINE x_br_lsd_y_lte_0_cutoff_r_gt_b
1495 SUBROUTINE x_br_lsd_y_lte_0_cutoff_r_lte_b(rho, ndrho, tau, laplace_rho, e_0, &
1496 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1497 sx, R, gamma, grad_deriv)
1498 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
1499 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
1500 REAL(dp),
INTENT(IN) :: sx, r,
gamma
1501 INTEGER,
INTENT(IN) :: grad_deriv
1503 REAL(kind=dp) :: t1, t10, t100, t101, t102, t103, t104, t106, t108, t109, t110, t111, t113, &
1504 t115, t116, t118, t119, t121, t123, t128, t131, t133, t134, t137, t138, t140, t141, t143, &
1505 t146, t153, t154, t157, t159, t16, t160, t163, t167, t168, t17, t171, t172, t175, t177, &
1506 t178, t18, t182, t183, t186, t189, t190, t191, t194, t196, t197, t199, t2, t200, t21, &
1507 t22, t226, t229, t23, t232, t233, t234, t235, t237, t24, t242, t247, t249, t254, t256, &
1508 t264, t267, t27, t270, t272, t277, t28, t280, t281, t29, t292, t295, t298, t299, t3, t30, &
1509 t302, t31, t310, t314, t315, t317, t318, t32, t324, t328, t33
1510 REAL(kind=dp) :: t332, t336, t339, t34, t341, t342, t359, t362, t368, t369, t37, t38, t383, &
1511 t385, t387, t39, t392, t395, t398, t4, t40, t402, t404, t409, t42, t420, t427, t428, &
1512 t429, t43, t432, t443, t444, t446, t450, t451, t454, t455, t458, t459, t46, t462, t463, &
1513 t466, t468, t469, t47, t48, t481, t484, t487, t49, t5, t50, t501, t504, t506, t51, t511, &
1514 t514, t517, t52, t521, t525, t529, t540, t547, t548, t549, t552, t56, t566, t57, t578, &
1515 t58, t580, t581, t59, t593, t596, t6, t61, t612, t613, t614, t616, t618, t62, t623, t626, &
1516 t629, t638, t65, t654, t655, t656, t659, t66, t67, t70, t73, t76
1517 REAL(kind=dp) :: t79, t82, t83, t84, t85, t86, t87, t88, t89, t9, t90, t91, t93, t94, t95, &
1520 IF (grad_deriv >= 0)
THEN
1521 t1 =
pi**(0.1e1_dp/0.3e1_dp)
1524 t4 = rho**(0.1e1_dp/0.3e1_dp)
1529 t16 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t9*t10/0.4e1_dp)/0.3e1_dp
1532 t21 = 0.2e1_dp/0.3e1_dp*t3*t18 + br_a2
1548 t42 = 0.1e1_dp/t32/t16
1561 t61 = 0.1e1_dp/t50/t16
1563 t65 = br_c0 + 0.2e1_dp/0.3e1_dp*t24*t18 + 0.4e1_dp/0.9e1_dp*t28*t34 &
1564 + 0.8e1_dp/0.27e2_dp*t38*t43 + 0.16e2_dp/0.81e2_dp*t47*t52 + 0.32e2_dp &
1572 t82 = br_b0 + 0.2e1_dp/0.3e1_dp*t67*t18 + 0.4e1_dp/0.9e1_dp*t70*t34 &
1573 + 0.8e1_dp/0.27e2_dp*t73*t43 + 0.16e2_dp/0.81e2_dp*t76*t52 + 0.32e2_dp &
1577 t85 = 8**(0.1e1_dp/0.3e1_dp)
1584 t93 = 0.1e1_dp/t91/t82
1587 t96 = 0.1e1_dp/0.3141592654e1_dp
1590 t100 = t99**(0.1e1_dp/0.3e1_dp)
1591 t101 = 0.1e1_dp/t100
1592 t102 = real(t85, kind=dp)*t101
1595 t106 = exp(0.2e1_dp*t104)
1603 t118 = 0.2e1_dp*t106 - t109*t111 + t113*t110 + 0.2e1_dp + t84 + t104 &
1607 t123 = t121*real(t85, kind=dp)*t101
1608 e_0 = e_0 + (t119*t123/0.8e1_dp)*sx
1610 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1615 t137 = 0.10e2_dp/0.9e1_dp*t3*t128 + t3*t131*t134/0.18e2_dp
1617 t140 = 0.1e1_dp/(0.1e1_dp + t138)
1619 t143 = t83*real(t85, kind=dp)
1620 t146 = t141*t65*t143*t101*r
1637 t189 = 0.1e1_dp/t50/t32
1640 t194 = 0.10e2_dp/0.9e1_dp*t24*t128 + t24*t131*t134/0.18e2_dp + 0.40e2_dp &
1641 /0.27e2_dp*t28*t154 + 0.2e1_dp/0.27e2_dp*t28*t157*t160 + &
1642 0.40e2_dp/0.27e2_dp*t38*t163 + 0.2e1_dp/0.27e2_dp*t38*t30*t168 &
1643 + 0.320e3_dp/0.243e3_dp*t47*t172 + 0.16e2_dp/0.243e3_dp*t47*t175* &
1644 t178 + 0.800e3_dp/0.729e3_dp*t57*t183 + 0.40e2_dp/0.729e3_dp*t57* &
1650 t226 = 0.10e2_dp/0.9e1_dp*t67*t128 + t67*t131*t134/0.18e2_dp + 0.40e2_dp &
1651 /0.27e2_dp*t70*t154 + 0.2e1_dp/0.27e2_dp*t70*t157*t160 + &
1652 0.40e2_dp/0.27e2_dp*t73*t163 + 0.2e1_dp/0.27e2_dp*t73*t30*t168 &
1653 + 0.320e3_dp/0.243e3_dp*t76*t172 + 0.16e2_dp/0.243e3_dp*t76*t175* &
1654 t178 + 0.800e3_dp/0.729e3_dp*t79*t183 + 0.40e2_dp/0.729e3_dp*t79* &
1656 t229 = t200*t102*r*t226
1657 t232 = 0.1e1_dp/t100/t99
1658 t233 = real(t85, kind=dp)*t232
1666 t256 = t66*t199*t226
1667 t264 = -0.3e1_dp*t234*t235*t237*t141 + 0.3e1_dp*t242*t97*t10 &
1668 *t194 - 0.3e1_dp*t249*t97*t10*t226 + t94*(t254 - t196 + &
1669 t256)*t95*t237 - t94*t97/t29
1670 t267 = t84*t233*r*t264
1671 t270 = (-0.2e1_dp*t146 + 0.2e1_dp*t197 - 0.2e1_dp*t229 - 0.2e1_dp/0.3e1_dp &
1676 t281 = t199*real(t85, kind=dp)
1679 t298 = t267/0.3e1_dp
1680 t299 = -t254 + t196 - t256 - t146 + t197 - t229 - t298
1681 t302 = 0.2e1_dp*t270 - t270*t272*t111 + t108*t141*t111 - t109 &
1682 *t277*t102 + t280*t281*t101*t226 + t280*t143*t232* &
1683 t264/0.3e1_dp + t270*t84 - t106*t137*t292 + t113*t277 - t113 &
1684 *t295*t226 - t254 + t196 - t256 - t146 + t197 - t229 - t298 &
1685 - 0.4e1_dp*t299*t116
1687 e_rho = e_rho + (t118*t121*t102/0.8e1_dp + rho*t302*t123/0.8e1_dp - t119 &
1688 *t299*t123/0.8e1_dp - t310*t233*t264/0.24e2_dp)*sx
1692 t318 = t314*t315*t317
1697 t339 = -t24*t5*t315/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t28*t153*t324 &
1698 - 0.4e1_dp/0.27e2_dp*t38*t39*t328 - 0.32e2_dp/0.243e3_dp*t47*t171 &
1699 *t332 - 0.80e2_dp/0.729e3_dp*t57*t182*t336
1702 t359 = -t67*t5*t315/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t70*t153*t324 &
1703 - 0.4e1_dp/0.27e2_dp*t73*t39*t328 - 0.32e2_dp/0.243e3_dp*t76*t171 &
1704 *t332 - 0.80e2_dp/0.729e3_dp*t79*t182*t336
1705 t362 = t200*t102*r*t359
1709 t385 = t3*t5*t33*t383/0.9e1_dp
1710 t387 = t66*t199*t359
1711 t392 = t234*t93*t97*t131*t3*t33*t369/0.3e1_dp + 0.3e1_dp* &
1712 t242*t97*t10*t339 - 0.3e1_dp*t249*t97*t10*t359 + t94* &
1713 (-t385 - t341 + t387)*t95*t237
1714 t395 = t84*t233*r*t392
1715 t398 = (0.2e1_dp/0.9e1_dp*t318 + 0.2e1_dp*t342 - 0.2e1_dp*t362 - 0.2e1_dp &
1716 /0.3e1_dp*t395)*t106
1721 t427 = t318/0.9e1_dp
1722 t428 = t395/0.3e1_dp
1723 t429 = t385 + t341 - t387 + t427 + t342 - t362 - t428
1724 t432 = 0.2e1_dp*t398 - t398*t272*t111 - t402*t404*t369*t111 &
1725 /0.9e1_dp - t109*t409*t102 + t280*t281*t101*t359 + t280 &
1726 *t143*t232*t392/0.3e1_dp + t398*t84 + t420*t404*t383/0.9e1_dp &
1727 + t113*t409 - t113*t295*t359 + t385 + t341 - t387 + t427 &
1728 + t342 - t362 - t428 - 0.4e1_dp*t429*t116
1729 e_ndrho = e_ndrho + (rho*t432*t123/0.8e1_dp - t119*t429*t123/0.8e1_dp - t310 &
1730 *t233*t392/0.24e2_dp)*sx
1742 t466 = 0.4e1_dp/0.9e1_dp*t24*t444 + 0.16e2_dp/0.27e2_dp*t28*t451 + &
1743 0.16e2_dp/0.27e2_dp*t38*t455 + 0.128e3_dp/0.243e3_dp*t47*t459 + 0.320e3_dp &
1744 /0.729e3_dp*t57*t463
1747 t481 = 0.4e1_dp/0.9e1_dp*t67*t444 + 0.16e2_dp/0.27e2_dp*t70*t451 + &
1748 0.16e2_dp/0.27e2_dp*t73*t455 + 0.128e3_dp/0.243e3_dp*t76*t459 + 0.320e3_dp &
1749 /0.729e3_dp*t79*t463
1750 t484 = t200*t102*r*t481
1751 t487 = t234*t235*t96
1753 t504 = 0.4e1_dp/0.9e1_dp*t3*t443*t501*t110
1754 t506 = t66*t199*t481
1755 t511 = -0.4e1_dp/0.3e1_dp*t487*t314*t133*t140 + 0.3e1_dp*t242* &
1756 t97*t10*t466 - 0.3e1_dp*t249*t97*t10*t481 + t94*(t504 - &
1757 t468 + t506)*t95*t237
1758 t514 = t84*t233*r*t511
1759 t517 = (-0.8e1_dp/0.9e1_dp*t446 + 0.2e1_dp*t469 - 0.2e1_dp*t484 - 0.2e1_dp &
1760 /0.3e1_dp*t514)*t106
1765 t547 = 0.4e1_dp/0.9e1_dp*t446
1766 t548 = t514/0.3e1_dp
1767 t549 = -t504 + t468 - t506 - t547 + t469 - t484 - t548
1768 t552 = 0.2e1_dp*t517 - t517*t272*t111 + 0.4e1_dp/0.9e1_dp*t402*t521 &
1769 *t33*t501*t65*t525 - t109*t529*t102 + t280*t281* &
1770 t101*t481 + t280*t143*t232*t511/0.3e1_dp + t517*t84 - 0.4e1_dp &
1771 /0.9e1_dp*t540*t133*t292 + t113*t529 - t113*t295*t481 &
1772 - t504 + t468 - t506 - t547 + t469 - t484 - t548 - 0.4e1_dp*t549 &
1774 e_tau = e_tau + (rho*t552*t123/0.8e1_dp - t119*t549*t123/0.8e1_dp - t310 &
1775 *t233*t511/0.24e2_dp)*sx
1776 t566 = t3*t443*t140*t110*t103
1777 t578 = -t24*t443/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t28*t450 - 0.4e1_dp/ &
1778 0.27e2_dp*t38*t454 - 0.32e2_dp/0.243e3_dp*t47*t458 - 0.80e2_dp/0.729e3_dp &
1782 t593 = -t67*t443/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t70*t450 - 0.4e1_dp/ &
1783 0.27e2_dp*t73*t454 - 0.32e2_dp/0.243e3_dp*t76*t458 - 0.80e2_dp/0.729e3_dp &
1785 t596 = t200*t102*r*t593
1789 t616 = t612*t614/0.9e1_dp
1790 t618 = t66*t199*t593
1791 t623 = t487*t5*br_a1*t2*t33*t140/0.3e1_dp + 0.3e1_dp*t242* &
1792 t97*t10*t578 - 0.3e1_dp*t249*t97*t10*t593 + t94*(-t616 &
1793 - t580 + t618)*t95*t237
1794 t626 = t84*t233*r*t623
1795 t629 = (0.2e1_dp/0.9e1_dp*t566 + 0.2e1_dp*t581 - 0.2e1_dp*t596 - 0.2e1_dp &
1796 /0.3e1_dp*t626)*t106
1798 t654 = t566/0.9e1_dp
1799 t655 = t626/0.3e1_dp
1800 t656 = t616 + t580 - t618 + t654 + t581 - t596 - t655
1801 t659 = 0.2e1_dp*t629 - t629*t272*t111 - t108*t612*t613*t65 &
1802 *t525/0.9e1_dp - t109*t638*t102 + t280*t281*t101*t593 + &
1803 t280*t143*t232*t623/0.3e1_dp + t629*t84 + t540*t614/0.9e1_dp &
1804 + t113*t638 - t113*t295*t593 + t616 + t580 - t618 + t654 &
1805 + t581 - t596 - t655 - 0.4e1_dp*t656*t116
1806 e_laplace_rho = e_laplace_rho + (rho*t659*t123/0.8e1_dp - t119*t656*t123/0.8e1_dp - t310 &
1807 *t233*t623/0.24e2_dp)*sx
1810 END SUBROUTINE x_br_lsd_y_lte_0_cutoff_r_lte_b
1832 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1833 sx, R, gamma, grad_deriv)
1834 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
1835 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
1836 REAL(dp),
INTENT(IN) :: sx, r,
gamma
1837 INTEGER,
INTENT(IN) :: grad_deriv
1839 REAL(kind=dp) :: brval, t1, t10, t103, t104, t11, t111, t116, t14, t15, t2, t21, t25, t26, &
1840 t28, t3, t31, t33, t37, t4, t44, t45, t46, t5, t50, t56, t58, t6, t62, t65, t69, t71, &
1841 t75, t77, t8, t81, t84, t85, t9
1843 t1 = 8**(0.1e1_dp/0.3e1_dp)
1846 t4 =
pi**(0.1e1_dp/0.3e1_dp)
1849 t8 = rho**(0.1e1_dp/0.3e1_dp)
1855 t21 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t14*t15/0.4e1_dp)/0.3e1_dp
1860 t33 = t8*t28*rho/t31
1861 t37 = sqrt(0.10e1_dp + 0.4e1_dp/0.9e1_dp*t25*t26*t33)
1862 t44 = log(0.1500000000000000e1_dp*t3*t6*t11*t21 + 0.3e1_dp/0.2e1_dp &
1864 t45 = t44 + 0.2e1_dp
1869 t62 = t58*rho/t31/t21
1872 t71 = t9*t58*t28/t69
1875 t81 = t8*t77/t69/t21
1876 t84 = br_d0 + 0.2e1_dp/0.3e1_dp*br_d1*t5*t50 + 0.4e1_dp/0.9e1_dp*br_d2 &
1877 *t26*t33 + 0.8e1_dp/0.27e2_dp*br_d3*t56*t62 + 0.16e2_dp/0.81e2_dp &
1878 *br_d4*t65*t71 + 0.32e2_dp/0.243e3_dp*br_d5*t75*t81
1880 t103 = br_e0 + 0.2e1_dp/0.3e1_dp*br_e1*t5*t50 + 0.4e1_dp/0.9e1_dp*br_e2 &
1881 *t26*t33 + 0.8e1_dp/0.27e2_dp*br_e3*t56*t62 + 0.16e2_dp/0.81e2_dp &
1882 *br_e4*t65*t71 + 0.32e2_dp/0.243e3_dp*br_e5*t75*t81
1884 t111 = exp(-t45*t84/t103)
1885 t116 = (t46*t45*t85*t84/t104/t103*t111/0.3141592654e1_dp &
1886 *t15)**(0.1e1_dp/0.3e1_dp)
1887 brval = real(t2, kind=dp)*t116/0.8e1_dp
1890 CALL x_br_lsd_y_gt_0_cutoff_r_gt_b(rho, ndrho, tau, laplace_rho, e_0, &
1891 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1892 sx, r,
gamma, grad_deriv)
1894 CALL x_br_lsd_y_gt_0_cutoff_r_lte_b(rho, ndrho, tau, laplace_rho, e_0, &
1895 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1896 sx, r,
gamma, grad_deriv)
1920 SUBROUTINE x_br_lsd_y_gt_0_cutoff_r_gt_b(rho, ndrho, tau, laplace_rho, e_0, &
1921 e_rho, e_ndrho, e_tau, e_laplace_rho, &
1922 sx, R, gamma, grad_deriv)
1924 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
1925 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
1926 REAL(dp),
INTENT(IN) :: sx, r,
gamma
1927 INTEGER,
INTENT(IN) :: grad_deriv
1929 REAL(kind=dp) :: t1, t100, t101, t102, t103, t104, t105, t106, t108, t109, t110, t111, t112, &
1930 t114, t115, t116, t117, t118, t119, t12, t121, t123, t124, t125, t129, t13, t132, t134, &
1931 t135, t138, t139, t145, t152, t155, t158, t159, t162, t164, t165, t176, t179, t180, t181, &
1932 t182, t183, t186, t188, t189, t19, t197, t2, t20, t201, t202, t205, t206, t209, t211, &
1933 t212, t216, t217, t220, t223, t224, t225, t228, t23, t230, t231, t24, t25, t257, t259, &
1934 t26, t261, t262, t263, t265, t266, t269, t27, t272, t273, t278, t28, t283, t285, t29, &
1935 t297, t299, t3, t30, t301, t303, t306, t307, t308, t31, t310, t312
1936 REAL(kind=dp) :: t313, t321, t326, t329, t339, t343, t35, t351, t354, t355, t36, t363, t364, &
1937 t365, t367, t37, t371, t375, t379, t383, t386, t388, t4, t404, t406, t408, t409, t41, &
1938 t411, t412, t42, t428, t43, t430, t432, t434, t437, t439, t44, t441, t45, t453, t456, &
1939 t46, t469, t479, t480, t485, t486, t487, t49, t490, t491, t494, t495, t498, t499, t5, &
1940 t502, t503, t506, t508, t519, t52, t521, t523, t524, t526, t527, t53, t54, t543, t545, &
1941 t547, t549, t55, t552, t554, t556, t568, t57, t571, t58, t584, t599, t6, t600, t601, t61, &
1942 t612, t614, t62, t625, t627, t629, t63, t630, t632, t633, t64, t649
1943 REAL(kind=dp) :: t65, t651, t653, t655, t658, t66, t660, t662, t67, t674, t677, t690, t7, &
1944 t71, t72, t73, t74, t76, t77, t8, t80, t81, t82, t85, t88, t9, t91, t94, t97, t98, t99
1946 IF (grad_deriv >= 0)
THEN
1948 t2 =
pi**(0.1e1_dp/0.3e1_dp)
1952 t6 = rho**(0.1e1_dp/0.3e1_dp)
1958 t19 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t12*t13/0.4e1_dp)/0.3e1_dp
1969 t35 = sqrt(0.10e1_dp + 0.4e1_dp/0.9e1_dp*t25*t31)
1972 t41 = 0.1500000000000000e1_dp*t5*t20 + 0.3e1_dp/0.2e1_dp*t36*t37* &
1975 t43 = t42 + 0.2e1_dp
1984 t57 = 0.1e1_dp/t29/t19
1997 t76 = 0.1e1_dp/t65/t19
1999 t80 = br_d0 + 0.2e1_dp/0.3e1_dp*t44*t46 + 0.4e1_dp/0.9e1_dp*t49*t31 &
2000 + 0.8e1_dp/0.27e2_dp*t53*t58 + 0.16e2_dp/0.81e2_dp*t62*t67 + 0.32e2_dp &
2008 t97 = br_e0 + 0.2e1_dp/0.3e1_dp*t82*t46 + 0.4e1_dp/0.9e1_dp*t85*t31 &
2009 + 0.8e1_dp/0.27e2_dp*t88*t58 + 0.16e2_dp/0.81e2_dp*t91*t67 + 0.32e2_dp &
2013 t100 = 8**(0.1e1_dp/0.3e1_dp)
2020 t108 = 0.1e1_dp/t106/t97
2023 t111 = 0.1e1_dp/0.3141592654e1_dp
2025 t114 = t109*t112*t13
2026 t115 = t114**(0.1e1_dp/0.3e1_dp)
2027 t116 = 0.1e1_dp/t115
2028 t117 = real(t100, kind=dp)*t116
2031 t121 = exp(t99 - t119)
2035 t129 = t98*real(t100, kind=dp)*t116*r
2036 t132 = exp(-t99 - t119)
2039 t138 = -0.2e1_dp*t121 + t125 - t123*t80*t129 + 0.2e1_dp*t132 + t135 &
2042 e_0 = e_0 + (t139*t117/0.8e1_dp)*sx
2044 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
2045 t145 = 0.1e1_dp/t7/t26
2046 t152 = 0.1e1_dp/t7/t27*
gamma*t12
2054 t179 = -0.2500000000e1_dp*t5*t145*t19 - 0.1250000000e0_dp*t5*t152 &
2055 + 0.3e1_dp/0.4e1_dp*t155*t1*t4*t20*(0.40e2_dp/0.27e2_dp*t25 &
2056 *t159 + 0.2e1_dp/0.27e2_dp*t25*t162*t165) - 0.5e1_dp/0.2e1_dp*t36 &
2057 *t4*t145*t19 - t176*t152/0.8e1_dp
2076 t223 = 0.1e1_dp/t65/t29
2079 t228 = 0.10e2_dp/0.9e1_dp*t44*t183 + t44*t186*t189/0.18e2_dp + 0.40e2_dp &
2080 /0.27e2_dp*t49*t159 + 0.2e1_dp/0.27e2_dp*t49*t162*t165 + &
2081 0.40e2_dp/0.27e2_dp*t53*t197 + 0.2e1_dp/0.27e2_dp*t53*t27*t202 &
2082 + 0.320e3_dp/0.243e3_dp*t62*t206 + 0.16e2_dp/0.243e3_dp*t62*t209* &
2083 t212 + 0.800e3_dp/0.729e3_dp*t72*t217 + 0.40e2_dp/0.729e3_dp*t72* &
2086 t231 = 0.1e1_dp/t106
2087 t257 = 0.10e2_dp/0.9e1_dp*t82*t183 + t82*t186*t189/0.18e2_dp + 0.40e2_dp &
2088 /0.27e2_dp*t85*t159 + 0.2e1_dp/0.27e2_dp*t85*t162*t165 + &
2089 0.40e2_dp/0.27e2_dp*t88*t197 + 0.2e1_dp/0.27e2_dp*t88*t27*t202 &
2090 + 0.320e3_dp/0.243e3_dp*t91*t206 + 0.16e2_dp/0.243e3_dp*t91*t209* &
2091 t212 + 0.800e3_dp/0.729e3_dp*t94*t217 + 0.40e2_dp/0.729e3_dp*t94* &
2093 t259 = t81*t231*t257
2094 t261 = t181*t80*t129
2099 t269 = real(t100, kind=dp)/t115/t114
2100 t272 = t101*t104*t108*t110
2102 t278 = t102*t103*t108
2105 t297 = 0.3e1_dp*t272*t273*t181 + 0.3e1_dp*t278*t112*t13*t228 &
2106 - 0.3e1_dp*t285*t112*t13*t257 + t109*(-t182 - t230 + t259) &
2107 *t110*t273 - t109*t112/t26
2109 t301 = t99*t299/0.3e1_dp
2110 t303 = (t182 + t230 - t259 - t261 - t262 + t266 + t301)*t121
2118 t326 = (-t182 - t230 + t259 - t261 - t262 + t266 + t301)*t132
2121 t343 = -0.2e1_dp*t303 + t303*t99 + t306*t308 + t123*t310 - t123 &
2122 *t313 - t303*t81*t129 - t306*t307*t129 - t123*t228* &
2123 t129 + t321*t265 + t125*t299/0.3e1_dp + 0.2e1_dp*t326 + t326*t99 &
2124 + t329*t308 + t134*t310 - t134*t313 + t326*t81*t129 + &
2125 t329*t307*t129 + t134*t228*t129 - t339*t265 - t135*t299 &
2127 e_rho = e_rho + (t138*real(t100, kind=dp)*t116/0.8e1_dp + rho*t343*t117/0.8e1_dp &
2128 - t139*t269*t297/0.24e2_dp)*sx
2129 t351 = t145*
gamma*ndrho
2132 t363 = 0.2500000000000000e0_dp*t5*t351 - t355*t7*t30*
gamma*ndrho &
2133 /0.9e1_dp + t176*t351/0.4e1_dp
2141 t386 = -t44*t7*t367/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t49*t158*t371 &
2142 - 0.4e1_dp/0.27e2_dp*t53*t54*t375 - 0.32e2_dp/0.243e3_dp*t62*t205 &
2143 *t379 - 0.80e2_dp/0.729e3_dp*t72*t216*t383
2145 t404 = -t82*t7*t367/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t85*t158*t371 &
2146 - 0.4e1_dp/0.27e2_dp*t88*t54*t375 - 0.32e2_dp/0.243e3_dp*t91*t205 &
2147 *t379 - 0.80e2_dp/0.729e3_dp*t94*t216*t383
2148 t406 = t81*t231*t404
2149 t408 = t364*t80*t129
2153 t428 = 0.3e1_dp*t272*t273*t364 + 0.3e1_dp*t278*t112*t13*t386 &
2154 - 0.3e1_dp*t285*t112*t13*t404 + t109*(-t365 - t388 + t406) &
2157 t432 = t99*t430/0.3e1_dp
2158 t434 = (t365 + t388 - t406 - t408 - t409 + t412 + t432)*t121
2162 t453 = (-t365 - t388 + t406 - t408 - t409 + t412 + t432)*t132
2164 t469 = -0.2e1_dp*t434 + t434*t99 + t437*t308 + t123*t439 - t123 &
2165 *t441 - t434*t81*t129 - t437*t307*t129 - t123*t386* &
2166 t129 + t321*t411 + t125*t430/0.3e1_dp + 0.2e1_dp*t453 + t453*t99 &
2167 + t456*t308 + t134*t439 - t134*t441 + t453*t81*t129 + &
2168 t456*t307*t129 + t134*t386*t129 - t339*t411 - t135*t430 &
2170 e_ndrho = e_ndrho + (rho*t469*t117/0.8e1_dp - t139*t269*t428/0.24e2_dp)*sx
2173 t485 = -0.1000000000e1_dp*t5*t9*
gamma + 0.4e1_dp/0.9e1_dp*t355*t480 &
2185 t506 = 0.4e1_dp/0.9e1_dp*t44*t480 + 0.16e2_dp/0.27e2_dp*t49*t491 + &
2186 0.16e2_dp/0.27e2_dp*t53*t495 + 0.128e3_dp/0.243e3_dp*t62*t499 + 0.320e3_dp &
2187 /0.729e3_dp*t72*t503
2189 t519 = 0.4e1_dp/0.9e1_dp*t82*t480 + 0.16e2_dp/0.27e2_dp*t85*t491 + &
2190 0.16e2_dp/0.27e2_dp*t88*t495 + 0.128e3_dp/0.243e3_dp*t91*t499 + 0.320e3_dp &
2191 /0.729e3_dp*t94*t503
2192 t521 = t81*t231*t519
2193 t523 = t486*t80*t129
2197 t543 = 0.3e1_dp*t272*t273*t486 + 0.3e1_dp*t278*t112*t13*t506 &
2198 - 0.3e1_dp*t285*t112*t13*t519 + t109*(-t487 - t508 + t521) &
2201 t547 = t99*t545/0.3e1_dp
2202 t549 = (t487 + t508 - t521 - t523 - t524 + t527 + t547)*t121
2206 t568 = (-t487 - t508 + t521 - t523 - t524 + t527 + t547)*t132
2208 t584 = -0.2e1_dp*t549 + t549*t99 + t552*t308 + t123*t554 - t123 &
2209 *t556 - t549*t81*t129 - t552*t307*t129 - t123*t506* &
2210 t129 + t321*t526 + t125*t545/0.3e1_dp + 0.2e1_dp*t568 + t568*t99 &
2211 + t571*t308 + t134*t554 - t134*t556 + t568*t81*t129 + &
2212 t571*t307*t129 + t134*t506*t129 - t339*t526 - t135*t545 &
2214 e_tau = e_tau + (rho*t584*t117/0.8e1_dp - t139*t269*t543/0.24e2_dp)*sx
2215 t599 = 0.2500000000000000e0_dp*t5*t9 - t354*t3*t8*t30/0.9e1_dp &
2219 t612 = -t44*t479/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t49*t490 - 0.4e1_dp/ &
2220 0.27e2_dp*t53*t494 - 0.32e2_dp/0.243e3_dp*t62*t498 - 0.80e2_dp/0.729e3_dp &
2223 t625 = -t82*t479/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t85*t490 - 0.4e1_dp/ &
2224 0.27e2_dp*t88*t494 - 0.32e2_dp/0.243e3_dp*t91*t498 - 0.80e2_dp/0.729e3_dp &
2226 t627 = t81*t231*t625
2227 t629 = t600*t80*t129
2231 t649 = 0.3e1_dp*t272*t273*t600 + 0.3e1_dp*t278*t112*t13*t612 &
2232 - 0.3e1_dp*t285*t112*t13*t625 + t109*(-t601 - t614 + t627) &
2235 t653 = t99*t651/0.3e1_dp
2236 t655 = (t601 + t614 - t627 - t629 - t630 + t633 + t653)*t121
2240 t674 = (-t601 - t614 + t627 - t629 - t630 + t633 + t653)*t132
2242 t690 = -0.2e1_dp*t655 + t655*t99 + t658*t308 + t123*t660 - t123 &
2243 *t662 - t655*t81*t129 - t658*t307*t129 - t123*t612* &
2244 t129 + t321*t632 + t125*t651/0.3e1_dp + 0.2e1_dp*t674 + t674*t99 &
2245 + t677*t308 + t134*t660 - t134*t662 + t674*t81*t129 + &
2246 t677*t307*t129 + t134*t612*t129 - t339*t632 - t135*t651 &
2248 e_laplace_rho = e_laplace_rho + (rho*t690*t117/0.8e1_dp - t139*t269*t649/0.24e2_dp)*sx
2251 END SUBROUTINE x_br_lsd_y_gt_0_cutoff_r_gt_b
2272 SUBROUTINE x_br_lsd_y_gt_0_cutoff_r_lte_b(rho, ndrho, tau, laplace_rho, e_0, &
2273 e_rho, e_ndrho, e_tau, e_laplace_rho, &
2274 sx, R, gamma, grad_deriv)
2275 REAL(dp),
INTENT(IN) :: rho, ndrho, tau, laplace_rho
2276 REAL(dp),
INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_tau, e_laplace_rho
2277 REAL(dp),
INTENT(IN) :: sx, r,
gamma
2278 INTEGER,
INTENT(IN) :: grad_deriv
2280 REAL(kind=dp) :: t1, t100, t101, t102, t103, t104, t105, t106, t108, t109, t110, t111, t112, &
2281 t114, t115, t116, t117, t118, t119, t12, t121, t123, t124, t125, t126, t128, t13, t130, &
2282 t131, t133, t134, t136, t138, t144, t151, t154, t157, t158, t161, t163, t164, t175, t178, &
2283 t179, t180, t182, t184, t185, t187, t19, t190, t192, t193, t2, t20, t201, t205, t206, &
2284 t209, t210, t213, t215, t216, t220, t221, t224, t227, t228, t229, t23, t232, t234, t235, &
2285 t237, t238, t24, t25, t26, t264, t267, t27, t270, t271, t274, t275, t28, t280, t285, &
2286 t287, t29, t292, t294, t3, t30, t302, t305, t308, t31, t310, t315
2287 REAL(kind=dp) :: t318, t319, t330, t333, t336, t337, t340, t348, t35, t353, t356, t357, t36, &
2288 t365, t366, t368, t37, t371, t375, t379, t383, t387, t390, t392, t393, t4, t41, t410, &
2289 t413, t42, t426, t428, t43, t433, t436, t439, t44, t445, t45, t46, t461, t462, t465, &
2290 t479, t480, t485, t486, t488, t49, t492, t493, t496, t497, t5, t500, t501, t504, t505, &
2291 t508, t510, t511, t52, t523, t526, t53, t539, t54, t541, t546, t549, t55, t552, t558, &
2292 t57, t574, t575, t578, t58, t597, t598, t6, t600, t61, t612, t614, t615, t62, t627, t63, &
2293 t630, t64, t643, t645, t65, t650, t653, t656, t66, t662, t67, t678
2294 REAL(kind=dp) :: t679, t682, t7, t71, t72, t73, t74, t76, t77, t8, t80, t81, t82, t85, t88, &
2295 t9, t91, t94, t97, t98, t99
2297 IF (grad_deriv >= 0)
THEN
2299 t2 =
pi**(0.1e1_dp/0.3e1_dp)
2303 t6 = rho**(0.1e1_dp/0.3e1_dp)
2309 t19 = laplace_rho/0.6e1_dp -
gamma*(real(2*tau, kind=dp) - t12*t13/0.4e1_dp)/0.3e1_dp
2320 t35 = sqrt(0.10e1_dp + 0.4e1_dp/0.9e1_dp*t25*t31)
2323 t41 = 0.1500000000000000e1_dp*t5*t20 + 0.3e1_dp/0.2e1_dp*t36*t37* &
2326 t43 = t42 + 0.2e1_dp
2335 t57 = 0.1e1_dp/t29/t19
2348 t76 = 0.1e1_dp/t65/t19
2350 t80 = br_d0 + 0.2e1_dp/0.3e1_dp*t44*t46 + 0.4e1_dp/0.9e1_dp*t49*t31 &
2351 + 0.8e1_dp/0.27e2_dp*t53*t58 + 0.16e2_dp/0.81e2_dp*t62*t67 + 0.32e2_dp &
2359 t97 = br_e0 + 0.2e1_dp/0.3e1_dp*t82*t46 + 0.4e1_dp/0.9e1_dp*t85*t31 &
2360 + 0.8e1_dp/0.27e2_dp*t88*t58 + 0.16e2_dp/0.81e2_dp*t91*t67 + 0.32e2_dp &
2364 t100 = 8**(0.1e1_dp/0.3e1_dp)
2371 t108 = 0.1e1_dp/t106/t97
2374 t111 = 0.1e1_dp/0.3141592654e1_dp
2376 t114 = t109*t112*t13
2377 t115 = t114**(0.1e1_dp/0.3e1_dp)
2378 t116 = 0.1e1_dp/t115
2379 t117 = real(t100, kind=dp)*t116
2382 t121 = exp(0.2e1_dp*t119)
2390 t133 = 0.2e1_dp*t121 - t124*t126 + t128*t125 + 0.2e1_dp + t99 + t119 &
2394 t138 = t136*real(t100, kind=dp)*t116
2395 e_0 = e_0 + (t134*t138/0.8e1_dp)*sx
2397 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
2398 t144 = 0.1e1_dp/t7/t26
2399 t151 = 0.1e1_dp/t7/t27*
gamma*t12
2407 t178 = -0.2500000000e1_dp*t5*t144*t19 - 0.1250000000e0_dp*t5*t151 &
2408 + 0.3e1_dp/0.4e1_dp*t154*t1*t4*t20*(0.40e2_dp/0.27e2_dp*t25 &
2409 *t158 + 0.2e1_dp/0.27e2_dp*t25*t161*t164) - 0.5e1_dp/0.2e1_dp*t36 &
2410 *t4*t144*t19 - t175*t151/0.8e1_dp
2413 t182 = t98*real(t100, kind=dp)
2415 t185 = t180*t80*t184
2431 t227 = 0.1e1_dp/t65/t29
2434 t232 = 0.10e2_dp/0.9e1_dp*t44*t187 + t44*t190*t193/0.18e2_dp + 0.40e2_dp &
2435 /0.27e2_dp*t49*t158 + 0.2e1_dp/0.27e2_dp*t49*t161*t164 + &
2436 0.40e2_dp/0.27e2_dp*t53*t201 + 0.2e1_dp/0.27e2_dp*t53*t27*t206 &
2437 + 0.320e3_dp/0.243e3_dp*t62*t210 + 0.16e2_dp/0.243e3_dp*t62*t213* &
2438 t216 + 0.800e3_dp/0.729e3_dp*t72*t221 + 0.40e2_dp/0.729e3_dp*t72* &
2442 t237 = 0.1e1_dp/t106
2444 t264 = 0.10e2_dp/0.9e1_dp*t82*t187 + t82*t190*t193/0.18e2_dp + 0.40e2_dp &
2445 /0.27e2_dp*t85*t158 + 0.2e1_dp/0.27e2_dp*t85*t161*t164 + &
2446 0.40e2_dp/0.27e2_dp*t88*t201 + 0.2e1_dp/0.27e2_dp*t88*t27*t206 &
2447 + 0.320e3_dp/0.243e3_dp*t91*t210 + 0.16e2_dp/0.243e3_dp*t91*t213* &
2448 t216 + 0.800e3_dp/0.729e3_dp*t94*t221 + 0.40e2_dp/0.729e3_dp*t94* &
2450 t267 = t238*t117*r*t264
2451 t270 = 0.1e1_dp/t115/t114
2452 t271 = real(t100, kind=dp)*t270
2453 t274 = t101*t104*t108*t110
2455 t280 = t102*t103*t108
2459 t294 = t81*t237*t264
2460 t302 = 0.3e1_dp*t274*t275*t180 + 0.3e1_dp*t280*t112*t13*t232 &
2461 - 0.3e1_dp*t287*t112*t13*t264 + t109*(-t292 - t234 + t294) &
2462 *t110*t275 - t109*t112/t26
2463 t305 = t99*t271*r*t302
2464 t308 = (0.2e1_dp*t185 + 0.2e1_dp*t235 - 0.2e1_dp*t267 - 0.2e1_dp/0.3e1_dp &
2469 t319 = t237*real(t100, kind=dp)
2472 t336 = t305/0.3e1_dp
2473 t337 = t292 + t234 - t294 + t185 + t235 - t267 - t336
2474 t340 = 0.2e1_dp*t308 - t308*t310*t126 - t123*t180*t126 - t124 &
2475 *t315*t117 + t318*t319*t116*t264 + t318*t182*t270* &
2476 t302/0.3e1_dp + t308*t99 + t121*t178*t330 + t128*t315 - t128 &
2477 *t333*t264 + t292 + t234 - t294 + t185 + t235 - t267 - t336 &
2478 - 0.4e1_dp*t337*t131
2480 e_rho = e_rho + (t133*t136*t117/0.8e1_dp + rho*t340*t138/0.8e1_dp - t134 &
2481 *t337*t138/0.8e1_dp - t348*t271*t302/0.24e2_dp)*sx
2482 t353 = t144*
gamma*ndrho
2485 t365 = 0.2500000000000000e0_dp*t5*t353 - t357*t7*t30*
gamma*ndrho &
2486 /0.9e1_dp + t175*t353/0.4e1_dp
2488 t368 = t366*t80*t184
2494 t390 = -t44*t7*t371/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t49*t157*t375 &
2495 - 0.4e1_dp/0.27e2_dp*t53*t54*t379 - 0.32e2_dp/0.243e3_dp*t62*t209 &
2496 *t383 - 0.80e2_dp/0.729e3_dp*t72*t220*t387
2499 t410 = -t82*t7*t371/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t85*t157*t375 &
2500 - 0.4e1_dp/0.27e2_dp*t88*t54*t379 - 0.32e2_dp/0.243e3_dp*t91*t209 &
2501 *t383 - 0.80e2_dp/0.729e3_dp*t94*t220*t387
2502 t413 = t238*t117*r*t410
2504 t428 = t81*t237*t410
2505 t433 = 0.3e1_dp*t274*t275*t366 + 0.3e1_dp*t280*t112*t13*t390 &
2506 - 0.3e1_dp*t287*t112*t13*t410 + t109*(-t426 - t392 + t428) &
2508 t436 = t99*t271*r*t433
2509 t439 = (0.2e1_dp*t368 + 0.2e1_dp*t393 - 0.2e1_dp*t413 - 0.2e1_dp/0.3e1_dp &
2512 t461 = t436/0.3e1_dp
2513 t462 = t426 + t392 - t428 + t368 + t393 - t413 - t461
2514 t465 = 0.2e1_dp*t439 - t439*t310*t126 - t123*t366*t126 - t124 &
2515 *t445*t117 + t318*t319*t116*t410 + t318*t182*t270* &
2516 t433/0.3e1_dp + t439*t99 + t121*t365*t330 + t128*t445 - t128 &
2517 *t333*t410 + t426 + t392 - t428 + t368 + t393 - t413 - t461 &
2518 - 0.4e1_dp*t462*t131
2519 e_ndrho = e_ndrho + (rho*t465*t138/0.8e1_dp - t134*t462*t138/0.8e1_dp - t348 &
2520 *t271*t433/0.24e2_dp)*sx
2523 t485 = -0.1000000000e1_dp*t5*t9*
gamma + 0.4e1_dp/0.9e1_dp*t357*t480 &
2526 t488 = t486*t80*t184
2535 t508 = 0.4e1_dp/0.9e1_dp*t44*t480 + 0.16e2_dp/0.27e2_dp*t49*t493 + &
2536 0.16e2_dp/0.27e2_dp*t53*t497 + 0.128e3_dp/0.243e3_dp*t62*t501 + 0.320e3_dp &
2537 /0.729e3_dp*t72*t505
2540 t523 = 0.4e1_dp/0.9e1_dp*t82*t480 + 0.16e2_dp/0.27e2_dp*t85*t493 + &
2541 0.16e2_dp/0.27e2_dp*t88*t497 + 0.128e3_dp/0.243e3_dp*t91*t501 + 0.320e3_dp &
2542 /0.729e3_dp*t94*t505
2543 t526 = t238*t117*r*t523
2545 t541 = t81*t237*t523
2546 t546 = 0.3e1_dp*t274*t275*t486 + 0.3e1_dp*t280*t112*t13*t508 &
2547 - 0.3e1_dp*t287*t112*t13*t523 + t109*(-t539 - t510 + t541) &
2549 t549 = t99*t271*r*t546
2550 t552 = (0.2e1_dp*t488 + 0.2e1_dp*t511 - 0.2e1_dp*t526 - 0.2e1_dp/0.3e1_dp &
2553 t574 = t549/0.3e1_dp
2554 t575 = t539 + t510 - t541 + t488 + t511 - t526 - t574
2555 t578 = 0.2e1_dp*t552 - t552*t310*t126 - t123*t486*t126 - t124 &
2556 *t558*t117 + t318*t319*t116*t523 + t318*t182*t270* &
2557 t546/0.3e1_dp + t552*t99 + t121*t485*t330 + t128*t558 - t128 &
2558 *t333*t523 + t539 + t510 - t541 + t488 + t511 - t526 - t574 &
2559 - 0.4e1_dp*t575*t131
2560 e_tau = e_tau + (rho*t578*t138/0.8e1_dp - t134*t575*t138/0.8e1_dp - t348 &
2561 *t271*t546/0.24e2_dp)*sx
2562 t597 = 0.2500000000000000e0_dp*t5*t9 - t356*t3*t8*t30/0.9e1_dp &
2565 t600 = t598*t80*t184
2566 t612 = -t44*t479/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t49*t492 - 0.4e1_dp/ &
2567 0.27e2_dp*t53*t496 - 0.32e2_dp/0.243e3_dp*t62*t500 - 0.80e2_dp/0.729e3_dp &
2571 t627 = -t82*t479/0.9e1_dp - 0.4e1_dp/0.27e2_dp*t85*t492 - 0.4e1_dp/ &
2572 0.27e2_dp*t88*t496 - 0.32e2_dp/0.243e3_dp*t91*t500 - 0.80e2_dp/0.729e3_dp &
2574 t630 = t238*t117*r*t627
2576 t645 = t81*t237*t627
2577 t650 = 0.3e1_dp*t274*t275*t598 + 0.3e1_dp*t280*t112*t13*t612 &
2578 - 0.3e1_dp*t287*t112*t13*t627 + t109*(-t643 - t614 + t645) &
2580 t653 = t99*t271*r*t650
2581 t656 = (0.2e1_dp*t600 + 0.2e1_dp*t615 - 0.2e1_dp*t630 - 0.2e1_dp/0.3e1_dp &
2584 t678 = t653/0.3e1_dp
2585 t679 = t643 + t614 - t645 + t600 + t615 - t630 - t678
2586 t682 = 0.2e1_dp*t656 - t656*t310*t126 - t123*t598*t126 - t124 &
2587 *t662*t117 + t318*t319*t116*t627 + t318*t182*t270* &
2588 t650/0.3e1_dp + t656*t99 + t121*t597*t330 + t128*t662 - t128 &
2589 *t333*t627 + t643 + t614 - t645 + t600 + t615 - t630 - t678 &
2590 - 0.4e1_dp*t679*t131
2591 e_laplace_rho = e_laplace_rho + (rho*t682*t138/0.8e1_dp - t134*t679*t138/0.8e1_dp - t348 &
2592 *t271*t650/0.24e2_dp)*sx
2595 END SUBROUTINE x_br_lsd_y_gt_0_cutoff_r_lte_b
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public proynov2007
integer, save, public beckeroussel1989
Calculation of the incomplete Gamma function F_n(t) for multi-center integrals over Cartesian Gaussia...
Defines the basic variable types.
integer, parameter, public dp
Definition of mathematical constants and functions.
real(kind=dp), parameter, public pi
Module with functions to handle derivative descriptors. derivative description are strings have the f...
integer, parameter, public deriv_norm_drho
integer, parameter, public deriv_laplace_rhob
integer, parameter, public deriv_norm_drhoa
integer, parameter, public deriv_rhob
integer, parameter, public deriv_rhoa
integer, parameter, public deriv_tau
integer, parameter, public deriv_tau_b
integer, parameter, public deriv_tau_a
integer, parameter, public deriv_laplace_rhoa
integer, parameter, public deriv_rho
integer, parameter, public deriv_norm_drhob
integer, parameter, public deriv_laplace_rho
represent a group ofunctional derivatives
type(xc_derivative_type) function, pointer, public xc_dset_get_derivative(derivative_set, description, allocate_deriv)
returns the requested xc_derivative
Provides types for the management of the xc-functionals and their derivatives.
subroutine, public xc_derivative_get(deriv, split_desc, order, deriv_data, accept_null_data)
returns various information on the given derivative
subroutine, public xc_rho_set_get(rho_set, can_return_null, rho, drho, norm_drho, rhoa, rhob, norm_drhoa, norm_drhob, rho_1_3, rhoa_1_3, rhob_1_3, laplace_rho, laplace_rhoa, laplace_rhob, drhoa, drhob, rho_cutoff, drho_cutoff, tau_cutoff, tau, tau_a, tau_b, local_bounds)
returns the various attributes of rho_set
Calculates the exchange energy based on the Becke-Roussel exchange hole. Takes advantage of an analyt...
subroutine, public x_br_lsd_y_gt_0(rho, ndrho, tau, laplace_rho, e_0, e_rho, e_ndrho, e_tau, e_laplace_rho, sx, gamma, grad_deriv)
Full range evaluation for y > 0.
subroutine, public xbecke_roussel_lsd_eval(rho_set, deriv_set, grad_deriv, br_params)
evaluates the Becke Roussel exchange functional for lda
subroutine, public x_br_lsd_y_gt_0_cutoff(rho, ndrho, tau, laplace_rho, e_0, e_rho, e_ndrho, e_tau, e_laplace_rho, sx, R, gamma, grad_deriv)
Truncated long range part for y > 0.
subroutine, public xbecke_roussel_lda_info(reference, shortform, needs, max_deriv)
return various information on the functional
subroutine, public x_br_lsd_y_lte_0(rho, ndrho, tau, laplace_rho, e_0, e_rho, e_ndrho, e_tau, e_laplace_rho, sx, gamma, grad_deriv)
full range evaluation for y <= 0
subroutine, public xbecke_roussel_lda_eval(rho_set, deriv_set, grad_deriv, br_params)
evaluates the Becke Roussel exchange functional for lda
subroutine, public x_br_lsd_y_lte_0_cutoff(rho, ndrho, tau, laplace_rho, e_0, e_rho, e_ndrho, e_tau, e_laplace_rho, sx, R, gamma, grad_deriv)
Truncated long range part for y <= 0.
subroutine, public xbecke_roussel_lsd_info(reference, shortform, needs, max_deriv)
return various information on the functional