41#include "../base/base_uses.f90"
49 REAL(KIND=
dp),
PARAMETER :: a = 0.0310907_dp, &
51 aa = -0.0168868639404_dp
55 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'xc_vwn'
57 REAL(KIND=
dp) :: eps_rho, b, c, x0, bf, cf, x0f, ba, ca, x0a
66 SUBROUTINE vwn_init(cutoff, vwn_params)
68 REAL(KIND=
dp),
INTENT(IN) :: cutoff
69 TYPE(section_vals_type),
POINTER :: vwn_params
101 cpabort(
" Only functionals VWN3 and VWN5 are supported")
105 END SUBROUTINE vwn_init
115 CHARACTER(LEN=*),
INTENT(OUT),
OPTIONAL :: reference, shortform
117 INTEGER,
INTENT(out),
OPTIONAL :: max_deriv
119 IF (
PRESENT(reference))
THEN
120 reference =
"S. H. Vosko, L. Wilk and M. Nusair,"// &
121 " Can. J. Phys. 58, 1200 (1980) {LDA version}"
123 IF (
PRESENT(shortform))
THEN
124 shortform =
"Vosko-Wilk-Nusair Functional {LDA}"
126 IF (
PRESENT(needs))
THEN
129 IF (
PRESENT(max_deriv)) max_deriv = 3
141 CHARACTER(LEN=*),
INTENT(OUT),
OPTIONAL :: reference, shortform
143 INTEGER,
INTENT(out),
OPTIONAL :: max_deriv
145 IF (
PRESENT(reference))
THEN
146 reference =
"S. H. Vosko, L. Wilk and M. Nusair,"// &
147 " Can. J. Phys. 58, 1200 (1980) {LDA version}"
149 IF (
PRESENT(shortform))
THEN
150 shortform =
"Vosko-Wilk-Nusair Functional {LDA}"
152 IF (
PRESENT(needs))
THEN
153 needs%rho_spin = .true.
155 IF (
PRESENT(max_deriv)) max_deriv = 3
169 INTEGER,
INTENT(in) :: order
172 CHARACTER(len=*),
PARAMETER :: routinen =
'vwn_lda_eval'
174 INTEGER :: handle, npoints
175 INTEGER,
DIMENSION(2, 3) :: bo
176 REAL(kind=
dp) :: epsilon_rho, sc
177 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: x
178 REAL(kind=
dp),
CONTIGUOUS,
DIMENSION(:, :, :), &
179 POINTER :: e_0, e_rho, e_rho_rho, e_rho_rho_rho, rho
182 CALL timeset(routinen, handle)
187 local_bounds=bo, rho_cutoff=epsilon_rho)
188 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
189 CALL vwn_init(epsilon_rho, vwn_params)
191 ALLOCATE (x(npoints))
196 allocate_deriv=.true.)
199 allocate_deriv=.true.)
202 CALL vwn_lda_01(rho, x, e_0, e_rho, npoints, sc)
205 allocate_deriv=.true.)
208 CALL vwn_lda_0(rho, x, e_0, npoints, sc)
212 allocate_deriv=.true.)
215 CALL vwn_lda_2(rho, x, e_rho_rho, npoints, sc)
219 allocate_deriv=.true.)
222 CALL vwn_lda_3(rho, x, e_rho_rho_rho, npoints, sc)
225 cpabort(
"derivatives bigger than 3 not implemented")
229 CALL timestop(handle)
241 SUBROUTINE vwn_lda_0(rho, x, e_0, npoints, sc)
243 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
244 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_0
245 INTEGER,
INTENT(in) :: npoints
249 REAL(kind=
dp) :: at, dpx, ln1, ln2, px, px0, q, xb
251 q = sqrt(4.0_dp*c - b*b)
253 px0 = x0*x0 + b*x0 + c
262 IF (rho(ip) > eps_rho)
THEN
263 px = x(ip)*x(ip) + b*x(ip) + c
264 dpx = 2.0_dp*x(ip) + b
265 at = 2.0_dp/q*atan(q/dpx)
266 ln1 = log(x(ip)*x(ip)/px)
267 ln2 = log((x(ip) - x0)**2/px)
268 e_0(ip) = e_0(ip) + a*(ln1 + b*at - b*x0/px0*(ln2 + xb*at))*rho(ip)*sc
275 END SUBROUTINE vwn_lda_0
286 SUBROUTINE vwn_lda_01(rho, x, e_0, e_rho, npoints, sc)
288 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
289 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_0, e_rho
290 INTEGER,
INTENT(in) :: npoints
294 REAL(kind=
dp) :: at, dat, dex, dln1, dln2, dpx, ex, ln1, &
295 ln2, pa, px, px0, q, xb
297 q = sqrt(4.0_dp*c - b*b)
299 px0 = x0*x0 + b*x0 + c
308 IF (rho(ip) > eps_rho)
THEN
309 px = x(ip)*x(ip) + b*x(ip) + c
310 dpx = 2.0_dp*x(ip) + b
311 at = 2.0_dp/q*atan(q/dpx)
312 pa = 4.0_dp*x(ip)*x(ip) + 4.0_dp*b*x(ip) + b*b + q*q
314 ln1 = log(x(ip)*x(ip)/px)
315 dln1 = (b*x(ip) + 2.0_dp*c)/(x(ip)*px)
316 ln2 = log((x(ip) - x0)**2/px)
317 dln2 = (x(ip)*(b + 2.0_dp*x0) + 2.0_dp*c + x0*b)/((x(ip) - x0)*px)
318 ex = a*(ln1 + b*at - b*x0/px0*(ln2 + xb*at))
319 dex = a*(dln1 + b*dat - b*x0/px0*(dln2 + xb*dat))
320 e_0(ip) = e_0(ip) + ex*rho(ip)*sc
321 e_rho(ip) = e_rho(ip) + (ex - x(ip)*dex/6.0_dp)*sc
328 END SUBROUTINE vwn_lda_01
338 SUBROUTINE vwn_lda_2(rho, x, e_rho_rho, npoints, sc)
340 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
341 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_rho_rho
342 INTEGER,
INTENT(in) :: npoints
346 REAL(kind=
dp) :: at, d2at, d2ex, d2ln1, d2ln2, dat, dex, &
347 dln1, dln2, dpx, fp, ln1, ln2, pa, px, &
350 q = sqrt(4.0_dp*c - b*b)
352 px0 = x0*x0 + b*x0 + c
363 IF (rho(ip) > eps_rho)
THEN
364 px = x(ip)*x(ip) + b*x(ip) + c
365 dpx = 2.0_dp*x(ip) + b
366 at = 2.0_dp/q*atan(q/dpx)
367 pa = 4.0_dp*x(ip)*x(ip) + 4.0_dp*b*x(ip) + b*b + q*q
369 d2at = 16.0_dp*dpx/(pa*pa)
370 ln1 = log(x(ip)*x(ip)/px)
371 dln1 = (b*x(ip) + 2.0_dp*c)/(x(ip)*px)
372 d2ln1 = b/(x(ip)*px) - (b*x(ip) + 2.0_dp*c)/(x(ip)*px)**2*(px + x(ip)*dpx)
373 ln2 = log((x(ip) - x0)**2/px)
374 dln2 = (x(ip)*xb + 2.0_dp*c + x0*b)/((x(ip) - x0)*px)
375 d2ln2 = xb/((x(ip) - x0)*px) - (x(ip)*xb + 2.0_dp*c + x0*b)/((x(ip) - x0)*px)**2 &
376 *(px + (x(ip) - x0)*dpx)
377 dex = a*(dln1 + b*dat + fp*(dln2 + xb*dat))
378 d2ex = a*(d2ln1 + b*d2at + fp*(d2ln2 + xb*d2at))
379 e_rho_rho(ip) = e_rho_rho(ip) &
380 + (x(ip)/(36.0_dp*rho(ip))*(x(ip)*d2ex - 5.0_dp*dex))*sc
386 END SUBROUTINE vwn_lda_2
396 SUBROUTINE vwn_lda_3(rho, x, e_rho_rho_rho, npoints, sc)
398 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
399 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_rho_rho_rho
400 INTEGER,
INTENT(in) :: npoints
404 REAL(kind=
dp) :: at, ax, bx, cx, d2at, d2bx, d2dx, d2ex, &
405 d2ln1, d2ln2, d3at, d3ex, d3ln1, &
406 d3ln2, dat, dbx, ddx, dex, dln1, dln2, &
407 dpx, dx, fp, ln1, ln2, pa, px, px0, q, &
410 q = sqrt(4.0_dp*c - b*b)
412 px0 = x0*x0 + b*x0 + c
423 IF (rho(ip) > eps_rho)
THEN
424 px = x(ip)*x(ip) + b*x(ip) + c
425 dpx = 2.0_dp*x(ip) + b
426 at = 2.0_dp/q*atan(q/dpx)
427 pa = 4.0_dp*x(ip)*x(ip) + 4.0_dp*b*x(ip) + b*b + q*q
429 d2at = 16.0_dp*dpx/(pa*pa)
430 d3at = 32.0_dp/(pa*pa)*(1.0_dp - 4.0_dp*dpx*dpx/pa)
431 ln1 = log(x(ip)*x(ip)/px)
432 ax = b*x(ip) + 2.0_dp*c
435 d2bx = 2.0_dp*(dpx + x(ip))
437 d2ln1 = (b*bx - ax*dbx)/(bx*bx)
438 d3ln1 = -ax*d2bx/(bx*bx) - 2.0_dp*d2ln1*dbx/bx
439 ln2 = log((x(ip) - x0)**2/px)
440 cx = x(ip)*xb + 2.0_dp*c + x0*b
442 ddx = px + (x(ip) - x0)*dpx
443 d2dx = 2.0_dp*(dpx + (x(ip) - x0))
445 d2ln2 = (xb*dx - cx*ddx)/(dx*dx)
446 d3ln2 = -cx*d2dx/(dx*dx) - 2.0_dp*d2ln2*ddx/dx
447 dex = a*(dln1 + b*dat + fp*(dln2 + xb*dat))
448 d2ex = a*(d2ln1 + b*d2at + fp*(d2ln2 + xb*d2at))
449 d3ex = a*(d3ln1 + b*d3at + fp*(d3ln2 + xb*d3at))
450 e_rho_rho_rho(ip) = e_rho_rho_rho(ip) &
451 - (7.0_dp*x(ip)/(216.0_dp*rho(ip)*rho(ip))*(x(ip)*d2ex - 5.0_dp*dex) + &
452 x(ip)*x(ip)/(216.0_dp*rho(ip)*rho(ip))*(x(ip)*d3ex - 4.0_dp*d2ex))*sc
458 END SUBROUTINE vwn_lda_3
470 INTEGER,
INTENT(in) :: order
473 CHARACTER(len=*),
PARAMETER :: routinen =
'vwn_lsd_eval'
475 INTEGER :: handle, npoints, type
476 INTEGER,
DIMENSION(2, 3) :: bo
477 REAL(kind=
dp) :: epsilon_rho, sc
478 REAL(kind=
dp),
CONTIGUOUS,
DIMENSION(:, :, :), &
479 POINTER :: dummy, e_0, e_a, e_aa, e_aaa, e_aab, &
480 e_ab, e_abb, e_b, e_bb, e_bbb, rhoa, &
484 CALL timeset(routinen, handle)
489 local_bounds=bo, rho_cutoff=epsilon_rho)
490 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
491 CALL vwn_init(epsilon_rho, vwn_params)
507 allocate_deriv=.true.)
511 allocate_deriv=.true.)
515 allocate_deriv=.true.)
520 allocate_deriv=.true.)
524 allocate_deriv=.true.)
528 allocate_deriv=.true.)
533 allocate_deriv=.true.)
537 allocate_deriv=.true.)
541 allocate_deriv=.true.)
545 allocate_deriv=.true.)
550 cpabort(
"derivatives bigger than 3 not implemented")
562 CALL vwn3_lsd_calc( &
563 rhoa=rhoa, rhob=rhob, e_0=e_0, &
565 e_aa=e_aa, e_bb=e_bb, e_ab=e_ab, &
566 e_aaa=e_aaa, e_bbb=e_bbb, e_aab=e_aab, e_abb=e_abb, &
567 order=order, npoints=npoints, &
579 CALL vwn5_lsd_calc( &
580 rhoa=rhoa, rhob=rhob, e_0=e_0, &
582 e_aa=e_aa, e_bb=e_bb, e_ab=e_ab, &
583 e_aaa=e_aaa, e_bbb=e_bbb, e_aab=e_aab, e_abb=e_abb, &
584 order=order, npoints=npoints, &
590 cpabort(
" Only functionals VWN3 and VWN5 are supported")
593 CALL timestop(handle)
615 SUBROUTINE vwn3_lsd_calc(rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, e_ab, &
616 e_aaa, e_bbb, e_aab, e_abb, order, npoints, sc)
618 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, &
619 e_ab, e_aaa, e_bbb, e_aab, e_abb
620 INTEGER,
INTENT(in) :: order, npoints
624 REAL(kind=
dp) :: ap, bp, cp, myrho, myrhoa, myrhob, qf, qp, t1, t10, t100, t101, t1019, &
625 t102, t1031, t105, t108, t109, t11, t110, t113, t114, t115, t116, t117, t119, t120, t121, &
626 t124, t125, t126, t127, t130, t132, t133, t134, t136, t137, t14, t144, t145, t146, t147, &
627 t15, t150, t151, t154, t155, t156, t159, t16, t160, t161, t162, t165, t168, t169, t172, &
628 t173, t174, t175, t176, t178, t179, t180, t183, t184, t187, t189, t19, t190, t191, t193, &
629 t194, t2, t202, t203, t206, t209, t21, t212, t213, t216, t217, t218, t219, t220, t221, &
630 t222, t223, t225, t226, t230, t231, t235, t236, t237, t24, t240
631 REAL(kind=
dp) :: t241, t242, t244, t245, t246, t25, t251, t254, t255, t258, t259, t26, t260, &
632 t261, t267, t268, t269, t27, t270, t273, t276, t279, t281, t282, t283, t284, t286, t287, &
633 t29, t291, t292, t295, t296, t299, t3, t302, t306, t307, t309, t310, t311, t315, t316, &
634 t319, t32, t324, t325, t332, t333, t334, t337, t339, t342, t343, t346, t349, t350, t351, &
635 t352, t353, t354, t356, t357, t36, t363, t364, t365, t368, t373, t376, t377, t38, t380, &
636 t381, t382, t388, t389, t390, t391, t394, t397, t4, t400, t402, t403, t404, t405, t407, &
637 t408, t412, t413, t42, t420, t424, t425, t427, t428, t429, t43
638 REAL(kind=
dp) :: t433, t434, t437, t44, t442, t443, t45, t451, t452, t455, t457, t458, t46, &
639 t461, t464, t467, t470, t471, t472, t475, t479, t48, t482, t485, t488, t489, t49, t490, &
640 t494, t497, t499, t5, t500, t501, t504, t505, t508, t509, t51, t510, t513, t516, t519, &
641 t522, t525, t526, t528, t531, t536, t538, t54, t540, t541, t549, t55, t559, t563, t565, &
642 t567, t570, t573, t58, t583, t589, t59, t595, t596, t6, t601, t603, t613, t62, t625, t64, &
643 t665, t67, t68, t69, t690, t693, t696, t7, t705, t71, t710, t719, t720, t721, t727, t729, &
644 t732, t74, t743, t745, t748, t752, t755, t758, t769, t78
645 REAL(kind=
dp) :: t792, t793, t798, t80, t800, t804, t807, t808, t810, t814, t820, t823, &
646 t835, t836, t838, t841, t85, t851, t853, t86, t860, t863, t872, t879, t88, t89, t90, t91, &
647 t92, t947, t95, t950, t953, t956, t96, t967, t97, t98, t984, t986, t990, x0p
653 qp = sqrt(4.0_dp*cp - bp*bp)
654 qf = sqrt(4.0_dp*cf - bf*bf)
658 myrhoa = max(rhoa(ip), 0.0_dp)
659 myrhob = max(rhob(ip), 0.0_dp)
660 myrho = myrhoa + myrhob
661 IF (myrho > eps_rho)
THEN
662 myrhoa = max(epsilon(0.0_dp)*1.e4_dp, myrhoa)
663 myrhob = max(epsilon(0.0_dp)*1.e4_dp, myrhob)
664 myrho = myrhoa + myrhob
666 t1 = 0.1e1_dp/0.3141592654e1_dp
670 t5 = t4**0.3333333332e0_dp
671 t6 = 0.9085602964e0_dp*t5
672 t7 = t4**0.1666666666e0_dp
673 t10 = t6 + 0.9531842930e0_dp*bp*t7 + cp
675 t14 = log(0.9085602964e0_dp*t5*t11)
676 t15 = 0.1906368586e1_dp*t7
681 t25 = 0.9531842930e0_dp*t7
685 t32 = 0.20e1_dp*bp + 0.40e1_dp*x0p
687 t38 = 0.1e1_dp/(t36 + t24 + cp)
688 t42 = ap*(t14 + 0.20e1_dp*bp*t19*t21 - t24*(t29 + t32*t19 &
690 t43 = myrhoa - myrhob
692 t45 = 0.10e1_dp + t44
693 t46 = t45**0.1333333333e1_dp
694 t48 = 0.10e1_dp - t44
695 t49 = t48**0.1333333333e1_dp
696 t51 = 0.1923661050e1_dp*t46 + 0.1923661050e1_dp*t49 - 0.3847322100e1_dp
697 t54 = t6 + 0.9531842930e0_dp*bf*t7 + cf
699 t58 = log(0.9085602964e0_dp*t5*t55)
707 t74 = 0.20e1_dp*bf + 0.40e1_dp*x0f
709 t80 = 0.1e1_dp/(t78 + t67 + cf)
710 t85 = af*(t58 + 0.20e1_dp*bf*t62*t64 - t67*(t71 + t74*t62 &
714 e_0(ip) = e_0(ip) + ((t42 + t86)*t2)*sc
717 t88 = t4**(-0.6666666668e0_dp)
726 t100 = 0.3028534320e0_dp*t98*t91
727 t101 = t4**(-0.8333333334e0_dp)
729 t105 = -t100 - 0.1588640488e0_dp*t102*t92
730 t108 = -0.3028534320e0_dp*t89*t92 - 0.9085602964e0_dp*t97*t105
731 t109 = t4**(-0.3333333332e0_dp)
738 t119 = 0.1e1_dp + t117*t114
741 t124 = t26**0.10e1_dp
746 t132 = -0.3177280976e0_dp*t125*t127 - t130*t105
747 t133 = t26**(-0.20e1_dp)
751 t144 = ap*(0.1100642416e1_dp*t110*t10 + 0.6354561950e0_dp*t116* &
752 t121 - t24*(t134*t10 + 0.3177280975e0_dp*t137*t121)*t38)
753 t145 = t45**0.333333333e0_dp
756 t150 = t48**0.333333333e0_dp
758 t154 = 0.2564881399e1_dp*t145*t147 + 0.2564881399e1_dp*t150*t151
765 t165 = -t100 - 0.1588640488e0_dp*t162*t92
766 t168 = -0.3028534320e0_dp*t156*t92 - 0.9085602964e0_dp*t161*t165
773 t178 = 0.1e1_dp + t176*t173
776 t183 = t68**0.10e1_dp
779 t189 = -0.3177280976e0_dp*t184*t127 - t187*t165
780 t190 = t68**(-0.20e1_dp)
784 t202 = af*(0.1100642416e1_dp*t169*t54 + 0.6354561950e0_dp*t175* &
785 t180 - t67*(t191*t54 + 0.3177280975e0_dp*t194*t180)*t80) - &
789 e_a(ip) = e_a(ip) + ((t144 + t155 + t203)*t2 + t42 + t86)*sc
793 t212 = 0.2564881399e1_dp*t145*t206 + 0.2564881399e1_dp*t150*t209
796 e_b(ip) = e_b(ip) + ((t144 + t213 + t203)*t2 + t42 + t86)*sc
800 t216 = t4**(-0.1666666667e1_dp)
802 t218 = 0.3141592654e1_dp**2
810 t230 = 0.1e1_dp/t90/t2
812 t235 = 0.1e1_dp/t95/t10
817 t242 = 0.2019022880e0_dp*t241
818 t244 = 0.6057068640e0_dp*t98*t230
819 t245 = t4**(-0.1833333333e1_dp)
821 t251 = -t242 + t244 - 0.1323867073e0_dp*t246*t222 + 0.3177280976e0_dp &
823 t254 = -0.2019022880e0_dp*t223 + 0.6057068640e0_dp*t225*t226 + 0.6057068640e0_dp &
824 *t89*t231 + 0.1817120593e1_dp*t236*t237 - 0.9085602964e0_dp &
827 t258 = t4**(-0.1333333333e1_dp)
831 t267 = 0.1e1_dp/t113/t16
838 t281 = 0.1e1_dp/t279/t16
842 t286 = 0.1e1_dp/t284*t117
850 t306 = 0.5047557200e-1_dp*t223 + 0.6354561952e0_dp*t292*t226 - 0.2647734147e0_dp &
851 *t125*t296 + 0.6354561952e0_dp*t125*t299 + 0.2e1_dp* &
852 t302*t237 - t130*t251
854 t309 = t26**(-0.30e1_dp)
862 t332 = ap*(0.1100642416e1_dp*t255*t10 + 0.3668808052e0_dp*t259* &
863 t261 + 0.1100642416e1_dp*t110*t105 + 0.4038045758e0_dp*t269*t270 &
864 + 0.5295468292e0_dp*t273*t270 - 0.1270912390e1_dp*t116*t276 - 0.4038045758e0_dp &
865 *t283*t287 - t24*(t307*t10 + 0.3177280976e0_dp* &
866 t311*t127 + t134*t105 + 0.2019022879e0_dp*t316*t270 + 0.2647734146e0_dp &
867 *t319*t270 - 0.6354561950e0_dp*t137*t276 - 0.2019022879e0_dp &
869 t333 = t45**(-0.666666667e0_dp)
872 t339 = -0.2e1_dp*t91 + 0.2e1_dp*t337
873 t342 = t48**(-0.666666667e0_dp)
876 t349 = 0.8549604655e0_dp*t333*t334 + 0.2564881399e1_dp*t145*t339 &
877 + 0.8549604655e0_dp*t342*t343 + 0.2564881399e1_dp*t150*t346
885 t363 = 0.1e1_dp/t159/t54
889 t373 = -t242 + t244 - 0.1323867073e0_dp*t368*t222 + 0.3177280976e0_dp &
891 t376 = -0.2019022880e0_dp*t354 + 0.6057068640e0_dp*t356*t357 + 0.6057068640e0_dp &
892 *t156*t231 + 0.1817120593e1_dp*t364*t365 - 0.9085602964e0_dp &
898 t388 = 0.1e1_dp/t172/t59
905 t402 = 0.1e1_dp/t400/t59
909 t407 = 0.1e1_dp/t405*t176
914 t424 = 0.5047557200e-1_dp*t354 + 0.6354561952e0_dp*t413*t357 - 0.2647734147e0_dp &
915 *t184*t296 + 0.6354561952e0_dp*t184*t299 + 0.2e1_dp* &
916 t420*t365 - t187*t373
918 t427 = t68**(-0.30e1_dp)
926 t451 = af*(0.1100642416e1_dp*t377*t54 + 0.3668808052e0_dp*t380* &
927 t382 + 0.1100642416e1_dp*t169*t165 + 0.4038045758e0_dp*t390*t391 &
928 + 0.5295468292e0_dp*t394*t391 - 0.1270912390e1_dp*t175*t397 - 0.4038045758e0_dp &
929 *t404*t408 - t67*(t425*t54 + 0.3177280976e0_dp* &
930 t429*t127 + t191*t165 + 0.2019022879e0_dp*t434*t391 + 0.2647734146e0_dp &
931 *t437*t391 - 0.6354561950e0_dp*t194*t397 - 0.2019022879e0_dp &
932 *t443*t408)*t80) - t332
937 e_aa(ip) = e_aa(ip) + ((t332 + t350 + t352 + t452)*t2 + t455 + 0.2e1_dp*t155 + t457)*sc
943 t470 = 0.8549604655e0_dp*t458*t206 + 0.5129762798e1_dp*t461*t230 &
944 + 0.8549604655e0_dp*t464*t209 - 0.5129762798e1_dp*t467*t230
948 e_ab(ip) = e_ab(ip) + ((t332 + t471 + t351 + t472 + t452)*t2 + t455 + t155 + t457 &
951 t479 = 0.2e1_dp*t91 + 0.2e1_dp*t337
954 t488 = 0.8549604655e0_dp*t333*t475 + 0.2564881399e1_dp*t145*t479 &
955 + 0.8549604655e0_dp*t342*t482 + 0.2564881399e1_dp*t150*t485
959 e_bb(ip) = e_bb(ip) + ((t332 + t489 + t490 + t452)*t2 + t455 + 0.2e1_dp*t213 + t457)*sc
963 t494 = t4**(-0.2666666667e1_dp)
964 t497 = 0.1e1_dp/t218/0.3141592654e1_dp
965 t499 = 0.1e1_dp/t220/t90
970 t508 = 0.1e1_dp/t220/t2
981 t536 = 0.3365038134e0_dp*t494*t497*t499
982 t538 = 0.1211413728e1_dp*t240*t508
983 t540 = 0.1817120592e1_dp*t98*t221
984 t541 = t4**(-0.2833333333e1_dp)
985 t549 = -t536 + t538 - t540 - 0.2427089633e0_dp*bp*t541*t500 + 0.7943202439e0_dp &
986 *t246*t509 - 0.9531842928e0_dp*t102*t522
988 t563 = 0.1e1_dp/t279/t113
989 t565 = t4**(-0.2500000000e1_dp)
992 t573 = t4**(-0.2666666666e1_dp)
998 t603 = t500/t284/t119*t601
999 t613 = t4**(-0.2333333333e1_dp)
1000 t625 = 0.1e1_dp/t279
1001 t665 = t26**(-0.40e1_dp)
1002 t690 = t541*t497*t499
1005 t705 = 0.8412595335e-1_dp*t501 - 0.1514267160e0_dp*t505 - 0.3028534320e0_dp &
1006 *t510 - 0.1906368585e1_dp*t124*t235*t101*t513 + 0.7943202441e0_dp &
1007 *t291*t245*t504 - 0.1906368585e1_dp*t292*t516 + 0.9531842928e0_dp &
1008 *t292*t519 + 0.4206297667e-1_dp*t11*t573*t500 - 0.4854179269e0_dp &
1009 *t125*t690 + 0.1588640488e1_dp*t125*t693 - 0.1906368586e1_dp &
1010 *t125*t696 - 0.6e1_dp*t27*t526*t528 + 0.6e1_dp*t302 &
1012 t710 = 0.6354561952e0_dp*t306*t309*t10*t127 - 0.1211413727e1_dp* &
1013 t316*t570 + 0.1924500894e0_dp*t32*t625*t565*t559 + 0.3365038132e0_dp &
1014 *t315*t494*t559 - 0.4490502088e0_dp*t32*t563*t565 &
1015 *t567 - 0.1588640487e1_dp*t319*t570 + 0.1682519066e0_dp*t315*t573 &
1016 *t559 + 0.4854179267e0_dp*t136*t541*t559 - 0.1682519066e0_dp* &
1017 t324*t573*t567 + 0.1906368585e1_dp*t137*t583 + 0.1211413727e1_dp &
1018 *t325*t589 - 0.3365038132e0_dp*t324*t494*t567 + 0.2566001193e0_dp &
1019 *t32*t596*t565*t603 + t134*t251 + 0.6354561952e0_dp*t310 &
1020 *t105*t127 - 0.6354561952e0_dp*t311*t299 + 0.1514267160e0_dp &
1021 *t132*t665*t10*t241 + 0.2647734147e0_dp*t311*t296 + t705* &
1022 t133*t10 + 0.2e1_dp*t307*t105
1023 t719 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t501 + 0.6057068641e0_dp* &
1024 t505 + 0.1211413728e1_dp*t510 - 0.1817120592e1_dp*t88*t235*t513 &
1025 - 0.1817120592e1_dp*t225*t516 + 0.9085602960e0_dp*t225*t519 - 0.1817120592e1_dp &
1026 *t89*t522 - 0.5451361779e1_dp*t5*t526*t528 + 0.5451361779e1_dp &
1027 *t236*t531 - 0.9085602964e0_dp*t97*t549)*t109* &
1028 t10 + 0.2201284832e1_dp*t255*t105 + 0.6730076265e0_dp*t268*t494 &
1029 *t559 - 0.8981004177e0_dp*bp*t563*t565*t567 - 0.3177280975e1_dp &
1030 *t273*t570 + 0.3365038132e0_dp*t268*t573*t559 + 0.9708358534e0_dp &
1031 *t115*t541*t559 - 0.3365038132e0_dp*t282*t573*t567 + &
1032 0.3812737170e1_dp*t116*t583 + 0.7337616104e0_dp*t254*t258*t261 &
1033 + 0.2422827454e1_dp*t283*t589 - 0.6730076265e0_dp*t282*t494*t567 &
1034 + 0.5132002385e0_dp*bp*t596*t565*t603 + 0.7337616104e0_dp* &
1035 t259*t226 + 0.1100642416e1_dp*t110*t251 - 0.7337616104e0_dp*t259 &
1036 *t260*t230 + 0.4891744068e0_dp*t108*t613*t10*t219*t221 &
1037 - t24*t710*t38 - 0.2422827454e1_dp*t269*t570 + 0.3849001789e0_dp &
1040 t721 = t45**(-0.1666666667e1_dp)
1042 t729 = 0.6e1_dp*t230 - 0.6e1_dp*t727
1043 t732 = t48**(-0.1666666667e1_dp)
1050 t769 = t68**(-0.40e1_dp)
1052 t793 = 0.1e1_dp/t792
1054 t800 = t500/t405/t178*t798
1055 t804 = t494*t55*t500
1057 t808 = t216*t160*t807
1063 t836 = 0.1e1_dp/t835
1066 t851 = -t536 + t538 - t540 - 0.2427089633e0_dp*bf*t541*t500 + 0.7943202439e0_dp &
1067 *t368*t509 - 0.9531842928e0_dp*t162*t522
1068 t853 = 0.8412595335e-1_dp*t804 - 0.1514267160e0_dp*t808 - 0.3028534320e0_dp &
1069 *t810 - 0.1906368585e1_dp*t183*t363*t101*t814 + 0.7943202441e0_dp &
1070 *t412*t245*t807 - 0.1906368585e1_dp*t413*t820 + 0.9531842928e0_dp &
1071 *t413*t823 + 0.4206297667e-1_dp*t55*t573*t500 - 0.4854179269e0_dp &
1072 *t184*t690 + 0.1588640488e1_dp*t184*t693 - 0.1906368586e1_dp &
1073 *t184*t696 - 0.6e1_dp*t69*t836*t838 + 0.6e1_dp*t420 &
1076 t863 = 0.1e1_dp/t400
1077 t872 = 0.1e1_dp/t400/t172
1078 t879 = 0.2e1_dp*t425*t165 + t191*t373 + 0.6354561952e0_dp*t428* &
1079 t165*t127 - 0.6354561952e0_dp*t429*t299 + 0.1514267160e0_dp*t189 &
1080 *t769*t54*t241 + 0.2647734147e0_dp*t429*t296 + 0.1682519066e0_dp &
1081 *t433*t573*t748 + 0.4854179267e0_dp*t193*t541*t748 - 0.1682519066e0_dp &
1082 *t442*t573*t752 + 0.1906368585e1_dp*t194*t755 + &
1083 0.1211413727e1_dp*t443*t758 - 0.3365038132e0_dp*t442*t494*t752 &
1084 + 0.2566001193e0_dp*t74*t793*t565*t800 + t853*t190*t54 &
1085 + 0.6354561952e0_dp*t424*t427*t54*t127 - 0.1211413727e1_dp*t434 &
1086 *t860 + 0.1924500894e0_dp*t74*t863*t565*t748 + 0.3365038132e0_dp &
1087 *t433*t494*t748 - 0.4490502088e0_dp*t74*t872*t565*t752 &
1088 - 0.1588640487e1_dp*t437*t860
1089 t947 = 0.9708358534e0_dp*t174*t541*t748 - 0.3365038132e0_dp*t403 &
1090 *t573*t752 + 0.3812737170e1_dp*t175*t755 + 0.2422827454e1_dp*t404 &
1091 *t758 - t67*t879*t80 - 0.6730076265e0_dp*t403*t494*t752 &
1092 + 0.5132002385e0_dp*bf*t793*t565*t800 + 0.2201284832e1_dp*t377 &
1093 *t165 + 0.1100642416e1_dp*(-0.3365038134e0_dp*t804 + 0.6057068641e0_dp &
1094 *t808 + 0.1211413728e1_dp*t810 - 0.1817120592e1_dp*t88*t363* &
1095 t814 - 0.1817120592e1_dp*t356*t820 + 0.9085602960e0_dp*t356*t823 &
1096 - 0.1817120592e1_dp*t156*t522 - 0.5451361779e1_dp*t5*t836*t838 &
1097 + 0.5451361779e1_dp*t364*t841 - 0.9085602964e0_dp*t161*t851)* &
1098 t109*t54 + 0.7337616104e0_dp*t376*t258*t382 + 0.1100642416e1_dp &
1099 *t169*t373 + 0.7337616104e0_dp*t380*t357 - 0.7337616104e0_dp*t380 &
1100 *t381*t230 + 0.4891744068e0_dp*t168*t613*t54*t219*t221 &
1101 - 0.2422827454e1_dp*t390*t860 + 0.3849001789e0_dp*bf*t863*t565 &
1102 *t748 + 0.6730076265e0_dp*t389*t494*t748 - 0.8981004177e0_dp &
1103 *bf*t872*t565*t752 - 0.3177280975e1_dp*t394*t860 + 0.3365038132e0_dp &
1105 t950 = t51*(af*t947 - t720)
1106 t953 = 0.3e1_dp*t332
1107 t956 = 0.3e1_dp*t452
1109 e_aaa(ip) = e_aaa(ip) + ((t720 + (-0.5699736440e0_dp*t721*t334*t147 + 0.2564881396e1_dp &
1110 *t458*t339 + 0.2564881399e1_dp*t145*t729 - 0.5699736440e0_dp* &
1111 t732*t343*t151 + 0.2564881396e1_dp*t464*t346 - 0.2564881399e1_dp &
1112 *t150*t729)*t85 + 0.3e1_dp*t743 + 0.3e1_dp*t745 + t950)*t2 &
1113 + t953 + 0.3e1_dp*t350 + 0.6e1_dp*t351 + t956)*sc
1115 t967 = 0.2e1_dp*t230 - 0.6e1_dp*t727
1116 t984 = 0.2e1_dp*t470*t202
1118 t990 = 0.2e1_dp*t471
1120 e_aab(ip) = e_aab(ip) + ((t720 + (-0.5699736440e0_dp*t721*t334*t206 + 0.3419841862e1_dp &
1121 *t458*t337 + 0.8549604655e0_dp*t333*t339*t206 + 0.2564881399e1_dp &
1122 *t145*t967 - 0.5699736440e0_dp*t732*t343*t209 - 0.3419841862e1_dp &
1123 *t464*t337 + 0.8549604655e0_dp*t342*t346*t209 - 0.2564881399e1_dp &
1124 *t150*t967)*t85 + t743 + t984 + 0.2e1_dp*t745 + t986 &
1125 + t950)*t2 + t953 + t350 + 0.4e1_dp*t351 + t956 + t990 + t490)*sc
1129 e_abb(ip) = e_abb(ip) + ((t720 + (-0.5699736440e0_dp*t721*t147*t475 + 0.3419841862e1_dp &
1130 *t333*t43*t230*t206 + 0.8549604655e0_dp*t458*t479 - 0.5129762798e1_dp &
1131 *t145*t230 - 0.1538928839e2_dp*t461*t221 - 0.5699736440e0_dp &
1132 *t732*t151*t482 - 0.3419841862e1_dp*t342*t43*t230 &
1133 *t209 + 0.8549604655e0_dp*t464*t485 + 0.5129762798e1_dp*t150*t230 &
1134 + 0.1538928839e2_dp*t467*t221)*t85 + t984 + t745 + t1019 + 0.2e1_dp &
1135 *t986 + t950)*t2 + t953 + t990 + t352 + 0.4e1_dp*t472 + t956 &
1138 t1031 = -0.6e1_dp*t230 - 0.6e1_dp*t727
1140 e_bbb(ip) = e_bbb(ip) + ((t720 + (-0.5699736440e0_dp*t721*t475*t206 + 0.2564881396e1_dp &
1141 *t333*t206*t479 + 0.2564881399e1_dp*t145*t1031 - 0.5699736440e0_dp &
1142 *t732*t482*t209 + 0.2564881396e1_dp*t342*t209*t485 &
1143 - 0.2564881399e1_dp*t150*t1031)*t85 + 0.3e1_dp*t1019 + 0.3e1_dp*t986 &
1144 + t950)*t2 + t953 + 0.3e1_dp*t489 + 0.6e1_dp*t472 + t956)*sc
1152 END SUBROUTINE vwn3_lsd_calc
1172 SUBROUTINE vwn5_lsd_calc(rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, e_ab, &
1173 e_aaa, e_bbb, e_aab, e_abb, order, npoints, sc)
1175 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, &
1176 e_ab, e_aaa, e_bbb, e_aab, e_abb
1177 INTEGER,
INTENT(in) :: order, npoints
1181 REAL(kind=
dp) :: ap, bp, cp, d2f0, myrho, myrhoa, myrhob, qa, qf, qp, t1, t100, t101, t1010, &
1182 t1013, t1019, t1020, t1025, t1027, t1030, t104, t1043, t106, t1084, t1085, t1086, t1088, &
1183 t1089, t109, t1094, t1096, t1099, t11, t110, t1108, t1109, t111, t1110, t1111, t1113, &
1184 t1114, t1116, t1118, t1119, t1120, t1125, t113, t1137, t1142, t1145, t1148, t1149, t1151, &
1185 t1154, t1157, t116, t1160, t1165, t1166, t1168, t1171, t1181, t12, t120, t1205, t1208, &
1186 t1211, t1218, t122, t1221, t1235, t1238, t1244, t1245, t125, t1250, t1252, t126, t127, &
1187 t1284, t129, t1299, t13, t130, t131, t132, t133, t1341, t1344
1188 REAL(kind=
dp) :: t1346, t1358, t136, t1360, t1361, t1363, t1365, t1368, t137, t1371, t1372, &
1189 t1374, t1377, t1380, t1383, t1388, t1389, t1391, t1394, t140, t1404, t141, t142, t143, &
1190 t144, t1455, t1469, t147, t1477, t148, t1480, t1483, t149, t1490, t1493, t15, t150, &
1191 t1507, t151, t1510, t1516, t1517, t1522, t1524, t1527, t154, t155, t156, t1567, t157, &
1192 t1570, t1576, t1578, t1580, t1582, t1588, t159, t1590, t1593, t1599, t16, t160, t1602, &
1193 t1603, t1604, t1605, t1606, t1609, t161, t1610, t1611, t1613, t1615, t1620, t1622, t1626, &
1194 t1639, t164, t1653, t1654, t1657, t1659, t1664, t1666, t1668, t167
1195 REAL(kind=
dp) :: t1671, t1672, t1675, t168, t169, t1690, t1694, t1696, t1697, t1698, t17, &
1196 t1701, t172, t1726, t173, t1730, t174, t175, t1750, t1754, t176, t1764, t1765, t1768, &
1197 t1775, t1776, t1778, t178, t1782, t1783, t1785, t1786, t1789, t179, t1795, t1797, t18, &
1198 t180, t1804, t1826, t1829, t183, t1832, t1836, t1838, t1839, t184, t185, t1850, t1853, &
1199 t1858, t186, t1868, t1870, t1872, t1884, t1886, t189, t1891, t1893, t1894, t1897, t19, &
1200 t1901, t1904, t191, t192, t193, t1939, t1945, t1949, t195, t196, t1975, t1979, t1986, &
1201 t1998, t1999, t2, t20, t2010, t2011, t2014, t2019, t202, t2025, t203
1202 REAL(kind=
dp) :: t204, t2048, t205, t206, t207, t208, t211, t212, t213, t214, t217, t220, &
1203 t221, t224, t225, t226, t227, t228, t23, t230, t231, t232, t235, t236, t239, t24, t241, &
1204 t242, t243, t245, t246, t252, t253, t254, t255, t256, t257, t258, t259, t260, t263, t264, &
1205 t265, t266, t269, t27, t272, t273, t276, t277, t278, t279, t28, t280, t282, t283, t284, &
1206 t287, t288, t29, t291, t293, t294, t295, t297, t298, t3, t304, t305, t306, t309, t312, &
1207 t315, t316, t317, t32, t320, t321, t322, t323, t324, t325, t326, t327, t328, t329, t332, &
1208 t333, t337, t338, t34, t340, t343, t344, t347, t350, t351, t352
1209 REAL(kind=
dp) :: t353, t355, t356, t357, t359, t362, t363, t364, t365, t366, t367, t368, &
1210 t369, t37, t370, t371, t372, t373, t375, t376, t379, t38, t383, t384, t385, t388, t389, &
1211 t39, t390, t392, t393, t394, t399, t4, t40, t402, t403, t406, t407, t408, t409, t415, &
1212 t416, t417, t418, t42, t421, t424, t427, t429, t430, t431, t432, t434, t435, t439, t440, &
1213 t443, t444, t447, t45, t450, t454, t455, t457, t458, t459, t463, t464, t467, t472, t473, &
1214 t479, t480, t481, t482, t483, t484, t485, t486, t487, t488, t489, t49, t490, t491, t492, &
1215 t493, t494, t496, t497, t5, t503, t504, t505, t508, t51, t513
1216 REAL(kind=
dp) :: t516, t517, t520, t521, t522, t528, t529, t530, t531, t534, t537, t54, &
1217 t540, t542, t543, t544, t545, t547, t548, t55, t552, t553, t56, t560, t564, t565, t567, &
1218 t568, t569, t57, t573, t574, t577, t582, t583, t591, t592, t593, t594, t595, t596, t597, &
1219 t598, t599, t6, t60, t600, t601, t602, t603, t604, t605, t606, t607, t608, t61, t610, &
1220 t611, t617, t618, t619, t622, t627, t630, t631, t634, t635, t636, t64, t642, t643, t644, &
1221 t645, t648, t65, t651, t654, t656, t657, t658, t659, t661, t662, t666, t667, t674, t678, &
1222 t679, t68, t681, t682, t683, t687, t688, t691, t696, t697, t70
1223 REAL(kind=
dp) :: t704, t705, t706, t709, t712, t715, t716, t719, t722, t725, t728, t729, &
1224 t73, t730, t732, t733, t735, t74, t741, t742, t743, t744, t745, t746, t748, t75, t750, &
1225 t751, t752, t753, t755, t756, t757, t758, t759, t762, t763, t764, t766, t767, t769, t77, &
1226 t771, t772, t773, t774, t777, t778, t779, t780, t782, t783, t784, t786, t789, t793, t796, &
1227 t799, t8, t80, t802, t803, t804, t806, t808, t811, t812, t813, t814, t815, t816, t817, &
1228 t818, t819, t820, t821, t822, t823, t824, t825, t826, t827, t828, t829, t830, t831, t832, &
1229 t833, t834, t835, t84, t842, t851, t857, t859, t86, t862, t864
1230 REAL(kind=
dp) :: t865, t866, t869, t870, t873, t874, t875, t878, t881, t884, t887, t89, &
1231 t890, t891, t893, t896, t9, t90, t901, t903, t905, t906, t91, t914, t92, t93, t937, t942, &
1232 t945, t948, t957, t96, t97, t972, t979, t982, t984, t986, t993, t996, x0p
1238 qp = sqrt(4.0_dp*cp - bp*bp)
1239 qa = sqrt(4.0_dp*ca - ba*ba)
1240 qf = sqrt(4.0_dp*cf - bf*bf)
1241 d2f0 = 4.0_dp/(9.0_dp*(2.0_dp**(1.0_dp/3.0_dp) - 1.0_dp))
1246 myrhoa = max(rhoa(ip), 0.0_dp)
1247 myrhob = max(rhob(ip), 0.0_dp)
1248 myrho = myrhoa + myrhob
1249 IF (myrho > eps_rho)
THEN
1250 myrhoa = max(epsilon(0.0_dp)*1.e4_dp, myrhoa)
1251 myrhob = max(epsilon(0.0_dp)*1.e4_dp, myrhob)
1252 myrho = myrhoa + myrhob
1254 t1 = myrhoa - myrhob
1259 t6 = t5**0.1333333333e1_dp
1261 t9 = t8**0.1333333333e1_dp
1262 t11 = 0.1923661050e1_dp*t6 + 0.1923661050e1_dp*t9 - 0.3847322100e1_dp
1265 t15 = (0.10e1_dp - t13)*ap
1266 t16 = 0.1e1_dp/0.3141592654e1_dp
1268 t18 = t17**0.3333333332e0_dp
1269 t19 = 0.9085602964e0_dp*t18
1270 t20 = t17**0.1666666666e0_dp
1271 t23 = t19 + 0.9531842930e0_dp*bp*t20 + cp
1273 t27 = log(0.9085602964e0_dp*t18*t24)
1274 t28 = 0.1906368586e1_dp*t20
1279 t38 = 0.9531842930e0_dp*t20
1281 t40 = t39**0.20e1_dp
1283 t45 = 0.20e1_dp*bp + 0.40e1_dp*x0p
1284 t49 = x0p**0.20e1_dp
1285 t51 = 0.1e1_dp/(t49 + t37 + cp)
1286 t54 = t27 + 0.20e1_dp*bp*t32*t34 - t37*(t42 + t45*t32*t34) &
1289 t56 = 0.10e1_dp - t12
1291 t60 = t19 + 0.9531842930e0_dp*ba*t20 + ca
1293 t64 = log(0.9085602964e0_dp*t18*t61)
1299 t75 = t74**0.20e1_dp
1301 t80 = 0.20e1_dp*ba + 0.40e1_dp*x0a
1302 t84 = x0a**0.20e1_dp
1303 t86 = 0.1e1_dp/(t84 + t73 + ca)
1304 t89 = t64 + 0.20e1_dp*ba*t68*t70 - t73*(t77 + t80*t68*t70) &
1310 t96 = t19 + 0.9531842930e0_dp*bf*t20 + cf
1312 t100 = log(0.9085602964e0_dp*t18*t97)
1314 t104 = atan(qf/t101)
1318 t111 = t110**0.20e1_dp
1319 t113 = log(t111*t97)
1320 t116 = 0.20e1_dp*bf + 0.40e1_dp*x0f
1321 t120 = x0f**0.20e1_dp
1322 t122 = 0.1e1_dp/(t120 + t109 + cf)
1323 t125 = t100 + 0.20e1_dp*bf*t104*t106 - t109*(t113 + t116*t104 &
1328 e_0(ip) = e_0(ip) + ((t55 + t93 + t127)*t2)*sc
1330 IF (order >= 1)
THEN
1331 t129 = t5**0.333333333e0_dp
1333 t131 = 0.1e1_dp/t130
1336 t136 = t8**0.333333333e0_dp
1338 t140 = 0.2564881399e1_dp*t129*t133 + 0.2564881399e1_dp*t136*t137
1340 t142 = t4**0.30e1_dp
1343 t147 = (-t141 - 0.40e1_dp*t144)*ap
1345 t149 = t17**(-0.6666666668e0_dp)
1349 t155 = 0.1e1_dp/t154
1352 t159 = 0.3028534320e0_dp*t157*t131
1353 t160 = t17**(-0.8333333334e0_dp)
1355 t164 = -t159 - 0.1588640488e0_dp*t161*t151
1356 t167 = -0.3028534320e0_dp*t150*t151 - 0.9085602964e0_dp*t156*t164
1357 t168 = t17**(-0.3333333332e0_dp)
1360 t173 = 0.1e1_dp/t172
1364 t178 = 0.1e1_dp + t176*t173
1365 t179 = 0.1e1_dp/t178
1367 t183 = t39**0.10e1_dp
1372 t191 = -0.3177280976e0_dp*t184*t186 - t189*t164
1373 t192 = t39**(-0.20e1_dp)
1377 t202 = 0.1100642416e1_dp*t169*t23 + 0.6354561950e0_dp*t175*t180 - &
1378 t37*(t193*t23 + 0.3177280975e0_dp*t196*t180)*t51
1383 t207 = 0.40e1_dp*t206
1386 t212 = 0.1e1_dp/t211
1389 t217 = -t159 - 0.1588640488e0_dp*t214*t151
1390 t220 = -0.3028534320e0_dp*t208*t151 - 0.9085602964e0_dp*t213*t217
1393 t225 = 0.1e1_dp/t224
1397 t230 = 0.1e1_dp + t228*t225
1398 t231 = 0.1e1_dp/t230
1400 t235 = t74**0.10e1_dp
1403 t241 = -0.3177280976e0_dp*t236*t186 - t239*t217
1404 t242 = t74**(-0.20e1_dp)
1408 t252 = 0.1100642416e1_dp*t221*t60 + 0.6354561950e0_dp*t227*t232 - &
1409 t73*(t243*t60 + 0.3177280975e0_dp*t246*t232)*t86
1416 t259 = 0.40e1_dp*t258
1419 t264 = 0.1e1_dp/t263
1422 t269 = -t159 - 0.1588640488e0_dp*t266*t151
1423 t272 = -0.3028534320e0_dp*t260*t151 - 0.9085602964e0_dp*t265*t269
1426 t277 = 0.1e1_dp/t276
1430 t282 = 0.1e1_dp + t280*t277
1431 t283 = 0.1e1_dp/t282
1433 t287 = t110**0.10e1_dp
1436 t293 = -0.3177280976e0_dp*t288*t186 - t291*t269
1437 t294 = t110**(-0.20e1_dp)
1441 t304 = 0.1100642416e1_dp*t273*t96 + 0.6354561950e0_dp*t279*t284 - &
1442 t109*(t295*t96 + 0.3177280975e0_dp*t298*t284)*t122
1446 e_a(ip) = e_a(ip) + ((t148 + t203 + t205 - t207 + t255 + t256 + t259 + t306)*t2 + &
1447 t55 + t93 + t127)*sc
1451 t315 = 0.2564881399e1_dp*t129*t309 + 0.2564881399e1_dp*t136*t312
1454 t320 = (-t316 - 0.40e1_dp*t317)*ap
1459 t325 = 0.40e1_dp*t324
1463 t329 = 0.40e1_dp*t328
1465 e_b(ip) = e_b(ip) + ((t321 + t203 + t323 - t325 + t255 + t326 + t329 + t306)*t2 + &
1466 t55 + t93 + t127)*sc
1469 IF (order >= 2)
THEN
1470 t332 = t5**(-0.666666667e0_dp)
1472 t337 = 0.1e1_dp/t130/t2
1474 t340 = -0.2e1_dp*t131 + 0.2e1_dp*t338
1475 t343 = t8**(-0.666666667e0_dp)
1478 t350 = 0.8549604655e0_dp*t332*t333 + 0.2564881399e1_dp*t129*t340 &
1479 + 0.8549604655e0_dp*t343*t344 + 0.2564881399e1_dp*t136*t347
1483 t355 = t4**0.20e1_dp
1487 t362 = (-t351 - 0.80e1_dp*t353 - 0.1200e2_dp*t357 - 0.40e1_dp*t359)* &
1491 t365 = 0.2e1_dp*t364
1492 t366 = t17**(-0.1666666667e1_dp)
1494 t368 = 0.3141592654e1_dp**2
1495 t369 = 0.1e1_dp/t368
1497 t371 = 0.1e1_dp/t370
1503 t383 = 0.1e1_dp/t154/t23
1508 t390 = 0.2019022880e0_dp*t389
1509 t392 = 0.6057068640e0_dp*t157*t337
1510 t393 = t17**(-0.1833333333e1_dp)
1512 t399 = -t390 + t392 - 0.1323867073e0_dp*t394*t372 + 0.3177280976e0_dp &
1514 t402 = -0.2019022880e0_dp*t373 + 0.6057068640e0_dp*t375*t376 + 0.6057068640e0_dp &
1515 *t150*t379 + 0.1817120593e1_dp*t384*t385 - 0.9085602964e0_dp &
1518 t406 = t17**(-0.1333333333e1_dp)
1522 t415 = 0.1e1_dp/t172/t29
1529 t429 = 0.1e1_dp/t427/t29
1533 t434 = 0.1e1_dp/t432*t176
1541 t454 = 0.5047557200e-1_dp*t373 + 0.6354561952e0_dp*t440*t376 - 0.2647734147e0_dp &
1542 *t184*t444 + 0.6354561952e0_dp*t184*t447 + 0.2e1_dp* &
1543 t450*t385 - t189*t399
1545 t457 = t39**(-0.30e1_dp)
1553 t479 = 0.1100642416e1_dp*t403*t23 + 0.3668808052e0_dp*t407*t409 + &
1554 0.1100642416e1_dp*t169*t164 + 0.4038045758e0_dp*t417*t418 + 0.5295468292e0_dp &
1555 *t421*t418 - 0.1270912390e1_dp*t175*t424 - 0.4038045758e0_dp &
1556 *t431*t435 - t37*(t455*t23 + 0.3177280976e0_dp*t459 &
1557 *t186 + t193*t164 + 0.2019022879e0_dp*t464*t418 + 0.2647734146e0_dp &
1558 *t467*t418 - 0.6354561950e0_dp*t196*t424 - 0.2019022879e0_dp* &
1564 t484 = 0.80e1_dp*t483
1566 t486 = 0.2e1_dp*t485
1568 t488 = 0.1200e2_dp*t487
1570 t490 = 0.40e1_dp*t489
1572 t492 = 0.80e1_dp*t491
1577 t503 = 0.1e1_dp/t211/t60
1581 t513 = -t390 + t392 - 0.1323867073e0_dp*t508*t372 + 0.3177280976e0_dp &
1583 t516 = -0.2019022880e0_dp*t494 + 0.6057068640e0_dp*t496*t497 + 0.6057068640e0_dp &
1584 *t208*t379 + 0.1817120593e1_dp*t504*t505 - 0.9085602964e0_dp &
1590 t528 = 0.1e1_dp/t224/t65
1597 t542 = 0.1e1_dp/t540/t65
1601 t547 = 0.1e1_dp/t545*t228
1606 t564 = 0.5047557200e-1_dp*t494 + 0.6354561952e0_dp*t553*t497 - 0.2647734147e0_dp &
1607 *t236*t444 + 0.6354561952e0_dp*t236*t447 + 0.2e1_dp* &
1608 t560*t505 - t239*t513
1610 t567 = t74**(-0.30e1_dp)
1618 t591 = aa*(0.1100642416e1_dp*t517*t60 + 0.3668808052e0_dp*t520* &
1619 t522 + 0.1100642416e1_dp*t221*t217 + 0.4038045758e0_dp*t530*t531 &
1620 + 0.5295468292e0_dp*t534*t531 - 0.1270912390e1_dp*t227*t537 - 0.4038045758e0_dp &
1621 *t544*t548 - t73*(t565*t60 + 0.3177280976e0_dp* &
1622 t569*t186 + t243*t217 + 0.2019022879e0_dp*t574*t531 + 0.2647734146e0_dp &
1623 *t577*t531 - 0.6354561950e0_dp*t246*t537 - 0.2019022879e0_dp &
1624 *t583*t548)*t86)*t91
1628 t595 = 0.80e1_dp*t594
1630 t597 = 0.2e1_dp*t596
1633 t600 = 0.1200e2_dp*t599
1636 t603 = 0.80e1_dp*t602
1639 t606 = 0.40e1_dp*t605
1644 t617 = 0.1e1_dp/t263/t96
1648 t627 = -t390 + t392 - 0.1323867073e0_dp*t622*t372 + 0.3177280976e0_dp &
1650 t630 = -0.2019022880e0_dp*t608 + 0.6057068640e0_dp*t610*t611 + 0.6057068640e0_dp &
1651 *t260*t379 + 0.1817120593e1_dp*t618*t619 - 0.9085602964e0_dp &
1657 t642 = 0.1e1_dp/t276/t101
1664 t656 = 0.1e1_dp/t654/t101
1668 t661 = 0.1e1_dp/t659*t280
1673 t678 = 0.5047557200e-1_dp*t608 + 0.6354561952e0_dp*t667*t611 - 0.2647734147e0_dp &
1674 *t288*t444 + 0.6354561952e0_dp*t288*t447 + 0.2e1_dp* &
1675 t674*t619 - t291*t627
1677 t681 = t110**(-0.30e1_dp)
1685 t704 = af*(0.1100642416e1_dp*t631*t96 + 0.3668808052e0_dp*t634* &
1686 t636 + 0.1100642416e1_dp*t273*t269 + 0.4038045758e0_dp*t644*t645 &
1687 + 0.5295468292e0_dp*t648*t645 - 0.1270912390e1_dp*t279*t651 - 0.4038045758e0_dp &
1688 *t658*t662 - t109*(t679*t96 + 0.3177280976e0_dp &
1689 *t683*t186 + t295*t269 + 0.2019022879e0_dp*t688*t645 + 0.2647734146e0_dp &
1690 *t691*t645 - 0.6354561950e0_dp*t298*t651 - 0.2019022879e0_dp &
1693 t706 = t363 + t365 + t480 + t482 - t484 + t486 - t488 - t490 - t492 &
1694 + t592 + t593 + t595 + t597 + t600 + t603 + t606 + t705
1695 t709 = 0.2e1_dp*t203
1696 t712 = 0.2e1_dp*t255
1697 t715 = 0.2e1_dp*t306
1699 e_aa(ip) = e_aa(ip) + (t706*t2 + 0.2e1_dp*t148 + t709 + 0.2e1_dp*t205 - 0.80e1_dp*t206 &
1700 + t712 + 0.2e1_dp*t256 + 0.80e1_dp*t258 + t715)*sc
1706 t728 = 0.8549604655e0_dp*t716*t309 + 0.5129762798e1_dp*t719*t337 &
1707 + 0.8549604655e0_dp*t722*t312 - 0.5129762798e1_dp*t725*t337
1713 t741 = (-t729 - 0.40e1_dp*t730 - 0.40e1_dp*t733 - 0.1200e2_dp*t356*t735 &
1714 - 0.80e1_dp*t143*t338)*ap
1731 t763 = t742 + t364 + t743 + t480 + t745 - 0.40e1_dp*t746 + t485 - 0.40e1_dp &
1732 *t748 - 0.1200e2_dp*t753 - 0.80e1_dp*t759 - 0.40e1_dp*t491 + t762
1748 t786 = -0.40e1_dp*t764 + t592 + t766 + 0.40e1_dp*t767 + t596 + 0.40e1_dp &
1749 *t769 + 0.1200e2_dp*t774 + 0.40e1_dp*t602 + 0.80e1_dp*t780 + t782 + &
1750 0.40e1_dp*t784 + t705
1752 e_ab(ip) = e_ab(ip) + ((t763 + t786)*t2 + t148 + t709 + t205 - t207 + t712 + t256 &
1753 + t259 + t715 + t321 + t323 - t325 + t326 + t329)*sc
1755 t793 = 0.2e1_dp*t131 + 0.2e1_dp*t338
1758 t802 = 0.8549604655e0_dp*t332*t789 + 0.2564881399e1_dp*t129*t793 &
1759 + 0.8549604655e0_dp*t343*t796 + 0.2564881399e1_dp*t136*t799
1764 t811 = (-t803 - 0.80e1_dp*t804 - 0.1200e2_dp*t806 - 0.40e1_dp*t808)* &
1767 t813 = 0.2e1_dp*t743
1771 t817 = 0.80e1_dp*t816
1772 t818 = 0.2e1_dp*t762
1774 t820 = 0.1200e2_dp*t819
1776 t822 = 0.40e1_dp*t821
1777 t823 = 0.80e1_dp*t764
1780 t826 = 0.80e1_dp*t825
1781 t827 = 0.2e1_dp*t782
1784 t830 = 0.1200e2_dp*t829
1785 t831 = 0.80e1_dp*t784
1788 t834 = 0.40e1_dp*t833
1789 t835 = t812 + t813 + t480 + t815 - t817 + t818 - t820 - t822 - t823 &
1790 + t592 + t824 + t826 + t827 + t830 + t831 + t834 + t705
1792 e_bb(ip) = e_bb(ip) + (t835*t2 + 0.2e1_dp*t321 + t709 + 0.2e1_dp*t323 - 0.80e1_dp*t324 &
1793 + t712 + 0.2e1_dp*t326 + 0.80e1_dp*t328 + t715)*sc
1796 IF (order >= 3)
THEN
1797 t842 = 0.3e1_dp*t480
1798 t851 = 0.3e1_dp*t592
1799 t857 = 0.3e1_dp*t705
1800 t859 = t17**(-0.2666666667e1_dp)
1801 t862 = 0.1e1_dp/t368/0.3141592654e1_dp
1802 t864 = 0.1e1_dp/t370/t130
1804 t866 = t859*t24*t865
1806 t870 = t366*t155*t869
1807 t873 = 0.1e1_dp/t370/t2
1815 t891 = 0.1e1_dp/t890
1818 t901 = 0.3365038134e0_dp*t859*t862*t864
1819 t903 = 0.1211413728e1_dp*t388*t873
1820 t905 = 0.1817120592e1_dp*t157*t371
1821 t906 = t17**(-0.2833333333e1_dp)
1822 t914 = -t901 + t903 - t905 - 0.2427089633e0_dp*bp*t906*t865 + 0.7943202439e0_dp &
1823 *t394*t874 - 0.9531842928e0_dp*t161*t887
1824 t937 = t17**(-0.2666666666e1_dp)
1825 t942 = t906*t862*t864
1828 t957 = 0.8412595335e-1_dp*t866 - 0.1514267160e0_dp*t870 - 0.3028534320e0_dp &
1829 *t875 - 0.1906368585e1_dp*t183*t383*t160*t878 + 0.7943202441e0_dp &
1830 *t439*t393*t869 - 0.1906368585e1_dp*t440*t881 + 0.9531842928e0_dp &
1831 *t440*t884 + 0.4206297667e-1_dp*t24*t937*t865 - 0.4854179269e0_dp &
1832 *t184*t942 + 0.1588640488e1_dp*t184*t945 - 0.1906368586e1_dp &
1833 *t184*t948 - 0.6e1_dp*t40*t891*t893 + 0.6e1_dp*t450 &
1835 t972 = t39**(-0.40e1_dp)
1837 t982 = 0.1e1_dp/t427
1838 t984 = t17**(-0.2500000000e1_dp)
1840 t993 = 0.1e1_dp/t427/t172
1845 t1020 = 0.1e1_dp/t1019
1847 t1027 = t865/t432/t178*t1025
1848 t1030 = t957*t192*t23 + 0.2e1_dp*t455*t164 + 0.6354561952e0_dp* &
1849 t454*t457*t23*t186 + t193*t399 + 0.6354561952e0_dp*t458*t164 &
1850 *t186 - 0.6354561952e0_dp*t459*t447 + 0.1514267160e0_dp*t191 &
1851 *t972*t23*t389 + 0.2647734147e0_dp*t459*t444 - 0.1211413727e1_dp &
1852 *t464*t979 + 0.1924500894e0_dp*t45*t982*t984*t986 + 0.3365038132e0_dp &
1853 *t463*t859*t986 - 0.4490502088e0_dp*t45*t993*t984 &
1854 *t996 - 0.1588640487e1_dp*t467*t979 + 0.1682519066e0_dp*t463* &
1855 t937*t986 + 0.4854179267e0_dp*t195*t906*t986 - 0.1682519066e0_dp &
1856 *t472*t937*t996 + 0.1906368585e1_dp*t196*t1010 + 0.1211413727e1_dp &
1857 *t473*t1013 - 0.3365038132e0_dp*t472*t859*t996 + 0.2566001193e0_dp &
1858 *t45*t1020*t984*t1027
1859 t1043 = t17**(-0.2333333333e1_dp)
1860 t1084 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t866 + 0.6057068641e0_dp* &
1861 t870 + 0.1211413728e1_dp*t875 - 0.1817120592e1_dp*t149*t383*t878 &
1862 - 0.1817120592e1_dp*t375*t881 + 0.9085602960e0_dp*t375*t884 - &
1863 0.1817120592e1_dp*t150*t887 - 0.5451361779e1_dp*t18*t891*t893 &
1864 + 0.5451361779e1_dp*t384*t896 - 0.9085602964e0_dp*t156*t914)*t168 &
1865 *t23 + 0.2201284832e1_dp*t403*t164 - t37*t1030*t51 + 0.7337616104e0_dp &
1866 *t402*t406*t409 + 0.1100642416e1_dp*t169*t399 + &
1867 0.7337616104e0_dp*t407*t376 - 0.7337616104e0_dp*t407*t408*t337 &
1868 + 0.4891744068e0_dp*t167*t1043*t23*t369*t371 - 0.2422827454e1_dp &
1869 *t417*t979 + 0.3849001789e0_dp*bp*t982*t984*t986 + 0.6730076265e0_dp &
1870 *t416*t859*t986 - 0.8981004177e0_dp*bp*t993*t984 &
1871 *t996 - 0.3177280975e1_dp*t421*t979 + 0.3365038132e0_dp*t416* &
1872 t937*t986 + 0.9708358534e0_dp*t174*t906*t986 - 0.3365038132e0_dp &
1873 *t430*t937*t996 + 0.3812737170e1_dp*t175*t1010 + 0.2422827454e1_dp &
1874 *t431*t1013 - 0.6730076265e0_dp*t430*t859*t996 + 0.5132002385e0_dp &
1875 *bp*t1020*t984*t1027
1878 t1088 = t5**(-0.1666666667e1_dp)
1881 t1096 = 0.6e1_dp*t337 - 0.6e1_dp*t1094
1882 t1099 = t8**(-0.1666666667e1_dp)
1883 t1108 = -0.5699736440e0_dp*t1088*t1089 + 0.2564881396e1_dp*t716*t340 &
1884 + 0.2564881399e1_dp*t129*t1096 - 0.5699736440e0_dp*t1099*t344 &
1885 *t137 + 0.2564881396e1_dp*t722*t347 - 0.2564881399e1_dp*t136* &
1893 t1118 = t4**0.10e1_dp
1899 t1145 = t859*t97*t865
1901 t1149 = t366*t264*t1148
1907 t1166 = 0.1e1_dp/t1165
1910 t1181 = -t901 + t903 - t905 - 0.2427089633e0_dp*bf*t906*t865 + 0.7943202439e0_dp &
1911 *t622*t874 - 0.9531842928e0_dp*t266*t887
1913 t1208 = 0.1e1_dp/t654
1915 t1218 = 0.1e1_dp/t654/t276
1920 t1245 = 0.1e1_dp/t1244
1922 t1252 = t865/t659/t282*t1250
1923 t1284 = 0.8412595335e-1_dp*t1145 - 0.1514267160e0_dp*t1149 - 0.3028534320e0_dp &
1924 *t1151 - 0.1906368585e1_dp*t287*t617*t160*t1154 + 0.7943202441e0_dp &
1925 *t666*t393*t1148 - 0.1906368585e1_dp*t667*t1157 &
1926 + 0.9531842928e0_dp*t667*t1160 + 0.4206297667e-1_dp*t97*t937*t865 &
1927 - 0.4854179269e0_dp*t288*t942 + 0.1588640488e1_dp*t288*t945 &
1928 - 0.1906368586e1_dp*t288*t948 - 0.6e1_dp*t111*t1166*t1168 + 0.6e1_dp &
1929 *t674*t1171 - t291*t1181
1930 t1299 = t110**(-0.40e1_dp)
1931 t1341 = t1284*t294*t96 + 0.2e1_dp*t679*t269 + 0.6354561952e0_dp* &
1932 t678*t681*t96*t186 + t295*t627 + 0.6354561952e0_dp*t682* &
1933 t269*t186 - 0.6354561952e0_dp*t683*t447 + 0.1514267160e0_dp*t293 &
1934 *t1299*t96*t389 + 0.2647734147e0_dp*t683*t444 - 0.1211413727e1_dp &
1935 *t688*t1205 + 0.1924500894e0_dp*t116*t1208*t984*t1211 &
1936 + 0.3365038132e0_dp*t687*t859*t1211 - 0.4490502088e0_dp*t116*t1218 &
1937 *t984*t1221 - 0.1588640487e1_dp*t691*t1205 + 0.1682519066e0_dp &
1938 *t687*t937*t1211 + 0.4854179267e0_dp*t297*t906*t1211 - &
1939 0.1682519066e0_dp*t696*t937*t1221 + 0.1906368585e1_dp*t298*t1235 &
1940 + 0.1211413727e1_dp*t697*t1238 - 0.3365038132e0_dp*t696*t859 &
1941 *t1221 + 0.2566001193e0_dp*t116*t1245*t984*t1252
1942 t1344 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t1145 + 0.6057068641e0_dp &
1943 *t1149 + 0.1211413728e1_dp*t1151 - 0.1817120592e1_dp*t149*t617* &
1944 t1154 - 0.1817120592e1_dp*t610*t1157 + 0.9085602960e0_dp*t610*t1160 &
1945 - 0.1817120592e1_dp*t260*t887 - 0.5451361779e1_dp*t18*t1166 &
1946 *t1168 + 0.5451361779e1_dp*t618*t1171 - 0.9085602964e0_dp*t265* &
1947 t1181)*t168*t96 + 0.2201284832e1_dp*t631*t269 + 0.7337616104e0_dp &
1948 *t630*t406*t636 + 0.1100642416e1_dp*t273*t627 + 0.7337616104e0_dp &
1949 *t634*t611 - 0.7337616104e0_dp*t634*t635*t337 + 0.4891744068e0_dp &
1950 *t272*t1043*t96*t369*t371 - 0.2422827454e1_dp*t644 &
1951 *t1205 + 0.3849001789e0_dp*bf*t1208*t984*t1211 + 0.6730076265e0_dp &
1952 *t643*t859*t1211 - 0.8981004177e0_dp*bf*t1218*t984* &
1953 t1221 - 0.3177280975e1_dp*t648*t1205 + 0.3365038132e0_dp*t643*t937 &
1954 *t1211 + 0.9708358534e0_dp*t278*t906*t1211 - 0.3365038132e0_dp &
1955 *t657*t937*t1221 + 0.3812737170e1_dp*t279*t1235 + 0.2422827454e1_dp &
1956 *t658*t1238 - 0.6730076265e0_dp*t657*t859*t1221 + 0.5132002385e0_dp &
1957 *bf*t1245*t984*t1252 - t109*t1341*t122
1958 t1346 = t13*af*t1344
1959 t1358 = t356*t305*t333
1960 t1360 = t1085 + 0.3e1_dp*t1086 + (-t1109 - 0.120e2_dp*t1111 - 0.3600e2_dp &
1961 *t1114 - 0.120e2_dp*t1116 - 0.24000e2_dp*t1120 - 0.3600e2_dp*t356 &
1962 *t133*t340 - 0.40e1_dp*t1125)*ap*t54 + t1109*t126 - 0.24000e2_dp &
1963 *t1120*t92 + 0.120e2_dp*t1110*t257 - 0.120e2_dp*t1116*t92 &
1964 + 0.3e1_dp*t1137 + 0.3600e2_dp*t771*t772*t340 + 0.240e2_dp*t1142 &
1965 + t1346 - 0.120e2_dp*t1111*t92 - 0.3600e2_dp*t1114*t92 - 0.3600e2_dp &
1966 *t750*t90*t91*t340 - 0.40e1_dp*t1125*t92 + 0.3600e2_dp*t1358
1970 t1368 = t859*t61*t865
1972 t1372 = t366*t212*t1371
1978 t1389 = 0.1e1_dp/t1388
1981 t1404 = -t901 + t903 - t905 - 0.2427089633e0_dp*ba*t906*t865 + 0.7943202439e0_dp &
1982 *t508*t874 - 0.9531842928e0_dp*t214*t887
1983 t1455 = 0.8412595335e-1_dp*t1368 - 0.1514267160e0_dp*t1372 - 0.3028534320e0_dp &
1984 *t1374 - 0.1906368585e1_dp*t235*t503*t160*t1377 + 0.7943202441e0_dp &
1985 *t552*t393*t1371 - 0.1906368585e1_dp*t553*t1380 &
1986 + 0.9531842928e0_dp*t553*t1383 + 0.4206297667e-1_dp*t61*t937*t865 &
1987 - 0.4854179269e0_dp*t236*t942 + 0.1588640488e1_dp*t236*t945 &
1988 - 0.1906368586e1_dp*t236*t948 - 0.6e1_dp*t75*t1389*t1391 + 0.6e1_dp &
1989 *t560*t1394 - t239*t1404
1990 t1469 = t74**(-0.40e1_dp)
1992 t1480 = 0.1e1_dp/t540
1994 t1490 = 0.1e1_dp/t540/t224
1999 t1517 = 0.1e1_dp/t1516
2001 t1524 = t865/t545/t230*t1522
2002 t1527 = t1455*t242*t60 + 0.2e1_dp*t565*t217 + 0.6354561952e0_dp* &
2003 t564*t567*t60*t186 + 0.6354561952e0_dp*t568*t217*t186 - &
2004 0.6354561952e0_dp*t569*t447 + 0.1514267160e0_dp*t241*t1469*t60 &
2005 *t389 + 0.2647734147e0_dp*t569*t444 + t243*t513 - 0.1211413727e1_dp &
2006 *t574*t1477 + 0.1924500894e0_dp*t80*t1480*t984*t1483 + &
2007 0.3365038132e0_dp*t573*t859*t1483 - 0.4490502088e0_dp*t80*t1490 &
2008 *t984*t1493 - 0.1588640487e1_dp*t577*t1477 + 0.1682519066e0_dp &
2009 *t573*t937*t1483 + 0.4854179267e0_dp*t245*t906*t1483 - 0.1682519066e0_dp &
2010 *t582*t937*t1493 + 0.1906368585e1_dp*t246*t1507 &
2011 + 0.1211413727e1_dp*t583*t1510 - 0.3365038132e0_dp*t582*t859* &
2012 t1493 + 0.2566001193e0_dp*t80*t1517*t984*t1524
2013 t1567 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t1368 + 0.6057068641e0_dp &
2014 *t1372 + 0.1211413728e1_dp*t1374 - 0.1817120592e1_dp*t149*t503* &
2015 t1377 - 0.1817120592e1_dp*t496*t1380 + 0.9085602960e0_dp*t496*t1383 &
2016 - 0.1817120592e1_dp*t208*t887 - 0.5451361779e1_dp*t18*t1389 &
2017 *t1391 + 0.5451361779e1_dp*t504*t1394 - 0.9085602964e0_dp*t213* &
2018 t1404)*t168*t60 + 0.2201284832e1_dp*t517*t217 + 0.7337616104e0_dp &
2019 *t516*t406*t522 + 0.7337616104e0_dp*t520*t497 - 0.7337616104e0_dp &
2020 *t520*t521*t337 + 0.4891744068e0_dp*t220*t1043*t60* &
2021 t369*t371 - t73*t1527*t86 + 0.1100642416e1_dp*t221*t513 - 0.2422827454e1_dp &
2022 *t530*t1477 + 0.3849001789e0_dp*ba*t1480*t984 &
2023 *t1483 + 0.6730076265e0_dp*t529*t859*t1483 - 0.8981004177e0_dp* &
2024 ba*t1490*t984*t1493 - 0.3177280975e1_dp*t534*t1477 + 0.3365038132e0_dp &
2025 *t529*t937*t1483 + 0.9708358534e0_dp*t226*t906*t1483 &
2026 - 0.3365038132e0_dp*t543*t937*t1493 + 0.3812737170e1_dp*t227 &
2027 *t1507 + 0.2422827454e1_dp*t544*t1510 - 0.6730076265e0_dp*t543* &
2028 t859*t1493 + 0.5132002385e0_dp*ba*t1517*t984*t1524
2029 t1570 = t57*aa*t1567*t91
2034 t1588 = t143*t305*t340
2036 t1593 = t143*t704*t133
2037 t1599 = 0.3e1_dp*t1361 - 0.240e2_dp*t1363 - 0.120e2_dp*t1365 + t1570 + &
2038 0.40e1_dp*t143*t126*t1096 + t1108*t56*t92 + 0.3e1_dp*t1576 &
2039 - 0.3600e2_dp*t1578 + 0.3e1_dp*t1580 - 0.120e2_dp*t1582 + 0.24000e2_dp* &
2040 t1119*t126*t1089 + 0.120e2_dp*t1588 + 0.3e1_dp*t1590 + 0.120e2_dp &
2041 *t1593 + 0.120e2_dp*t352*t604 + 0.3600e2_dp*t1113*t598
2043 e_aaa(ip) = e_aaa(ip) + (t842 + 0.6e1_dp*t364 + 0.3e1_dp*t363 + 0.3e1_dp*t482 + 0.6e1_dp* &
2044 t485 - 0.240e2_dp*t483 - 0.3600e2_dp*t487 - 0.120e2_dp*t489 - 0.240e2_dp &
2045 *t491 + t851 + 0.3e1_dp*t593 + 0.6e1_dp*t596 + 0.240e2_dp*t594 + 0.3600e2_dp &
2046 *t599 + 0.240e2_dp*t602 + t857 + 0.120e2_dp*t605 + (t1360 + &
2049 t1602 = 0.2400e2_dp*t753
2050 t1603 = 0.2e1_dp*t766
2051 t1604 = 0.80e1_dp*t746
2052 t1605 = 0.2e1_dp*t745
2053 t1606 = 0.80e1_dp*t748
2054 t1609 = 0.160e2_dp*t759
2055 t1610 = -t1602 + t1603 - t1604 + t1605 + t818 - t490 - t1606 + t827 &
2056 + t363 - t488 + t831 + t813 - t823 - 0.160e2_dp*t491 + 0.4e1_dp*t364 &
2058 t1611 = 0.80e1_dp*t767
2060 t1615 = 0.80e1_dp*t732*t601
2061 t1620 = 0.80e1_dp*t733*t254
2062 t1622 = 0.80e1_dp*t352*t783
2064 t1639 = 0.2e1_dp*t337 - 0.6e1_dp*t1094
2065 t1653 = -0.5699736440e0_dp*t1088*t333*t309 + 0.3419841862e1_dp*t716 &
2066 *t338 + 0.8549604655e0_dp*t332*t340*t309 + 0.2564881399e1_dp* &
2067 t129*t1639 - 0.5699736440e0_dp*t1099*t344*t312 - 0.3419841862e1_dp &
2068 *t722*t338 + 0.8549604655e0_dp*t343*t347*t312 - 0.2564881399e1_dp &
2071 t1657 = t143*t704*t309
2072 t1659 = t1085 + 0.2e1_dp*t1086 + t1613 + t1615 - 0.160e2_dp*t352*t1 &
2073 *t758 - t1620 + t1622 + 0.40e1_dp*t1110*t327 + t1137 + 0.80e1_dp* &
2074 t1142 - 0.40e1_dp*t1626*t92 + t1346 + t1654*t126 + 0.40e1_dp*t1657
2075 t1664 = 0.160e2_dp*t777*t304*t1*t337
2076 t1666 = 0.80e1_dp*t730*t254
2081 t1690 = 0.2400e2_dp*t771*t304*t133*t309
2082 t1694 = 0.1200e2_dp*t1358 + t1664 + t1361 - t1666 - 0.80e1_dp*t1363 - &
2083 0.40e1_dp*t1668*t92 - 0.80e1_dp*t1672*t92 - 0.40e1_dp*t1675*t92 &
2084 - 0.2400e2_dp*t1113*t133*t752 - 0.80e1_dp*t1365 + t1570 - 0.4800e2_dp &
2085 *t356*t133*aa*t757*t338 + t1690 + 0.40e1_dp*t143*t126 &
2091 t1726 = t1696 - 0.1200e2_dp*t1698*t92 + 0.24000e2_dp*t1701*t125* &
2092 t333*t309 + t1653*t56*t92 + 0.2400e2_dp*t1113*af*t773 + &
2093 0.4800e2_dp*t771*t772*t338 + 0.160e2_dp*t352*af*t779 + 0.40e1_dp &
2094 *t732*t604 + t1576 - 0.1200e2_dp*t1578 + 0.1200e2_dp*t1697*t598 &
2095 + 0.2e1_dp*t1580 - 0.40e1_dp*t1582 + 0.80e1_dp*t1671*t257
2096 t1730 = 0.160e2_dp*t755*t756*t252*t91
2097 t1750 = -t1654 - 0.40e1_dp*t1675 - 0.80e1_dp*t1672 - 0.2400e2_dp*t1113 &
2098 *t735 - 0.160e2_dp*t352*t338 - 0.1200e2_dp*t1698 - 0.24000e2_dp*t1119 &
2099 *t333*t309 - 0.4800e2_dp*t356*t133*t1*t337 - 0.40e1_dp* &
2100 t1626 - 0.1200e2_dp*t356*t340*t309 - 0.40e1_dp*t1668
2101 t1754 = 0.2e1_dp*t744*t254
2102 t1764 = 0.2e1_dp*t741*t202
2104 t1768 = 0.2400e2_dp*t750*t253*t751
2105 t1775 = 0.2e1_dp*t729*t305
2107 t1778 = -t1730 + t1750*ap*t54 + t1754 - 0.24000e2_dp*t1119*t333 &
2108 *t752 + 0.40e1_dp*t1588 - 0.1200e2_dp*t356*t340*t752 + 0.2e1_dp &
2109 *t1590 + t1764 + t1765 - t1768 + 0.80e1_dp*t1593 + 0.1200e2_dp*t771 &
2110 *t125*t340*t309 + t1775 - 0.40e1_dp*t1776
2111 t1782 = 0.2e1_dp*t742
2112 t1783 = 0.160e2_dp*t780
2113 t1785 = 0.2400e2_dp*t774
2114 t1786 = 0.80e1_dp*t769
2115 t1789 = t606 + t1611 + t600 + t482 + t851 + t595 + (t1659 + t1694 + &
2116 t1726 + t1778)*t2 + t1782 + t1783 + t593 + 0.4e1_dp*t596 + t857 &
2117 - t484 + t1785 + t1786 + 0.4e1_dp*t485 + 0.160e2_dp*t602
2119 e_aab(ip) = e_aab(ip) + (t1610 + t1789)*sc
2121 t1795 = -t1602 + t826 + t812 + t824 + t834 + t1603 - t1604 + t1605 &
2122 + 0.4e1_dp*t762 - t1606 + 0.4e1_dp*t782 + t830 + 0.160e2_dp*t784 + 0.4e1_dp &
2123 *t743 - 0.160e2_dp*t764 - t492 + t365
2124 t1797 = t143*t305*t793
2126 t1826 = -0.5699736440e0_dp*t1088*t133*t789 + 0.3419841862e1_dp*t332 &
2127 *t1*t1804 + 0.8549604655e0_dp*t716*t793 - 0.5129762798e1_dp* &
2128 t129*t337 - 0.1538928839e2_dp*t719*t371 - 0.5699736440e0_dp*t1099 &
2129 *t137*t796 - 0.3419841862e1_dp*t343*t1*t337*t312 + 0.8549604655e0_dp &
2130 *t722*t799 + 0.5129762798e1_dp*t136*t337 + 0.1538928839e2_dp &
2136 t1839 = t1085 + t1086 + 0.40e1_dp*t1797 + 0.2e1_dp*t1613 + t1615 + t1826 &
2137 *t56*t92 - 0.40e1_dp*t1829*t92 - t1620 + t1832 + t1622 + 0.24000e2_dp &
2138 *t1701*t772*t789 + 0.80e1_dp*t1836 + t1346 + t1838
2140 t1853 = t356*t305*t789
2142 t1868 = -0.80e1_dp*t143*t126*t337 + 0.240e2_dp*t755*t371*aa* &
2143 t757 - 0.2400e2_dp*t1697*t133*t752 - 0.1200e2_dp*t1850 + 0.1200e2_dp &
2144 *t1853 + 0.80e1_dp*t1657 + t1664 - t1666 - 0.40e1_dp*t1365 + t1570 &
2145 + t1690 + 0.2e1_dp*t1696 + 0.40e1_dp*t1858*t257 - 0.24000e2_dp*t1119 &
2146 *t133*t90*t91*t789 + 0.80e1_dp*t1671*t327
2155 t1901 = t90*t91*t793
2156 t1904 = -0.80e1_dp*t1870 + 0.80e1_dp*t1872*t92 - 0.160e2_dp*t732*t1 &
2157 *t758 + 0.1200e2_dp*t771*t772*t793 + 0.2400e2_dp*t1697*af* &
2158 t773 + t1884*t126 - 0.80e1_dp*t1886*t92 + 0.40e1_dp*t352*t832 &
2159 - 0.40e1_dp*t1891 + t1893 + t1580 - 0.1200e2_dp*t1894*t92 - 0.40e1_dp &
2160 *t1897*t92 - 0.1200e2_dp*t750*t1901
2161 t1939 = -t1884 - 0.80e1_dp*t1886 - 0.1200e2_dp*t1894 - 0.40e1_dp*t1829 &
2162 - 0.40e1_dp*t1897 - 0.2400e2_dp*t1697*t735 - 0.160e2_dp*t732*t338 &
2163 - 0.24000e2_dp*t1119*t133*t789 - 0.4800e2_dp*t356*t338*t309 &
2164 - 0.1200e2_dp*t356*t133*t793 + 0.80e1_dp*t1872 + 0.240e2_dp*t143 &
2166 t1945 = -t1730 - 0.240e2_dp*t777*t778*t371 + t1754 - 0.4800e2_dp* &
2167 t356*t338*t752 + 0.160e2_dp*t732*af*t779 + t1590 + t1764 + &
2168 0.2e1_dp*t1765 - t1768 + 0.40e1_dp*t1593 + 0.4800e2_dp*t771*t778* &
2169 t1804 + t1939*ap*t54 + 0.1200e2_dp*t1113*t828 + t1775 - 0.80e1_dp &
2171 t1949 = t842 - t1609 + t815 + t1611 + t851 + t1782 + t1783 + t597 + &
2172 t857 + (t1839 + t1868 + t1904 + t1945)*t2 - t817 + t1785 + t1786 &
2173 - t820 + t486 + t603 - t822
2175 e_abb(ip) = e_abb(ip) + (t1795 + t1949)*sc
2179 t1986 = -0.6e1_dp*t337 - 0.6e1_dp*t1094
2180 t1998 = -0.5699736440e0_dp*t1088*t1979 + 0.2564881396e1_dp*t332*t309 &
2181 *t793 + 0.2564881399e1_dp*t129*t1986 - 0.5699736440e0_dp*t1099 &
2182 *t796*t312 + 0.2564881396e1_dp*t343*t312*t799 - 0.2564881399e1_dp &
2185 t2010 = t1085 + 0.120e2_dp*t1797 + 0.3e1_dp*t1613 - 0.3600e2_dp*t356* &
2186 t309*t1901 + 0.3600e2_dp*t771*t125*t309*t793 + 0.3e1_dp*t1832 &
2187 + 0.240e2_dp*t1836 - 0.3600e2_dp*t1975*t92 + t1346 + 0.3e1_dp*t1838 &
2188 + t1999*t126 + 0.40e1_dp*t143*t126*t1986 - 0.3600e2_dp*t1850 &
2189 + 0.3600e2_dp*t1853 + 0.120e2_dp*t1657 + 0.24000e2_dp*t1119*t126 &
2195 t2048 = -0.120e2_dp*t2011*t92 + t1570 - 0.120e2_dp*t2014*t92 + 0.3e1_dp &
2196 *t1696 - 0.240e2_dp*t1870 - 0.40e1_dp*t2019*t92 + (-t1999 - 0.120e2_dp &
2197 *t2011 - 0.3600e2_dp*t1975 - 0.120e2_dp*t2014 - 0.24000e2_dp* &
2198 t2025 - 0.3600e2_dp*t356*t309*t793 - 0.40e1_dp*t2019)*ap*t54 &
2199 - 0.24000e2_dp*t2025*t92 - 0.120e2_dp*t1891 + 0.3e1_dp*t1893 + 0.3600e2_dp &
2200 *t1697*t828 + 0.120e2_dp*t732*t832 + t1998*t56*t92 + &
2201 0.3e1_dp*t1765 + 0.120e2_dp*t1858*t327 - 0.120e2_dp*t1776
2203 e_bbb(ip) = e_bbb(ip) + (0.3e1_dp*t812 + 0.6e1_dp*t743 + t842 + t851 + t857 + 0.6e1_dp*t762 &
2204 - 0.240e2_dp*t764 + 0.6e1_dp*t782 + 0.240e2_dp*t784 + 0.3e1_dp*t815 &
2205 - 0.240e2_dp*t816 - 0.3600e2_dp*t819 - 0.120e2_dp*t821 + 0.3e1_dp*t824 &
2206 + 0.240e2_dp*t825 + 0.3600e2_dp*t829 + 0.120e2_dp*t833 + (t2010 + &
2215 END SUBROUTINE vwn5_lsd_calc
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public vosko1980
Defines the basic variable types.
integer, parameter, public dp
Module with functions to handle derivative descriptors. derivative description are strings have the f...
integer, parameter, public deriv_rhob
integer, parameter, public deriv_rhoa
integer, parameter, public deriv_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
Utility routines for the functional calculations.
subroutine, public set_util(cutoff)
...
subroutine, public calc_srs_pw(rho, x, n)
...
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
Calculate the LDA functional according to Vosk, Wilk and Nusair Literature: S. H. Vosko,...
subroutine, public vwn_lda_info(reference, shortform, needs, max_deriv)
...
subroutine, public vwn_lda_eval(rho_set, deriv_set, order, vwn_params)
...
subroutine, public vwn_lsd_eval(rho_set, deriv_set, order, vwn_params)
...
subroutine, public vwn_lsd_info(reference, shortform, needs, max_deriv)
...
A derivative set contains the different derivatives of a xc-functional in form of a linked list.
represent a derivative of a functional
contains a flag for each component of xc_rho_set, so that you can use it to tell which components you...
represent a density, with all the representation and data needed to perform a functional evaluation