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
116 TYPE(xc_rho_cflags_type),
INTENT(inout),
OPTIONAL :: needs
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
142 TYPE(xc_rho_cflags_type),
INTENT(inout),
OPTIONAL :: needs
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
167 TYPE(xc_rho_set_type),
INTENT(IN) :: rho_set
168 TYPE(xc_derivative_set_type),
INTENT(IN) :: deriv_set
169 INTEGER,
INTENT(in) :: order
170 TYPE(section_vals_type),
POINTER :: vwn_params
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
180 TYPE(xc_derivative_type),
POINTER :: deriv
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)
203 ELSEIF (order >= 0)
THEN
205 allocate_deriv=.true.)
208 CALL vwn_lda_0(rho, x, e_0, npoints, sc)
209 ELSEIF (order == -1)
THEN
211 allocate_deriv=.true.)
214 CALL vwn_lda_1(rho, x, e_rho, npoints, sc)
216 IF (order >= 2 .OR. order == -2)
THEN
218 allocate_deriv=.true.)
221 CALL vwn_lda_2(rho, x, e_rho_rho, npoints, sc)
223 IF (order >= 3 .OR. order == -3)
THEN
225 allocate_deriv=.true.)
228 CALL vwn_lda_3(rho, x, e_rho_rho_rho, npoints, sc)
230 IF (order > 3 .OR. order < -3)
THEN
231 cpabort(
"derivatives bigger than 3 not implemented")
235 CALL timestop(handle)
247 SUBROUTINE vwn_lda_0(rho, x, e_0, npoints, sc)
249 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
250 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_0
251 INTEGER,
INTENT(in) :: npoints
255 REAL(kind=
dp) :: at, dpx, ln1, ln2, px, px0, q, xb
257 q = sqrt(4.0_dp*c - b*b)
259 px0 = x0*x0 + b*x0 + c
268 IF (rho(ip) > eps_rho)
THEN
269 px = x(ip)*x(ip) + b*x(ip) + c
270 dpx = 2.0_dp*x(ip) + b
271 at = 2.0_dp/q*atan(q/dpx)
272 ln1 = log(x(ip)*x(ip)/px)
273 ln2 = log((x(ip) - x0)**2/px)
274 e_0(ip) = e_0(ip) + a*(ln1 + b*at - b*x0/px0*(ln2 + xb*at))*rho(ip)*sc
281 END SUBROUTINE vwn_lda_0
291 SUBROUTINE vwn_lda_1(rho, x, e_rho, npoints, sc)
293 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
294 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_rho
295 INTEGER,
INTENT(in) :: npoints
299 REAL(kind=
dp) :: at, dat, dex, dln1, dln2, dpx, ex, ln1, &
300 ln2, pa, px, px0, q, xb
302 q = sqrt(4.0_dp*c - b*b)
304 px0 = x0*x0 + b*x0 + c
313 IF (rho(ip) > eps_rho)
THEN
314 px = x(ip)*x(ip) + b*x(ip) + c
315 dpx = 2.0_dp*x(ip) + b
316 at = 2.0_dp/q*atan(q/dpx)
317 pa = 4.0_dp*x(ip)*x(ip) + 4.0_dp*b*x(ip) + b*b + q*q
319 ln1 = log(x(ip)*x(ip)/px)
320 dln1 = (b*x(ip) + 2.0_dp*c)/(x(ip)*px)
321 ln2 = log((x(ip) - x0)**2/px)
322 dln2 = (b*x(ip) + 2.0_dp*c + 2.0_dp*x0*x(ip) + x0*b)/((x(ip) - x0)*px)
323 ex = a*(ln1 + b*at - b*x0/px0*(ln2 + xb*at))
324 dex = a*(dln1 + b*dat - b*x0/px0*(dln2 + xb*dat))
325 e_rho(ip) = e_rho(ip) + (ex - x(ip)*dex/6.0_dp)*sc
332 END SUBROUTINE vwn_lda_1
343 SUBROUTINE vwn_lda_01(rho, x, e_0, e_rho, npoints, sc)
345 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
346 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_0, e_rho
347 INTEGER,
INTENT(in) :: npoints
351 REAL(kind=
dp) :: at, dat, dex, dln1, dln2, dpx, ex, ln1, &
352 ln2, pa, px, px0, q, xb
354 q = sqrt(4.0_dp*c - b*b)
356 px0 = x0*x0 + b*x0 + c
365 IF (rho(ip) > eps_rho)
THEN
366 px = x(ip)*x(ip) + b*x(ip) + c
367 dpx = 2.0_dp*x(ip) + b
368 at = 2.0_dp/q*atan(q/dpx)
369 pa = 4.0_dp*x(ip)*x(ip) + 4.0_dp*b*x(ip) + b*b + q*q
371 ln1 = log(x(ip)*x(ip)/px)
372 dln1 = (b*x(ip) + 2.0_dp*c)/(x(ip)*px)
373 ln2 = log((x(ip) - x0)**2/px)
374 dln2 = (x(ip)*(b + 2.0_dp*x0) + 2.0_dp*c + x0*b)/((x(ip) - x0)*px)
375 ex = a*(ln1 + b*at - b*x0/px0*(ln2 + xb*at))
376 dex = a*(dln1 + b*dat - b*x0/px0*(dln2 + xb*dat))
377 e_0(ip) = e_0(ip) + ex*rho(ip)*sc
378 e_rho(ip) = e_rho(ip) + (ex - x(ip)*dex/6.0_dp)*sc
385 END SUBROUTINE vwn_lda_01
395 SUBROUTINE vwn_lda_2(rho, x, e_rho_rho, npoints, sc)
397 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
398 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_rho_rho
399 INTEGER,
INTENT(in) :: npoints
403 REAL(kind=
dp) :: at, d2at, d2ex, d2ln1, d2ln2, dat, dex, &
404 dln1, dln2, dpx, fp, ln1, ln2, pa, px, &
407 q = sqrt(4.0_dp*c - b*b)
409 px0 = x0*x0 + b*x0 + c
420 IF (rho(ip) > eps_rho)
THEN
421 px = x(ip)*x(ip) + b*x(ip) + c
422 dpx = 2.0_dp*x(ip) + b
423 at = 2.0_dp/q*atan(q/dpx)
424 pa = 4.0_dp*x(ip)*x(ip) + 4.0_dp*b*x(ip) + b*b + q*q
426 d2at = 16.0_dp*dpx/(pa*pa)
427 ln1 = log(x(ip)*x(ip)/px)
428 dln1 = (b*x(ip) + 2.0_dp*c)/(x(ip)*px)
429 d2ln1 = b/(x(ip)*px) - (b*x(ip) + 2.0_dp*c)/(x(ip)*px)**2*(px + x(ip)*dpx)
430 ln2 = log((x(ip) - x0)**2/px)
431 dln2 = (x(ip)*xb + 2.0_dp*c + x0*b)/((x(ip) - x0)*px)
432 d2ln2 = xb/((x(ip) - x0)*px) - (x(ip)*xb + 2.0_dp*c + x0*b)/((x(ip) - x0)*px)**2 &
433 *(px + (x(ip) - x0)*dpx)
434 dex = a*(dln1 + b*dat + fp*(dln2 + xb*dat))
435 d2ex = a*(d2ln1 + b*d2at + fp*(d2ln2 + xb*d2at))
436 e_rho_rho(ip) = e_rho_rho(ip) &
437 + (x(ip)/(36.0_dp*rho(ip))*(x(ip)*d2ex - 5.0_dp*dex))*sc
443 END SUBROUTINE vwn_lda_2
453 SUBROUTINE vwn_lda_3(rho, x, e_rho_rho_rho, npoints, sc)
455 REAL(kind=
dp),
DIMENSION(*),
INTENT(IN) :: rho, x
456 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: e_rho_rho_rho
457 INTEGER,
INTENT(in) :: npoints
461 REAL(kind=
dp) :: at, ax, bx, cx, d2at, d2bx, d2dx, d2ex, &
462 d2ln1, d2ln2, d3at, d3ex, d3ln1, &
463 d3ln2, dat, dbx, ddx, dex, dln1, dln2, &
464 dpx, dx, fp, ln1, ln2, pa, px, px0, q, &
467 q = sqrt(4.0_dp*c - b*b)
469 px0 = x0*x0 + b*x0 + c
480 IF (rho(ip) > eps_rho)
THEN
481 px = x(ip)*x(ip) + b*x(ip) + c
482 dpx = 2.0_dp*x(ip) + b
483 at = 2.0_dp/q*atan(q/dpx)
484 pa = 4.0_dp*x(ip)*x(ip) + 4.0_dp*b*x(ip) + b*b + q*q
486 d2at = 16.0_dp*dpx/(pa*pa)
487 d3at = 32.0_dp/(pa*pa)*(1.0_dp - 4.0_dp*dpx*dpx/pa)
488 ln1 = log(x(ip)*x(ip)/px)
489 ax = b*x(ip) + 2.0_dp*c
492 d2bx = 2.0_dp*(dpx + x(ip))
494 d2ln1 = (b*bx - ax*dbx)/(bx*bx)
495 d3ln1 = -ax*d2bx/(bx*bx) - 2.0_dp*d2ln1*dbx/bx
496 ln2 = log((x(ip) - x0)**2/px)
497 cx = x(ip)*xb + 2.0_dp*c + x0*b
499 ddx = px + (x(ip) - x0)*dpx
500 d2dx = 2.0_dp*(dpx + (x(ip) - x0))
502 d2ln2 = (xb*dx - cx*ddx)/(dx*dx)
503 d3ln2 = -cx*d2dx/(dx*dx) - 2.0_dp*d2ln2*ddx/dx
504 dex = a*(dln1 + b*dat + fp*(dln2 + xb*dat))
505 d2ex = a*(d2ln1 + b*d2at + fp*(d2ln2 + xb*d2at))
506 d3ex = a*(d3ln1 + b*d3at + fp*(d3ln2 + xb*d3at))
507 e_rho_rho_rho(ip) = e_rho_rho_rho(ip) &
508 - (7.0_dp*x(ip)/(216.0_dp*rho(ip)*rho(ip))*(x(ip)*d2ex - 5.0_dp*dex) + &
509 x(ip)*x(ip)/(216.0_dp*rho(ip)*rho(ip))*(x(ip)*d3ex - 4.0_dp*d2ex))*sc
515 END SUBROUTINE vwn_lda_3
525 TYPE(xc_rho_set_type),
INTENT(IN) :: rho_set
526 TYPE(xc_derivative_set_type),
INTENT(IN) :: deriv_set
527 INTEGER,
INTENT(in) :: order
528 TYPE(section_vals_type),
POINTER :: vwn_params
530 CHARACTER(len=*),
PARAMETER :: routinen =
'vwn_lsd_eval'
532 INTEGER :: handle, npoints, type
533 INTEGER,
DIMENSION(2, 3) :: bo
534 REAL(kind=
dp) :: epsilon_rho, sc
535 REAL(kind=
dp),
CONTIGUOUS,
DIMENSION(:, :, :), &
536 POINTER :: dummy, e_0, e_a, e_aa, e_aaa, e_aab, &
537 e_ab, e_abb, e_b, e_bb, e_bbb, rhoa, &
539 TYPE(xc_derivative_type),
POINTER :: deriv
541 CALL timeset(routinen, handle)
546 local_bounds=bo, rho_cutoff=epsilon_rho)
547 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
548 CALL vwn_init(epsilon_rho, vwn_params)
565 allocate_deriv=.true.)
568 IF (order >= 1 .OR. order == -1)
THEN
570 allocate_deriv=.true.)
574 allocate_deriv=.true.)
577 IF (order >= 2 .OR. order == -2)
THEN
579 allocate_deriv=.true.)
583 allocate_deriv=.true.)
587 allocate_deriv=.true.)
590 IF (order >= 3 .OR. order == -3)
THEN
592 allocate_deriv=.true.)
596 allocate_deriv=.true.)
600 allocate_deriv=.true.)
604 allocate_deriv=.true.)
608 IF (order > 3 .OR. order < -3)
THEN
609 cpabort(
"derivatives bigger than 3 not implemented")
621 CALL vwn3_lsd_calc( &
622 rhoa=rhoa, rhob=rhob, e_0=e_0, &
624 e_aa=e_aa, e_bb=e_bb, e_ab=e_ab, &
625 e_aaa=e_aaa, e_bbb=e_bbb, e_aab=e_aab, e_abb=e_abb, &
626 order=order, npoints=npoints, &
638 CALL vwn5_lsd_calc( &
639 rhoa=rhoa, rhob=rhob, e_0=e_0, &
641 e_aa=e_aa, e_bb=e_bb, e_ab=e_ab, &
642 e_aaa=e_aaa, e_bbb=e_bbb, e_aab=e_aab, e_abb=e_abb, &
643 order=order, npoints=npoints, &
649 cpabort(
" Only functionals VWN3 and VWN5 are supported")
652 CALL timestop(handle)
674 SUBROUTINE vwn3_lsd_calc(rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, e_ab, &
675 e_aaa, e_bbb, e_aab, e_abb, order, npoints, sc)
677 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, &
678 e_ab, e_aaa, e_bbb, e_aab, e_abb
679 INTEGER,
INTENT(in) :: order, npoints
683 REAL(kind=
dp) :: ap, bp, cp, myrho, myrhoa, myrhob, qf, qp, t1, t10, t100, t101, t1019, &
684 t102, t1031, t105, t108, t109, t11, t110, t113, t114, t115, t116, t117, t119, t120, t121, &
685 t124, t125, t126, t127, t130, t132, t133, t134, t136, t137, t14, t144, t145, t146, t147, &
686 t15, t150, t151, t154, t155, t156, t159, t16, t160, t161, t162, t165, t168, t169, t172, &
687 t173, t174, t175, t176, t178, t179, t180, t183, t184, t187, t189, t19, t190, t191, t193, &
688 t194, t2, t202, t203, t206, t209, t21, t212, t213, t216, t217, t218, t219, t220, t221, &
689 t222, t223, t225, t226, t230, t231, t235, t236, t237, t24, t240
690 REAL(kind=
dp) :: t241, t242, t244, t245, t246, t25, t251, t254, t255, t258, t259, t26, t260, &
691 t261, t267, t268, t269, t27, t270, t273, t276, t279, t281, t282, t283, t284, t286, t287, &
692 t29, t291, t292, t295, t296, t299, t3, t302, t306, t307, t309, t310, t311, t315, t316, &
693 t319, t32, t324, t325, t332, t333, t334, t337, t339, t342, t343, t346, t349, t350, t351, &
694 t352, t353, t354, t356, t357, t36, t363, t364, t365, t368, t373, t376, t377, t38, t380, &
695 t381, t382, t388, t389, t390, t391, t394, t397, t4, t400, t402, t403, t404, t405, t407, &
696 t408, t412, t413, t42, t420, t424, t425, t427, t428, t429, t43
697 REAL(kind=
dp) :: t433, t434, t437, t44, t442, t443, t45, t451, t452, t455, t457, t458, t46, &
698 t461, t464, t467, t470, t471, t472, t475, t479, t48, t482, t485, t488, t489, t49, t490, &
699 t494, t497, t499, t5, t500, t501, t504, t505, t508, t509, t51, t510, t513, t516, t519, &
700 t522, t525, t526, t528, t531, t536, t538, t54, t540, t541, t549, t55, t559, t563, t565, &
701 t567, t570, t573, t58, t583, t589, t59, t595, t596, t6, t601, t603, t613, t62, t625, t64, &
702 t665, t67, t68, t69, t690, t693, t696, t7, t705, t71, t710, t719, t720, t721, t727, t729, &
703 t732, t74, t743, t745, t748, t752, t755, t758, t769, t78
704 REAL(kind=
dp) :: t792, t793, t798, t80, t800, t804, t807, t808, t810, t814, t820, t823, &
705 t835, t836, t838, t841, t85, t851, t853, t86, t860, t863, t872, t879, t88, t89, t90, t91, &
706 t92, t947, t95, t950, t953, t956, t96, t967, t97, t98, t984, t986, t990, x0p
712 qp = sqrt(4.0_dp*cp - bp*bp)
713 qf = sqrt(4.0_dp*cf - bf*bf)
717 myrhoa = max(rhoa(ip), 0.0_dp)
718 myrhob = max(rhob(ip), 0.0_dp)
719 myrho = myrhoa + myrhob
720 IF (myrho > eps_rho)
THEN
721 myrhoa = max(epsilon(0.0_dp)*1.e4_dp, myrhoa)
722 myrhob = max(epsilon(0.0_dp)*1.e4_dp, myrhob)
723 myrho = myrhoa + myrhob
726 t1 = 0.1e1_dp/0.3141592654e1_dp
730 t5 = t4**0.3333333332e0_dp
731 t6 = 0.9085602964e0_dp*t5
732 t7 = t4**0.1666666666e0_dp
733 t10 = t6 + 0.9531842930e0_dp*bp*t7 + cp
735 t14 = log(0.9085602964e0_dp*t5*t11)
736 t15 = 0.1906368586e1_dp*t7
741 t25 = 0.9531842930e0_dp*t7
745 t32 = 0.20e1_dp*bp + 0.40e1_dp*x0p
747 t38 = 0.1e1_dp/(t36 + t24 + cp)
748 t42 = ap*(t14 + 0.20e1_dp*bp*t19*t21 - t24*(t29 + t32*t19 &
750 t43 = myrhoa - myrhob
752 t45 = 0.10e1_dp + t44
753 t46 = t45**0.1333333333e1_dp
754 t48 = 0.10e1_dp - t44
755 t49 = t48**0.1333333333e1_dp
756 t51 = 0.1923661050e1_dp*t46 + 0.1923661050e1_dp*t49 - 0.3847322100e1_dp
757 t54 = t6 + 0.9531842930e0_dp*bf*t7 + cf
759 t58 = log(0.9085602964e0_dp*t5*t55)
767 t74 = 0.20e1_dp*bf + 0.40e1_dp*x0f
769 t80 = 0.1e1_dp/(t78 + t67 + cf)
770 t85 = af*(t58 + 0.20e1_dp*bf*t62*t64 - t67*(t71 + t74*t62 &
774 e_0(ip) = e_0(ip) + ((t42 + t86)*t2)*sc
777 IF (order >= 1 .OR. order == -1)
THEN
778 t88 = t4**(-0.6666666668e0_dp)
787 t100 = 0.3028534320e0_dp*t98*t91
788 t101 = t4**(-0.8333333334e0_dp)
790 t105 = -t100 - 0.1588640488e0_dp*t102*t92
791 t108 = -0.3028534320e0_dp*t89*t92 - 0.9085602964e0_dp*t97*t105
792 t109 = t4**(-0.3333333332e0_dp)
799 t119 = 0.1e1_dp + t117*t114
802 t124 = t26**0.10e1_dp
807 t132 = -0.3177280976e0_dp*t125*t127 - t130*t105
808 t133 = t26**(-0.20e1_dp)
812 t144 = ap*(0.1100642416e1_dp*t110*t10 + 0.6354561950e0_dp*t116* &
813 t121 - t24*(t134*t10 + 0.3177280975e0_dp*t137*t121)*t38)
814 t145 = t45**0.333333333e0_dp
817 t150 = t48**0.333333333e0_dp
819 t154 = 0.2564881399e1_dp*t145*t147 + 0.2564881399e1_dp*t150*t151
826 t165 = -t100 - 0.1588640488e0_dp*t162*t92
827 t168 = -0.3028534320e0_dp*t156*t92 - 0.9085602964e0_dp*t161*t165
834 t178 = 0.1e1_dp + t176*t173
837 t183 = t68**0.10e1_dp
840 t189 = -0.3177280976e0_dp*t184*t127 - t187*t165
841 t190 = t68**(-0.20e1_dp)
845 t202 = af*(0.1100642416e1_dp*t169*t54 + 0.6354561950e0_dp*t175* &
846 t180 - t67*(t191*t54 + 0.3177280975e0_dp*t194*t180)*t80) - &
850 e_a(ip) = e_a(ip) + ((t144 + t155 + t203)*t2 + t42 + t86)*sc
854 t212 = 0.2564881399e1_dp*t145*t206 + 0.2564881399e1_dp*t150*t209
857 e_b(ip) = e_b(ip) + ((t144 + t213 + t203)*t2 + t42 + t86)*sc
860 IF (order >= 2 .OR. order == -2)
THEN
861 t216 = t4**(-0.1666666667e1_dp)
863 t218 = 0.3141592654e1_dp**2
871 t230 = 0.1e1_dp/t90/t2
873 t235 = 0.1e1_dp/t95/t10
878 t242 = 0.2019022880e0_dp*t241
879 t244 = 0.6057068640e0_dp*t98*t230
880 t245 = t4**(-0.1833333333e1_dp)
882 t251 = -t242 + t244 - 0.1323867073e0_dp*t246*t222 + 0.3177280976e0_dp &
884 t254 = -0.2019022880e0_dp*t223 + 0.6057068640e0_dp*t225*t226 + 0.6057068640e0_dp &
885 *t89*t231 + 0.1817120593e1_dp*t236*t237 - 0.9085602964e0_dp &
888 t258 = t4**(-0.1333333333e1_dp)
892 t267 = 0.1e1_dp/t113/t16
899 t281 = 0.1e1_dp/t279/t16
903 t286 = 0.1e1_dp/t284*t117
911 t306 = 0.5047557200e-1_dp*t223 + 0.6354561952e0_dp*t292*t226 - 0.2647734147e0_dp &
912 *t125*t296 + 0.6354561952e0_dp*t125*t299 + 0.2e1_dp* &
913 t302*t237 - t130*t251
915 t309 = t26**(-0.30e1_dp)
923 t332 = ap*(0.1100642416e1_dp*t255*t10 + 0.3668808052e0_dp*t259* &
924 t261 + 0.1100642416e1_dp*t110*t105 + 0.4038045758e0_dp*t269*t270 &
925 + 0.5295468292e0_dp*t273*t270 - 0.1270912390e1_dp*t116*t276 - 0.4038045758e0_dp &
926 *t283*t287 - t24*(t307*t10 + 0.3177280976e0_dp* &
927 t311*t127 + t134*t105 + 0.2019022879e0_dp*t316*t270 + 0.2647734146e0_dp &
928 *t319*t270 - 0.6354561950e0_dp*t137*t276 - 0.2019022879e0_dp &
930 t333 = t45**(-0.666666667e0_dp)
933 t339 = -0.2e1_dp*t91 + 0.2e1_dp*t337
934 t342 = t48**(-0.666666667e0_dp)
937 t349 = 0.8549604655e0_dp*t333*t334 + 0.2564881399e1_dp*t145*t339 &
938 + 0.8549604655e0_dp*t342*t343 + 0.2564881399e1_dp*t150*t346
946 t363 = 0.1e1_dp/t159/t54
950 t373 = -t242 + t244 - 0.1323867073e0_dp*t368*t222 + 0.3177280976e0_dp &
952 t376 = -0.2019022880e0_dp*t354 + 0.6057068640e0_dp*t356*t357 + 0.6057068640e0_dp &
953 *t156*t231 + 0.1817120593e1_dp*t364*t365 - 0.9085602964e0_dp &
959 t388 = 0.1e1_dp/t172/t59
966 t402 = 0.1e1_dp/t400/t59
970 t407 = 0.1e1_dp/t405*t176
975 t424 = 0.5047557200e-1_dp*t354 + 0.6354561952e0_dp*t413*t357 - 0.2647734147e0_dp &
976 *t184*t296 + 0.6354561952e0_dp*t184*t299 + 0.2e1_dp* &
977 t420*t365 - t187*t373
979 t427 = t68**(-0.30e1_dp)
987 t451 = af*(0.1100642416e1_dp*t377*t54 + 0.3668808052e0_dp*t380* &
988 t382 + 0.1100642416e1_dp*t169*t165 + 0.4038045758e0_dp*t390*t391 &
989 + 0.5295468292e0_dp*t394*t391 - 0.1270912390e1_dp*t175*t397 - 0.4038045758e0_dp &
990 *t404*t408 - t67*(t425*t54 + 0.3177280976e0_dp* &
991 t429*t127 + t191*t165 + 0.2019022879e0_dp*t434*t391 + 0.2647734146e0_dp &
992 *t437*t391 - 0.6354561950e0_dp*t194*t397 - 0.2019022879e0_dp &
993 *t443*t408)*t80) - t332
998 e_aa(ip) = e_aa(ip) + ((t332 + t350 + t352 + t452)*t2 + t455 + 0.2e1_dp*t155 + t457)*sc
1004 t470 = 0.8549604655e0_dp*t458*t206 + 0.5129762798e1_dp*t461*t230 &
1005 + 0.8549604655e0_dp*t464*t209 - 0.5129762798e1_dp*t467*t230
1009 e_ab(ip) = e_ab(ip) + ((t332 + t471 + t351 + t472 + t452)*t2 + t455 + t155 + t457 &
1012 t479 = 0.2e1_dp*t91 + 0.2e1_dp*t337
1015 t488 = 0.8549604655e0_dp*t333*t475 + 0.2564881399e1_dp*t145*t479 &
1016 + 0.8549604655e0_dp*t342*t482 + 0.2564881399e1_dp*t150*t485
1018 t490 = 0.2e1_dp*t472
1020 e_bb(ip) = e_bb(ip) + ((t332 + t489 + t490 + t452)*t2 + t455 + 0.2e1_dp*t213 + t457)*sc
1023 IF (order >= 3 .OR. order == -3)
THEN
1024 t494 = t4**(-0.2666666667e1_dp)
1025 t497 = 0.1e1_dp/t218/0.3141592654e1_dp
1026 t499 = 0.1e1_dp/t220/t90
1028 t501 = t494*t11*t500
1030 t505 = t216*t96*t504
1031 t508 = 0.1e1_dp/t220/t2
1039 t526 = 0.1e1_dp/t525
1042 t536 = 0.3365038134e0_dp*t494*t497*t499
1043 t538 = 0.1211413728e1_dp*t240*t508
1044 t540 = 0.1817120592e1_dp*t98*t221
1045 t541 = t4**(-0.2833333333e1_dp)
1046 t549 = -t536 + t538 - t540 - 0.2427089633e0_dp*bp*t541*t500 + 0.7943202439e0_dp &
1047 *t246*t509 - 0.9531842928e0_dp*t102*t522
1049 t563 = 0.1e1_dp/t279/t113
1050 t565 = t4**(-0.2500000000e1_dp)
1053 t573 = t4**(-0.2666666666e1_dp)
1057 t596 = 0.1e1_dp/t595
1059 t603 = t500/t284/t119*t601
1060 t613 = t4**(-0.2333333333e1_dp)
1061 t625 = 0.1e1_dp/t279
1062 t665 = t26**(-0.40e1_dp)
1063 t690 = t541*t497*t499
1066 t705 = 0.8412595335e-1_dp*t501 - 0.1514267160e0_dp*t505 - 0.3028534320e0_dp &
1067 *t510 - 0.1906368585e1_dp*t124*t235*t101*t513 + 0.7943202441e0_dp &
1068 *t291*t245*t504 - 0.1906368585e1_dp*t292*t516 + 0.9531842928e0_dp &
1069 *t292*t519 + 0.4206297667e-1_dp*t11*t573*t500 - 0.4854179269e0_dp &
1070 *t125*t690 + 0.1588640488e1_dp*t125*t693 - 0.1906368586e1_dp &
1071 *t125*t696 - 0.6e1_dp*t27*t526*t528 + 0.6e1_dp*t302 &
1073 t710 = 0.6354561952e0_dp*t306*t309*t10*t127 - 0.1211413727e1_dp* &
1074 t316*t570 + 0.1924500894e0_dp*t32*t625*t565*t559 + 0.3365038132e0_dp &
1075 *t315*t494*t559 - 0.4490502088e0_dp*t32*t563*t565 &
1076 *t567 - 0.1588640487e1_dp*t319*t570 + 0.1682519066e0_dp*t315*t573 &
1077 *t559 + 0.4854179267e0_dp*t136*t541*t559 - 0.1682519066e0_dp* &
1078 t324*t573*t567 + 0.1906368585e1_dp*t137*t583 + 0.1211413727e1_dp &
1079 *t325*t589 - 0.3365038132e0_dp*t324*t494*t567 + 0.2566001193e0_dp &
1080 *t32*t596*t565*t603 + t134*t251 + 0.6354561952e0_dp*t310 &
1081 *t105*t127 - 0.6354561952e0_dp*t311*t299 + 0.1514267160e0_dp &
1082 *t132*t665*t10*t241 + 0.2647734147e0_dp*t311*t296 + t705* &
1083 t133*t10 + 0.2e1_dp*t307*t105
1084 t719 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t501 + 0.6057068641e0_dp* &
1085 t505 + 0.1211413728e1_dp*t510 - 0.1817120592e1_dp*t88*t235*t513 &
1086 - 0.1817120592e1_dp*t225*t516 + 0.9085602960e0_dp*t225*t519 - 0.1817120592e1_dp &
1087 *t89*t522 - 0.5451361779e1_dp*t5*t526*t528 + 0.5451361779e1_dp &
1088 *t236*t531 - 0.9085602964e0_dp*t97*t549)*t109* &
1089 t10 + 0.2201284832e1_dp*t255*t105 + 0.6730076265e0_dp*t268*t494 &
1090 *t559 - 0.8981004177e0_dp*bp*t563*t565*t567 - 0.3177280975e1_dp &
1091 *t273*t570 + 0.3365038132e0_dp*t268*t573*t559 + 0.9708358534e0_dp &
1092 *t115*t541*t559 - 0.3365038132e0_dp*t282*t573*t567 + &
1093 0.3812737170e1_dp*t116*t583 + 0.7337616104e0_dp*t254*t258*t261 &
1094 + 0.2422827454e1_dp*t283*t589 - 0.6730076265e0_dp*t282*t494*t567 &
1095 + 0.5132002385e0_dp*bp*t596*t565*t603 + 0.7337616104e0_dp* &
1096 t259*t226 + 0.1100642416e1_dp*t110*t251 - 0.7337616104e0_dp*t259 &
1097 *t260*t230 + 0.4891744068e0_dp*t108*t613*t10*t219*t221 &
1098 - t24*t710*t38 - 0.2422827454e1_dp*t269*t570 + 0.3849001789e0_dp &
1101 t721 = t45**(-0.1666666667e1_dp)
1103 t729 = 0.6e1_dp*t230 - 0.6e1_dp*t727
1104 t732 = t48**(-0.1666666667e1_dp)
1111 t769 = t68**(-0.40e1_dp)
1113 t793 = 0.1e1_dp/t792
1115 t800 = t500/t405/t178*t798
1116 t804 = t494*t55*t500
1118 t808 = t216*t160*t807
1124 t836 = 0.1e1_dp/t835
1127 t851 = -t536 + t538 - t540 - 0.2427089633e0_dp*bf*t541*t500 + 0.7943202439e0_dp &
1128 *t368*t509 - 0.9531842928e0_dp*t162*t522
1129 t853 = 0.8412595335e-1_dp*t804 - 0.1514267160e0_dp*t808 - 0.3028534320e0_dp &
1130 *t810 - 0.1906368585e1_dp*t183*t363*t101*t814 + 0.7943202441e0_dp &
1131 *t412*t245*t807 - 0.1906368585e1_dp*t413*t820 + 0.9531842928e0_dp &
1132 *t413*t823 + 0.4206297667e-1_dp*t55*t573*t500 - 0.4854179269e0_dp &
1133 *t184*t690 + 0.1588640488e1_dp*t184*t693 - 0.1906368586e1_dp &
1134 *t184*t696 - 0.6e1_dp*t69*t836*t838 + 0.6e1_dp*t420 &
1137 t863 = 0.1e1_dp/t400
1138 t872 = 0.1e1_dp/t400/t172
1139 t879 = 0.2e1_dp*t425*t165 + t191*t373 + 0.6354561952e0_dp*t428* &
1140 t165*t127 - 0.6354561952e0_dp*t429*t299 + 0.1514267160e0_dp*t189 &
1141 *t769*t54*t241 + 0.2647734147e0_dp*t429*t296 + 0.1682519066e0_dp &
1142 *t433*t573*t748 + 0.4854179267e0_dp*t193*t541*t748 - 0.1682519066e0_dp &
1143 *t442*t573*t752 + 0.1906368585e1_dp*t194*t755 + &
1144 0.1211413727e1_dp*t443*t758 - 0.3365038132e0_dp*t442*t494*t752 &
1145 + 0.2566001193e0_dp*t74*t793*t565*t800 + t853*t190*t54 &
1146 + 0.6354561952e0_dp*t424*t427*t54*t127 - 0.1211413727e1_dp*t434 &
1147 *t860 + 0.1924500894e0_dp*t74*t863*t565*t748 + 0.3365038132e0_dp &
1148 *t433*t494*t748 - 0.4490502088e0_dp*t74*t872*t565*t752 &
1149 - 0.1588640487e1_dp*t437*t860
1150 t947 = 0.9708358534e0_dp*t174*t541*t748 - 0.3365038132e0_dp*t403 &
1151 *t573*t752 + 0.3812737170e1_dp*t175*t755 + 0.2422827454e1_dp*t404 &
1152 *t758 - t67*t879*t80 - 0.6730076265e0_dp*t403*t494*t752 &
1153 + 0.5132002385e0_dp*bf*t793*t565*t800 + 0.2201284832e1_dp*t377 &
1154 *t165 + 0.1100642416e1_dp*(-0.3365038134e0_dp*t804 + 0.6057068641e0_dp &
1155 *t808 + 0.1211413728e1_dp*t810 - 0.1817120592e1_dp*t88*t363* &
1156 t814 - 0.1817120592e1_dp*t356*t820 + 0.9085602960e0_dp*t356*t823 &
1157 - 0.1817120592e1_dp*t156*t522 - 0.5451361779e1_dp*t5*t836*t838 &
1158 + 0.5451361779e1_dp*t364*t841 - 0.9085602964e0_dp*t161*t851)* &
1159 t109*t54 + 0.7337616104e0_dp*t376*t258*t382 + 0.1100642416e1_dp &
1160 *t169*t373 + 0.7337616104e0_dp*t380*t357 - 0.7337616104e0_dp*t380 &
1161 *t381*t230 + 0.4891744068e0_dp*t168*t613*t54*t219*t221 &
1162 - 0.2422827454e1_dp*t390*t860 + 0.3849001789e0_dp*bf*t863*t565 &
1163 *t748 + 0.6730076265e0_dp*t389*t494*t748 - 0.8981004177e0_dp &
1164 *bf*t872*t565*t752 - 0.3177280975e1_dp*t394*t860 + 0.3365038132e0_dp &
1166 t950 = t51*(af*t947 - t720)
1167 t953 = 0.3e1_dp*t332
1168 t956 = 0.3e1_dp*t452
1170 e_aaa(ip) = e_aaa(ip) + ((t720 + (-0.5699736440e0_dp*t721*t334*t147 + 0.2564881396e1_dp &
1171 *t458*t339 + 0.2564881399e1_dp*t145*t729 - 0.5699736440e0_dp* &
1172 t732*t343*t151 + 0.2564881396e1_dp*t464*t346 - 0.2564881399e1_dp &
1173 *t150*t729)*t85 + 0.3e1_dp*t743 + 0.3e1_dp*t745 + t950)*t2 &
1174 + t953 + 0.3e1_dp*t350 + 0.6e1_dp*t351 + t956)*sc
1176 t967 = 0.2e1_dp*t230 - 0.6e1_dp*t727
1177 t984 = 0.2e1_dp*t470*t202
1179 t990 = 0.2e1_dp*t471
1181 e_aab(ip) = e_aab(ip) + ((t720 + (-0.5699736440e0_dp*t721*t334*t206 + 0.3419841862e1_dp &
1182 *t458*t337 + 0.8549604655e0_dp*t333*t339*t206 + 0.2564881399e1_dp &
1183 *t145*t967 - 0.5699736440e0_dp*t732*t343*t209 - 0.3419841862e1_dp &
1184 *t464*t337 + 0.8549604655e0_dp*t342*t346*t209 - 0.2564881399e1_dp &
1185 *t150*t967)*t85 + t743 + t984 + 0.2e1_dp*t745 + t986 &
1186 + t950)*t2 + t953 + t350 + 0.4e1_dp*t351 + t956 + t990 + t490)*sc
1190 e_abb(ip) = e_abb(ip) + ((t720 + (-0.5699736440e0_dp*t721*t147*t475 + 0.3419841862e1_dp &
1191 *t333*t43*t230*t206 + 0.8549604655e0_dp*t458*t479 - 0.5129762798e1_dp &
1192 *t145*t230 - 0.1538928839e2_dp*t461*t221 - 0.5699736440e0_dp &
1193 *t732*t151*t482 - 0.3419841862e1_dp*t342*t43*t230 &
1194 *t209 + 0.8549604655e0_dp*t464*t485 + 0.5129762798e1_dp*t150*t230 &
1195 + 0.1538928839e2_dp*t467*t221)*t85 + t984 + t745 + t1019 + 0.2e1_dp &
1196 *t986 + t950)*t2 + t953 + t990 + t352 + 0.4e1_dp*t472 + t956 &
1199 t1031 = -0.6e1_dp*t230 - 0.6e1_dp*t727
1201 e_bbb(ip) = e_bbb(ip) + ((t720 + (-0.5699736440e0_dp*t721*t475*t206 + 0.2564881396e1_dp &
1202 *t333*t206*t479 + 0.2564881399e1_dp*t145*t1031 - 0.5699736440e0_dp &
1203 *t732*t482*t209 + 0.2564881396e1_dp*t342*t209*t485 &
1204 - 0.2564881399e1_dp*t150*t1031)*t85 + 0.3e1_dp*t1019 + 0.3e1_dp*t986 &
1205 + t950)*t2 + t953 + 0.3e1_dp*t489 + 0.6e1_dp*t472 + t956)*sc
1213 END SUBROUTINE vwn3_lsd_calc
1233 SUBROUTINE vwn5_lsd_calc(rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, e_ab, &
1234 e_aaa, e_bbb, e_aab, e_abb, order, npoints, sc)
1236 REAL(kind=
dp),
DIMENSION(*),
INTENT(INOUT) :: rhoa, rhob, e_0, e_a, e_b, e_aa, e_bb, &
1237 e_ab, e_aaa, e_bbb, e_aab, e_abb
1238 INTEGER,
INTENT(in) :: order, npoints
1242 REAL(kind=
dp) :: ap, bp, cp, d2f0, myrho, myrhoa, myrhob, qa, qf, qp, t1, t100, t101, t1010, &
1243 t1013, t1019, t1020, t1025, t1027, t1030, t104, t1043, t106, t1084, t1085, t1086, t1088, &
1244 t1089, t109, t1094, t1096, t1099, t11, t110, t1108, t1109, t111, t1110, t1111, t1113, &
1245 t1114, t1116, t1118, t1119, t1120, t1125, t113, t1137, t1142, t1145, t1148, t1149, t1151, &
1246 t1154, t1157, t116, t1160, t1165, t1166, t1168, t1171, t1181, t12, t120, t1205, t1208, &
1247 t1211, t1218, t122, t1221, t1235, t1238, t1244, t1245, t125, t1250, t1252, t126, t127, &
1248 t1284, t129, t1299, t13, t130, t131, t132, t133, t1341, t1344
1249 REAL(kind=
dp) :: t1346, t1358, t136, t1360, t1361, t1363, t1365, t1368, t137, t1371, t1372, &
1250 t1374, t1377, t1380, t1383, t1388, t1389, t1391, t1394, t140, t1404, t141, t142, t143, &
1251 t144, t1455, t1469, t147, t1477, t148, t1480, t1483, t149, t1490, t1493, t15, t150, &
1252 t1507, t151, t1510, t1516, t1517, t1522, t1524, t1527, t154, t155, t156, t1567, t157, &
1253 t1570, t1576, t1578, t1580, t1582, t1588, t159, t1590, t1593, t1599, t16, t160, t1602, &
1254 t1603, t1604, t1605, t1606, t1609, t161, t1610, t1611, t1613, t1615, t1620, t1622, t1626, &
1255 t1639, t164, t1653, t1654, t1657, t1659, t1664, t1666, t1668, t167
1256 REAL(kind=
dp) :: t1671, t1672, t1675, t168, t169, t1690, t1694, t1696, t1697, t1698, t17, &
1257 t1701, t172, t1726, t173, t1730, t174, t175, t1750, t1754, t176, t1764, t1765, t1768, &
1258 t1775, t1776, t1778, t178, t1782, t1783, t1785, t1786, t1789, t179, t1795, t1797, t18, &
1259 t180, t1804, t1826, t1829, t183, t1832, t1836, t1838, t1839, t184, t185, t1850, t1853, &
1260 t1858, t186, t1868, t1870, t1872, t1884, t1886, t189, t1891, t1893, t1894, t1897, t19, &
1261 t1901, t1904, t191, t192, t193, t1939, t1945, t1949, t195, t196, t1975, t1979, t1986, &
1262 t1998, t1999, t2, t20, t2010, t2011, t2014, t2019, t202, t2025, t203
1263 REAL(kind=
dp) :: t204, t2048, t205, t206, t207, t208, t211, t212, t213, t214, t217, t220, &
1264 t221, t224, t225, t226, t227, t228, t23, t230, t231, t232, t235, t236, t239, t24, t241, &
1265 t242, t243, t245, t246, t252, t253, t254, t255, t256, t257, t258, t259, t260, t263, t264, &
1266 t265, t266, t269, t27, t272, t273, t276, t277, t278, t279, t28, t280, t282, t283, t284, &
1267 t287, t288, t29, t291, t293, t294, t295, t297, t298, t3, t304, t305, t306, t309, t312, &
1268 t315, t316, t317, t32, t320, t321, t322, t323, t324, t325, t326, t327, t328, t329, t332, &
1269 t333, t337, t338, t34, t340, t343, t344, t347, t350, t351, t352
1270 REAL(kind=
dp) :: t353, t355, t356, t357, t359, t362, t363, t364, t365, t366, t367, t368, &
1271 t369, t37, t370, t371, t372, t373, t375, t376, t379, t38, t383, t384, t385, t388, t389, &
1272 t39, t390, t392, t393, t394, t399, t4, t40, t402, t403, t406, t407, t408, t409, t415, &
1273 t416, t417, t418, t42, t421, t424, t427, t429, t430, t431, t432, t434, t435, t439, t440, &
1274 t443, t444, t447, t45, t450, t454, t455, t457, t458, t459, t463, t464, t467, t472, t473, &
1275 t479, t480, t481, t482, t483, t484, t485, t486, t487, t488, t489, t49, t490, t491, t492, &
1276 t493, t494, t496, t497, t5, t503, t504, t505, t508, t51, t513
1277 REAL(kind=
dp) :: t516, t517, t520, t521, t522, t528, t529, t530, t531, t534, t537, t54, &
1278 t540, t542, t543, t544, t545, t547, t548, t55, t552, t553, t56, t560, t564, t565, t567, &
1279 t568, t569, t57, t573, t574, t577, t582, t583, t591, t592, t593, t594, t595, t596, t597, &
1280 t598, t599, t6, t60, t600, t601, t602, t603, t604, t605, t606, t607, t608, t61, t610, &
1281 t611, t617, t618, t619, t622, t627, t630, t631, t634, t635, t636, t64, t642, t643, t644, &
1282 t645, t648, t65, t651, t654, t656, t657, t658, t659, t661, t662, t666, t667, t674, t678, &
1283 t679, t68, t681, t682, t683, t687, t688, t691, t696, t697, t70
1284 REAL(kind=
dp) :: t704, t705, t706, t709, t712, t715, t716, t719, t722, t725, t728, t729, &
1285 t73, t730, t732, t733, t735, t74, t741, t742, t743, t744, t745, t746, t748, t75, t750, &
1286 t751, t752, t753, t755, t756, t757, t758, t759, t762, t763, t764, t766, t767, t769, t77, &
1287 t771, t772, t773, t774, t777, t778, t779, t780, t782, t783, t784, t786, t789, t793, t796, &
1288 t799, t8, t80, t802, t803, t804, t806, t808, t811, t812, t813, t814, t815, t816, t817, &
1289 t818, t819, t820, t821, t822, t823, t824, t825, t826, t827, t828, t829, t830, t831, t832, &
1290 t833, t834, t835, t84, t842, t851, t857, t859, t86, t862, t864
1291 REAL(kind=
dp) :: t865, t866, t869, t870, t873, t874, t875, t878, t881, t884, t887, t89, &
1292 t890, t891, t893, t896, t9, t90, t901, t903, t905, t906, t91, t914, t92, t93, t937, t942, &
1293 t945, t948, t957, t96, t97, t972, t979, t982, t984, t986, t993, t996, x0p
1299 qp = sqrt(4.0_dp*cp - bp*bp)
1300 qa = sqrt(4.0_dp*ca - ba*ba)
1301 qf = sqrt(4.0_dp*cf - bf*bf)
1302 d2f0 = 4.0_dp/(9.0_dp*(2.0_dp**(1.0_dp/3.0_dp) - 1.0_dp))
1307 myrhoa = max(rhoa(ip), 0.0_dp)
1308 myrhob = max(rhob(ip), 0.0_dp)
1309 myrho = myrhoa + myrhob
1310 IF (myrho > eps_rho)
THEN
1311 myrhoa = max(epsilon(0.0_dp)*1.e4_dp, myrhoa)
1312 myrhob = max(epsilon(0.0_dp)*1.e4_dp, myrhob)
1313 myrho = myrhoa + myrhob
1315 IF (order >= 0)
THEN
1316 t1 = myrhoa - myrhob
1321 t6 = t5**0.1333333333e1_dp
1323 t9 = t8**0.1333333333e1_dp
1324 t11 = 0.1923661050e1_dp*t6 + 0.1923661050e1_dp*t9 - 0.3847322100e1_dp
1327 t15 = (0.10e1_dp - t13)*ap
1328 t16 = 0.1e1_dp/0.3141592654e1_dp
1330 t18 = t17**0.3333333332e0_dp
1331 t19 = 0.9085602964e0_dp*t18
1332 t20 = t17**0.1666666666e0_dp
1333 t23 = t19 + 0.9531842930e0_dp*bp*t20 + cp
1335 t27 = log(0.9085602964e0_dp*t18*t24)
1336 t28 = 0.1906368586e1_dp*t20
1341 t38 = 0.9531842930e0_dp*t20
1343 t40 = t39**0.20e1_dp
1345 t45 = 0.20e1_dp*bp + 0.40e1_dp*x0p
1346 t49 = x0p**0.20e1_dp
1347 t51 = 0.1e1_dp/(t49 + t37 + cp)
1348 t54 = t27 + 0.20e1_dp*bp*t32*t34 - t37*(t42 + t45*t32*t34) &
1351 t56 = 0.10e1_dp - t12
1353 t60 = t19 + 0.9531842930e0_dp*ba*t20 + ca
1355 t64 = log(0.9085602964e0_dp*t18*t61)
1361 t75 = t74**0.20e1_dp
1363 t80 = 0.20e1_dp*ba + 0.40e1_dp*x0a
1364 t84 = x0a**0.20e1_dp
1365 t86 = 0.1e1_dp/(t84 + t73 + ca)
1366 t89 = t64 + 0.20e1_dp*ba*t68*t70 - t73*(t77 + t80*t68*t70) &
1372 t96 = t19 + 0.9531842930e0_dp*bf*t20 + cf
1374 t100 = log(0.9085602964e0_dp*t18*t97)
1376 t104 = atan(qf/t101)
1380 t111 = t110**0.20e1_dp
1381 t113 = log(t111*t97)
1382 t116 = 0.20e1_dp*bf + 0.40e1_dp*x0f
1383 t120 = x0f**0.20e1_dp
1384 t122 = 0.1e1_dp/(t120 + t109 + cf)
1385 t125 = t100 + 0.20e1_dp*bf*t104*t106 - t109*(t113 + t116*t104 &
1390 e_0(ip) = e_0(ip) + ((t55 + t93 + t127)*t2)*sc
1393 IF (order >= 1 .OR. order == -1)
THEN
1394 t129 = t5**0.333333333e0_dp
1396 t131 = 0.1e1_dp/t130
1399 t136 = t8**0.333333333e0_dp
1401 t140 = 0.2564881399e1_dp*t129*t133 + 0.2564881399e1_dp*t136*t137
1403 t142 = t4**0.30e1_dp
1406 t147 = (-t141 - 0.40e1_dp*t144)*ap
1408 t149 = t17**(-0.6666666668e0_dp)
1412 t155 = 0.1e1_dp/t154
1415 t159 = 0.3028534320e0_dp*t157*t131
1416 t160 = t17**(-0.8333333334e0_dp)
1418 t164 = -t159 - 0.1588640488e0_dp*t161*t151
1419 t167 = -0.3028534320e0_dp*t150*t151 - 0.9085602964e0_dp*t156*t164
1420 t168 = t17**(-0.3333333332e0_dp)
1423 t173 = 0.1e1_dp/t172
1427 t178 = 0.1e1_dp + t176*t173
1428 t179 = 0.1e1_dp/t178
1430 t183 = t39**0.10e1_dp
1435 t191 = -0.3177280976e0_dp*t184*t186 - t189*t164
1436 t192 = t39**(-0.20e1_dp)
1440 t202 = 0.1100642416e1_dp*t169*t23 + 0.6354561950e0_dp*t175*t180 - &
1441 t37*(t193*t23 + 0.3177280975e0_dp*t196*t180)*t51
1446 t207 = 0.40e1_dp*t206
1449 t212 = 0.1e1_dp/t211
1452 t217 = -t159 - 0.1588640488e0_dp*t214*t151
1453 t220 = -0.3028534320e0_dp*t208*t151 - 0.9085602964e0_dp*t213*t217
1456 t225 = 0.1e1_dp/t224
1460 t230 = 0.1e1_dp + t228*t225
1461 t231 = 0.1e1_dp/t230
1463 t235 = t74**0.10e1_dp
1466 t241 = -0.3177280976e0_dp*t236*t186 - t239*t217
1467 t242 = t74**(-0.20e1_dp)
1471 t252 = 0.1100642416e1_dp*t221*t60 + 0.6354561950e0_dp*t227*t232 - &
1472 t73*(t243*t60 + 0.3177280975e0_dp*t246*t232)*t86
1479 t259 = 0.40e1_dp*t258
1482 t264 = 0.1e1_dp/t263
1485 t269 = -t159 - 0.1588640488e0_dp*t266*t151
1486 t272 = -0.3028534320e0_dp*t260*t151 - 0.9085602964e0_dp*t265*t269
1489 t277 = 0.1e1_dp/t276
1493 t282 = 0.1e1_dp + t280*t277
1494 t283 = 0.1e1_dp/t282
1496 t287 = t110**0.10e1_dp
1499 t293 = -0.3177280976e0_dp*t288*t186 - t291*t269
1500 t294 = t110**(-0.20e1_dp)
1504 t304 = 0.1100642416e1_dp*t273*t96 + 0.6354561950e0_dp*t279*t284 - &
1505 t109*(t295*t96 + 0.3177280975e0_dp*t298*t284)*t122
1509 e_a(ip) = e_a(ip) + ((t148 + t203 + t205 - t207 + t255 + t256 + t259 + t306)*t2 + &
1510 t55 + t93 + t127)*sc
1514 t315 = 0.2564881399e1_dp*t129*t309 + 0.2564881399e1_dp*t136*t312
1517 t320 = (-t316 - 0.40e1_dp*t317)*ap
1522 t325 = 0.40e1_dp*t324
1526 t329 = 0.40e1_dp*t328
1528 e_b(ip) = e_b(ip) + ((t321 + t203 + t323 - t325 + t255 + t326 + t329 + t306)*t2 + &
1529 t55 + t93 + t127)*sc
1532 IF (order >= 2 .OR. order == -2)
THEN
1533 t332 = t5**(-0.666666667e0_dp)
1535 t337 = 0.1e1_dp/t130/t2
1537 t340 = -0.2e1_dp*t131 + 0.2e1_dp*t338
1538 t343 = t8**(-0.666666667e0_dp)
1541 t350 = 0.8549604655e0_dp*t332*t333 + 0.2564881399e1_dp*t129*t340 &
1542 + 0.8549604655e0_dp*t343*t344 + 0.2564881399e1_dp*t136*t347
1546 t355 = t4**0.20e1_dp
1550 t362 = (-t351 - 0.80e1_dp*t353 - 0.1200e2_dp*t357 - 0.40e1_dp*t359)* &
1554 t365 = 0.2e1_dp*t364
1555 t366 = t17**(-0.1666666667e1_dp)
1557 t368 = 0.3141592654e1_dp**2
1558 t369 = 0.1e1_dp/t368
1560 t371 = 0.1e1_dp/t370
1566 t383 = 0.1e1_dp/t154/t23
1571 t390 = 0.2019022880e0_dp*t389
1572 t392 = 0.6057068640e0_dp*t157*t337
1573 t393 = t17**(-0.1833333333e1_dp)
1575 t399 = -t390 + t392 - 0.1323867073e0_dp*t394*t372 + 0.3177280976e0_dp &
1577 t402 = -0.2019022880e0_dp*t373 + 0.6057068640e0_dp*t375*t376 + 0.6057068640e0_dp &
1578 *t150*t379 + 0.1817120593e1_dp*t384*t385 - 0.9085602964e0_dp &
1581 t406 = t17**(-0.1333333333e1_dp)
1585 t415 = 0.1e1_dp/t172/t29
1592 t429 = 0.1e1_dp/t427/t29
1596 t434 = 0.1e1_dp/t432*t176
1604 t454 = 0.5047557200e-1_dp*t373 + 0.6354561952e0_dp*t440*t376 - 0.2647734147e0_dp &
1605 *t184*t444 + 0.6354561952e0_dp*t184*t447 + 0.2e1_dp* &
1606 t450*t385 - t189*t399
1608 t457 = t39**(-0.30e1_dp)
1616 t479 = 0.1100642416e1_dp*t403*t23 + 0.3668808052e0_dp*t407*t409 + &
1617 0.1100642416e1_dp*t169*t164 + 0.4038045758e0_dp*t417*t418 + 0.5295468292e0_dp &
1618 *t421*t418 - 0.1270912390e1_dp*t175*t424 - 0.4038045758e0_dp &
1619 *t431*t435 - t37*(t455*t23 + 0.3177280976e0_dp*t459 &
1620 *t186 + t193*t164 + 0.2019022879e0_dp*t464*t418 + 0.2647734146e0_dp &
1621 *t467*t418 - 0.6354561950e0_dp*t196*t424 - 0.2019022879e0_dp* &
1627 t484 = 0.80e1_dp*t483
1629 t486 = 0.2e1_dp*t485
1631 t488 = 0.1200e2_dp*t487
1633 t490 = 0.40e1_dp*t489
1635 t492 = 0.80e1_dp*t491
1640 t503 = 0.1e1_dp/t211/t60
1644 t513 = -t390 + t392 - 0.1323867073e0_dp*t508*t372 + 0.3177280976e0_dp &
1646 t516 = -0.2019022880e0_dp*t494 + 0.6057068640e0_dp*t496*t497 + 0.6057068640e0_dp &
1647 *t208*t379 + 0.1817120593e1_dp*t504*t505 - 0.9085602964e0_dp &
1653 t528 = 0.1e1_dp/t224/t65
1660 t542 = 0.1e1_dp/t540/t65
1664 t547 = 0.1e1_dp/t545*t228
1669 t564 = 0.5047557200e-1_dp*t494 + 0.6354561952e0_dp*t553*t497 - 0.2647734147e0_dp &
1670 *t236*t444 + 0.6354561952e0_dp*t236*t447 + 0.2e1_dp* &
1671 t560*t505 - t239*t513
1673 t567 = t74**(-0.30e1_dp)
1681 t591 = aa*(0.1100642416e1_dp*t517*t60 + 0.3668808052e0_dp*t520* &
1682 t522 + 0.1100642416e1_dp*t221*t217 + 0.4038045758e0_dp*t530*t531 &
1683 + 0.5295468292e0_dp*t534*t531 - 0.1270912390e1_dp*t227*t537 - 0.4038045758e0_dp &
1684 *t544*t548 - t73*(t565*t60 + 0.3177280976e0_dp* &
1685 t569*t186 + t243*t217 + 0.2019022879e0_dp*t574*t531 + 0.2647734146e0_dp &
1686 *t577*t531 - 0.6354561950e0_dp*t246*t537 - 0.2019022879e0_dp &
1687 *t583*t548)*t86)*t91
1691 t595 = 0.80e1_dp*t594
1693 t597 = 0.2e1_dp*t596
1696 t600 = 0.1200e2_dp*t599
1699 t603 = 0.80e1_dp*t602
1702 t606 = 0.40e1_dp*t605
1707 t617 = 0.1e1_dp/t263/t96
1711 t627 = -t390 + t392 - 0.1323867073e0_dp*t622*t372 + 0.3177280976e0_dp &
1713 t630 = -0.2019022880e0_dp*t608 + 0.6057068640e0_dp*t610*t611 + 0.6057068640e0_dp &
1714 *t260*t379 + 0.1817120593e1_dp*t618*t619 - 0.9085602964e0_dp &
1720 t642 = 0.1e1_dp/t276/t101
1727 t656 = 0.1e1_dp/t654/t101
1731 t661 = 0.1e1_dp/t659*t280
1736 t678 = 0.5047557200e-1_dp*t608 + 0.6354561952e0_dp*t667*t611 - 0.2647734147e0_dp &
1737 *t288*t444 + 0.6354561952e0_dp*t288*t447 + 0.2e1_dp* &
1738 t674*t619 - t291*t627
1740 t681 = t110**(-0.30e1_dp)
1748 t704 = af*(0.1100642416e1_dp*t631*t96 + 0.3668808052e0_dp*t634* &
1749 t636 + 0.1100642416e1_dp*t273*t269 + 0.4038045758e0_dp*t644*t645 &
1750 + 0.5295468292e0_dp*t648*t645 - 0.1270912390e1_dp*t279*t651 - 0.4038045758e0_dp &
1751 *t658*t662 - t109*(t679*t96 + 0.3177280976e0_dp &
1752 *t683*t186 + t295*t269 + 0.2019022879e0_dp*t688*t645 + 0.2647734146e0_dp &
1753 *t691*t645 - 0.6354561950e0_dp*t298*t651 - 0.2019022879e0_dp &
1756 t706 = t363 + t365 + t480 + t482 - t484 + t486 - t488 - t490 - t492 &
1757 + t592 + t593 + t595 + t597 + t600 + t603 + t606 + t705
1758 t709 = 0.2e1_dp*t203
1759 t712 = 0.2e1_dp*t255
1760 t715 = 0.2e1_dp*t306
1762 e_aa(ip) = e_aa(ip) + (t706*t2 + 0.2e1_dp*t148 + t709 + 0.2e1_dp*t205 - 0.80e1_dp*t206 &
1763 + t712 + 0.2e1_dp*t256 + 0.80e1_dp*t258 + t715)*sc
1769 t728 = 0.8549604655e0_dp*t716*t309 + 0.5129762798e1_dp*t719*t337 &
1770 + 0.8549604655e0_dp*t722*t312 - 0.5129762798e1_dp*t725*t337
1776 t741 = (-t729 - 0.40e1_dp*t730 - 0.40e1_dp*t733 - 0.1200e2_dp*t356*t735 &
1777 - 0.80e1_dp*t143*t338)*ap
1794 t763 = t742 + t364 + t743 + t480 + t745 - 0.40e1_dp*t746 + t485 - 0.40e1_dp &
1795 *t748 - 0.1200e2_dp*t753 - 0.80e1_dp*t759 - 0.40e1_dp*t491 + t762
1811 t786 = -0.40e1_dp*t764 + t592 + t766 + 0.40e1_dp*t767 + t596 + 0.40e1_dp &
1812 *t769 + 0.1200e2_dp*t774 + 0.40e1_dp*t602 + 0.80e1_dp*t780 + t782 + &
1813 0.40e1_dp*t784 + t705
1815 e_ab(ip) = e_ab(ip) + ((t763 + t786)*t2 + t148 + t709 + t205 - t207 + t712 + t256 &
1816 + t259 + t715 + t321 + t323 - t325 + t326 + t329)*sc
1818 t793 = 0.2e1_dp*t131 + 0.2e1_dp*t338
1821 t802 = 0.8549604655e0_dp*t332*t789 + 0.2564881399e1_dp*t129*t793 &
1822 + 0.8549604655e0_dp*t343*t796 + 0.2564881399e1_dp*t136*t799
1827 t811 = (-t803 - 0.80e1_dp*t804 - 0.1200e2_dp*t806 - 0.40e1_dp*t808)* &
1830 t813 = 0.2e1_dp*t743
1834 t817 = 0.80e1_dp*t816
1835 t818 = 0.2e1_dp*t762
1837 t820 = 0.1200e2_dp*t819
1839 t822 = 0.40e1_dp*t821
1840 t823 = 0.80e1_dp*t764
1843 t826 = 0.80e1_dp*t825
1844 t827 = 0.2e1_dp*t782
1847 t830 = 0.1200e2_dp*t829
1848 t831 = 0.80e1_dp*t784
1851 t834 = 0.40e1_dp*t833
1852 t835 = t812 + t813 + t480 + t815 - t817 + t818 - t820 - t822 - t823 &
1853 + t592 + t824 + t826 + t827 + t830 + t831 + t834 + t705
1855 e_bb(ip) = e_bb(ip) + (t835*t2 + 0.2e1_dp*t321 + t709 + 0.2e1_dp*t323 - 0.80e1_dp*t324 &
1856 + t712 + 0.2e1_dp*t326 + 0.80e1_dp*t328 + t715)*sc
1859 IF (order >= 3 .OR. order == -3)
THEN
1860 t842 = 0.3e1_dp*t480
1861 t851 = 0.3e1_dp*t592
1862 t857 = 0.3e1_dp*t705
1863 t859 = t17**(-0.2666666667e1_dp)
1864 t862 = 0.1e1_dp/t368/0.3141592654e1_dp
1865 t864 = 0.1e1_dp/t370/t130
1867 t866 = t859*t24*t865
1869 t870 = t366*t155*t869
1870 t873 = 0.1e1_dp/t370/t2
1878 t891 = 0.1e1_dp/t890
1881 t901 = 0.3365038134e0_dp*t859*t862*t864
1882 t903 = 0.1211413728e1_dp*t388*t873
1883 t905 = 0.1817120592e1_dp*t157*t371
1884 t906 = t17**(-0.2833333333e1_dp)
1885 t914 = -t901 + t903 - t905 - 0.2427089633e0_dp*bp*t906*t865 + 0.7943202439e0_dp &
1886 *t394*t874 - 0.9531842928e0_dp*t161*t887
1887 t937 = t17**(-0.2666666666e1_dp)
1888 t942 = t906*t862*t864
1891 t957 = 0.8412595335e-1_dp*t866 - 0.1514267160e0_dp*t870 - 0.3028534320e0_dp &
1892 *t875 - 0.1906368585e1_dp*t183*t383*t160*t878 + 0.7943202441e0_dp &
1893 *t439*t393*t869 - 0.1906368585e1_dp*t440*t881 + 0.9531842928e0_dp &
1894 *t440*t884 + 0.4206297667e-1_dp*t24*t937*t865 - 0.4854179269e0_dp &
1895 *t184*t942 + 0.1588640488e1_dp*t184*t945 - 0.1906368586e1_dp &
1896 *t184*t948 - 0.6e1_dp*t40*t891*t893 + 0.6e1_dp*t450 &
1898 t972 = t39**(-0.40e1_dp)
1900 t982 = 0.1e1_dp/t427
1901 t984 = t17**(-0.2500000000e1_dp)
1903 t993 = 0.1e1_dp/t427/t172
1908 t1020 = 0.1e1_dp/t1019
1910 t1027 = t865/t432/t178*t1025
1911 t1030 = t957*t192*t23 + 0.2e1_dp*t455*t164 + 0.6354561952e0_dp* &
1912 t454*t457*t23*t186 + t193*t399 + 0.6354561952e0_dp*t458*t164 &
1913 *t186 - 0.6354561952e0_dp*t459*t447 + 0.1514267160e0_dp*t191 &
1914 *t972*t23*t389 + 0.2647734147e0_dp*t459*t444 - 0.1211413727e1_dp &
1915 *t464*t979 + 0.1924500894e0_dp*t45*t982*t984*t986 + 0.3365038132e0_dp &
1916 *t463*t859*t986 - 0.4490502088e0_dp*t45*t993*t984 &
1917 *t996 - 0.1588640487e1_dp*t467*t979 + 0.1682519066e0_dp*t463* &
1918 t937*t986 + 0.4854179267e0_dp*t195*t906*t986 - 0.1682519066e0_dp &
1919 *t472*t937*t996 + 0.1906368585e1_dp*t196*t1010 + 0.1211413727e1_dp &
1920 *t473*t1013 - 0.3365038132e0_dp*t472*t859*t996 + 0.2566001193e0_dp &
1921 *t45*t1020*t984*t1027
1922 t1043 = t17**(-0.2333333333e1_dp)
1923 t1084 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t866 + 0.6057068641e0_dp* &
1924 t870 + 0.1211413728e1_dp*t875 - 0.1817120592e1_dp*t149*t383*t878 &
1925 - 0.1817120592e1_dp*t375*t881 + 0.9085602960e0_dp*t375*t884 - &
1926 0.1817120592e1_dp*t150*t887 - 0.5451361779e1_dp*t18*t891*t893 &
1927 + 0.5451361779e1_dp*t384*t896 - 0.9085602964e0_dp*t156*t914)*t168 &
1928 *t23 + 0.2201284832e1_dp*t403*t164 - t37*t1030*t51 + 0.7337616104e0_dp &
1929 *t402*t406*t409 + 0.1100642416e1_dp*t169*t399 + &
1930 0.7337616104e0_dp*t407*t376 - 0.7337616104e0_dp*t407*t408*t337 &
1931 + 0.4891744068e0_dp*t167*t1043*t23*t369*t371 - 0.2422827454e1_dp &
1932 *t417*t979 + 0.3849001789e0_dp*bp*t982*t984*t986 + 0.6730076265e0_dp &
1933 *t416*t859*t986 - 0.8981004177e0_dp*bp*t993*t984 &
1934 *t996 - 0.3177280975e1_dp*t421*t979 + 0.3365038132e0_dp*t416* &
1935 t937*t986 + 0.9708358534e0_dp*t174*t906*t986 - 0.3365038132e0_dp &
1936 *t430*t937*t996 + 0.3812737170e1_dp*t175*t1010 + 0.2422827454e1_dp &
1937 *t431*t1013 - 0.6730076265e0_dp*t430*t859*t996 + 0.5132002385e0_dp &
1938 *bp*t1020*t984*t1027
1941 t1088 = t5**(-0.1666666667e1_dp)
1944 t1096 = 0.6e1_dp*t337 - 0.6e1_dp*t1094
1945 t1099 = t8**(-0.1666666667e1_dp)
1946 t1108 = -0.5699736440e0_dp*t1088*t1089 + 0.2564881396e1_dp*t716*t340 &
1947 + 0.2564881399e1_dp*t129*t1096 - 0.5699736440e0_dp*t1099*t344 &
1948 *t137 + 0.2564881396e1_dp*t722*t347 - 0.2564881399e1_dp*t136* &
1956 t1118 = t4**0.10e1_dp
1962 t1145 = t859*t97*t865
1964 t1149 = t366*t264*t1148
1970 t1166 = 0.1e1_dp/t1165
1973 t1181 = -t901 + t903 - t905 - 0.2427089633e0_dp*bf*t906*t865 + 0.7943202439e0_dp &
1974 *t622*t874 - 0.9531842928e0_dp*t266*t887
1976 t1208 = 0.1e1_dp/t654
1978 t1218 = 0.1e1_dp/t654/t276
1983 t1245 = 0.1e1_dp/t1244
1985 t1252 = t865/t659/t282*t1250
1986 t1284 = 0.8412595335e-1_dp*t1145 - 0.1514267160e0_dp*t1149 - 0.3028534320e0_dp &
1987 *t1151 - 0.1906368585e1_dp*t287*t617*t160*t1154 + 0.7943202441e0_dp &
1988 *t666*t393*t1148 - 0.1906368585e1_dp*t667*t1157 &
1989 + 0.9531842928e0_dp*t667*t1160 + 0.4206297667e-1_dp*t97*t937*t865 &
1990 - 0.4854179269e0_dp*t288*t942 + 0.1588640488e1_dp*t288*t945 &
1991 - 0.1906368586e1_dp*t288*t948 - 0.6e1_dp*t111*t1166*t1168 + 0.6e1_dp &
1992 *t674*t1171 - t291*t1181
1993 t1299 = t110**(-0.40e1_dp)
1994 t1341 = t1284*t294*t96 + 0.2e1_dp*t679*t269 + 0.6354561952e0_dp* &
1995 t678*t681*t96*t186 + t295*t627 + 0.6354561952e0_dp*t682* &
1996 t269*t186 - 0.6354561952e0_dp*t683*t447 + 0.1514267160e0_dp*t293 &
1997 *t1299*t96*t389 + 0.2647734147e0_dp*t683*t444 - 0.1211413727e1_dp &
1998 *t688*t1205 + 0.1924500894e0_dp*t116*t1208*t984*t1211 &
1999 + 0.3365038132e0_dp*t687*t859*t1211 - 0.4490502088e0_dp*t116*t1218 &
2000 *t984*t1221 - 0.1588640487e1_dp*t691*t1205 + 0.1682519066e0_dp &
2001 *t687*t937*t1211 + 0.4854179267e0_dp*t297*t906*t1211 - &
2002 0.1682519066e0_dp*t696*t937*t1221 + 0.1906368585e1_dp*t298*t1235 &
2003 + 0.1211413727e1_dp*t697*t1238 - 0.3365038132e0_dp*t696*t859 &
2004 *t1221 + 0.2566001193e0_dp*t116*t1245*t984*t1252
2005 t1344 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t1145 + 0.6057068641e0_dp &
2006 *t1149 + 0.1211413728e1_dp*t1151 - 0.1817120592e1_dp*t149*t617* &
2007 t1154 - 0.1817120592e1_dp*t610*t1157 + 0.9085602960e0_dp*t610*t1160 &
2008 - 0.1817120592e1_dp*t260*t887 - 0.5451361779e1_dp*t18*t1166 &
2009 *t1168 + 0.5451361779e1_dp*t618*t1171 - 0.9085602964e0_dp*t265* &
2010 t1181)*t168*t96 + 0.2201284832e1_dp*t631*t269 + 0.7337616104e0_dp &
2011 *t630*t406*t636 + 0.1100642416e1_dp*t273*t627 + 0.7337616104e0_dp &
2012 *t634*t611 - 0.7337616104e0_dp*t634*t635*t337 + 0.4891744068e0_dp &
2013 *t272*t1043*t96*t369*t371 - 0.2422827454e1_dp*t644 &
2014 *t1205 + 0.3849001789e0_dp*bf*t1208*t984*t1211 + 0.6730076265e0_dp &
2015 *t643*t859*t1211 - 0.8981004177e0_dp*bf*t1218*t984* &
2016 t1221 - 0.3177280975e1_dp*t648*t1205 + 0.3365038132e0_dp*t643*t937 &
2017 *t1211 + 0.9708358534e0_dp*t278*t906*t1211 - 0.3365038132e0_dp &
2018 *t657*t937*t1221 + 0.3812737170e1_dp*t279*t1235 + 0.2422827454e1_dp &
2019 *t658*t1238 - 0.6730076265e0_dp*t657*t859*t1221 + 0.5132002385e0_dp &
2020 *bf*t1245*t984*t1252 - t109*t1341*t122
2021 t1346 = t13*af*t1344
2022 t1358 = t356*t305*t333
2023 t1360 = t1085 + 0.3e1_dp*t1086 + (-t1109 - 0.120e2_dp*t1111 - 0.3600e2_dp &
2024 *t1114 - 0.120e2_dp*t1116 - 0.24000e2_dp*t1120 - 0.3600e2_dp*t356 &
2025 *t133*t340 - 0.40e1_dp*t1125)*ap*t54 + t1109*t126 - 0.24000e2_dp &
2026 *t1120*t92 + 0.120e2_dp*t1110*t257 - 0.120e2_dp*t1116*t92 &
2027 + 0.3e1_dp*t1137 + 0.3600e2_dp*t771*t772*t340 + 0.240e2_dp*t1142 &
2028 + t1346 - 0.120e2_dp*t1111*t92 - 0.3600e2_dp*t1114*t92 - 0.3600e2_dp &
2029 *t750*t90*t91*t340 - 0.40e1_dp*t1125*t92 + 0.3600e2_dp*t1358
2033 t1368 = t859*t61*t865
2035 t1372 = t366*t212*t1371
2041 t1389 = 0.1e1_dp/t1388
2044 t1404 = -t901 + t903 - t905 - 0.2427089633e0_dp*ba*t906*t865 + 0.7943202439e0_dp &
2045 *t508*t874 - 0.9531842928e0_dp*t214*t887
2046 t1455 = 0.8412595335e-1_dp*t1368 - 0.1514267160e0_dp*t1372 - 0.3028534320e0_dp &
2047 *t1374 - 0.1906368585e1_dp*t235*t503*t160*t1377 + 0.7943202441e0_dp &
2048 *t552*t393*t1371 - 0.1906368585e1_dp*t553*t1380 &
2049 + 0.9531842928e0_dp*t553*t1383 + 0.4206297667e-1_dp*t61*t937*t865 &
2050 - 0.4854179269e0_dp*t236*t942 + 0.1588640488e1_dp*t236*t945 &
2051 - 0.1906368586e1_dp*t236*t948 - 0.6e1_dp*t75*t1389*t1391 + 0.6e1_dp &
2052 *t560*t1394 - t239*t1404
2053 t1469 = t74**(-0.40e1_dp)
2055 t1480 = 0.1e1_dp/t540
2057 t1490 = 0.1e1_dp/t540/t224
2062 t1517 = 0.1e1_dp/t1516
2064 t1524 = t865/t545/t230*t1522
2065 t1527 = t1455*t242*t60 + 0.2e1_dp*t565*t217 + 0.6354561952e0_dp* &
2066 t564*t567*t60*t186 + 0.6354561952e0_dp*t568*t217*t186 - &
2067 0.6354561952e0_dp*t569*t447 + 0.1514267160e0_dp*t241*t1469*t60 &
2068 *t389 + 0.2647734147e0_dp*t569*t444 + t243*t513 - 0.1211413727e1_dp &
2069 *t574*t1477 + 0.1924500894e0_dp*t80*t1480*t984*t1483 + &
2070 0.3365038132e0_dp*t573*t859*t1483 - 0.4490502088e0_dp*t80*t1490 &
2071 *t984*t1493 - 0.1588640487e1_dp*t577*t1477 + 0.1682519066e0_dp &
2072 *t573*t937*t1483 + 0.4854179267e0_dp*t245*t906*t1483 - 0.1682519066e0_dp &
2073 *t582*t937*t1493 + 0.1906368585e1_dp*t246*t1507 &
2074 + 0.1211413727e1_dp*t583*t1510 - 0.3365038132e0_dp*t582*t859* &
2075 t1493 + 0.2566001193e0_dp*t80*t1517*t984*t1524
2076 t1567 = 0.1100642416e1_dp*(-0.3365038134e0_dp*t1368 + 0.6057068641e0_dp &
2077 *t1372 + 0.1211413728e1_dp*t1374 - 0.1817120592e1_dp*t149*t503* &
2078 t1377 - 0.1817120592e1_dp*t496*t1380 + 0.9085602960e0_dp*t496*t1383 &
2079 - 0.1817120592e1_dp*t208*t887 - 0.5451361779e1_dp*t18*t1389 &
2080 *t1391 + 0.5451361779e1_dp*t504*t1394 - 0.9085602964e0_dp*t213* &
2081 t1404)*t168*t60 + 0.2201284832e1_dp*t517*t217 + 0.7337616104e0_dp &
2082 *t516*t406*t522 + 0.7337616104e0_dp*t520*t497 - 0.7337616104e0_dp &
2083 *t520*t521*t337 + 0.4891744068e0_dp*t220*t1043*t60* &
2084 t369*t371 - t73*t1527*t86 + 0.1100642416e1_dp*t221*t513 - 0.2422827454e1_dp &
2085 *t530*t1477 + 0.3849001789e0_dp*ba*t1480*t984 &
2086 *t1483 + 0.6730076265e0_dp*t529*t859*t1483 - 0.8981004177e0_dp* &
2087 ba*t1490*t984*t1493 - 0.3177280975e1_dp*t534*t1477 + 0.3365038132e0_dp &
2088 *t529*t937*t1483 + 0.9708358534e0_dp*t226*t906*t1483 &
2089 - 0.3365038132e0_dp*t543*t937*t1493 + 0.3812737170e1_dp*t227 &
2090 *t1507 + 0.2422827454e1_dp*t544*t1510 - 0.6730076265e0_dp*t543* &
2091 t859*t1493 + 0.5132002385e0_dp*ba*t1517*t984*t1524
2092 t1570 = t57*aa*t1567*t91
2097 t1588 = t143*t305*t340
2099 t1593 = t143*t704*t133
2100 t1599 = 0.3e1_dp*t1361 - 0.240e2_dp*t1363 - 0.120e2_dp*t1365 + t1570 + &
2101 0.40e1_dp*t143*t126*t1096 + t1108*t56*t92 + 0.3e1_dp*t1576 &
2102 - 0.3600e2_dp*t1578 + 0.3e1_dp*t1580 - 0.120e2_dp*t1582 + 0.24000e2_dp* &
2103 t1119*t126*t1089 + 0.120e2_dp*t1588 + 0.3e1_dp*t1590 + 0.120e2_dp &
2104 *t1593 + 0.120e2_dp*t352*t604 + 0.3600e2_dp*t1113*t598
2106 e_aaa(ip) = e_aaa(ip) + (t842 + 0.6e1_dp*t364 + 0.3e1_dp*t363 + 0.3e1_dp*t482 + 0.6e1_dp* &
2107 t485 - 0.240e2_dp*t483 - 0.3600e2_dp*t487 - 0.120e2_dp*t489 - 0.240e2_dp &
2108 *t491 + t851 + 0.3e1_dp*t593 + 0.6e1_dp*t596 + 0.240e2_dp*t594 + 0.3600e2_dp &
2109 *t599 + 0.240e2_dp*t602 + t857 + 0.120e2_dp*t605 + (t1360 + &
2112 t1602 = 0.2400e2_dp*t753
2113 t1603 = 0.2e1_dp*t766
2114 t1604 = 0.80e1_dp*t746
2115 t1605 = 0.2e1_dp*t745
2116 t1606 = 0.80e1_dp*t748
2117 t1609 = 0.160e2_dp*t759
2118 t1610 = -t1602 + t1603 - t1604 + t1605 + t818 - t490 - t1606 + t827 &
2119 + t363 - t488 + t831 + t813 - t823 - 0.160e2_dp*t491 + 0.4e1_dp*t364 &
2121 t1611 = 0.80e1_dp*t767
2123 t1615 = 0.80e1_dp*t732*t601
2124 t1620 = 0.80e1_dp*t733*t254
2125 t1622 = 0.80e1_dp*t352*t783
2127 t1639 = 0.2e1_dp*t337 - 0.6e1_dp*t1094
2128 t1653 = -0.5699736440e0_dp*t1088*t333*t309 + 0.3419841862e1_dp*t716 &
2129 *t338 + 0.8549604655e0_dp*t332*t340*t309 + 0.2564881399e1_dp* &
2130 t129*t1639 - 0.5699736440e0_dp*t1099*t344*t312 - 0.3419841862e1_dp &
2131 *t722*t338 + 0.8549604655e0_dp*t343*t347*t312 - 0.2564881399e1_dp &
2134 t1657 = t143*t704*t309
2135 t1659 = t1085 + 0.2e1_dp*t1086 + t1613 + t1615 - 0.160e2_dp*t352*t1 &
2136 *t758 - t1620 + t1622 + 0.40e1_dp*t1110*t327 + t1137 + 0.80e1_dp* &
2137 t1142 - 0.40e1_dp*t1626*t92 + t1346 + t1654*t126 + 0.40e1_dp*t1657
2138 t1664 = 0.160e2_dp*t777*t304*t1*t337
2139 t1666 = 0.80e1_dp*t730*t254
2144 t1690 = 0.2400e2_dp*t771*t304*t133*t309
2145 t1694 = 0.1200e2_dp*t1358 + t1664 + t1361 - t1666 - 0.80e1_dp*t1363 - &
2146 0.40e1_dp*t1668*t92 - 0.80e1_dp*t1672*t92 - 0.40e1_dp*t1675*t92 &
2147 - 0.2400e2_dp*t1113*t133*t752 - 0.80e1_dp*t1365 + t1570 - 0.4800e2_dp &
2148 *t356*t133*aa*t757*t338 + t1690 + 0.40e1_dp*t143*t126 &
2154 t1726 = t1696 - 0.1200e2_dp*t1698*t92 + 0.24000e2_dp*t1701*t125* &
2155 t333*t309 + t1653*t56*t92 + 0.2400e2_dp*t1113*af*t773 + &
2156 0.4800e2_dp*t771*t772*t338 + 0.160e2_dp*t352*af*t779 + 0.40e1_dp &
2157 *t732*t604 + t1576 - 0.1200e2_dp*t1578 + 0.1200e2_dp*t1697*t598 &
2158 + 0.2e1_dp*t1580 - 0.40e1_dp*t1582 + 0.80e1_dp*t1671*t257
2159 t1730 = 0.160e2_dp*t755*t756*t252*t91
2160 t1750 = -t1654 - 0.40e1_dp*t1675 - 0.80e1_dp*t1672 - 0.2400e2_dp*t1113 &
2161 *t735 - 0.160e2_dp*t352*t338 - 0.1200e2_dp*t1698 - 0.24000e2_dp*t1119 &
2162 *t333*t309 - 0.4800e2_dp*t356*t133*t1*t337 - 0.40e1_dp* &
2163 t1626 - 0.1200e2_dp*t356*t340*t309 - 0.40e1_dp*t1668
2164 t1754 = 0.2e1_dp*t744*t254
2165 t1764 = 0.2e1_dp*t741*t202
2167 t1768 = 0.2400e2_dp*t750*t253*t751
2168 t1775 = 0.2e1_dp*t729*t305
2170 t1778 = -t1730 + t1750*ap*t54 + t1754 - 0.24000e2_dp*t1119*t333 &
2171 *t752 + 0.40e1_dp*t1588 - 0.1200e2_dp*t356*t340*t752 + 0.2e1_dp &
2172 *t1590 + t1764 + t1765 - t1768 + 0.80e1_dp*t1593 + 0.1200e2_dp*t771 &
2173 *t125*t340*t309 + t1775 - 0.40e1_dp*t1776
2174 t1782 = 0.2e1_dp*t742
2175 t1783 = 0.160e2_dp*t780
2176 t1785 = 0.2400e2_dp*t774
2177 t1786 = 0.80e1_dp*t769
2178 t1789 = t606 + t1611 + t600 + t482 + t851 + t595 + (t1659 + t1694 + &
2179 t1726 + t1778)*t2 + t1782 + t1783 + t593 + 0.4e1_dp*t596 + t857 &
2180 - t484 + t1785 + t1786 + 0.4e1_dp*t485 + 0.160e2_dp*t602
2182 e_aab(ip) = e_aab(ip) + (t1610 + t1789)*sc
2184 t1795 = -t1602 + t826 + t812 + t824 + t834 + t1603 - t1604 + t1605 &
2185 + 0.4e1_dp*t762 - t1606 + 0.4e1_dp*t782 + t830 + 0.160e2_dp*t784 + 0.4e1_dp &
2186 *t743 - 0.160e2_dp*t764 - t492 + t365
2187 t1797 = t143*t305*t793
2189 t1826 = -0.5699736440e0_dp*t1088*t133*t789 + 0.3419841862e1_dp*t332 &
2190 *t1*t1804 + 0.8549604655e0_dp*t716*t793 - 0.5129762798e1_dp* &
2191 t129*t337 - 0.1538928839e2_dp*t719*t371 - 0.5699736440e0_dp*t1099 &
2192 *t137*t796 - 0.3419841862e1_dp*t343*t1*t337*t312 + 0.8549604655e0_dp &
2193 *t722*t799 + 0.5129762798e1_dp*t136*t337 + 0.1538928839e2_dp &
2199 t1839 = t1085 + t1086 + 0.40e1_dp*t1797 + 0.2e1_dp*t1613 + t1615 + t1826 &
2200 *t56*t92 - 0.40e1_dp*t1829*t92 - t1620 + t1832 + t1622 + 0.24000e2_dp &
2201 *t1701*t772*t789 + 0.80e1_dp*t1836 + t1346 + t1838
2203 t1853 = t356*t305*t789
2205 t1868 = -0.80e1_dp*t143*t126*t337 + 0.240e2_dp*t755*t371*aa* &
2206 t757 - 0.2400e2_dp*t1697*t133*t752 - 0.1200e2_dp*t1850 + 0.1200e2_dp &
2207 *t1853 + 0.80e1_dp*t1657 + t1664 - t1666 - 0.40e1_dp*t1365 + t1570 &
2208 + t1690 + 0.2e1_dp*t1696 + 0.40e1_dp*t1858*t257 - 0.24000e2_dp*t1119 &
2209 *t133*t90*t91*t789 + 0.80e1_dp*t1671*t327
2218 t1901 = t90*t91*t793
2219 t1904 = -0.80e1_dp*t1870 + 0.80e1_dp*t1872*t92 - 0.160e2_dp*t732*t1 &
2220 *t758 + 0.1200e2_dp*t771*t772*t793 + 0.2400e2_dp*t1697*af* &
2221 t773 + t1884*t126 - 0.80e1_dp*t1886*t92 + 0.40e1_dp*t352*t832 &
2222 - 0.40e1_dp*t1891 + t1893 + t1580 - 0.1200e2_dp*t1894*t92 - 0.40e1_dp &
2223 *t1897*t92 - 0.1200e2_dp*t750*t1901
2224 t1939 = -t1884 - 0.80e1_dp*t1886 - 0.1200e2_dp*t1894 - 0.40e1_dp*t1829 &
2225 - 0.40e1_dp*t1897 - 0.2400e2_dp*t1697*t735 - 0.160e2_dp*t732*t338 &
2226 - 0.24000e2_dp*t1119*t133*t789 - 0.4800e2_dp*t356*t338*t309 &
2227 - 0.1200e2_dp*t356*t133*t793 + 0.80e1_dp*t1872 + 0.240e2_dp*t143 &
2229 t1945 = -t1730 - 0.240e2_dp*t777*t778*t371 + t1754 - 0.4800e2_dp* &
2230 t356*t338*t752 + 0.160e2_dp*t732*af*t779 + t1590 + t1764 + &
2231 0.2e1_dp*t1765 - t1768 + 0.40e1_dp*t1593 + 0.4800e2_dp*t771*t778* &
2232 t1804 + t1939*ap*t54 + 0.1200e2_dp*t1113*t828 + t1775 - 0.80e1_dp &
2234 t1949 = t842 - t1609 + t815 + t1611 + t851 + t1782 + t1783 + t597 + &
2235 t857 + (t1839 + t1868 + t1904 + t1945)*t2 - t817 + t1785 + t1786 &
2236 - t820 + t486 + t603 - t822
2238 e_abb(ip) = e_abb(ip) + (t1795 + t1949)*sc
2242 t1986 = -0.6e1_dp*t337 - 0.6e1_dp*t1094
2243 t1998 = -0.5699736440e0_dp*t1088*t1979 + 0.2564881396e1_dp*t332*t309 &
2244 *t793 + 0.2564881399e1_dp*t129*t1986 - 0.5699736440e0_dp*t1099 &
2245 *t796*t312 + 0.2564881396e1_dp*t343*t312*t799 - 0.2564881399e1_dp &
2248 t2010 = t1085 + 0.120e2_dp*t1797 + 0.3e1_dp*t1613 - 0.3600e2_dp*t356* &
2249 t309*t1901 + 0.3600e2_dp*t771*t125*t309*t793 + 0.3e1_dp*t1832 &
2250 + 0.240e2_dp*t1836 - 0.3600e2_dp*t1975*t92 + t1346 + 0.3e1_dp*t1838 &
2251 + t1999*t126 + 0.40e1_dp*t143*t126*t1986 - 0.3600e2_dp*t1850 &
2252 + 0.3600e2_dp*t1853 + 0.120e2_dp*t1657 + 0.24000e2_dp*t1119*t126 &
2258 t2048 = -0.120e2_dp*t2011*t92 + t1570 - 0.120e2_dp*t2014*t92 + 0.3e1_dp &
2259 *t1696 - 0.240e2_dp*t1870 - 0.40e1_dp*t2019*t92 + (-t1999 - 0.120e2_dp &
2260 *t2011 - 0.3600e2_dp*t1975 - 0.120e2_dp*t2014 - 0.24000e2_dp* &
2261 t2025 - 0.3600e2_dp*t356*t309*t793 - 0.40e1_dp*t2019)*ap*t54 &
2262 - 0.24000e2_dp*t2025*t92 - 0.120e2_dp*t1891 + 0.3e1_dp*t1893 + 0.3600e2_dp &
2263 *t1697*t828 + 0.120e2_dp*t732*t832 + t1998*t56*t92 + &
2264 0.3e1_dp*t1765 + 0.120e2_dp*t1858*t327 - 0.120e2_dp*t1776
2266 e_bbb(ip) = e_bbb(ip) + (0.3e1_dp*t812 + 0.6e1_dp*t743 + t842 + t851 + t857 + 0.6e1_dp*t762 &
2267 - 0.240e2_dp*t764 + 0.6e1_dp*t782 + 0.240e2_dp*t784 + 0.3e1_dp*t815 &
2268 - 0.240e2_dp*t816 - 0.3600e2_dp*t819 - 0.120e2_dp*t821 + 0.3e1_dp*t824 &
2269 + 0.240e2_dp*t825 + 0.3600e2_dp*t829 + 0.120e2_dp*t833 + (t2010 + &
2278 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)
...