46 #include "../base/base_uses.f90"
51 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
52 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'xc_pbe'
53 REAL(kind=
dp),
PARAMETER,
PRIVATE :: a = 0.04918_dp, b = 0.132_dp, &
54 c = 0.2533_dp, d = 0.349_dp
69 SUBROUTINE pbe_lda_info(pbe_params, reference, shortform, needs, max_deriv)
70 TYPE(section_vals_type),
POINTER :: pbe_params
71 CHARACTER(LEN=*),
INTENT(OUT),
OPTIONAL :: reference, shortform
72 TYPE(xc_rho_cflags_type),
INTENT(inout),
OPTIONAL :: needs
73 INTEGER,
INTENT(out),
OPTIONAL :: max_deriv
76 REAL(kind=
dp) :: sc, sx
85 IF (sx == 1._dp .AND. sc == 1._dp)
THEN
86 IF (
PRESENT(reference))
THEN
87 reference =
"J.P.Perdew, K.Burke, M.Ernzerhof, "// &
88 "Phys. Rev. Letter, vol. 77, n 18, pp. 3865-3868, (1996) {spin unpolarized}"
90 IF (
PRESENT(shortform))
THEN
91 shortform =
"PBE Perdew-Burke-Ernzerhof xc functional (unpolarized)"
94 IF (
PRESENT(reference))
THEN
95 WRITE (reference,
"(a,a,'sx=',f5.3,'sc=',f5.3,a)") &
96 "J.P.Perdew, K.Burke, M.Ernzerhof, ", &
97 "Phys. Rev. Letter, vol. 77, n 18, pp. 3865-3868, (1996)", &
98 sx, sc,
"{spin unpolarized}"
100 IF (
PRESENT(shortform))
THEN
101 WRITE (shortform,
"(a,'sx=',f5.3,'sc=',f5.3,'(LDA)')") &
102 "PBE, Perdew-Burke-Ernzerhof xc functional (unpolarized)", sx, sc
108 IF (sx == 1._dp .AND. sc == 1._dp)
THEN
109 IF (
PRESENT(reference))
THEN
110 reference =
"revPBE, Yingkay Zhang and Weitao Yang,"// &
111 " Phys. Rev. Letter, vol 80,n 4, p. 890, (1998) {spin unpolarized}"
113 IF (
PRESENT(shortform))
THEN
114 shortform =
"revPBE, revised PBE xc functional (unpolarized)"
117 IF (
PRESENT(reference))
THEN
118 WRITE (reference,
"(a,a,'sx=',f5.3,'sc=',f5.3,a)") &
119 "revPBE, Yingkay Zhang and Weitao Yang,", &
120 " Phys. Rev. Letter, vol 80,n 4, p. 890, (1998)", &
121 sx, sc,
"{spin unpolarized}"
123 IF (
PRESENT(shortform))
THEN
124 WRITE (shortform,
"(a,'sx=',f5.3,'sc=',f5.3,'(LDA)')") &
125 "revPBE, revised PBE xc functional (unpolarized)", sx, sc
131 IF (sx == 1._dp .AND. sc == 1._dp)
THEN
132 IF (
PRESENT(reference))
THEN
133 reference =
"PBEsol, J.P. Perdew et al., "// &
134 "Phys. Rev. Letter, vol 100,n 13, p. 136406, (2008) "// &
137 IF (
PRESENT(shortform))
THEN
138 shortform =
"PBEsol, PBE for solids and surfaces xc functional (unpolarized)"
141 IF (
PRESENT(reference))
THEN
142 WRITE (reference,
"(a,a,'sx=',f5.3,'sc=',f5.3,a)") &
143 "PBEsol, J.P. Perdew et al., ", &
144 "Phys. Rev. Letter, vol 100,n 13, p. 136406, (2008) ", &
145 sx, sc,
"{spin unpolarized}"
147 IF (
PRESENT(shortform))
THEN
148 WRITE (shortform,
"(a,'sx=',f5.3,'sc=',f5.3,'(LDA)')") &
149 "PBEsol, PBE for solids and surfaces xc functional (unpolarized)", sx, sc
153 cpabort(
"Unsupported parametrization")
155 IF (
PRESENT(needs))
THEN
157 needs%norm_drho = .true.
159 IF (
PRESENT(max_deriv)) max_deriv = 3
173 SUBROUTINE pbe_lsd_info(pbe_params, reference, shortform, needs, max_deriv)
174 TYPE(section_vals_type),
POINTER :: pbe_params
175 CHARACTER(LEN=*),
INTENT(OUT),
OPTIONAL :: reference, shortform
176 TYPE(xc_rho_cflags_type),
INTENT(inout),
OPTIONAL :: needs
177 INTEGER,
INTENT(out),
OPTIONAL :: max_deriv
180 REAL(kind=
dp) :: sc, sx
189 IF (sx == 1._dp .AND. sc == 1._dp)
THEN
190 IF (
PRESENT(reference))
THEN
191 reference =
"J.P.Perdew, K.Burke, M.Ernzerhof, "// &
192 "Phys. Rev. Letter, vol. 77, n 18, pp. 3865-3868, (1996) {spin polarized}"
194 IF (
PRESENT(shortform))
THEN
195 shortform =
"PBE xc functional (spin polarized)"
198 IF (
PRESENT(reference))
THEN
199 WRITE (reference,
"(a,a,'sx=',f5.3,'sc=',f5.3,a)") &
200 "J.P.Perdew, K.Burke, M.Ernzerhof, ", &
201 "Phys. Rev. Letter, vol. 77, n 18, pp. 3865-3868, (1996)", &
202 sx, sc,
"{spin polarized}"
204 IF (
PRESENT(shortform))
THEN
205 WRITE (shortform,
"(a,'sx=',f5.3,'sc=',f5.3,'(LSD)')") &
206 "PBE xc functional (spin polarized)", sx, sc
212 IF (sx == 1._dp .AND. sc == 1._dp)
THEN
213 IF (
PRESENT(reference))
THEN
214 reference =
"revPBE, Yingkay Zhang and Weitao Yang,"// &
215 " Phys. Rev. Letter, vol 80,n 4, p. 890, (1998) {spin polarized}"
217 IF (
PRESENT(shortform))
THEN
218 shortform =
"revPBE, revised PBE xc functional (spin polarized)"
221 IF (
PRESENT(reference))
THEN
222 WRITE (reference,
"(a,a,'sx=',f5.3,'sc=',f5.3,a)") &
223 "revPBE, Yingkay Zhang and Weitao Yang,", &
224 " Phys. Rev. Letter, vol 80,n 4, p. 890, (1998)", &
225 sx, sc,
"{spin polarized}"
227 IF (
PRESENT(shortform))
THEN
228 WRITE (shortform,
"(a,'sx=',f5.3,'sc=',f5.3,'(LSD)')") &
229 "revPBE, revised PBE xc functional (spin polarized)", sx, sc
235 IF (sx == 1._dp .AND. sc == 1._dp)
THEN
236 IF (
PRESENT(reference))
THEN
237 reference =
"PBEsol, J.P. Perdew et al., "// &
238 "Phys. Rev. Letter, vol 100,n 13, p. 136406, (2008) "// &
241 IF (
PRESENT(shortform))
THEN
242 shortform =
"PBEsol, PBE for solids and surfaces xc functional (spin polarized)"
245 IF (
PRESENT(reference))
THEN
246 WRITE (reference,
"(a,a,'sx=',f5.3,'sc=',f5.3,a)") &
247 "PBEsol, J.P. Perdew et al., ", &
248 "Phys. Rev. Letter, vol 100,n 13, p. 136406, (2008) ", &
249 sx, sc,
"{spin unpolarized}"
251 IF (
PRESENT(shortform))
THEN
252 WRITE (shortform,
"(a,'sx=',f5.3,'sc=',f5.3,'(LSD)')") &
253 "PBEsol, PBE for solids and surfaces xc functional (spin polarized)", sx, sc
257 cpabort(
"Unsupported parametrization")
259 IF (
PRESENT(needs))
THEN
260 needs%rho_spin = .true.
261 needs%norm_drho_spin = .true.
262 needs%norm_drho = .true.
264 IF (
PRESENT(max_deriv)) max_deriv = 2
280 TYPE(xc_rho_set_type),
INTENT(IN) :: rho_set
281 TYPE(xc_derivative_set_type),
INTENT(IN) :: deriv_set
282 INTEGER,
INTENT(in) :: grad_deriv
283 TYPE(section_vals_type),
POINTER :: pbe_params
285 CHARACTER(len=*),
PARAMETER :: routinen =
'pbe_lda_eval'
287 INTEGER :: handle, npoints, param
288 INTEGER,
DIMENSION(2, 3) :: bo
289 REAL(kind=
dp) :: epsilon_rho, scale_ec, scale_ex
290 REAL(kind=
dp),
CONTIGUOUS,
DIMENSION(:, :, :),
POINTER :: dummy, e_0, e_ndrho, &
291 e_ndrho_ndrho, e_ndrho_ndrho_ndrho, e_ndrho_ndrho_rho, e_ndrho_rho, e_ndrho_rho_rho, &
292 e_rho, e_rho_rho, e_rho_rho_rho, norm_drho, rho
293 TYPE(xc_derivative_type),
POINTER :: deriv
295 CALL timeset(routinen, handle)
298 norm_drho=norm_drho, local_bounds=bo, rho_cutoff=epsilon_rho)
299 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
308 e_ndrho_ndrho => dummy
309 e_rho_rho_rho => dummy
310 e_ndrho_rho_rho => dummy
311 e_ndrho_ndrho_rho => dummy
312 e_ndrho_ndrho_ndrho => dummy
314 IF (grad_deriv >= 0)
THEN
316 allocate_deriv=.true.)
319 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
321 allocate_deriv=.true.)
324 allocate_deriv=.true.)
327 IF (grad_deriv >= 2 .OR. grad_deriv == -2)
THEN
329 allocate_deriv=.true.)
332 allocate_deriv=.true.)
338 IF (grad_deriv >= 3 .OR. grad_deriv == -3)
THEN
340 allocate_deriv=.true.)
352 IF (grad_deriv > 3 .OR. grad_deriv < -3)
THEN
353 cpabort(
"derivatives bigger than 3 not implemented")
366 CALL pbe_lda_calc(rho=rho, norm_drho=norm_drho, &
367 e_0=e_0, e_rho=e_rho, e_ndrho=e_ndrho, e_rho_rho=e_rho_rho, &
368 e_ndrho_rho=e_ndrho_rho, e_ndrho_ndrho=e_ndrho_ndrho, &
369 e_rho_rho_rho=e_rho_rho_rho, e_ndrho_rho_rho=e_ndrho_rho_rho, &
370 e_ndrho_ndrho_rho=e_ndrho_ndrho_rho, e_ndrho_ndrho_ndrho=e_ndrho_ndrho_ndrho, &
371 grad_deriv=grad_deriv, &
372 npoints=npoints, epsilon_rho=epsilon_rho, &
373 param=param, scale_ec=scale_ec, scale_ex=scale_ex)
376 CALL timestop(handle)
402 SUBROUTINE pbe_lda_calc(rho, norm_drho, &
403 e_0, e_rho, e_ndrho, e_rho_rho, e_ndrho_rho, &
404 e_ndrho_ndrho, e_rho_rho_rho, e_ndrho_rho_rho, e_ndrho_ndrho_rho, &
405 e_ndrho_ndrho_ndrho, grad_deriv, npoints, epsilon_rho, &
407 param, scale_ec, scale_ex)
408 INTEGER,
INTENT(in) :: npoints, grad_deriv
409 REAL(kind=
dp),
DIMENSION(1:npoints),
INTENT(inout) :: e_ndrho_ndrho_ndrho, &
410 e_ndrho_ndrho_rho, e_ndrho_rho_rho, e_rho_rho_rho, e_ndrho_ndrho, e_ndrho_rho, e_rho_rho, &
412 REAL(kind=
dp),
DIMENSION(1:npoints),
INTENT(in) :: norm_drho, rho
413 REAL(kind=
dp),
INTENT(in) :: epsilon_rho
414 INTEGER,
INTENT(in) :: param
415 REAL(kind=
dp),
INTENT(in) :: scale_ec, scale_ex
418 REAL(kind=
dp) :: a, a1rho, a1rhorho, a2rho, a_1, alpha_1_1, arho, arho1rho, arhorho, &
419 arhorhorho, beta, beta_1_1, beta_2_1, beta_3_1, beta_4_1, e_c_u_0, e_c_u_01rho, &
420 e_c_u_01rhorho, e_c_u_02rho, e_c_u_0rho, e_c_u_0rho1rho, e_c_u_0rhorho, e_c_u_0rhorhorho, &
421 epsilon_cgga, epsilon_cggarho, epsilon_cggarhorho, ex_ldarhorhorho, ex_unif, ex_unif1rho, &
422 ex_unif1rhorho, ex_unif2rho, ex_unifrho, ex_unifrho1rho, ex_unifrhorho, fx, fx1rho, &
423 fx1rhorho, fx2rho, fxnorm_drho, fxnorm_drho1rho, fxnorm_drhonorm_drho, fxnorm_drhorho, &
424 fxrho, fxrho1rho, fxrhorho, gamma_var, hnorm_drho, hnorm_drhonorm_drho
425 REAL(kind=
dp) :: hnorm_drhorho, k_f, k_f2rho, k_frho, k_frhorho, k_frhorhorho, k_s, k_s1rho, &
426 k_s1rhorho, k_s2rho, k_srho, k_srho1rho, k_srhorho, kappa, kf, kf2rho, kfrho, kfrhorho, &
427 kfrhorhorho, mu, my_norm_drho, my_rho, p_1, p_2, rs, rs2rho, rsrho, rsrhorho, &
428 rsrhorhorho, s, s1rho, s1rhorho, s2norm_drho, s2rho, snorm_drho, snorm_drho1rho, &
429 snorm_drhorho, srho, srho1rho, srhorho, t, t1, t1001, t1004, t1005, t1006, t1008, t101, &
430 t1011, t1012, t1013, t1014, t1016, t1017, t1018, t1019, t1022, t1024, t1026, t1028, t103, &
431 t1030, t1031, t1035, t1042, t1046, t1048, t105, t1050, t1052, t1054, t1055
432 REAL(kind=
dp) :: t1060, t1061, t1062, t1067, t108, t1093, t1097, t11, t1103, t1104, t1106, &
433 t1109, t111, t1115, t1118, t1121, t1122, t1126, t1129, t113, t114, t1148, t115, t1152, &
434 t1157, t1167, t1187, t119, t1196, t1203, t1218, t1226, t123, t124, t1249, t125, t126, &
435 t1262, t1263, t127, t1291, t1292, t1295, t13, t131, t1329, t1342, t135, t138, t1380, &
436 t1385, t1386, t1387, t1389, t139, t1393, t14, t140, t142, t146, t1468, t148, t1482, t149, &
437 t1492, t1493, t150, t1504, t1505, t151, t1511, t1515, t1521, t1525, t1528, t153, t1532, &
438 t1545, t155, t1565, t157, t1573, t158, t1584, t159, t1608, t1612
439 REAL(kind=
dp) :: t162, t1628, t1629, t163, t1633, t164, t1646, t1652, t1660, t167, t1672, &
440 t1676, t168, t17, t170, t171, t1715, t1722, t175, t1758, t1759, t176, t1761, t177, t178, &
441 t179, t1797, t182, t183, t1838, t1851, t186, t187, t1878, t1889, t189, t19, t190, t1907, &
442 t191, t1922, t1927, t1933, t1937, t195, t1952, t196, t1964, t1965, t1968, t1969, t197, &
443 t1972, t198, t1990, t1rho, t1rhorho, t2, t20, t200, t202, t2020, t2024, t2028, t2031, &
444 t204, t2041, t208, t21, t214, t217, t218, t22, t226, t229, t230, t238, t239, t240, t241, &
445 t246, t252, t253, t255, t259, t26, t260, t261, t262, t265, t266
446 REAL(kind=
dp) :: t267, t27, t271, t272, t273, t277, t278, t280, t281, t286, t290, t291, &
447 t293, t294, t295, t296, t297, t299, t2norm_drho, t2rho, t3, t305, t309, t310, t315, t317, &
448 t318, t321, t323, t324, t327, t329, t330, t331, t336, t338, t339, t340, t341, t348, t349, &
449 t354, t357, t359, t360, t361, t362, t369, t370, t371, t374, t377, t378, t381, t382, t384, &
450 t385, t387, t388, t390, t392, t393, t397, t4, t400, t401, t404, t408, t409, t410, t414, &
451 t417, t418, t423, t426, t427, t432, t435, t436, t438, t439, t440, t448, t449, t451, t456, &
452 t457, t458, t459, t461, t462, t463, t465, t466, t469, t470
453 REAL(kind=
dp) :: t471, t472, t476, t487, t491, t496, t498, t5, t500, t503, t506, t507, t510, &
454 t513, t517, t521, t525, t529, t530, t535, t541, t548, t553, t556, t557, t559, t562, t566, &
455 t581, t586, t590, t591, t594, t598, t6, t605, t609, t611, t612, t614, t627, t645, t65, &
456 t654, t656, t661, t664, t669, t670, t671, t673, t675, t685, t69, t693, t7, t70, t701, &
457 t702, t71, t714, t717, t72, t720, t73, t74, t740, t743, t748, t75, t758, t77, t776, t78, &
458 t8, t80, t801, t809, t81, t812, t821, t825, t83, t831, t84, t85, t86, t868, t87, t877, &
459 t879, t88, t880, t885, t90, t91, t94, t940, t942, t943, t945
460 REAL(kind=
dp) :: t946, t948, t95, t950, t951, t954, t967, t976, t98, t980, t982, t984, t989, &
461 t99, t990, t994, t995, t998, t999, tnorm_drho, tnorm_drho1rho, tnorm_drhorho, &
462 tnorm_drhorhorho, trho, trho1rho, trhorho, trhorhorho
474 mu = beta*
pi**2/0.3e1_dp
479 mu = beta*
pi**2/0.3e1_dp
484 mu = 0.1e2_dp/0.81e2_dp
486 cpabort(
"Unsupported parametrization")
489 gamma_var = (0.1e1_dp - log(0.2e1_dp))/
pi**2
492 alpha_1_1 = 0.21370e0_dp
493 beta_1_1 = 0.75957e1_dp
494 beta_2_1 = 0.35876e1_dp
495 beta_3_1 = 0.16382e1_dp
496 beta_4_1 = 0.49294e0_dp
498 t1 = 3**(0.1e1_dp/0.3e1_dp)
499 t2 = 4**(0.1e1_dp/0.3e1_dp)
504 t627 = 0.1e1_dp/t69/
pi
506 SELECT CASE (grad_deriv)
511 IF (my_rho > epsilon_rho)
THEN
512 my_norm_drho = norm_drho(ii)
516 t8 = t7**(0.1e1_dp/0.3e1_dp)
518 t11 = 0.1e1_dp + alpha_1_1*rs
525 t22 = beta_1_1*t14 + beta_2_1*rs + beta_3_1*t17 + t21
526 t26 = 0.1e1_dp + t13/t22/0.2e1_dp
528 e_c_u_0 = -0.2e1_dp*a_1*t11*t27
529 t65 = 2**(0.1e1_dp/0.3e1_dp)
531 t71 = t70**(0.1e1_dp/0.3e1_dp)
537 t75 = my_norm_drho*t74
539 t77 = 0.1e1_dp/gamma_var
541 t80 = exp(-e_c_u_0*t77)
542 t81 = -0.1e1_dp + t80
550 t90 = 0.1e1_dp + t84 + t87*t88
552 t94 = 0.1e1_dp + t78*t86*t91
554 epsilon_cgga = e_c_u_0 + gamma_var*t95
556 ex_unif = -0.3e1_dp/0.4e1_dp*t5*kf
558 t99 = my_norm_drho*t98
561 t103 = 0.1e1_dp/kappa
562 t105 = 0.1e1_dp + mu*t101*t103
563 fx = 0.1e1_dp + kappa - kappa/t105
564 t108 = my_rho*ex_unif
566 IF (grad_deriv >= 0)
THEN
567 e_0(ii) = e_0(ii) + &
568 scale_ex*t108*fx + scale_ec*my_rho*epsilon_cgga
572 t113 = 0.1e1_dp/t111*t5
575 rsrho = -t4*t113*t115/0.12e2_dp
584 t138 = t127*rsrho/0.2e1_dp + beta_2_1*rsrho + 0.3e1_dp/ &
585 0.2e1_dp*t131*rsrho + t21*t19*rsrho*t135
588 e_c_u_0rho = -0.2e1_dp*t119*rsrho*t27 + t125*t140
590 k_frho = t1/t142*t69/0.3e1_dp
592 k_srho = t146*k_frho*t5
595 t150 = my_norm_drho*t149
598 trho = -t150*t151/0.2e1_dp - t153/0.2e1_dp
603 arho = t157*t159*e_c_u_0rho*t80
609 t170 = 0.2e1_dp*t168*trho
618 t186 = t167 + t170 + 0.2e1_dp*t179*arho + 0.4e1_dp*t183*trho
620 t189 = 0.2e1_dp*t162*t164 + t78*t83*t171*t91 - t175*t187
621 t190 = gamma_var*t189
623 epsilon_cggarho = e_c_u_0rho + t190*t191
625 ex_unifrho = -0.3e1_dp/0.4e1_dp*t5*kfrho
628 t197 = my_norm_drho*t196
631 srho = -t197*t198/0.2e1_dp - t200/0.2e1_dp
633 t204 = 0.1e1_dp/t202*mu
634 fxrho = 0.2e1_dp*t204*s*srho
635 t208 = my_rho*ex_unifrho
637 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
638 e_rho(ii) = e_rho(ii) + &
639 scale_ex*(ex_unif*fx + t208*fx + t108*fxrho) + &
640 scale_ec*(epsilon_cgga + my_rho*epsilon_cggarho)
643 tnorm_drho = t74*t6/0.2e1_dp
644 t214 = t163*tnorm_drho
647 t226 = 0.2e1_dp*t168*tnorm_drho + 0.4e1_dp*t183*tnorm_drho
648 t229 = 0.2e1_dp*t162*t214 + 0.2e1_dp*t217*t218*t91 - &
650 t230 = gamma_var*t229
651 hnorm_drho = t230*t191
652 snorm_drho = t98*t6/0.2e1_dp
653 fxnorm_drho = 0.2e1_dp*t204*s*snorm_drho
655 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
656 e_ndrho(ii) = e_ndrho(ii) + &
657 scale_ex*t108*fxnorm_drho + scale_ec*my_rho* &
662 t239 = 0.1e1_dp/t111/t7*t238
665 t246 = 0.1e1_dp/t114/my_rho
666 rsrhorho = -t4*t239*t241/0.18e2_dp + t4*t113* &
668 t252 = 0.2e1_dp*t119*rsrhorho*t27
669 t253 = alpha_1_1*rsrho
670 t255 = t124*t138*t139
671 t259 = 0.1e1_dp/t123/t22
678 t271 = t127*rsrhorho/0.2e1_dp
679 t272 = beta_2_1*rsrhorho
681 t277 = 0.3e1_dp/0.2e1_dp*t131*rsrhorho
685 t286 = t21*t19*rsrhorho*t135
686 t290 = -t266*t267/0.4e1_dp + t271 + t272 + 0.3e1_dp/0.4e1_dp &
687 *t273*t267 + t277 + t21*t278*t267*t281 + t286 - t21*t19 &
696 e_c_u_0rhorho = -t252 + 0.2e1_dp*t253*t255 - 0.2e1_dp*t260* &
697 t262 + t125*t291 + t295*t299/0.2e1_dp
698 e_c_u_01rho = e_c_u_0rho
700 k_frhorho = -0.2e1_dp/0.9e1_dp*t1/t142/t70*t305
701 t309 = 0.1e1_dp/t73/t72
703 t315 = t146*k_frhorho*t5
704 k_srhorho = -t309*t310*t238/0.2e1_dp + t315
706 t317 = 0.1e1_dp/t148/k_s
707 t318 = my_norm_drho*t317
709 t323 = t150*t321/0.2e1_dp
712 t329 = t150*t327/0.2e1_dp
714 trhorho = t318*t151*k_s1rho + t323 - t150*t324/0.2e1_dp + &
717 t1rho = -t150*t331/0.2e1_dp - t153/0.2e1_dp
718 t336 = beta/t155/gamma_var
719 t338 = 0.1e1_dp/t158/t81
722 t341 = e_c_u_0rho*t340
724 t349 = e_c_u_0rho*e_c_u_01rho
725 arhorho = 0.2e1_dp*t339*t341*e_c_u_01rho + t157*t159* &
726 e_c_u_0rhorho*t80 - t348*t349*t80
727 a1rho = t157*t159*e_c_u_01rho*t80
730 t359 = 0.2e1_dp*t168*t1rho
734 t369 = t357 + t359 + 0.2e1_dp*t179*a1rho + 0.4e1_dp*t183*t1rho
742 t384 = 0.2e1_dp*t382*t1rho
744 t387 = 0.2e1_dp*t385*trho
746 t390 = 0.2e1_dp*t388*trho
747 t392 = 0.2e1_dp*t168*trhorho
748 t393 = t381 + t384 + t387 + t390 + t392
753 t408 = 0.1e1_dp/t176/t90
762 t432 = t381 + t384 + t387 + t390 + t392 + 0.2e1_dp*t414*arho + &
763 0.8e1_dp*t417*t418 + 0.2e1_dp*t179*arhorho + 0.8e1_dp* &
764 t417*t423 + 0.12e2_dp*t426*t427 + 0.4e1_dp*t183*trhorho
765 t435 = 0.2e1_dp*t354*t164 + 0.2e1_dp*t162*t362 - 0.2e1_dp &
766 *t162*t371 + 0.2e1_dp*t162*t374 + 0.2e1_dp*t162*t378 + &
767 t78*t83*t393*t91 - t175*t397*t369 - 0.2e1_dp*t162*t401 &
768 - t175*t404*t186 + 0.2e1_dp*t175*t409*t410 - t175*t178 &
770 t436 = gamma_var*t435
774 t448 = 0.2e1_dp*t162*t440 + t78*t83*t360*t91 - t175* &
777 t451 = gamma_var*t448
778 epsilon_cggarhorho = e_c_u_0rhorho + t436*t191 - t190*t449
780 ex_unifrhorho = -0.3e1_dp/0.4e1_dp*t5*kfrhorho
781 ex_unif1rho = ex_unifrho
782 t456 = 0.1e1_dp/t195/kf
783 t457 = my_norm_drho*t456
789 t465 = t197*t463/0.2e1_dp
791 srhorho = t457*t459 + t462 - t465 + t466
794 t470 = 0.1e1_dp/t202/t105*t469
798 fxrhorho = -0.8e1_dp*t471*t472*s1rho + 0.2e1_dp*t204* &
799 t476 + 0.2e1_dp*t204*s*srhorho
800 fx1rho = 0.2e1_dp*t204*s*s1rho
801 t487 = my_rho*ex_unifrhorho
802 t491 = my_rho*ex_unif1rho
804 IF (grad_deriv >= 2 .OR. grad_deriv == -2)
THEN
805 e_rho_rho(ii) = e_rho_rho(ii) + &
806 scale_ex*(ex_unif1rho*fx + ex_unif*fx1rho + &
807 ex_unifrho*fx + t487*fx + t208*fx1rho + ex_unif*fxrho + t491 &
808 *fxrho + t108*fxrhorho) + scale_ec*(e_c_u_01rho + t451*t191 &
809 + epsilon_cggarho + my_rho*epsilon_cggarhorho)
814 tnorm_drhorho = -t496*k_srho/0.2e1_dp - t498/0.2e1_dp
816 t503 = t377*tnorm_drho
817 t506 = tnorm_drho*t186
819 t510 = t163*tnorm_drhorho
821 t517 = arho*tnorm_drho
822 t521 = a*tnorm_drhorho
828 t548 = tnorm_drho*trho
829 t553 = 0.2e1_dp*t382*tnorm_drho + 0.2e1_dp*t541*tnorm_drho &
830 + 0.2e1_dp*t168*tnorm_drhorho + 0.8e1_dp*t417*t517 + &
831 0.12e2_dp*t426*t548 + 0.4e1_dp*t183*tnorm_drhorho
832 t556 = 0.2e1_dp*t500*t214 + 0.2e1_dp*t162*t503 - 0.2e1_dp &
833 *t162*t507 + 0.2e1_dp*t162*t510 + 0.6e1_dp*t175*t218* &
834 t513 + 0.2e1_dp*t217*t517*t91 + 0.2e1_dp*t217*t521*t91 - &
835 0.2e1_dp*t217*t218*t525 - 0.2e1_dp*t162*t530 - t175* &
836 t397*t226 + 0.2e1_dp*t175*t409*t535 - t175*t178*t553
837 t557 = gamma_var*t556
839 hnorm_drhorho = t557*t191 - t230*t559
841 snorm_drhorho = -t562*kfrho/0.2e1_dp - t98*t115/0.2e1_dp
842 t566 = snorm_drho*t103
843 fxnorm_drhorho = -0.8e1_dp*t471*t566*srho + 0.2e1_dp*t204 &
844 *srho*snorm_drho + 0.2e1_dp*t204*s*snorm_drhorho
846 IF (grad_deriv >= 2 .OR. grad_deriv == -2)
THEN
847 e_ndrho_rho(ii) = e_ndrho_rho(ii) + &
848 scale_ex*(ex_unif*fxnorm_drho + t208* &
849 fxnorm_drho + t108*fxnorm_drhorho) + scale_ec*(hnorm_drho + my_rho &
855 t590 = tnorm_drho*t226
859 t605 = 0.2e1_dp*t586 + 0.12e2_dp*t426*t581
860 t609 = gamma_var*(0.2e1_dp*t78*t581*t85*t91 + 0.10e2_dp &
861 *t175*t586*t91 - 0.4e1_dp*t162*t591 - 0.4e1_dp*t217* &
862 t218*t594 + 0.2e1_dp*t175*t409*t598 - t175*t178*t605)
864 t612 = gamma_var*t611
865 hnorm_drhonorm_drho = t609*t191 - t612*t439
867 fxnorm_drhonorm_drho = -0.8e1_dp*t470*t101*t614*t103 + &
870 IF (grad_deriv >= 2 .OR. grad_deriv == -2)
THEN
871 e_ndrho_ndrho(ii) = e_ndrho_ndrho(ii) + &
872 scale_ex*t108*fxnorm_drhonorm_drho + &
873 scale_ec*my_rho*hnorm_drhonorm_drho
876 IF (grad_deriv >= 3 .OR. grad_deriv == -3)
THEN
877 rsrhorhorho = -0.5e1_dp/0.54e2_dp*t4/t111/t238/ &
878 t115*t627/t240/t114 + t4*t239/t240/my_rho/0.3e1_dp &
879 - t4*t113*t241/0.2e1_dp
881 t645 = alpha_1_1*rsrhorho
882 t654 = t127*rs2rho/0.2e1_dp + beta_2_1*rs2rho + 0.3e1_dp/ &
883 0.2e1_dp*t131*rs2rho + t21*t19*rs2rho*t135
884 t656 = t124*t654*t139
891 t675 = -t266*t664/0.4e1_dp + t271 + t272 + 0.3e1_dp/0.4e1_dp &
892 *t273*t664 + t277 + t669*t671 + t286 - t673*t671
893 t685 = alpha_1_1*rs2rho
898 t717 = rsrhorho*rsrho
899 t720 = rsrhorho*rs2rho
900 t740 = rs2rho/t280/rs*t267
901 t743 = rsrhorho*t281*rsrho
903 t758 = 0.3e1_dp/0.8e1_dp*beta_1_1/t14/t280*t714 - t266* &
904 t717/0.2e1_dp - t266*t720/0.4e1_dp + t127*rsrhorhorho/ &
905 0.2e1_dp + beta_2_1*rsrhorhorho - 0.3e1_dp/0.8e1_dp*beta_3_1* &
906 t265*t714 + 0.3e1_dp/0.2e1_dp*t273*t717 + 0.3e1_dp/ &
907 0.4e1_dp*t273*t720 + 0.3e1_dp/0.2e1_dp*t131*rsrhorhorho + &
908 t21*t278*t19*t740 + 0.2e1_dp*t669*t743 - 0.3e1_dp*t669* &
909 t740 + t669*t748 + t21*t19*rsrhorhorho*t135 - t673*t748 - &
910 0.2e1_dp*t673*t743 + 0.2e1_dp*t673*t740
912 e_c_u_0rhorhorho = -0.2e1_dp*t119*rsrhorhorho*t27 + t645* &
913 t656 + 0.2e1_dp*t645*t255 - 0.4e1_dp*t253*t259*t661 + &
914 0.2e1_dp*t253*t124*t675*t139 + t253*t294*t138*t297* &
915 t13*t654 - 0.2e1_dp*t685*t259*t261*t139 + 0.6e1_dp*t295 &
916 *t262*t654 - 0.4e1_dp*t260*t693*t138 - 0.3e1_dp*t11/ &
917 t293/t22*t261*t702 + t685*t124*t290*t139 - 0.2e1_dp* &
918 t260*t291*t654 + t125*t758*t139 + t295*t290*t702/ &
919 0.2e1_dp + t685*t294*t299/0.2e1_dp + t295*t675*t701*t138 &
920 + t11/t293/t123*t261/t296/t26/t776*t654/0.2e1_dp
921 e_c_u_0rho1rho = -t252 + t253*t656 + t685*t255 - 0.2e1_dp* &
922 t260*t661 + t125*t693 + t295*t138*t702/0.2e1_dp
923 e_c_u_01rhorho = e_c_u_0rho1rho
924 e_c_u_02rho = -0.2e1_dp*t119*rs2rho*t27 + t125*t654*t139
925 k_frhorhorho = 0.10e2_dp/0.27e2_dp*t1/t142/t114*t69
928 t809 = t309*k_frhorho
930 k_srho1rho = -t309*k_frho*t812/0.2e1_dp + t315
931 k_s1rhorho = k_srho1rho
932 k_s2rho = t146*k_f2rho*t5
934 t825 = k_srho*k_s1rho
936 trhorhorho = -0.3e1_dp*my_norm_drho/t821*t6*t825*k_s2rho - &
937 t318*t321*k_s1rho + t318*t831*k_s1rho + t318*t151* &
938 k_s1rhorho - t318*t321*k_s2rho - t150*t246*k_srho + t150* &
939 t115*k_srho1rho/0.2e1_dp + t318*t324*k_s2rho + t150*t115* &
940 k_srhorho/0.2e1_dp - t150*t6*(0.3e1_dp/0.4e1_dp/t73/ &
941 t801/t238*t310*t627*k_f2rho - t809*t238*k_frho - t809* &
942 t812/0.2e1_dp + t146*k_frhorhorho*t5)/0.2e1_dp - t318*t327 &
943 *k_s2rho - t150*t246*k_s1rho + t150*t115*k_s1rhorho/ &
944 0.2e1_dp - t150*t246*k_s2rho - 0.3e1_dp*t75*t241
945 t868 = t150*t115*k_s2rho/0.2e1_dp
946 trho1rho = t318*t151*k_s2rho + t323 - t150*t831/0.2e1_dp + &
948 t1rhorho = t318*t331*k_s2rho + t329 - t150*t6*k_s1rhorho/ &
949 0.2e1_dp + t868 + t330
950 t2rho = -t150*t6*k_s2rho/0.2e1_dp - t153/0.2e1_dp
954 t885 = e_c_u_01rho*e_c_u_02rho
955 arhorhorho = 0.6e1_dp*t879/t880*e_c_u_0rho*t340*t80* &
956 t885 + 0.2e1_dp*t339*e_c_u_0rho1rho*t340*e_c_u_01rho - &
957 0.6e1_dp*t879*t338*t341*t885 + 0.2e1_dp*t339*t341* &
958 e_c_u_01rhorho + 0.2e1_dp*t339*e_c_u_0rhorho*t340* &
959 e_c_u_02rho + t157*t159*e_c_u_0rhorhorho*t80 - t348* &
960 e_c_u_0rhorho*e_c_u_02rho*t80 - t348*e_c_u_0rho1rho* &
961 e_c_u_01rho*t80 - t348*e_c_u_0rho*e_c_u_01rhorho*t80 + t879 &
962 *t159*t349*e_c_u_02rho*t80
963 arho1rho = 0.2e1_dp*t339*t341*e_c_u_02rho + t157*t159* &
964 e_c_u_0rho1rho*t80 - t348*e_c_u_0rho*e_c_u_02rho*t80
965 a1rhorho = 0.2e1_dp*t339*e_c_u_01rho*t340*e_c_u_02rho + &
966 t157*t159*e_c_u_01rhorho*t80 - t348*t885*t80
967 a2rho = t157*t159*e_c_u_02rho*t80
969 t942 = 0.2e1_dp*t382*t2rho
971 t945 = 0.2e1_dp*t943*trho
973 t948 = 0.2e1_dp*t946*trho
974 t950 = 0.2e1_dp*t168*trho1rho
977 t967 = t940 + t942 + t945 + t948 + t950 + 0.2e1_dp*t951*arho + &
978 0.8e1_dp*t417*t954 + 0.2e1_dp*t179*arho1rho + 0.8e1_dp* &
979 t417*trho*a2rho + 0.12e2_dp*t426*trho*t2rho + 0.4e1_dp* &
984 t984 = 0.2e1_dp*t168*t2rho
985 t989 = t982 + t984 + 0.2e1_dp*t179*a2rho + 0.4e1_dp*t183*t2rho
989 t998 = arhorhorho*t83
991 t1001 = 0.2e1_dp*t999*t2rho
992 t1004 = 0.2e1_dp*arho1rho*t*t1rho
994 t1006 = 0.2e1_dp*t1005
995 t1008 = 0.2e1_dp*t382*t1rhorho
996 t1011 = 0.2e1_dp*a1rhorho*t*trho
999 t1014 = 0.2e1_dp*t1013
1000 t1016 = 0.2e1_dp*t385*trho1rho
1003 t1019 = 0.2e1_dp*t1018
1004 t1022 = 0.2e1_dp*a*t1rhorho*trho
1005 t1024 = 0.2e1_dp*t388*trho1rho
1006 t1026 = 0.2e1_dp*t943*trhorho
1007 t1028 = 0.2e1_dp*t946*trhorho
1008 t1030 = 0.2e1_dp*t168*trhorhorho
1009 t1031 = t998 + t1001 + t1004 + t1006 + t1008 + t1011 + t1014 + &
1010 t1016 + t1019 + t1022 + t1024 + t1026 + t1028 + t1030
1011 t1035 = t940 + t942 + t945 + t948 + t950
1013 t1046 = a1rhorho*t83
1014 t1048 = 0.2e1_dp*t385*t2rho
1015 t1050 = 0.2e1_dp*t943*t1rho
1016 t1052 = 0.2e1_dp*t946*t1rho
1017 t1054 = 0.2e1_dp*t168*t1rhorho
1018 t1055 = t1046 + t1048 + t1050 + t1052 + t1054
1021 t1062 = 0.1e1_dp/t1061
1022 t1067 = -0.2e1_dp*t162*t178*t967*t1rho + 0.2e1_dp*t175* &
1023 t409*t967*t369 + 0.2e1_dp*t976*t374 + 0.4e1_dp*t980* &
1024 t408*trho*t990 - t175*t995*t432 + t78*t83*t1031*t91 - &
1025 t175*t1035*t177*t369 - 0.2e1_dp*t162*t995*t370 - &
1026 0.2e1_dp*t162*t397*t1042 + 0.2e1_dp*t162*t1055*t91* &
1027 trho - 0.6e1_dp*t1060*t1062*t186*t990
1028 t1093 = t1046 + t1048 + t1050 + t1052 + t1054 + 0.2e1_dp*t951* &
1029 a1rho + 0.8e1_dp*t417*t1012 + 0.2e1_dp*t179*a1rhorho + &
1030 0.8e1_dp*t417*t1017 + 0.12e2_dp*t426*t1rho*t2rho + &
1031 0.4e1_dp*t183*t1rhorho
1037 t1115 = t976*t362 + t162*t361*trho1rho - t162*t178*t432 &
1038 *t2rho + t175*t994*t408*t410 - t162*t178*trho1rho*t369 &
1039 - t162*t178*trho*t1093 - t162*t397*t1097 + t175*t409* &
1040 t186*t1093 - t354*t1104 + t162*t1106*trhorho + t175*t1109 &
1041 *t990 + t175*t409*t432*t989
1048 t1152 = 0.2e1_dp*t354*t1118 + 0.2e1_dp*t175*t1121*t1122 &
1049 - t175*t1126*t989 + 0.4e1_dp*t980*t1129*t1042 + 0.2e1_dp* &
1050 t976*t378 - t175*t404*t967 + 0.2e1_dp*t162*t377* &
1051 t1rhorho - 0.2e1_dp*t976*t401 + 0.2e1_dp*t78*t1rhorho*t164 &
1052 - 0.2e1_dp*t162*t404*t1103 - 0.2e1_dp*t162*t404*t1148
1057 t1203 = t1008 + 0.8e1_dp*t417*trhorho*a2rho + 0.12e2_dp* &
1058 t426*trhorho*t2rho + 0.8e1_dp*t1167*t423 + 0.8e1_dp*t417* &
1059 trho*a1rhorho + 0.8e1_dp*t417*arho*t1rhorho + 0.8e1_dp* &
1060 t1167*t418 + 0.8e1_dp*t417*arho1rho*t1rho + 0.12e2_dp*t426 &
1061 *trho1rho*t1rho + 0.12e2_dp*t426*trho*t1rhorho + t998 + &
1062 0.8e1_dp*t1187*t954 + 0.8e1_dp*t417*trho1rho*a1rho + &
1063 0.8e1_dp*t417*arhorho*t2rho + 0.24e2_dp*t1196*t427*t2rho &
1064 + 0.2e1_dp*a1rhorho*t88*arho + t1014
1065 t1218 = t1016 + t1001 + 0.2e1_dp*t951*arhorho + t1026 + t1028 &
1066 + t1022 + t1011 + t1030 + 0.2e1_dp*t179*arhorhorho + 0.4e1_dp* &
1067 t183*trhorhorho + 0.2e1_dp*t414*arho1rho + t1004 + t1006 + &
1068 t1019 + t1024 + 0.24e2_dp*t84*t1018 + 0.24e2_dp*t84*t1005 + &
1070 t1226 = t163*trho1rho
1071 t1249 = -0.2e1_dp*t162*t178*t186*t1rhorho + 0.2e1_dp* &
1072 t162*t1157*t2rho - t175*t178*(t1203 + t1218) + 0.2e1_dp* &
1073 t162*t1035*t91*t1rho + 0.2e1_dp*t354*t1226 - 0.2e1_dp* &
1074 t162*t995*t400 + 0.2e1_dp*t162*t163*trhorhorho - 0.2e1_dp &
1075 *t162*t178*trhorho*t989 - t175*t1055*t177*t186 - &
1076 0.2e1_dp*t976*t371 - t175*t397*t1093 + 0.4e1_dp*t980* &
1078 t1262 = 0.2e1_dp*t162*t163*t2rho + t78*t83*t994*t91 - &
1081 t1291 = 0.2e1_dp*t976*t164 + 0.2e1_dp*t162*t1118 - &
1082 0.2e1_dp*t162*t1104 + 0.2e1_dp*t162*t1226 + 0.2e1_dp*t162 &
1083 *t377*t2rho + t78*t83*t1035*t91 - t175*t397*t989 - &
1084 0.2e1_dp*t162*t178*t1148 - t175*t995*t186 + 0.2e1_dp* &
1085 t175*t409*t1122 - t175*t178*t967
1086 t1292 = gamma_var*t1291
1087 t1295 = 0.1e1_dp/t438/t94
1088 t1329 = 0.2e1_dp*t976*t440 + 0.2e1_dp*t162*t1106*t1rho - &
1089 0.2e1_dp*t162*t178*t1097 + 0.2e1_dp*t162*t163*t1rhorho &
1090 + 0.2e1_dp*t162*t361*t2rho + t78*t83*t1055*t91 - t175* &
1091 t404*t989 - 0.2e1_dp*t162*t178*t1042 - t175*t995*t369 + &
1092 0.2e1_dp*t175*t409*t990 - t175*t178*t1093
1093 kfrhorhorho = k_frhorhorho
1095 ex_unifrho1rho = ex_unifrhorho
1096 ex_unif1rhorho = ex_unifrho1rho
1097 ex_unif2rho = -0.3e1_dp/0.4e1_dp*t5*kf2rho
1099 srho1rho = t457*t198*kf2rho + t462/0.2e1_dp - t465 + t197* &
1100 t115*kf2rho/0.2e1_dp + t466
1102 s2rho = -t197*t6*kf2rho/0.2e1_dp - t200/0.2e1_dp
1104 t1385 = 0.1e1_dp/t1380*t469*mu*t101*s
1106 t1387 = 0.1e1_dp/t1386
1109 fxrho1rho = -0.8e1_dp*t471*t472*s2rho + 0.2e1_dp*t204* &
1110 s2rho*srho + 0.2e1_dp*t204*s*srho1rho
1111 fx1rhorho = -0.8e1_dp*t471*s1rho*t103*s2rho + 0.2e1_dp* &
1112 t204*t1389 + 0.2e1_dp*t204*s*s1rhorho
1113 fx2rho = 0.2e1_dp*t204*s*s2rho
1114 ex_ldarhorhorho = ex_unif1rhorho*fx + ex_unif1rho*fx2rho + &
1115 ex_unif2rho*fx1rho + ex_unif*fx1rhorho + ex_unifrho1rho*fx + &
1116 ex_unifrho*fx2rho + ex_unifrhorho*fx - 0.3e1_dp/0.4e1_dp*my_rho &
1117 *t5*kfrhorhorho*fx + t487*fx2rho + ex_unifrho*fx1rho + my_rho &
1118 *ex_unifrho1rho*fx1rho + t208*fx1rhorho + ex_unif2rho*fxrho &
1119 + ex_unif*fxrho1rho + ex_unif1rho*fxrho + my_rho*ex_unif1rhorho* &
1120 fxrho + t491*fxrho1rho + ex_unif*fxrhorho + my_rho*ex_unif2rho* &
1121 fxrhorho + t108*(0.48e2_dp*t1385*srho*t1387*t1389 - &
1122 0.24e2_dp*t1393*t472*t1389 - 0.8e1_dp*t471*srho1rho*t103 &
1123 *s1rho - 0.8e1_dp*t471*t472*s1rhorho + 0.2e1_dp*t204* &
1124 s1rhorho*srho + 0.2e1_dp*t204*s1rho*srho1rho - 0.8e1_dp* &
1125 t471*srhorho*t103*s2rho + 0.2e1_dp*t204*s2rho*srhorho + &
1126 0.2e1_dp*t204*s*(-0.3e1_dp*my_norm_drho/t1342*t459*kf2rho &
1127 - t457*t115*t458 + 0.2e1_dp*t457*t463*kfrho - 0.2e1_dp* &
1128 t457*t461*kf2rho - 0.2e1_dp*t197*t246*kfrho + 0.3e1_dp/ &
1129 0.2e1_dp*t197*t115*kfrhorho + t457*t463*kf2rho - t197*t6 &
1130 *kfrhorhorho/0.2e1_dp - t197*t246*kf2rho - 0.3e1_dp*t99* &
1133 e_rho_rho_rho(ii) = e_rho_rho_rho(ii) + &
1134 scale_ex*ex_ldarhorhorho + scale_ec*( &
1135 e_c_u_01rhorho + gamma_var*t1329*t191 - t451*t1263 + &
1136 e_c_u_0rho1rho + t1292*t191 - t190*t1263 + epsilon_cggarhorho + &
1137 my_rho*(e_c_u_0rhorhorho + gamma_var*(t1067 + 0.2e1_dp*t1115 + &
1138 t1152 + t1249)*t191 - t436*t1263 - t1292*t449 + 0.2e1_dp* &
1139 t190*t1295*t448*t1262 - t190*t439*t1329))
1142 tnorm_drhorhorho = t317*t6*t825 + t1468*k_srho/0.2e1_dp - &
1143 t496*k_srhorho/0.2e1_dp + t1468*k_s1rho/0.2e1_dp + t74* &
1145 tnorm_drho1rho = -t496*k_s1rho/0.2e1_dp - t498/0.2e1_dp
1146 t1482 = a1rho*tnorm_drhorho
1148 t1493 = tnorm_drho*t177
1149 t1504 = t408*tnorm_drho
1151 t1511 = a1rho*tnorm_drho
1153 t1521 = a*tnorm_drho1rho
1154 t1525 = 0.2e1_dp*t175*t409*t553*t369 + 0.2e1_dp*t217* &
1155 t1482*t91 - 0.2e1_dp*t162*t178*tnorm_drhorho*t369 + &
1156 0.2e1_dp*t354*t510 - 0.6e1_dp*t1492*t1493*t400 + 0.6e1_dp &
1157 *t175*t218*t91*trhorho + 0.2e1_dp*t162*t1157*tnorm_drho &
1158 + 0.4e1_dp*t980*t1505 - 0.6e1_dp*t1492*t1493*t370 + &
1159 0.6e1_dp*t175*t1511*t513 - 0.2e1_dp*t162*t397*t1515 - &
1160 0.2e1_dp*t354*t507 + 0.6e1_dp*t175*t1521*t513
1161 t1528 = arhorho*tnorm_drho
1164 t1565 = 0.2e1_dp*t385*tnorm_drho + 0.2e1_dp*t388* &
1165 tnorm_drho + 0.2e1_dp*t168*tnorm_drho1rho + 0.8e1_dp*t417* &
1166 t1511 + 0.12e2_dp*t426*tnorm_drho*t1rho + 0.4e1_dp*t183* &
1169 t1584 = -0.2e1_dp*t354*t530 + 0.2e1_dp*t217*t1528*t91 - &
1170 0.2e1_dp*t217*t517*t1532 - 0.2e1_dp*t217*t1511*t525 + &
1171 0.2e1_dp*t162*t377*tnorm_drho1rho + 0.2e1_dp*t162*t361* &
1172 tnorm_drhorho + 0.4e1_dp*t1545*t1505 + 0.2e1_dp*t217*a* &
1173 tnorm_drhorhorho*t91 + 0.2e1_dp*t175*t409*t1565*t186 - &
1174 0.2e1_dp*t217*t521*t1532 + 0.6e1_dp*t175*t521*t1573 - &
1175 0.6e1_dp*t1060*t1062*t226*t410 + 0.6e1_dp*t175*t517* &
1178 t1612 = t163*tnorm_drho1rho
1179 t1628 = -0.2e1_dp*t162*t404*t506 + 0.2e1_dp*t354*t503 - &
1180 0.2e1_dp*t162*t178*tnorm_drho*t432 - 0.2e1_dp*t162*t178 &
1181 *t553*t1rho - 0.2e1_dp*t162*t404*t529 - 0.2e1_dp*t162* &
1182 t178*t1565*trho - t175*t1126*t226 + 0.4e1_dp*t980*t1608 &
1183 *t370 + 0.2e1_dp*t500*t1612 + 0.12e2_dp*t78*t168* &
1184 tnorm_drho*t91*t427 + 0.2e1_dp*t162*t163*tnorm_drhorhorho &
1185 - t175*t404*t553 + 0.2e1_dp*t175*t1121*t535
1186 t1629 = arho*tnorm_drho1rho
1187 t1633 = tnorm_drho*t369
1188 t1646 = t361*tnorm_drho
1191 t1672 = t418*tnorm_drho
1192 t1676 = t423*tnorm_drho
1193 t1715 = 0.2e1_dp*t999*tnorm_drho + 0.2e1_dp*t1672 + 0.2e1_dp &
1194 *t382*tnorm_drho1rho + 0.2e1_dp*t1676 + 0.2e1_dp*a*trhorho &
1195 *tnorm_drho + 0.2e1_dp*t541*tnorm_drho1rho + 0.2e1_dp*t385* &
1196 tnorm_drhorho + 0.2e1_dp*t388*tnorm_drhorho + 0.2e1_dp*t168* &
1197 tnorm_drhorhorho + 0.8e1_dp*t1187*t517 + 0.24e2_dp*t84* &
1198 t1672 + 0.8e1_dp*t417*t1629 + 0.8e1_dp*t417*t1528 + &
1199 0.24e2_dp*t84*t1676 + 0.24e2_dp*t1196*t548*t1rho + &
1200 0.12e2_dp*t426*tnorm_drho1rho*trho + 0.12e2_dp*t426* &
1201 tnorm_drho*trhorho + 0.8e1_dp*t417*t1482 + 0.12e2_dp*t426* &
1202 tnorm_drhorho*t1rho + 0.4e1_dp*t183*tnorm_drhorhorho
1203 t1722 = 0.2e1_dp*t217*t1629*t91 - 0.2e1_dp*t162*t397* &
1204 t1633 - t175*t397*t1565 - 0.2e1_dp*t162*t178*t226* &
1205 trhorho + 0.2e1_dp*t78*trhorho*t214 + 0.2e1_dp*t500*t1646 &
1206 - 0.2e1_dp*t217*t1521*t525 + 0.2e1_dp*t175*t1109*t1652 - &
1207 0.2e1_dp*t162*t178*tnorm_drho1rho*t186 - 0.2e1_dp*t500* &
1208 t1660 + 0.4e1_dp*t980*t1608*t400 + 0.2e1_dp*t175*t409* &
1209 t226*t432 - t175*t178*t1715 - 0.2e1_dp*t217*t218*t177* &
1211 t1758 = 0.2e1_dp*t354*t214 + 0.2e1_dp*t162*t1646 - &
1212 0.2e1_dp*t162*t1660 + 0.2e1_dp*t162*t1612 + 0.6e1_dp*t175 &
1213 *t218*t1573 + 0.2e1_dp*t217*t1511*t91 + 0.2e1_dp*t217* &
1214 t1521*t91 - 0.2e1_dp*t217*t218*t1532 - 0.2e1_dp*t162* &
1215 t178*t1515 - t175*t404*t226 + 0.2e1_dp*t175*t409*t1652 - &
1217 t1759 = gamma_var*t1758
1219 snorm_drho1rho = snorm_drhorho
1220 t1797 = snorm_drhorho*t103
1221 fxnorm_drho1rho = -0.8e1_dp*t471*t566*s1rho + 0.2e1_dp* &
1222 t204*s1rho*snorm_drho + 0.2e1_dp*t204*s*snorm_drho1rho
1224 e_ndrho_rho_rho(ii) = e_ndrho_rho_rho(ii) + &
1225 scale_ex*(ex_unif1rho*fxnorm_drho + &
1226 ex_unif*fxnorm_drho1rho + ex_unifrho*fxnorm_drho + t487* &
1227 fxnorm_drho + t208*fxnorm_drho1rho + ex_unif*fxnorm_drhorho + &
1228 t491*fxnorm_drhorho + t108*(0.48e2_dp*t1385*snorm_drho* &
1229 t1387*t476 - 0.24e2_dp*t1393*t566*t476 - 0.8e1_dp*t471* &
1230 snorm_drho1rho*t103*srho - 0.8e1_dp*t471*t566*srhorho + &
1231 0.2e1_dp*t204*srhorho*snorm_drho + 0.2e1_dp*t204*srho* &
1232 snorm_drho1rho - 0.8e1_dp*t471*t1797*s1rho + 0.2e1_dp*t204* &
1233 s1rho*snorm_drhorho + 0.2e1_dp*t204*s*(t456*t6*t458 + &
1234 t196*t115*kfrho - t562*kfrhorho/0.2e1_dp + t98*t246))) + &
1235 scale_ec*(t1759*t191 - t230*t449 + hnorm_drhorho + my_rho*( &
1236 gamma_var*(t1525 + t1584 + t1628 + t1722)*t191 - t557*t449 - &
1237 t1759*t559 + 0.2e1_dp*t230*t1761*t448 - t230*t439*t435))
1241 t1878 = 0.4e1_dp*t175*t409*t226*t553 - 0.2e1_dp*t162* &
1242 t178*t605*trho - 0.4e1_dp*t217*t218*t177*t553 + 0.8e1_dp &
1243 *t1545*t1838 + 0.2e1_dp*t78*t581*t171*t91 - 0.4e1_dp* &
1244 t162*t397*t590 - 0.10e2_dp*t175*t586*t525 - t175*t178* &
1245 (0.2e1_dp*t1851 + 0.4e1_dp*t521*tnorm_drho + 0.24e2_dp*t84* &
1246 t1851 + 0.24e2_dp*t1196*t581*trho + 0.24e2_dp*t426* &
1247 tnorm_drhorho*tnorm_drho) - 0.12e2_dp*t1492*t1493*t529 + &
1248 0.8e1_dp*t980*t1838 - 0.4e1_dp*t162*t178*tnorm_drhorho* &
1249 t226 + 0.20e2_dp*t162*t586*t513
1252 t1922 = -0.4e1_dp*t500*t591 + 0.2e1_dp*t175*t409*t605* &
1253 t186 + 0.4e1_dp*t162*t409*t598*trho - 0.2e1_dp*t1889* &
1254 t187 + 0.2e1_dp*t175*t1109*t598 + 0.20e2_dp*t175*t218* &
1255 t91*tnorm_drhorho + 0.10e2_dp*t175*t1851*t91 - 0.4e1_dp* &
1256 t217*t517*t594 - t175*t397*t605 - 0.6e1_dp*t175*t1907* &
1257 t598*t186 - 0.4e1_dp*t162*t178*tnorm_drho*t553 + 0.4e1_dp &
1258 *t78*tnorm_drhorho*t214 - 0.4e1_dp*t217*t521*t594
1263 e_ndrho_ndrho_rho(ii) = e_ndrho_ndrho_rho(ii) + &
1264 scale_ex*(ex_unif* &
1265 fxnorm_drhonorm_drho + t208*fxnorm_drhonorm_drho + t108*( &
1266 0.48e2_dp*t1385*t1933*srho - 0.24e2_dp*t1393*t1937*srho &
1267 - 0.16e2_dp*t471*t1797*snorm_drho + 0.4e1_dp*t204* &
1268 snorm_drhorho*snorm_drho)) + scale_ec*(hnorm_drhonorm_drho + my_rho &
1269 *(gamma_var*(t1878 + t1922)*t191 - t609*t559 - 0.2e1_dp* &
1270 t557*t1927 + 0.2e1_dp*t612*t1761))
1272 t2norm_drho = tnorm_drho
1273 t1952 = t226*t2norm_drho
1274 t1964 = 0.2e1_dp*t168*t2norm_drho + 0.4e1_dp*t183*t2norm_drho
1278 t1972 = a*t2norm_drho
1279 t1990 = 0.2e1_dp*t1972*tnorm_drho + 0.12e2_dp*t426* &
1280 tnorm_drho*t2norm_drho
1282 t2024 = t91*t2norm_drho
1283 t2028 = t78*t2norm_drho
1284 t2031 = -0.20e2_dp*t1492*t1493*t1952 + 0.4e1_dp*t162* &
1285 t409*t598*t2norm_drho - 0.2e1_dp*t1889*t1965 + 0.8e1_dp* &
1286 t1545*t1969 + 0.4e1_dp*t217*t1972*t408*t598 - 0.6e1_dp* &
1287 t175*t1907*t598*t1964 - 0.2e1_dp*t217*t1972*t177*t605 &
1288 - 0.4e1_dp*t217*t218*t177*t1990 + 0.4e1_dp*t175*t409* &
1289 t1990*t226 - 0.24e2_dp*t78*t182*t85*t177*t87*t581* &
1290 t2norm_drho + 0.2e1_dp*t175*t409*t605*t1964 + 0.8e1_dp* &
1291 t980*t1969 - 0.2e1_dp*t162*t178*t605*t2norm_drho - &
1292 0.4e1_dp*t162*t178*t1990*tnorm_drho - 0.10e2_dp*t175* &
1293 t586*t2020 + 0.24e2_dp*t162*t586*t2024 - 0.4e1_dp*t2028* &
1295 t2041 = 0.2e1_dp*t162*t163*t2norm_drho + 0.2e1_dp*t217* &
1296 t1972*t91 - t175*t1965
1297 s2norm_drho = snorm_drho
1299 e_ndrho_ndrho_ndrho(ii) = e_ndrho_ndrho_ndrho(ii) + &
1300 scale_ex*t108*(0.48e2_dp* &
1301 t1385*t1933*s2norm_drho - 0.24e2_dp*t1393*t1937* &
1302 s2norm_drho) + scale_ec*my_rho*(gamma_var*t2031*t191 - t609* &
1303 t439*t2041 - 0.2e1_dp*gamma_var*(0.2e1_dp*t2028*t214 + &
1304 0.10e2_dp*t175*t218*t2024 - 0.2e1_dp*t162*t178* &
1305 tnorm_drho*t1964 - 0.2e1_dp*t217*t218*t2020 - 0.2e1_dp* &
1306 t162*t178*t1952 - 0.2e1_dp*t217*t1972*t594 + 0.2e1_dp* &
1307 t175*t409*t1968 - t175*t178*t1990)*t1927 + 0.2e1_dp*t612 &
1315 END SUBROUTINE pbe_lda_calc
1326 TYPE(xc_rho_set_type),
INTENT(IN) :: rho_set
1327 TYPE(xc_derivative_set_type),
INTENT(IN) :: deriv_set
1328 INTEGER,
INTENT(in) :: grad_deriv
1329 TYPE(section_vals_type),
POINTER :: pbe_params
1331 CHARACTER(len=*),
PARAMETER :: routinen =
'pbe_lsd_eval'
1333 INTEGER :: handle, npoints, param
1334 INTEGER,
DIMENSION(2, 3) :: bo
1335 REAL(kind=
dp) :: epsilon_rho, scale_ec, scale_ex
1336 REAL(kind=
dp),
CONTIGUOUS,
DIMENSION(:, :, :),
POINTER :: dummy, e_0, e_ndr, e_ndr_ndr, &
1337 e_ndr_ra, e_ndr_rb, e_ndra, e_ndra_ndra, e_ndra_ra, e_ndrb, e_ndrb_ndrb, e_ndrb_rb, e_ra, &
1338 e_ra_ra, e_ra_rb, e_rb, e_rb_rb, norm_drho, norm_drhoa, norm_drhob, rhoa, rhob
1339 TYPE(xc_derivative_type),
POINTER :: deriv
1341 CALL timeset(routinen, handle)
1345 rhoa=rhoa, rhob=rhob, norm_drhoa=norm_drhoa, &
1346 norm_drhob=norm_drhob, norm_drho=norm_drho, &
1347 rho_cutoff=epsilon_rho, &
1349 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
1358 e_ndra_ndra => dummy
1359 e_ndrb_ndrb => dummy
1369 IF (grad_deriv >= 0)
THEN
1371 allocate_deriv=.true.)
1374 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1376 allocate_deriv=.true.)
1379 allocate_deriv=.true.)
1382 allocate_deriv=.true.)
1385 allocate_deriv=.true.)
1388 allocate_deriv=.true.)
1391 IF (grad_deriv >= 2 .OR. grad_deriv == -2)
THEN
1393 allocate_deriv=.true.)
1396 allocate_deriv=.true.)
1399 allocate_deriv=.true.)
1402 allocate_deriv=.true.)
1405 allocate_deriv=.true.)
1408 allocate_deriv=.true.)
1411 allocate_deriv=.true.)
1423 IF (grad_deriv >= 3 .OR. grad_deriv == -3)
THEN
1436 CALL pbe_lsd_calc( &
1437 rhoa=rhoa, rhob=rhob, norm_drho=norm_drho, norm_drhoa=norm_drhoa, &
1438 norm_drhob=norm_drhob, e_0=e_0, e_ra=e_ra, e_rb=e_rb, &
1439 e_ra_ndra=e_ndra_ra, &
1440 e_rb_ndrb=e_ndrb_rb, e_ndr_ndr=e_ndr_ndr, &
1441 e_ndra_ndra=e_ndra_ndra, e_ndrb_ndrb=e_ndrb_ndrb, e_ndr=e_ndr, &
1442 e_ndra=e_ndra, e_ndrb=e_ndrb, e_ra_ra=e_ra_ra, &
1443 e_ra_rb=e_ra_rb, e_rb_rb=e_rb_rb, e_ra_ndr=e_ndr_ra, &
1444 e_rb_ndr=e_ndr_rb, &
1445 grad_deriv=grad_deriv, npoints=npoints, &
1446 epsilon_rho=epsilon_rho, &
1447 param=param, scale_ec=scale_ec, scale_ex=scale_ex)
1450 CALL timestop(handle)
1486 SUBROUTINE pbe_lsd_calc(rhoa, rhob, norm_drho, norm_drhoa, norm_drhob, &
1487 e_0, e_ra, e_rb, e_ra_ndra, e_rb_ndrb, e_ndr_ndr, &
1488 e_ndra_ndra, e_ndrb_ndrb, e_ndr, &
1489 e_ndra, e_ndrb, e_ra_ra, e_ra_rb, e_rb_rb, e_ra_ndr, e_rb_ndr, &
1490 grad_deriv, npoints, epsilon_rho, param, scale_ec, scale_ex)
1491 REAL(kind=
dp),
DIMENSION(*),
INTENT(in) :: rhoa, rhob, norm_drho, norm_drhoa, &
1493 REAL(kind=
dp),
DIMENSION(*),
INTENT(inout) :: e_0, e_ra, e_rb, e_ra_ndra, e_rb_ndrb, &
1494 e_ndr_ndr, e_ndra_ndra, e_ndrb_ndrb, e_ndr, e_ndra, e_ndrb, e_ra_ra, e_ra_rb, e_rb_rb, &
1496 INTEGER,
INTENT(in) :: grad_deriv, npoints
1497 REAL(kind=
dp),
INTENT(in) :: epsilon_rho
1498 INTEGER,
INTENT(in) :: param
1499 REAL(kind=
dp),
INTENT(in) :: scale_ec, scale_ex
1502 REAL(kind=
dp) :: a, a1rhoa, a1rhob, a_1, a_2, a_3, alpha_1_1, alpha_1_2, alpha_1_3, alpha_c, &
1503 alpha_c1rhoa, alpha_c1rhob, alpha_crhoa, alpha_crhob, arhoa, arhoarhoa, arhoarhob, arhob, &
1504 arhobrhob, beta, beta_1_1, beta_1_2, beta_1_3, beta_2_1, beta_2_2, beta_2_3, beta_3_1, &
1505 beta_3_2, beta_3_3, beta_4_1, beta_4_2, beta_4_3, chi, chirhoa, chirhoarhoa, chirhoarhob, &
1506 chirhob, chirhobrhob, e_c_u_0, e_c_u_01rhoa, e_c_u_01rhob, e_c_u_0rhoa, e_c_u_0rhoarhoa, &
1507 e_c_u_0rhoarhob, e_c_u_0rhob, e_c_u_0rhobrhob, e_c_u_1rhoa, e_c_u_1rhob, epsilon_c_unif, &
1508 epsilon_c_unif1rhoa, epsilon_c_unif1rhob
1509 REAL(kind=
dp) :: epsilon_c_unifrhoa, epsilon_c_unifrhoarhoa, epsilon_c_unifrhoarhob, &
1510 epsilon_c_unifrhob, epsilon_c_unifrhobrhob, epsilon_cgga, epsilon_cggarhoa, &
1511 epsilon_cggarhob, ex_unif_a, ex_unif_a1rhoa, ex_unif_arhoa, ex_unif_b, ex_unif_b1rhob, &
1512 ex_unif_brhob, f, f1rhoa, f1rhob, frhoa, frhoarhoa, frhoarhob, frhob, frhobrhob, fx_a, &
1513 fx_a1rhoa, fx_anorm_drhoa, fx_arhoa, fx_b, fx_b1rhob, fx_bnorm_drhob, fx_brhob, &
1514 gamma_var, hnorm_drho, k_frhoa, k_frhoarhoa, k_frhoarhob, k_frhob, k_s, k_s1rhoa, &
1515 k_s1rhob, k_srhoa, k_srhob, kappa, kf_a, kf_arhoa, kf_arhoarhoa, kf_b, kf_brhob, &
1517 REAL(kind=
dp) :: my_norm_drho, my_norm_drhoa, my_norm_drhob, my_rho, my_rhoa, my_rhob, p_1, &
1518 p_2, p_3, phi, phi1rhoa, phi1rhob, phirhoa, phirhoarhoa, phirhoarhob, phirhob, &
1519 phirhobrhob, rs, rsrhoa, rsrhoarhoa, rsrhoarhob, rsrhob, rsrhobrhob, s_a, s_a1rhoa, &
1520 s_anorm_drhoa, s_arhoa, s_b, s_b1rhob, s_bnorm_drhob, s_brhob, t, t1, t100, t1000, t1001, &
1521 t101, t102, t103, t1031, t1033, t1038, t104, t105, t1050, t1069, t107, t1071, t108, t110, &
1522 t1104, t1106, t111, t112, t113, t115, t116, t1164, t118, t119, t1193, t12, t122, t1228, &
1523 t123, t1231, t124, t125, t126, t1269, t1283, t1285, t1286, t1288, t129
1524 REAL(kind=
dp) :: t1291, t1293, t130, t1304, t131, t1327, t133, t1330, t1342, t1346, t135, &
1525 t137, t1377, t14, t140, t1411, t142, t143, t1440, t146, t1462, t1465, t147, t148, t1482, &
1526 t1489, t1492, t15, t150, t1501, t1514, t1520, t1529, t153, t1550, t1552, t1555, t156, &
1527 t1588, t1590, t1591, t1599, t1602, t1603, t162, t163, t1630, t1632, t1635, t1638, t164, &
1528 t1640, t165, t167, t1674, t1677, t1680, t1698, t171, t1711, t1712, t1713, t1739, t1741, &
1529 t1743, t1748, t175, t176, t1765, t1766, t1767, t177, t178, t179, t18, t1801, t1829, t183, &
1530 t1830, t1831, t1865, t187, t1871, t1876, t1888, t190, t1901, t191
1531 REAL(kind=
dp) :: t192, t1922, t194, t1949, t198, t199, t1rhoa, t1rhob, t2, t20, t200, t201, &
1532 t205, t21, t211, t212, t213, t215, t219, t22, t220, t221, t222, t226, t23, t232, t233, &
1533 t234, t240, t242, t244, t245, t246, t248, t249, t250, t252, t254, t256, t257, t259, t262, &
1534 t266, t268, t269, t27, t272, t273, t274, t277, t278, t28, t280, t281, t282, t284, t285, &
1535 t286, t289, t293, t294, t297, t298, t299, t3, t302, t303, t305, t306, t310, t311, t312, &
1536 t313, t314, t317, t318, t32, t321, t324, t325, t326, t329, t335, t336, t337, t34, t340, &
1537 t341, t344, t346, t350, t368, t38, t382, t39, t396, t4, t40
1538 REAL(kind=
dp) :: t403, t405, t407, t409, t41, t410, t411, t413, t415, t417, t427, t429, &
1539 t432, t436, t439, t442, t444, t445, t45, t453, t456, t457, t46, t460, t466, t467, t468, &
1540 t471, t472, t475, t477, t481, t488, t493, t494, t5, t50, t502, t505, t506, t518, t519, &
1541 t52, t523, t525, t536, t538, t543, t544, t548, t549, t550, t556, t56, t561, t563, t564, &
1542 t57, t576, t578, t579, t58, t580, t588, t59, t590, t595, t596, t6, t600, t606, t611, &
1543 t624, t626, t627, t628, t63, t636, t638, t64, t643, t644, t648, t654, t659, t66, t672, &
1544 t674, t675, t676, t681, t682, t687, t69, t7, t70, t705, t708, t71, t711
1545 REAL(kind=
dp) :: t72, t726, t73, t733, t736, t74, t745, t75, t750, t755, t763, t767, t768, &
1546 t77, t775, t776, t779, t78, t785, t789, t79, t795, t798, t8, t80, t801, t812, t82, t820, &
1547 t821, t822, t823, t825, t828, t839, t84, t840, t85, t851, t858, t865, t867, t868, t87, &
1548 t876, t879, t88, t880, t9, t90, t904, t908, t909, t91, t911, t914, t917, t919, t92, t924, &
1549 t93, t936, t94, t944, t95, t953, t959, t96, t962, t965, t966, t967, t97, t98, t985, t998, &
1550 t999, tnorm_drho, trhoa, trhoanorm_drho, trhoarhoa, trhoarhob, trhob, trhobnorm_drho, &
1559 beta = 0.66725e-1_dp
1560 mu = beta*
pi**2/0.3e1_dp
1564 beta = 0.66725e-1_dp
1565 mu = beta*
pi**2/0.3e1_dp
1570 mu = 0.1e2_dp/0.81e2_dp
1572 cpabort(
"Unsupported parametrization")
1575 gamma_var = (0.1e1_dp - log(0.2e1_dp))/
pi**2
1578 alpha_1_1 = 0.21370e0_dp
1579 beta_1_1 = 0.75957e1_dp
1580 beta_2_1 = 0.35876e1_dp
1581 beta_3_1 = 0.16382e1_dp
1582 beta_4_1 = 0.49294e0_dp
1585 alpha_1_2 = 0.20548e0_dp
1586 beta_1_2 = 0.141189e2_dp
1587 beta_2_2 = 0.61977e1_dp
1588 beta_3_2 = 0.33662e1_dp
1589 beta_4_2 = 0.62517e0_dp
1592 alpha_1_3 = 0.11125e0_dp
1593 beta_1_3 = 0.10357e2_dp
1594 beta_2_3 = 0.36231e1_dp
1595 beta_3_3 = 0.88026e0_dp
1596 beta_4_3 = 0.49671e0_dp
1597 t3 = 3**(0.1e1_dp/0.3e1_dp)
1598 t4 = 4**(0.1e1_dp/0.3e1_dp)
1604 SELECT CASE (grad_deriv)
1608 my_rhoa = max(rhoa(ii), 0.0_dp)
1609 my_rhob = max(rhob(ii), 0.0_dp)
1610 my_rho = my_rhoa + my_rhob
1611 IF (my_rho > epsilon_rho)
THEN
1612 my_rhoa = max(epsilon(0.0_dp)*1.e4_dp, my_rhoa)
1613 my_rhob = max(epsilon(0.0_dp)*1.e4_dp, my_rhob)
1614 my_rho = my_rhoa + my_rhob
1615 my_norm_drho = norm_drho(ii)
1616 my_norm_drhoa = norm_drhoa(ii)
1617 my_norm_drhob = norm_drhob(ii)
1619 t1 = my_rhoa - my_rhob
1620 t2 = 0.1e1_dp/my_rho
1623 t9 = t8**(0.1e1_dp/0.3e1_dp)
1625 t12 = 0.1e1_dp + alpha_1_1*rs
1629 t20 = p_1 + 0.1e1_dp
1632 t23 = beta_1_1*t15 + beta_2_1*rs + beta_3_1*t18 + t22
1633 t27 = 0.1e1_dp + t14/t23/0.2e1_dp
1635 e_c_u_0 = -0.2e1_dp*a_1*t12*t28
1636 t32 = 0.1e1_dp + alpha_1_2*rs
1638 t38 = p_2 + 0.1e1_dp
1641 t41 = beta_1_2*t15 + beta_2_2*rs + beta_3_2*t18 + t40
1642 t45 = 0.1e1_dp + t34/t41/0.2e1_dp
1644 t50 = 0.1e1_dp + alpha_1_3*rs
1646 t56 = p_3 + 0.1e1_dp
1649 t59 = beta_1_3*t15 + beta_2_3*rs + beta_3_3*t18 + t58
1650 t63 = 0.1e1_dp + t52/t59/0.2e1_dp
1652 alpha_c = 0.2e1_dp*a_3*t50*t64
1653 t66 = 2**(0.1e1_dp/0.3e1_dp)
1655 t70 = 0.1e1_dp + chi
1656 t71 = t70**(0.1e1_dp/0.3e1_dp)
1658 t73 = 0.1e1_dp - chi
1659 t74 = t73**(0.1e1_dp/0.3e1_dp)
1661 f = (t72 + t75 - 0.2e1_dp)*t69
1663 t78 = 0.9e1_dp/0.8e1_dp/t69
1666 t82 = t78*(0.1e1_dp - t80)
1667 t84 = -0.2e1_dp*a_2*t32*t46 - e_c_u_0
1669 epsilon_c_unif = e_c_u_0 + t77*t82 + t85*t80
1672 phi = t87/0.2e1_dp + t88/0.2e1_dp
1674 t92 = t91**(0.1e1_dp/0.3e1_dp)
1679 t96 = my_norm_drho*t95
1682 t = t96*t98/0.2e1_dp
1683 t100 = 0.1e1_dp/gamma_var
1685 t102 = epsilon_c_unif*t100
1688 t105 = 0.1e1_dp/t104
1689 t107 = exp(-t102*t105)
1690 t108 = t107 - 0.1e1_dp
1692 t110 = gamma_var*t104
1695 t113 = 0.1e1_dp + t112
1698 t118 = 0.1e1_dp + t112 + t115*t116
1699 t119 = 0.1e1_dp/t118
1700 t122 = 0.1e1_dp + t101*t111*t113*t119
1702 epsilon_cgga = epsilon_c_unif + t110*t123
1705 t126 = t125**(0.1e1_dp/0.3e1_dp)
1707 ex_unif_a = -0.3e1_dp/0.4e1_dp*t7*kf_a
1708 t129 = 0.1e1_dp/kf_a
1709 t130 = my_norm_drhoa*t129
1710 t131 = 0.1e1_dp/my_rhoa
1711 s_a = t130*t131/0.2e1_dp
1713 t135 = 0.1e1_dp/kappa
1714 t137 = 0.1e1_dp + mu*t133*t135
1715 fx_a = 0.1e1_dp + kappa - kappa/t137
1716 t140 = my_rhoa*ex_unif_a
1718 t143 = t142**(0.1e1_dp/0.3e1_dp)
1720 ex_unif_b = -0.3e1_dp/0.4e1_dp*t7*kf_b
1721 t146 = 0.1e1_dp/kf_b
1722 t147 = my_norm_drhob*t146
1723 t148 = 0.1e1_dp/my_rhob
1724 s_b = t147*t148/0.2e1_dp
1726 t153 = 0.1e1_dp + mu*t150*t135
1727 fx_b = 0.1e1_dp + kappa - kappa/t153
1728 t156 = my_rhob*ex_unif_b
1730 IF (grad_deriv >= 0)
THEN
1731 e_0(ii) = e_0(ii) + &
1732 scale_ex*(0.2e1_dp*t140*fx_a + 0.2e1_dp*t156*fx_b) &
1733 /0.2e1_dp + scale_ec*my_rho*epsilon_cgga
1737 t163 = 0.1e1_dp/t162
1741 t167 = 0.1e1_dp/t165*t7
1742 rsrhoa = -t6*t167*t163/0.12e2_dp
1743 t171 = a_1*alpha_1_1
1745 t176 = 0.1e1_dp/t175
1748 t179 = beta_1_1*t178
1751 t190 = t179*rsrhoa/0.2e1_dp + beta_2_1*rsrhoa + 0.3e1_dp/ &
1752 0.2e1_dp*t183*rsrhoa + t22*t20*rsrhoa*t187
1755 e_c_u_0rhoa = -0.2e1_dp*t171*rsrhoa*t28 + t177*t192
1756 t194 = a_2*alpha_1_2
1758 t199 = 0.1e1_dp/t198
1760 t201 = beta_1_2*t178
1762 t211 = t201*rsrhoa/0.2e1_dp + beta_2_2*rsrhoa + 0.3e1_dp/ &
1763 0.2e1_dp*t205*rsrhoa + t40*t38*rsrhoa*t187
1766 e_c_u_1rhoa = -0.2e1_dp*t194*rsrhoa*t46 + t200*t213
1767 t215 = a_3*alpha_1_3
1769 t220 = 0.1e1_dp/t219
1771 t222 = beta_1_3*t178
1773 t232 = t222*rsrhoa/0.2e1_dp + beta_2_3*rsrhoa + 0.3e1_dp/ &
1774 0.2e1_dp*t226*rsrhoa + t58*t56*rsrhoa*t187
1777 alpha_crhoa = 0.2e1_dp*t215*rsrhoa*t64 - t221*t234
1778 frhoa = (0.4e1_dp/0.3e1_dp*t71*chirhoa - 0.4e1_dp/0.3e1_dp &
1780 t240 = alpha_crhoa*f
1781 t242 = alpha_c*frhoa
1785 t248 = 0.4e1_dp*t77*t246
1786 t249 = e_c_u_1rhoa - e_c_u_0rhoa
1790 t256 = 0.4e1_dp*t85*t254
1791 epsilon_c_unifrhoa = e_c_u_0rhoa + t240*t82 + t242*t82 - t248 &
1792 + t250*t80 + t252*t80 + t256
1795 phirhoa = t257*chirhoa/0.3e1_dp - t259*chirhoa/0.3e1_dp
1797 k_frhoa = t3/t262*t90/0.3e1_dp
1799 k_srhoa = t266*k_frhoa*t7
1800 t268 = 0.1e1_dp/t103
1801 t269 = my_norm_drho*t268
1803 t273 = 0.1e1_dp/t272
1807 trhoa = -t269*t98*phirhoa/0.2e1_dp - t96*t274*k_srhoa/ &
1808 0.2e1_dp - t278/0.2e1_dp
1810 t281 = 0.1e1_dp/t280
1811 t282 = epsilon_c_unifrhoa*t100
1813 t285 = 0.1e1_dp/t284
1815 t289 = -t282*t105 + 0.3e1_dp*t102*t286
1816 arhoa = -t101*t281*t289*t107
1817 t293 = gamma_var*t103
1824 t305 = 0.2e1_dp*t303*trhoa
1828 t312 = 0.1e1_dp/t311
1833 t321 = t302 + t305 + 0.2e1_dp*t314*arhoa + 0.4e1_dp*t318*trhoa
1834 t324 = 0.2e1_dp*t297*t299 + t101*t111*t306*t119 - t310* &
1836 t325 = 0.1e1_dp/t122
1838 epsilon_cggarhoa = epsilon_c_unifrhoa + 0.3e1_dp*t293*t294 + &
1841 kf_arhoa = t124/t329*t90/0.3e1_dp
1842 ex_unif_arhoa = -0.3e1_dp/0.4e1_dp*t7*kf_arhoa
1844 t336 = 0.1e1_dp/t335
1845 t337 = my_norm_drhoa*t336
1847 t341 = 0.1e1_dp/t340
1848 s_arhoa = -t337*t131*kf_arhoa/0.2e1_dp - t130*t341/0.2e1_dp
1850 t346 = 0.1e1_dp/t344*mu
1851 fx_arhoa = 0.2e1_dp*t346*s_a*s_arhoa
1852 t350 = my_rhoa*ex_unif_arhoa
1854 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1855 e_ra(ii) = e_ra(ii) + &
1856 scale_ex*(0.2e1_dp*ex_unif_a*fx_a + 0.2e1_dp* &
1857 t350*fx_a + 0.2e1_dp*t140*fx_arhoa)/0.2e1_dp + scale_ec*( &
1858 epsilon_cgga + my_rho*epsilon_cggarhoa)
1861 chirhob = -t2 - t164
1863 t368 = t179*rsrhob/0.2e1_dp + beta_2_1*rsrhob + 0.3e1_dp/ &
1864 0.2e1_dp*t183*rsrhob + t22*t20*rsrhob*t187
1865 e_c_u_0rhob = -0.2e1_dp*t171*rsrhob*t28 + t177*t368*t191
1866 t382 = t201*rsrhob/0.2e1_dp + beta_2_2*rsrhob + 0.3e1_dp/ &
1867 0.2e1_dp*t205*rsrhob + t40*t38*rsrhob*t187
1868 e_c_u_1rhob = -0.2e1_dp*t194*rsrhob*t46 + t200*t382*t212
1869 t396 = t222*rsrhob/0.2e1_dp + beta_2_3*rsrhob + 0.3e1_dp/ &
1870 0.2e1_dp*t226*rsrhob + t58*t56*rsrhob*t187
1871 alpha_crhob = 0.2e1_dp*t215*rsrhob*t64 - t221*t396*t233
1872 frhob = (0.4e1_dp/0.3e1_dp*t71*chirhob - 0.4e1_dp/0.3e1_dp &
1874 t403 = alpha_crhob*f
1875 t405 = alpha_c*frhob
1877 t409 = 0.4e1_dp*t77*t407
1878 t410 = e_c_u_1rhob - e_c_u_0rhob
1882 t417 = 0.4e1_dp*t85*t415
1883 epsilon_c_unifrhob = e_c_u_0rhob + t403*t82 + t405*t82 - t409 &
1884 + t411*t80 + t413*t80 + t417
1885 phirhob = t257*chirhob/0.3e1_dp - t259*chirhob/0.3e1_dp
1887 k_srhob = t266*k_frhob*t7
1888 trhob = -t269*t98*phirhob/0.2e1_dp - t96*t274*k_srhob/ &
1889 0.2e1_dp - t278/0.2e1_dp
1890 t427 = epsilon_c_unifrhob*t100
1892 t432 = -t427*t105 + 0.3e1_dp*t102*t429
1893 arhob = -t101*t281*t432*t107
1897 t444 = 0.2e1_dp*t303*trhob
1899 t453 = t442 + t444 + 0.2e1_dp*t314*arhob + 0.4e1_dp*t318*trhob
1900 t456 = 0.2e1_dp*t297*t439 + t101*t111*t445*t119 - t310* &
1903 epsilon_cggarhob = epsilon_c_unifrhob + 0.3e1_dp*t293*t436 + &
1906 kf_brhob = t124/t460*t90/0.3e1_dp
1907 ex_unif_brhob = -0.3e1_dp/0.4e1_dp*t7*kf_brhob
1909 t467 = 0.1e1_dp/t466
1910 t468 = my_norm_drhob*t467
1912 t472 = 0.1e1_dp/t471
1913 s_brhob = -t468*t148*kf_brhob/0.2e1_dp - t147*t472/0.2e1_dp
1915 t477 = 0.1e1_dp/t475*mu
1916 fx_brhob = 0.2e1_dp*t477*s_b*s_brhob
1917 t481 = my_rhob*ex_unif_brhob
1919 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1920 e_rb(ii) = e_rb(ii) + &
1921 scale_ex*(0.2e1_dp*ex_unif_b*fx_b + 0.2e1_dp* &
1922 t481*fx_b + 0.2e1_dp*t156*fx_brhob)/0.2e1_dp + scale_ec*( &
1923 epsilon_cgga + my_rho*epsilon_cggarhob)
1927 tnorm_drho = t488*t2/0.2e1_dp
1930 t502 = 0.2e1_dp*t303*tnorm_drho + 0.4e1_dp*t318*tnorm_drho
1931 t505 = 0.2e1_dp*t297*t298*tnorm_drho + 0.2e1_dp*t493* &
1932 t494*t119 - t310*t313*t502
1934 hnorm_drho = t110*t506
1936 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1937 e_ndr(ii) = e_ndr(ii) + &
1938 scale_ec*my_rho*hnorm_drho
1941 s_anorm_drhoa = t129*t131/0.2e1_dp
1942 fx_anorm_drhoa = 0.2e1_dp*t346*s_a*s_anorm_drhoa
1944 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1945 e_ndra(ii) = e_ndra(ii) + &
1946 scale_ex*t140*fx_anorm_drhoa
1949 s_bnorm_drhob = t146*t148/0.2e1_dp
1950 fx_bnorm_drhob = 0.2e1_dp*t477*s_b*s_bnorm_drhob
1952 IF (grad_deriv >= 1 .OR. grad_deriv == -1)
THEN
1953 e_ndrb(ii) = e_ndrb(ii) + &
1954 scale_ex*t156*fx_bnorm_drhob
1957 IF (grad_deriv >= 2 .OR. grad_deriv == -2)
THEN
1958 t518 = 0.1e1_dp/t162/my_rho
1960 chirhoarhoa = -0.2e1_dp*t163 + 0.2e1_dp*t519
1963 rsrhoarhoa = -t6/t165/t8*t523/t525/0.18e2_dp + &
1964 t6*t167*t518/0.6e1_dp
1965 t536 = alpha_1_1*rsrhoa
1966 t538 = t176*t190*t191
1970 t549 = beta_1_1*t548
1972 t556 = beta_3_1*t178
1975 t564 = 0.1e1_dp/t563
1979 t580 = 0.1e1_dp/t579
1980 e_c_u_0rhoarhoa = -0.2e1_dp*t171*rsrhoarhoa*t28 + 0.2e1_dp* &
1981 t536*t538 - 0.2e1_dp*t543*t544*t191 + t177*(-t549*t550 &
1982 /0.4e1_dp + t179*rsrhoarhoa/0.2e1_dp + beta_2_1*rsrhoarhoa + &
1983 0.3e1_dp/0.4e1_dp*t556*t550 + 0.3e1_dp/0.2e1_dp*t183* &
1984 rsrhoarhoa + t22*t561*t550*t564 + t22*t20*rsrhoarhoa* &
1985 t187 - t22*t20*t550*t564)*t191 + t578*t544*t580*t14/ &
1987 e_c_u_01rhoa = e_c_u_0rhoa
1988 t588 = alpha_1_2*rsrhoa
1989 t590 = t199*t211*t212
1992 t600 = beta_1_2*t548
1993 t606 = beta_3_2*t178
1998 t628 = 0.1e1_dp/t627
1999 t636 = alpha_1_3*rsrhoa
2000 t638 = t220*t232*t233
2003 t648 = beta_1_3*t548
2004 t654 = beta_3_3*t178
2009 t676 = 0.1e1_dp/t675
2010 alpha_c1rhoa = alpha_crhoa
2014 frhoarhoa = (0.4e1_dp/0.9e1_dp*t681*t682 + 0.4e1_dp/ &
2015 0.3e1_dp*t71*chirhoarhoa + 0.4e1_dp/0.9e1_dp*t687*t682 - &
2016 0.4e1_dp/0.3e1_dp*t74*chirhoarhoa)*t69
2018 t705 = alpha_c1rhoa*f
2019 t708 = alpha_c*f1rhoa
2021 t726 = e_c_u_1rhoa - e_c_u_01rhoa
2024 t745 = -0.4e1_dp*t77*t245*chirhoarhoa + (-0.2e1_dp*t194* &
2025 rsrhoarhoa*t46 + 0.2e1_dp*t588*t590 - 0.2e1_dp*t595*t596* &
2026 t212 + t200*(-t600*t550/0.4e1_dp + t201*rsrhoarhoa/ &
2027 0.2e1_dp + beta_2_2*rsrhoarhoa + 0.3e1_dp/0.4e1_dp*t606*t550 &
2028 + 0.3e1_dp/0.2e1_dp*t205*rsrhoarhoa + t40*t611*t550* &
2029 t564 + t40*t38*rsrhoarhoa*t187 - t40*t38*t550*t564)* &
2030 t212 + t626*t596*t628*t34/0.2e1_dp - e_c_u_0rhoarhoa)*f* &
2031 t80 + t249*f1rhoa*t80 + 0.4e1_dp*t250*t254 + t726*frhoa* &
2032 t80 + t84*frhoarhoa*t80 + 0.4e1_dp*t252*t254 + 0.4e1_dp* &
2033 t733*t254 + 0.4e1_dp*t736*t254 + 0.12e2_dp*t85*t79*t682 &
2034 + 0.4e1_dp*t85*t244*chirhoarhoa
2035 epsilon_c_unifrhoarhoa = e_c_u_0rhoarhoa + (0.2e1_dp*t215* &
2036 rsrhoarhoa*t64 - 0.2e1_dp*t636*t638 + 0.2e1_dp*t643*t644* &
2037 t233 - t221*(-t648*t550/0.4e1_dp + t222*rsrhoarhoa/ &
2038 0.2e1_dp + beta_2_3*rsrhoarhoa + 0.3e1_dp/0.4e1_dp*t654*t550 &
2039 + 0.3e1_dp/0.2e1_dp*t226*rsrhoarhoa + t58*t659*t550* &
2040 t564 + t58*t56*rsrhoarhoa*t187 - t58*t56*t550*t564)* &
2041 t233 - t674*t644*t676*t52/0.2e1_dp)*f*t82 + alpha_crhoa &
2042 *f1rhoa*t82 - 0.4e1_dp*t240*t246 + alpha_c1rhoa*frhoa*t82 &
2043 + alpha_c*frhoarhoa*t82 - 0.4e1_dp*t242*t246 - 0.4e1_dp* &
2044 t705*t246 - 0.4e1_dp*t708*t246 - 0.12e2_dp*t77*t711*t682 &
2046 epsilon_c_unif1rhoa = e_c_u_01rhoa + t705*t82 + t708*t82 - &
2047 t248 + t733*t80 + t736*t80 + t256
2050 phirhoarhoa = -t750*t682/0.9e1_dp + t257*chirhoarhoa/ &
2051 0.3e1_dp - t755*t682/0.9e1_dp - t259*chirhoarhoa/0.3e1_dp
2054 k_frhoarhoa = -0.2e1_dp/0.9e1_dp*t3/t262/t91*t763
2055 t767 = 0.1e1_dp/t94/t93
2058 t775 = my_norm_drho*t105*t97
2061 t785 = t269*t277*phirhoa/0.2e1_dp
2065 t801 = t96*t798*k_srhoa/0.2e1_dp
2067 trhoarhoa = t775*t776*phi1rhoa + t779*t776*k_s1rhoa/ &
2068 0.2e1_dp + t785 - t269*t98*phirhoarhoa/0.2e1_dp + t779*t789 &
2069 *phi1rhoa/0.2e1_dp + t795*t789*k_s1rhoa + t801 - t96*t274* &
2070 (-t767*t768*t523/0.2e1_dp + t266*k_frhoarhoa*t7)/ &
2071 0.2e1_dp + t269*t277*phi1rhoa/0.2e1_dp + t96*t798*k_s1rhoa &
2073 t1rhoa = -t269*t98*phi1rhoa/0.2e1_dp - t96*t274*k_s1rhoa &
2074 /0.2e1_dp - t278/0.2e1_dp
2075 t820 = t101/t280/t108
2078 t823 = epsilon_c_unif1rhoa*t100
2079 t825 = t285*phi1rhoa
2080 t828 = -t823*t105 + 0.3e1_dp*t102*t825
2081 t839 = 0.1e1_dp/t284/phi
2084 arhoarhoa = 0.2e1_dp*t820*t822*t828 - t101*t281*( &
2085 -epsilon_c_unifrhoarhoa*t100*t105 + 0.3e1_dp*t282*t825 + &
2086 0.3e1_dp*t823*t286 - 0.12e2_dp*t102*t840*phi1rhoa + &
2087 0.3e1_dp*t102*t285*phirhoarhoa)*t107 - t851*t289*t828* &
2089 a1rhoa = -t101*t281*t828*t107
2090 t858 = gamma_var*phi
2092 t867 = 0.2e1_dp*t303*t1rhoa
2094 t876 = t865 + t867 + 0.2e1_dp*t314*a1rhoa + 0.4e1_dp*t318*t1rhoa
2095 t879 = 0.2e1_dp*t297*t298*t1rhoa + t101*t111*t868*t119 &
2099 t908 = arhoarhoa*t111
2101 t911 = 0.2e1_dp*t909*t1rhoa
2102 t914 = 0.2e1_dp*a1rhoa*t*trhoa
2103 t917 = 0.2e1_dp*a*t1rhoa*trhoa
2104 t919 = 0.2e1_dp*t303*trhoarhoa
2106 t936 = t113/t311/t118
2109 t959 = t908 + t911 + t914 + t917 + t919 + 0.2e1_dp*a1rhoa*t116 &
2110 *arhoa + 0.8e1_dp*t944*arhoa*t1rhoa + 0.2e1_dp*t314* &
2111 arhoarhoa + 0.8e1_dp*t944*trhoa*a1rhoa + 0.12e2_dp*t953* &
2112 trhoa*t1rhoa + 0.4e1_dp*t318*trhoarhoa
2113 t962 = 0.2e1_dp*t101*t1rhoa*t299 + 0.2e1_dp*t297*t868* &
2114 t119*trhoa - 0.2e1_dp*t297*t313*trhoa*t876 + 0.2e1_dp* &
2115 t297*t298*trhoarhoa + 0.2e1_dp*t297*t904*t1rhoa + t101* &
2116 t111*(t908 + t911 + t914 + t917 + t919)*t119 - t310*t924* &
2117 t876 - 0.2e1_dp*t297*t313*t321*t1rhoa - t310*t868*t312* &
2118 t321 + 0.2e1_dp*t310*t936*t321*t876 - t310*t313*t959
2120 t966 = 0.1e1_dp/t965
2122 kf_arhoarhoa = -0.2e1_dp/0.9e1_dp*t124/t329/t125*t763
2123 ex_unif_a1rhoa = ex_unif_arhoa
2127 t999 = 0.1e1_dp/t344/t137*t998
2129 t1001 = s_arhoa*t135
2130 fx_a1rhoa = 0.2e1_dp*t346*s_a*s_a1rhoa
2132 e_ra_ra(ii) = e_ra_ra(ii) + &
2133 scale_ex*(0.2e1_dp*ex_unif_a1rhoa*fx_a + &
2134 0.2e1_dp*ex_unif_a*fx_a1rhoa + 0.2e1_dp*ex_unif_arhoa*fx_a - &
2135 0.3e1_dp/0.2e1_dp*my_rhoa*t7*kf_arhoarhoa*fx_a + 0.2e1_dp* &
2136 t350*fx_a1rhoa + 0.2e1_dp*ex_unif_a*fx_arhoa + 0.2e1_dp*my_rhoa &
2137 *ex_unif_a1rhoa*fx_arhoa + 0.2e1_dp*t140*(-0.8e1_dp*t1000 &
2138 *t1001*s_a1rhoa + 0.2e1_dp*t346*s_a1rhoa*s_arhoa + 0.2e1_dp &
2139 *t346*s_a*(my_norm_drhoa/t335/kf_a*t131*t985 + t337* &
2140 t341*kf_arhoa - t337*t131*kf_arhoarhoa/0.2e1_dp + t130/ &
2141 t340/my_rhoa)))/0.2e1_dp + scale_ec*(epsilon_c_unif1rhoa + &
2142 0.3e1_dp*t293*t123*phi1rhoa + t110*t880 + epsilon_cggarhoa + &
2143 my_rho*(epsilon_c_unifrhoarhoa + 0.6e1_dp*t858*t294*phi1rhoa + &
2144 0.3e1_dp*t293*t880*phirhoa + 0.3e1_dp*t293*t123* &
2145 phirhoarhoa + 0.3e1_dp*t293*t326*phi1rhoa + t110*t962*t325 &
2148 chirhoarhob = 0.2e1_dp*t519
2149 rsrhoarhob = rsrhoarhoa
2150 t1031 = t176*t368*t191
2151 t1033 = alpha_1_1*rsrhob
2152 t1038 = rsrhoa*rsrhob
2153 t1050 = rsrhob*t564*rsrhoa
2154 e_c_u_0rhoarhob = -0.2e1_dp*t171*rsrhoarhob*t28 + t536* &
2155 t1031 + t1033*t538 - 0.2e1_dp*t543*t192*t368 + t177*(-t549 &
2156 *t1038/0.4e1_dp + t179*rsrhoarhob/0.2e1_dp + beta_2_1* &
2157 rsrhoarhob + 0.3e1_dp/0.4e1_dp*t556*t1038 + 0.3e1_dp/ &
2158 0.2e1_dp*t183*rsrhoarhob + t22*t561*t1050 + t22*t20* &
2159 rsrhoarhob*t187 - t22*t20*t1050)*t191 + t578*t190*t580* &
2161 t1069 = t199*t382*t212
2162 t1071 = alpha_1_2*rsrhob
2163 t1104 = t220*t396*t233
2164 t1106 = alpha_1_3*rsrhob
2165 frhoarhob = (0.4e1_dp/0.9e1_dp*t681*chirhoa*chirhob + &
2166 0.4e1_dp/0.3e1_dp*t71*chirhoarhob + 0.4e1_dp/0.9e1_dp*t687 &
2167 *chirhoa*chirhob - 0.4e1_dp/0.3e1_dp*t74*chirhoarhob)* &
2169 t1164 = t79*chirhoa*chirhob
2170 t1193 = -0.4e1_dp*t77*t245*chirhoarhob + (-0.2e1_dp*t194* &
2171 rsrhoarhob*t46 + t588*t1069 + t1071*t590 - 0.2e1_dp*t595* &
2172 t213*t382 + t200*(-t600*t1038/0.4e1_dp + t201*rsrhoarhob/ &
2173 0.2e1_dp + beta_2_2*rsrhoarhob + 0.3e1_dp/0.4e1_dp*t606* &
2174 t1038 + 0.3e1_dp/0.2e1_dp*t205*rsrhoarhob + t40*t611*t1050 &
2175 + t40*t38*rsrhoarhob*t187 - t40*t38*t1050)*t212 + t626 &
2176 *t211*t628*t34*t382/0.2e1_dp - e_c_u_0rhoarhob)*f*t80 + &
2177 t249*frhob*t80 + 0.4e1_dp*t250*t415 + t410*frhoa*t80 + &
2178 t84*frhoarhob*t80 + 0.4e1_dp*t252*t415 + 0.4e1_dp*t411* &
2179 t254 + 0.4e1_dp*t413*t254 + 0.12e2_dp*t85*t1164 + 0.4e1_dp* &
2180 t85*t244*chirhoarhob
2181 epsilon_c_unifrhoarhob = e_c_u_0rhoarhob + (0.2e1_dp*t215* &
2182 rsrhoarhob*t64 - t636*t1104 - t1106*t638 + 0.2e1_dp*t643* &
2183 t234*t396 - t221*(-t648*t1038/0.4e1_dp + t222*rsrhoarhob/ &
2184 0.2e1_dp + beta_2_3*rsrhoarhob + 0.3e1_dp/0.4e1_dp*t654* &
2185 t1038 + 0.3e1_dp/0.2e1_dp*t226*rsrhoarhob + t58*t659*t1050 &
2186 + t58*t56*rsrhoarhob*t187 - t58*t56*t1050)*t233 - t674 &
2187 *t232*t676*t52*t396/0.2e1_dp)*f*t82 + alpha_crhoa* &
2188 frhob*t82 - 0.4e1_dp*t240*t407 + alpha_crhob*frhoa*t82 + &
2189 alpha_c*frhoarhob*t82 - 0.4e1_dp*t242*t407 - 0.4e1_dp*t403 &
2190 *t246 - 0.4e1_dp*t405*t246 - 0.12e2_dp*t77*t78*t1164 + &
2192 phirhoarhob = -t750*chirhoa*chirhob/0.9e1_dp + t257* &
2193 chirhoarhob/0.3e1_dp - t755*chirhoa*chirhob/0.9e1_dp - t259 &
2194 *chirhoarhob/0.3e1_dp
2195 k_frhoarhob = k_frhoarhoa
2196 t1228 = t269*t277*phirhob/0.2e1_dp
2197 t1231 = t96*t798*k_srhob/0.2e1_dp
2198 trhoarhob = t775*t776*phirhob + t779*t776*k_srhob/ &
2199 0.2e1_dp + t785 - t269*t98*phirhoarhob/0.2e1_dp + t779*t789 &
2200 *phirhob/0.2e1_dp + t795*t789*k_srhob + t801 - t96*t274*( &
2201 -t767*k_frhoa*t523*k_frhob/0.2e1_dp + t266*k_frhoarhob* &
2202 t7)/0.2e1_dp + t1228 + t1231 + t812
2203 arhoarhob = 0.2e1_dp*t820*t822*t432 - t101*t281*( &
2204 -epsilon_c_unifrhoarhob*t100*t105 + 0.3e1_dp*t282*t429 + &
2205 0.3e1_dp*t427*t286 - 0.12e2_dp*t102*t840*phirhob + &
2206 0.3e1_dp*t102*t285*phirhoarhob)*t107 - t851*t289*t432* &
2209 t1283 = arhoarhob*t111
2210 t1285 = 0.2e1_dp*t909*trhob
2212 t1288 = 0.2e1_dp*t1286*trhoa
2213 t1291 = 0.2e1_dp*a*trhob*trhoa
2214 t1293 = 0.2e1_dp*t303*trhoarhob
2216 t1327 = t1283 + t1285 + t1288 + t1291 + t1293 + 0.2e1_dp*arhob* &
2217 t116*arhoa + 0.8e1_dp*t944*arhoa*trhob + 0.2e1_dp*t314* &
2218 arhoarhob + 0.8e1_dp*t944*trhoa*arhob + 0.12e2_dp*t953* &
2219 trhoa*trhob + 0.4e1_dp*t318*trhoarhob
2220 t1330 = 0.2e1_dp*t101*trhob*t299 + 0.2e1_dp*t297*t1269* &
2221 trhoa - 0.2e1_dp*t297*t313*trhoa*t453 + 0.2e1_dp*t297* &
2222 t298*trhoarhob + 0.2e1_dp*t297*t904*trhob + t101*t111*( &
2223 t1283 + t1285 + t1288 + t1291 + t1293)*t119 - t310*t924*t453 - &
2224 0.2e1_dp*t297*t313*t321*trhob - t310*t1304*t321 + &
2225 0.2e1_dp*t310*t936*t321*t453 - t310*t313*t1327
2227 e_ra_rb(ii) = e_ra_rb(ii) + &
2228 scale_ec*(epsilon_cggarhob + epsilon_cggarhoa + &
2229 my_rho*(epsilon_c_unifrhoarhob + 0.6e1_dp*t858*t294*phirhob + &
2230 0.3e1_dp*t293*t457*phirhoa + 0.3e1_dp*t293*t123* &
2231 phirhoarhob + 0.3e1_dp*t293*t326*phirhob + t110*t1330*t325 &
2234 chirhobrhob = 0.2e1_dp*t163 + 0.2e1_dp*t519
2235 rsrhobrhob = rsrhoarhob
2238 e_c_u_0rhobrhob = -0.2e1_dp*t171*rsrhobrhob*t28 + 0.2e1_dp* &
2239 t1033*t1031 - 0.2e1_dp*t543*t1342*t191 + t177*(-t549* &
2240 t1346/0.4e1_dp + t179*rsrhobrhob/0.2e1_dp + beta_2_1* &
2241 rsrhobrhob + 0.3e1_dp/0.4e1_dp*t556*t1346 + 0.3e1_dp/ &
2242 0.2e1_dp*t183*rsrhobrhob + t22*t561*t1346*t564 + t22*t20 &
2243 *rsrhobrhob*t187 - t22*t20*t1346*t564)*t191 + t578* &
2244 t1342*t580*t14/0.2e1_dp
2245 e_c_u_01rhob = e_c_u_0rhob
2248 alpha_c1rhob = alpha_crhob
2250 frhobrhob = (0.4e1_dp/0.9e1_dp*t681*t1440 + 0.4e1_dp/ &
2251 0.3e1_dp*t71*chirhobrhob + 0.4e1_dp/0.9e1_dp*t687*t1440 - &
2252 0.4e1_dp/0.3e1_dp*t74*chirhobrhob)*t69
2254 t1462 = alpha_c1rhob*f
2255 t1465 = alpha_c*f1rhob
2256 t1482 = e_c_u_1rhob - e_c_u_01rhob
2259 t1501 = -0.4e1_dp*t77*t245*chirhobrhob + (-0.2e1_dp*t194* &
2260 rsrhobrhob*t46 + 0.2e1_dp*t1071*t1069 - 0.2e1_dp*t595* &
2261 t1377*t212 + t200*(-t600*t1346/0.4e1_dp + t201*rsrhobrhob &
2262 /0.2e1_dp + beta_2_2*rsrhobrhob + 0.3e1_dp/0.4e1_dp*t606* &
2263 t1346 + 0.3e1_dp/0.2e1_dp*t205*rsrhobrhob + t40*t611*t1346 &
2264 *t564 + t40*t38*rsrhobrhob*t187 - t40*t38*t1346*t564) &
2265 *t212 + t626*t1377*t628*t34/0.2e1_dp - e_c_u_0rhobrhob)*f &
2266 *t80 + t410*f1rhob*t80 + 0.4e1_dp*t411*t415 + t1482* &
2267 frhob*t80 + t84*frhobrhob*t80 + 0.4e1_dp*t413*t415 + &
2268 0.4e1_dp*t1489*t415 + 0.4e1_dp*t1492*t415 + 0.12e2_dp*t85 &
2269 *t79*t1440 + 0.4e1_dp*t85*t244*chirhobrhob
2270 epsilon_c_unifrhobrhob = e_c_u_0rhobrhob + (0.2e1_dp*t215* &
2271 rsrhobrhob*t64 - 0.2e1_dp*t1106*t1104 + 0.2e1_dp*t643* &
2272 t1411*t233 - t221*(-t648*t1346/0.4e1_dp + t222*rsrhobrhob &
2273 /0.2e1_dp + beta_2_3*rsrhobrhob + 0.3e1_dp/0.4e1_dp*t654* &
2274 t1346 + 0.3e1_dp/0.2e1_dp*t226*rsrhobrhob + t58*t659*t1346 &
2275 *t564 + t58*t56*rsrhobrhob*t187 - t58*t56*t1346*t564) &
2276 *t233 - t674*t1411*t676*t52/0.2e1_dp)*f*t82 + &
2277 alpha_crhob*f1rhob*t82 - 0.4e1_dp*t403*t407 + alpha_c1rhob* &
2278 frhob*t82 + alpha_c*frhobrhob*t82 - 0.4e1_dp*t405*t407 - &
2279 0.4e1_dp*t1462*t407 - 0.4e1_dp*t1465*t407 - 0.12e2_dp*t77 &
2281 epsilon_c_unif1rhob = e_c_u_01rhob + t1462*t82 + t1465*t82 - &
2282 t409 + t1489*t80 + t1492*t80 + t417
2283 phirhobrhob = -t750*t1440/0.9e1_dp + t257*chirhobrhob/ &
2284 0.3e1_dp - t755*t1440/0.9e1_dp - t259*chirhobrhob/0.3e1_dp
2290 trhobrhob = t775*t1520*phi1rhob + t779*t1520*k_s1rhob/ &
2291 0.2e1_dp + t1228 - t269*t98*phirhobrhob/0.2e1_dp + t779* &
2292 t1529*phi1rhob/0.2e1_dp + t795*t1529*k_s1rhob + t1231 - t96 &
2293 *t274*(-t767*t1514*t523/0.2e1_dp + t266*k_frhoarhob*t7) &
2294 /0.2e1_dp + t269*t277*phi1rhob/0.2e1_dp + t96*t798* &
2295 k_s1rhob/0.2e1_dp + t812
2296 t1rhob = -t269*t98*phi1rhob/0.2e1_dp - t96*t274*k_s1rhob &
2297 /0.2e1_dp - t278/0.2e1_dp
2298 t1550 = epsilon_c_unif1rhob*t100
2299 t1552 = t285*phi1rhob
2300 t1555 = -t1550*t105 + 0.3e1_dp*t102*t1552
2301 arhobrhob = 0.2e1_dp*t820*t432*t821*t1555 - t101*t281* &
2302 (-epsilon_c_unifrhobrhob*t100*t105 + 0.3e1_dp*t427*t1552 + &
2303 0.3e1_dp*t1550*t429 - 0.12e2_dp*t102*t839*phirhob* &
2304 phi1rhob + 0.3e1_dp*t102*t285*phirhobrhob)*t107 - t851* &
2306 a1rhob = -t101*t281*t1555*t107
2308 t1590 = 0.2e1_dp*t303*t1rhob
2309 t1591 = t1588 + t1590
2310 t1599 = t1588 + t1590 + 0.2e1_dp*t314*a1rhob + 0.4e1_dp*t318 &
2312 t1602 = 0.2e1_dp*t297*t298*t1rhob + t101*t111*t1591* &
2313 t119 - t310*t313*t1599
2315 t1630 = arhobrhob*t111
2316 t1632 = 0.2e1_dp*t1286*t1rhob
2317 t1635 = 0.2e1_dp*a1rhob*t*trhob
2318 t1638 = 0.2e1_dp*a*t1rhob*trhob
2319 t1640 = 0.2e1_dp*t303*trhobrhob
2320 t1674 = t1630 + t1632 + t1635 + t1638 + t1640 + 0.2e1_dp*a1rhob &
2321 *t116*arhob + 0.8e1_dp*t944*arhob*t1rhob + 0.2e1_dp*t314 &
2322 *arhobrhob + 0.8e1_dp*t944*trhob*a1rhob + 0.12e2_dp*t953* &
2323 trhob*t1rhob + 0.4e1_dp*t318*trhobrhob
2324 t1677 = 0.2e1_dp*t101*t1rhob*t439 + 0.2e1_dp*t297*t1591 &
2325 *t119*trhob - 0.2e1_dp*t297*t313*trhob*t1599 + 0.2e1_dp* &
2326 t297*t298*trhobrhob + 0.2e1_dp*t297*t1269*t1rhob + t101* &
2327 t111*(t1630 + t1632 + t1635 + t1638 + t1640)*t119 - t310* &
2328 t1304*t1599 - 0.2e1_dp*t297*t313*t453*t1rhob - t310* &
2329 t1591*t312*t453 + 0.2e1_dp*t310*t936*t453*t1599 - t310* &
2332 kf_brhobrhob = -0.2e1_dp/0.9e1_dp*t124/t460/t142*t763
2333 ex_unif_b1rhob = ex_unif_brhob
2336 t1711 = 0.1e1_dp/t475/t153*t998
2338 t1713 = s_brhob*t135
2339 fx_b1rhob = 0.2e1_dp*t477*s_b*s_b1rhob
2341 e_rb_rb(ii) = e_rb_rb(ii) + &
2342 scale_ex*(0.2e1_dp*ex_unif_b1rhob*fx_b + &
2343 0.2e1_dp*ex_unif_b*fx_b1rhob + 0.2e1_dp*ex_unif_brhob*fx_b - &
2344 0.3e1_dp/0.2e1_dp*my_rhob*t7*kf_brhobrhob*fx_b + 0.2e1_dp* &
2345 t481*fx_b1rhob + 0.2e1_dp*ex_unif_b*fx_brhob + 0.2e1_dp*my_rhob &
2346 *ex_unif_b1rhob*fx_brhob + 0.2e1_dp*t156*(-0.8e1_dp*t1712 &
2347 *t1713*s_b1rhob + 0.2e1_dp*t477*s_b1rhob*s_brhob + 0.2e1_dp &
2348 *t477*s_b*(my_norm_drhob/t466/kf_b*t148*t1698 + t468* &
2349 t472*kf_brhob - t468*t148*kf_brhobrhob/0.2e1_dp + t147/ &
2350 t471/my_rhob)))/0.2e1_dp + scale_ec*(epsilon_c_unif1rhob + &
2351 0.3e1_dp*t293*t123*phi1rhob + t110*t1603 + epsilon_cggarhob &
2352 + my_rho*(epsilon_c_unifrhobrhob + 0.6e1_dp*t858*t436*phi1rhob &
2353 + 0.3e1_dp*t293*t1603*phirhob + 0.3e1_dp*t293*t123* &
2354 phirhobrhob + 0.3e1_dp*t293*t457*phi1rhob + t110*t1677* &
2355 t325 - t110*t1680*t1602))
2359 trhoanorm_drho = -t1739*t776/0.2e1_dp - t1741*t789/ &
2360 0.2e1_dp - t1743/0.2e1_dp
2361 t1748 = t101*tnorm_drho
2362 t1765 = t909*tnorm_drho
2364 t1767 = t303*trhoanorm_drho
2365 t1801 = 0.2e1_dp*t1748*t299 + 0.4e1_dp*t310*t494*t119* &
2366 trhoa - 0.2e1_dp*t297*t313*trhoa*t502 + 0.2e1_dp*t297* &
2367 t298*trhoanorm_drho + 0.2e1_dp*t297*t904*tnorm_drho + t101* &
2368 t111*(0.2e1_dp*t1765 + 0.2e1_dp*t1766 + 0.2e1_dp*t1767)* &
2369 t119 - t310*t924*t502 - 0.2e1_dp*t297*t313*t321* &
2370 tnorm_drho - 0.2e1_dp*t493*t494*t312*t321 + 0.2e1_dp*t310 &
2371 *t936*t321*t502 - t310*t313*(0.2e1_dp*t1765 + 0.2e1_dp* &
2372 t1766 + 0.2e1_dp*t1767 + 0.8e1_dp*t944*arhoa*tnorm_drho + &
2373 0.12e2_dp*t953*trhoa*tnorm_drho + 0.4e1_dp*t318* &
2376 e_ra_ndr(ii) = e_ra_ndr(ii) + &
2377 scale_ec*(hnorm_drho + my_rho*(0.3e1_dp* &
2378 t293*t506*phirhoa + t110*t1801*t325 - t110*t967*t505))
2380 trhobnorm_drho = -t1739*t1520/0.2e1_dp - t1741*t1529/ &
2381 0.2e1_dp - t1743/0.2e1_dp
2382 t1829 = t1286*tnorm_drho
2384 t1831 = t303*trhobnorm_drho
2385 t1865 = 0.2e1_dp*t1748*t439 + 0.4e1_dp*t310*t494*t119* &
2386 trhob - 0.2e1_dp*t297*t313*trhob*t502 + 0.2e1_dp*t297* &
2387 t298*trhobnorm_drho + 0.2e1_dp*t297*t1269*tnorm_drho + t101 &
2388 *t111*(0.2e1_dp*t1829 + 0.2e1_dp*t1830 + 0.2e1_dp*t1831)* &
2389 t119 - t310*t1304*t502 - 0.2e1_dp*t297*t313*t453* &
2390 tnorm_drho - 0.2e1_dp*t493*t494*t312*t453 + 0.2e1_dp*t310 &
2391 *t936*t453*t502 - t310*t313*(0.2e1_dp*t1829 + 0.2e1_dp* &
2392 t1830 + 0.2e1_dp*t1831 + 0.8e1_dp*t944*arhob*tnorm_drho + &
2393 0.12e2_dp*t953*trhob*tnorm_drho + 0.4e1_dp*t318* &
2396 e_rb_ndr(ii) = e_rb_ndr(ii) + &
2397 scale_ec*(hnorm_drho + my_rho*(0.3e1_dp* &
2398 t293*t506*phirhob + t110*t1865*t325 - t110*t1680*t505))
2400 t1871 = tnorm_drho**2
2405 e_ndr_ndr(ii) = e_ndr_ndr(ii) + &
2406 scale_ec*my_rho*(t110*(0.2e1_dp* &
2407 t101*t1871*t113*t119 + 0.10e2_dp*t310*t1876*t119 - &
2408 0.4e1_dp*t297*t313*tnorm_drho*t502 - 0.4e1_dp*t493*t494 &
2409 *t312*t502 + 0.2e1_dp*t310*t936*t1888 - t310*t313*( &
2410 0.2e1_dp*t1876 + 0.12e2_dp*t953*t1871))*t325 - t110*t1901 &
2413 e_ra_ndra(ii) = e_ra_ndra(ii) + &
2414 scale_ex*(0.2e1_dp*ex_unif_a* &
2415 fx_anorm_drhoa + 0.2e1_dp*t350*fx_anorm_drhoa + 0.2e1_dp*t140 &
2416 *(-0.8e1_dp*t1000*t1001*s_anorm_drhoa + 0.2e1_dp*t346* &
2417 s_anorm_drhoa*s_arhoa + 0.2e1_dp*t346*s_a*(-t336*t131* &
2418 kf_arhoa/0.2e1_dp - t129*t341/0.2e1_dp)))/0.2e1_dp
2420 t1922 = s_anorm_drhoa**2
2422 e_ndra_ndra(ii) = e_ndra_ndra(ii) + &
2423 scale_ex*t140*(-0.8e1_dp*t999* &
2424 t133*t1922*t135 + 0.2e1_dp*t346*t1922)
2426 e_rb_ndrb(ii) = e_rb_ndrb(ii) + &
2427 scale_ex*(0.2e1_dp*ex_unif_b* &
2428 fx_bnorm_drhob + 0.2e1_dp*t481*fx_bnorm_drhob + 0.2e1_dp*t156 &
2429 *(-0.8e1_dp*t1712*t1713*s_bnorm_drhob + 0.2e1_dp*t477* &
2430 s_bnorm_drhob*s_brhob + 0.2e1_dp*t477*s_b*(-t467*t148* &
2431 kf_brhob/0.2e1_dp - t146*t472/0.2e1_dp)))/0.2e1_dp
2433 t1949 = s_bnorm_drhob**2
2434 e_ndrb_ndrb(ii) = e_ndrb_ndrb(ii) + &
2435 scale_ex*t156*(-0.8e1_dp*t1711* &
2436 t150*t1949*t135 + 0.2e1_dp*t477*t1949)
2442 END SUBROUTINE pbe_lsd_calc
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public perdew1996
integer, save, public perdew2008
integer, save, public zhang1998
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_norm_drhoa
integer, parameter, public deriv_rhob
integer, parameter, public deriv_rhoa
integer, parameter, public deriv_rho
integer, parameter, public deriv_norm_drhob
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
calculates the pbe correlation functional
subroutine, public pbe_lda_eval(rho_set, deriv_set, grad_deriv, pbe_params)
evaluates the pbe correlation functional for lda
subroutine, public pbe_lsd_info(pbe_params, reference, shortform, needs, max_deriv)
return various information on the functional
subroutine, public pbe_lsd_eval(rho_set, deriv_set, grad_deriv, pbe_params)
evaluates the becke 88 exchange functional for lsd
subroutine, public pbe_lda_info(pbe_params, reference, shortform, needs, max_deriv)
return various information on the functional
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