(git:374b731)
Loading...
Searching...
No Matches
xc_xwpbe.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief Calculates short range exchange part for wPBE functional and averaged
10!> PBE exchange-hole functional (omega = 0.0 )
11!> \par History
12!> Manuel Guidon (05.2007) : initial version
13!> \author Manuel Guidon (05.2007)
14! **************************************************************************************************
16 USE bibliography, ONLY: heyd2004,&
17 cite_reference
20 USE kinds, ONLY: dp
21 USE mathconstants, ONLY: pi,&
22 rootpi
23 USE mathlib, ONLY: expint
27 deriv_rho,&
37#include "../base/base_uses.f90"
38
39 IMPLICIT NONE
40
41 PRIVATE
42
43! *** Global parameters ***
44
47
48 REAL(KIND=dp), PARAMETER :: alpha1 = -1.128223946706117_dp, &
49 alpha2 = 1.452736265762971_dp, &
50 alpha3 = -1.243162299390327_dp, &
51 alpha4 = 0.971824836115601_dp, &
52 alpha5 = -0.568861079687373_dp, &
53 alpha6 = 0.246880514820192_dp, &
54 alpha7 = -0.065032363850763_dp, &
55 alpha8 = 0.008401793031216_dp
56 REAL(KIND=dp), PARAMETER :: beta = 1.455915450052607_dp, &
57 beta2 = 2.0_dp
58 REAL(KIND=dp), PARAMETER :: a1 = 0.00979681_dp, &
59 a2 = 0.04108340_dp, &
60 a3 = 0.18744000_dp, &
61 a4 = 0.00120824_dp, &
62 a5 = 0.0347188_dp
63 REAL(KIND=dp), PARAMETER :: a = 1.0161144_dp, &
64 b = -0.37170836_dp, &
65 c = -0.077215461_dp, &
66 dd = 0.57786348_dp, &
67 e = -0.051955731_dp, &
68 f1 = 0.47965830_dp, &
69 f2 = 6.4753871_dp, &
70 clda = -0.73855876638202240588423_dp
71 REAL(KIND=dp), PARAMETER :: expcutoff = 700.0_dp, &
72 exei1 = 4.0364_dp, &
73 exei2 = 1.15198_dp, &
74 exei3 = 5.03627_dp, &
75 exei4 = 4.19160_dp
76 REAL(KIND=dp), PARAMETER :: smax = 8.572844_dp, &
77 sconst = 18.79622316_dp, &
78 scutoff = 8.3_dp
79 REAL(KIND=dp), PARAMETER :: gcutoff = 0.08_dp, &
80 g1 = -0.02628417880_dp/e, &
81 g2 = -0.07117647788_dp/e, &
82 g3 = 0.08534541323_dp/e, &
83 g4 = 0.0_dp
84 REAL(KIND=dp), PARAMETER :: wcutoff = 14.0_dp
85 REAL(KIND=dp), PARAMETER :: f12 = 0.5_dp, f14 = 0.25_dp, f158 = 15.0_dp/8.0_dp, &
86 f1516 = 15.0_dp/16.0_dp, f24364 = 243.0_dp/64.0_dp, &
87 f2716 = 27.0_dp/16.0_dp, f2732 = 27.0_dp/32.0_dp, &
88 f34 = 0.75_dp, f32 = 1.5_dp, f38 = 0.375_dp, f68 = 0.75_dp, &
89 f6561512 = 6561.0_dp/512.0_dp, f8132 = 81.0_dp/32.0_dp, &
90 f8164 = 81.0_dp/64.0_dp, f729128 = 729.0_dp/128.0_dp, &
91 f52 = 2.5_dp, f94 = 9.0_dp/4.0_dp, f916 = 9.0_dp/16.0_dp, &
92 f89 = 8.0_dp/9.0_dp, f2187256 = 2187.0_dp/256.0_dp, &
93 r1 = 1.0_dp, f98 = 9.0_dp/8.0_dp, r15 = 15.0_dp, &
94 r3 = 3.0_dp, r4 = 4.0_dp, r16 = 16.0_dp, r8 = 8.0_dp, &
95 r6 = 6.0_dp, r2 = 2.0_dp
96
97 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'xc_xwpbe'
98
99CONTAINS
100
101! **************************************************************************************************
102!> \brief return various information on the functional
103!> \param reference string with the reference of the actual functional
104!> \param shortform string with the shortform of the functional name
105!> \param needs the components needed by this functional are set to
106!> true (does not set the unneeded components to false)
107!> \param max_deriv ...
108!> \par History
109!> 05.2007 created [Manuel Guidon]
110!> \author Manuel Guidon
111! **************************************************************************************************
112 SUBROUTINE xwpbe_lda_info(reference, shortform, needs, max_deriv)
113 CHARACTER(LEN=*), INTENT(OUT), OPTIONAL :: reference, shortform
114 TYPE(xc_rho_cflags_type), INTENT(inout), OPTIONAL :: needs
115 INTEGER, INTENT(out), OPTIONAL :: max_deriv
116
117 IF (PRESENT(reference)) THEN
118 reference = "Jochen Heyd and Gustavo E. Scuseria, J. Chem. Phys., 120, 7274 {LDA version}"
119 END IF
120 IF (PRESENT(shortform)) THEN
121 shortform = "shortrange part of PBE exchange {LDA}"
122 END IF
123 IF (PRESENT(needs)) THEN
124 needs%rho = .true.
125 needs%norm_drho = .true.
126 END IF
127 ! deriv > 1 are not correct
128 ! IF (PRESENT(max_deriv)) max_deriv = 2
129 IF (PRESENT(max_deriv)) max_deriv = 1
130 END SUBROUTINE xwpbe_lda_info
131
132! **************************************************************************************************
133!> \brief evaluates the screened hole averaged PBE exchange functional for lda
134!> \param rho_set the density where you want to evaluate the functional
135!> \param deriv_set place where to store the functional derivatives (they are
136!> added to the derivatives)
137!> \param order degree of the derivative that should be evaluated,
138!> if positive all the derivatives up to the given degree are evaluated,
139!> if negative only the given degree is calculated
140!> \param xwpbe_params input parameters (scaling,omega)
141!> \par History
142!> 05.2007 created [Manuel Guidon]
143!> \author Manuel Guidon
144!> \note
145!> The current version provides code for derivatives up to second order.
146!> Using the maple sheet in cp2k/doc it is straightforward to produce routines
147!> for higher derivatives.
148! **************************************************************************************************
149 SUBROUTINE xwpbe_lda_eval(rho_set, deriv_set, order, xwpbe_params)
150
151 TYPE(xc_rho_set_type), INTENT(IN) :: rho_set
152 TYPE(xc_derivative_set_type), INTENT(IN) :: deriv_set
153 INTEGER, INTENT(IN) :: order
154 TYPE(section_vals_type), POINTER :: xwpbe_params
155
156 CHARACTER(len=*), PARAMETER :: routinen = 'xwpbe_lda_eval'
157
158 INTEGER :: handle, npoints
159 INTEGER, DIMENSION(2, 3) :: bo
160 REAL(kind=dp) :: epsilon_norm_drho, epsilon_rho, omega, &
161 sx, sx0
162 REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), &
163 POINTER :: dummy, e_0, e_ndrho, e_ndrho_ndrho, &
164 e_ndrho_rho, e_rho, e_rho_rho, &
165 norm_drho, rho
166 TYPE(xc_derivative_type), POINTER :: deriv
167
168 CALL timeset(routinen, handle)
169
170 CALL cite_reference(heyd2004)
171
172 CALL section_vals_val_get(xwpbe_params, "SCALE_X", r_val=sx)
173 CALL section_vals_val_get(xwpbe_params, "SCALE_X0", r_val=sx0)
174 CALL section_vals_val_get(xwpbe_params, "OMEGA", r_val=omega)
175
176 CALL xc_rho_set_get(rho_set, rho=rho, &
177 norm_drho=norm_drho, local_bounds=bo, rho_cutoff=epsilon_rho, &
178 drho_cutoff=epsilon_norm_drho)
179 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
180
181 dummy => rho
182
183 e_0 => dummy
184 e_rho => dummy
185 e_ndrho => dummy
186 e_rho_rho => dummy
187 e_ndrho_rho => dummy
188 e_ndrho_ndrho => dummy
189
190 IF (order >= 0) THEN
191 deriv => xc_dset_get_derivative(deriv_set, [INTEGER::], &
192 allocate_deriv=.true.)
193 CALL xc_derivative_get(deriv, deriv_data=e_0)
194 END IF
195 IF (order >= 1 .OR. order == -1) THEN
196 deriv => xc_dset_get_derivative(deriv_set, [deriv_rho], &
197 allocate_deriv=.true.)
198 CALL xc_derivative_get(deriv, deriv_data=e_rho)
199 deriv => xc_dset_get_derivative(deriv_set, [deriv_norm_drho], &
200 allocate_deriv=.true.)
201 CALL xc_derivative_get(deriv, deriv_data=e_ndrho)
202 END IF
203 IF (order >= 2 .OR. order == -2) THEN
204 cpabort("derivatives bigger than 1 do not work correctly")
205 deriv => xc_dset_get_derivative(deriv_set, [deriv_rho, deriv_rho], &
206 allocate_deriv=.true.)
207 CALL xc_derivative_get(deriv, deriv_data=e_rho_rho)
208 deriv => xc_dset_get_derivative(deriv_set, [deriv_norm_drho, deriv_rho], &
209 allocate_deriv=.true.)
210 CALL xc_derivative_get(deriv, deriv_data=e_ndrho_rho)
211 deriv => xc_dset_get_derivative(deriv_set, &
212 [deriv_norm_drho, deriv_norm_drho], allocate_deriv=.true.)
213 CALL xc_derivative_get(deriv, deriv_data=e_ndrho_ndrho)
214 END IF
215 IF (order > 1 .OR. order < -1) THEN
216 cpabort("derivatives bigger than 1 do not work correctly")
217 END IF
218 IF (order > 2 .OR. order < -2) THEN
219 cpabort("derivatives bigger than 2 not implemented")
220 END IF
221
222!$OMP PARALLEL DEFAULT(NONE) &
223!$OMP SHARED(npoints, order, rho, norm_drho, e_0, e_rho, e_ndrho) &
224!$OMP SHARED(e_rho_rho, e_ndrho_rho, e_ndrho_ndrho, epsilon_rho) &
225!$OMP SHARED(sx, sx0, omega)
226
227 CALL xwpbe_lda_calc(npoints, order, rho=rho, norm_drho=norm_drho, &
228 e_0=e_0, e_rho=e_rho, e_ndrho=e_ndrho, e_rho_rho=e_rho_rho, &
229 e_ndrho_rho=e_ndrho_rho, e_ndrho_ndrho=e_ndrho_ndrho, &
230 epsilon_rho=epsilon_rho, sx=sx, sx0=sx0, omega=omega)
231
232!$OMP END PARALLEL
233
234 CALL timestop(handle)
235
236 END SUBROUTINE xwpbe_lda_eval
237
238! **************************************************************************************************
239!> \brief evaluates the screened hole averaged PBE exchange functional for lda
240!> \param npoints ...
241!> \param order degree of the derivative that should be evaluated,
242!> if positive all the derivatives up to the given degree are evaluated,
243!> if negative only the given degree is calculated
244!> \param rho , ndrho: density and norm of the density gradient
245!> \param norm_drho ...
246!> \param e_0 ...
247!> \param e_rho ...
248!> \param e_ndrho ...
249!> \param e_rho_rho ...
250!> \param e_ndrho_rho ...
251!> \param e_ndrho_ndrho ...
252!> \param epsilon_rho ...
253!> \param sx , sx0: scaling factor for omega!=0 and omega=0
254!> \param sx0 ...
255!> \param omega screening parameter
256!> \par History
257!> 05.2007 created [Manuel Guidon]
258!> \author Manuel Guidon
259!> \note
260!> In order to avoid numerical instabilities, this routine calls different
261!> subroutines. There are 4 routines for the case omega!=0 and 2 routines
262!> for omega=0.
263! **************************************************************************************************
264 SUBROUTINE xwpbe_lda_calc(npoints, order, rho, norm_drho, e_0, e_rho, e_ndrho, &
265 e_rho_rho, e_ndrho_rho, e_ndrho_ndrho, &
266 epsilon_rho, sx, sx0, omega)
267
268 INTEGER, INTENT(in) :: npoints, order
269 REAL(kind=dp), DIMENSION(1:npoints), INTENT(inout) :: rho, norm_drho, e_0, e_rho, e_ndrho, &
270 e_rho_rho, e_ndrho_rho, e_ndrho_ndrho
271 REAL(kind=dp), INTENT(in) :: epsilon_rho, sx, sx0, omega
272
273 INTEGER :: ip
274 REAL(dp) :: my_ndrho, my_rho
275 REAL(kind=dp) :: ss, ss2, sscale, t1, t2, t3, t4, t5, t6, &
276 t7, t8, ww
277
278!$OMP DO
279
280 DO ip = 1, npoints
281 my_rho = max(rho(ip), 0.0_dp)
282 IF (my_rho > epsilon_rho) THEN
283 my_ndrho = max(norm_drho(ip), 0.0_dp)
284
285 !Do some precalculation in order to catch the correct branch afterwards
286 sscale = 1.0_dp
287 t1 = pi**2
288 t2 = t1*my_rho
289 t3 = t2**(0.1e1_dp/0.3e1_dp)
290 t4 = 0.1e1_dp/t3
291 t5 = omega*t4
292 ww = 0.6933612743506347048433524e0_dp*t5
293 t6 = my_ndrho*t4
294 t7 = 0.1e1_dp/my_rho
295 t8 = t7*sscale
296 ss = 0.3466806371753173524216762e0_dp*t6*t8
297 IF (ss > scutoff) THEN
298 ss2 = ss*ss
299 sscale = (smax*ss2 - sconst)/(ss2*ss)
300 END IF
301
302 IF (sx0 /= 0.0_dp) THEN
303 !original PBE hole
304 IF (ss*sscale > gcutoff) THEN
305 CALL xwpbe_lda_calc_0(e_0(ip), e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
306 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
307 my_ndrho, sscale, sx0, order)
308 ELSE
309 CALL xwpbe_lda_calc_01(e_0(ip), e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
310 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
311 my_ndrho, sscale, sx0, order)
312 END IF
313 END IF
314
315 IF (sx /= 0.0_dp) THEN
316 IF (ww < wcutoff .AND. ss*sscale > gcutoff) THEN
317 CALL xwpbe_lda_calc_1(e_0(ip), e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
318 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
319 my_ndrho, omega, sscale, sx, order)
320 ELSE IF (ww < wcutoff .AND. ss*sscale <= gcutoff) THEN
321 CALL xwpbe_lda_calc_2(e_0(ip), e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
322 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
323 my_ndrho, omega, sscale, sx, order)
324 ELSE IF (ww >= wcutoff .AND. ss*sscale > gcutoff) THEN
325 CALL xwpbe_lda_calc_3(e_0(ip), e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
326 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
327 my_ndrho, omega, sscale, sx, order)
328 ELSE
329 CALL xwpbe_lda_calc_4(e_0(ip), e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
330 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
331 my_ndrho, omega, sscale, sx, order)
332 END IF
333 END IF
334 END IF
335 END DO
336
337!$OMP END DO
338
339 END SUBROUTINE xwpbe_lda_calc
340
341! **************************************************************************************************
342!> \brief Evaluates the screened hole averaged PBE exchange functional for lda
343!> \param e_0 ...
344!> \param e_rho ...
345!> \param e_ndrho ...
346!> \param e_rho_rho ...
347!> \param e_ndrho_rho ...
348!> \param e_ndrho_ndrho ...
349!> \param rho , ndrho: density and norm of the density gradient
350!> \param ndrho ...
351!> \param sscale scaling factor to enforce Lieb-Oxford bound
352!> \param sx0 scaling factor
353!> \param order degree of the derivative that should be evaluated,
354!> if positive all the derivatives up to the given degree are evaluated,
355!> if negative only the given degree is calculated
356!> \par History
357!> 05.2007 created [Manuel Guidon]
358!> \author Manuel Guidon
359!> \note
360!> This routine evaluates the exact functional for omega=0.
361! **************************************************************************************************
362 SUBROUTINE xwpbe_lda_calc_0(e_0, e_rho, e_ndrho, e_rho_rho, e_ndrho_rho, &
363 e_ndrho_ndrho, rho, ndrho, sscale, sx0, order)
364 REAL(kind=dp), INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_rho_rho, &
365 e_ndrho_rho, e_ndrho_ndrho
366 REAL(kind=dp), INTENT(IN) :: rho, ndrho, sscale, sx0
367 INTEGER, INTENT(IN) :: order
368
369 REAL(kind=dp) :: d2qndrhondrho, d2qrhondrho, d2qrhorho, dqndrho, dqrho, q, t1, t10, t100, &
370 t1003, t1007, t1018, t1023, t1024, t103, t1037, t105, t1055, t1056, t1057, t1059, t106, &
371 t1060, t1073, t1079, t1082, t109, t11, t110, t1100, t111, t1110, t1114, t1117, t112, &
372 t114, t1143, t116, t1165, t117, t118, t119, t12, t120, t1202, t121, t1215, t122, t123, &
373 t1242, t125, t1258, t126, t1263, t127, t1286, t13, t130, t1316, t134, t1347, t135, t1352, &
374 t1358, t136, t1362, t1365, t1369, t1372, t138, t1382, t1388, t139, t1392, t1395, t14, &
375 t1412, t142, t143, t145, t1455, t146, t1465, t147, t148, t149, t15
376 REAL(kind=dp) :: t150, t1510, t152, t1547, t156, t1561, t158, t159, t16, t160, t163, t164, &
377 t165, t166, t169, t170, t172, t173, t174, t175, t176, t18, t180, t183, t184, t185, t187, &
378 t188, t19, t190, t191, t192, t193, t199, t2, t20, t200, t201, t202, t203, t207, t209, &
379 t21, t215, t218, t219, t22, t220, t222, t223, t224, t225, t227, t228, t231, t233, t236, &
380 t237, t24, t240, t241, t242, t245, t246, t247, t249, t25, t250, t253, t254, t258, t26, &
381 t261, t262, t263, t265, t266, t269, t272, t274, t275, t278, t28, t281, t282, t284, t285, &
382 t287, t288, t29, t290, t291, t294, t297, t3, t300, t301, t303
383 REAL(kind=dp) :: t304, t306, t307, t31, t314, t32, t321, t323, t326, t327, t33, t330, t334, &
384 t335, t336, t337, t338, t339, t34, t340, t342, t343, t344, t345, t347, t355, t356, t357, &
385 t358, t359, t36, t361, t362, t363, t367, t368, t37, t372, t374, t376, t377, t381, t383, &
386 t384, t387, t388, t39, t390, t391, t394, t397, t398, t4, t40, t400, t401, t402, t404, &
387 t405, t406, t408, t409, t410, t411, t412, t413, t414, t415, t416, t417, t418, t42, t423, &
388 t425, t426, t429, t430, t432, t433, t435, t44, t440, t443, t444, t446, t447, t449, t46, &
389 t463, t465, t47, t471, t472, t475, t476, t478, t479, t480, t484
390 REAL(kind=dp) :: t485, t489, t491, t495, t497, t5, t500, t501, t504, t505, t507, t508, t510, &
391 t511, t513, t514, t515, t52, t520, t53, t530, t537, t54, t540, t542, t546, t550, t553, &
392 t557, t56, t566, t569, t570, t577, t579, t58, t59, t6, t61, t616, t620, t621, t627, t628, &
393 t63, t632, t647, t65, t655, t657, t66, t663, t67, t678, t68, t685, t69, t7, t70, t707, &
394 t71, t716, t72, t73, t735, t74, t744, t751, t755, t76, t761, t77, t778, t78, t784, t788, &
395 t79, t791, t8, t80, t81, t819, t824, t83, t84, t854, t856, t857, t86, t867, t872, t875, &
396 t878, t88, t887, t888, t889, t89, t9, t905, t91, t910, t911
397 REAL(kind=dp) :: t92, t923, t924, t93, t930, t933, t94, t95, t952, t956, t968, t97, t975, &
398 t98, t983
399
400 IF (order >= 0) THEN
401 t1 = ndrho**2
402 t2 = a1*t1
403 t3 = r2**2
404 t4 = 0.1e1_dp/t3
405 t5 = t2*t4
406 t6 = pi**2
407 t7 = r3*t6
408 t8 = t7*rho
409 t9 = t8**(0.1e1_dp/0.3e1_dp)
410 t10 = t9**2
411 t11 = 0.1e1_dp/t10
412 t12 = rho**2
413 t13 = 0.1e1_dp/t12
414 t14 = t11*t13
415 t15 = sscale**2
416 t16 = t14*t15
417 t18 = t1**2
418 t19 = a2*t18
419 t20 = t3**2
420 t21 = 0.1e1_dp/t20
421 t22 = t19*t21
422 t24 = 0.1e1_dp/t9/t8
423 t25 = t12**2
424 t26 = 0.1e1_dp/t25
425 t28 = t15**2
426 t29 = t24*t26*t28
427 t31 = t5*t16 + t22*t29
428 t32 = f94*t31
429 t33 = a3*t18
430 t34 = t33*t21
431 t36 = t18*ndrho
432 t37 = a4*t36
433 t39 = 0.1e1_dp/t20/r2
434 t40 = t37*t39
435 t42 = 0.1e1_dp/t10/t8
436 t44 = 0.1e1_dp/t25/rho
437 t46 = t28*sscale
438 t47 = t42*t44*t46
439 t52 = 0.1e1_dp/t20/t3
440 t53 = a5*t18*t1*t52
441 t54 = r3**2
442 t56 = t6**2
443 t58 = 0.1e1_dp/t54/t56
444 t59 = t25**2
445 t61 = t28*t15
446 t63 = t58/t59*t61
447 t65 = r1 + t34*t29 + t40*t47 + t53*t63
448 t66 = 0.1e1_dp/t65
449 t67 = t66*t1
450 t68 = t32*t67
451 t69 = t4*t11
452 t70 = t13*t15
453 t71 = 0.1e1_dp/a
454 t72 = t70*t71
455 t73 = t69*t72
456 q = t68*t73
457 t74 = rho**(0.1e1_dp/0.3e1_dp)
458 t76 = t74*rho*f89
459 t77 = b*f12
460 t78 = t1*t4
461 t79 = t78*t11
462 t80 = t31*t66
463 t81 = t70*t80
464 t83 = t79*t81 + dd
465 t84 = 0.1e1_dp/t83
466 t86 = f2*t31
467 t88 = f1 + t86*t66
468 t89 = t70*t88
469 t91 = t79*t89 + r1
470 t92 = f12*t91
471 t93 = t83**2
472 t94 = 0.1e1_dp/t93
473 t95 = c*t94
474 t97 = f34*pi
475 t98 = rootpi
476 t100 = r6*c
477 t103 = r4*b
478 t105 = r8*a
479 t106 = t93*t83
480 t109 = t98*(r15*e + t100*t91*t83 + t103*t93 + t105*t106)
481 t110 = 0.1e1_dp/r16
482 t111 = sqrt(t83)
483 t112 = t111*t106
484 t114 = t110/t112
485 t116 = sqrt(a)
486 t117 = exp(q)
487 t118 = t116*t117
488 t119 = f32*ndrho
489 t120 = 0.1e1_dp/r2
490 t121 = t119*t120
491 t122 = 0.1e1_dp/t9
492 t123 = 0.1e1_dp/rho
493 t125 = t80*t71
494 t126 = sqrt(t125)
495 t127 = sscale*t126
496 t130 = erfc(t121*t122*t123*t127)
497 t134 = 0.1e1_dp/f1516
498 t135 = (t97 + t109*t114 - t97*t118*t130)*t134
499 t136 = 0.1e1_dp/t98
500 t138 = 0.1e1_dp/e
501 t139 = t136*t112*t138
502 t142 = (-t135*t139 + r1)*e
503 t143 = 0.1e1_dp/t106
504 t145 = f12*a
505 t146 = exei(q)
506 t147 = t78*t14
507 t148 = t15*t31
508 t149 = t66*t84
509 t150 = t148*t149
510 t152 = log(t147*t150)
511 t156 = (t77*t84 + t92*t95 + t142*t143 + t145*(t146 + t152)) &
512 *clda
513 e_0 = e_0 + (-t76*t156)*sx0
514 END IF
515 IF (order >= 1 .OR. order == -1) THEN
516 t158 = t4*t42
517 t159 = t2*t158
518 t160 = t70*t7
519 t163 = t12*rho
520 t164 = 0.1e1_dp/t163
521 t165 = t11*t164
522 t166 = t165*t15
523 t169 = t54*t56
524 t170 = t169*t12
525 t172 = 0.1e1_dp/t9/t170
526 t173 = t21*t172
527 t174 = t19*t173
528 t175 = t26*t28
529 t176 = t175*t7
530 t180 = t24*t44*t28
531 t183 = -0.2e1_dp/0.3e1_dp*t159*t160 - (2._dp*t5*t166) - 0.4e1_dp/ &
532 0.3e1_dp*t174*t176 - (4._dp*t22*t180)
533 t184 = f94*t183
534 t185 = t184*t67
535 t187 = t65**2
536 t188 = 0.1e1_dp/t187
537 t190 = t188*t1*t4
538 t191 = t32*t190
539 t192 = t15*t71
540 t193 = t33*t173
541 t199 = 0.1e1_dp/t10/t170
542 t200 = t39*t199
543 t201 = t37*t200
544 t202 = t44*t46
545 t203 = t202*t7
546 t207 = 0.1e1_dp/t25/t12
547 t209 = t42*t207*t46
548 t215 = t58/t59/rho*t61
549 t218 = -0.4e1_dp/0.3e1_dp*t193*t176 - (4._dp*t34*t180) - 0.5e1_dp &
550 /0.3e1_dp*t201*t203 - (5._dp*t40*t209) - (8._dp*t53*t215)
551 t219 = t192*t218
552 t220 = t14*t219
553 t222 = t67*t4
554 t223 = t32*t222
555 t224 = t42*t13
556 t225 = t224*t15
557 t227 = t71*r3*t6
558 t228 = t225*t227
559 t231 = t164*t15
560 t233 = t69*t231*t71
561 dqrho = t185*t73 - t191*t220 - 0.2e1_dp/0.3e1_dp*t223*t228 - (2._dp &
562 *t68*t233)
563 t236 = a1*ndrho
564 t237 = t236*t4
565 t240 = t1*ndrho
566 t241 = a2*t240
567 t242 = t241*t21
568 t245 = 2._dp*t237*t16 + 4._dp*t242*t29
569 t246 = f94*t245
570 t247 = t246*t67
571 t249 = a3*t240
572 t250 = t249*t21
573 t253 = a4*t18
574 t254 = t253*t39
575 t258 = a5*t36*t52
576 t261 = 4._dp*t250*t29 + 5._dp*t254*t47 + 6._dp*t258*t63
577 t262 = t192*t261
578 t263 = t14*t262
579 t265 = t66*ndrho
580 t266 = t32*t265
581 dqndrho = t247*t73 - t191*t263 + 2._dp*t266*t73
582 t269 = t74*f89
583 t272 = t78*t224
584 t274 = t66*r3*t6
585 t275 = t148*t274
586 t278 = t231*t80
587 t281 = t183*t66
588 t282 = t70*t281
589 t284 = t188*t218
590 t285 = t148*t284
591 t287 = -0.2e1_dp/0.3e1_dp*t272*t275 - (2._dp*t79*t278) + (t79 &
592 *t282) - t147*t285
593 t288 = t94*t287
594 t290 = t15*t88
595 t291 = t290*t7
596 t294 = t231*t88
597 t297 = f2*t183
598 t300 = t297*t66 - t86*t284
599 t301 = t70*t300
600 t303 = -0.2e1_dp/0.3e1_dp*t272*t291 - (2._dp*t79*t294) + (t79 &
601 *t301)
602 t304 = f12*t303
603 t306 = c*t143
604 t307 = t306*t287
605 t314 = t83*t287
606 t321 = t98*(t100*t303*t83 + t100*t91*t287 + 2._dp*t103*t314 &
607 + 3._dp*t105*t93*t287)
608 t323 = t93**2
609 t326 = t110/t111/t323
610 t327 = t326*t287
611 t330 = t97*t116
612 t334 = rootpi
613 t335 = 0.1e1_dp/t334
614 t336 = t117*t335
615 t337 = f32**2
616 t338 = t337*t1
617 t339 = t338*t69
618 t340 = t70*t125
619 t342 = exp(-t339*t340)
620 t343 = t120*t24
621 t344 = t119*t343
622 t345 = t123*sscale
623 t347 = t126*r3*t6
624 t355 = t119*t120*t122
625 t356 = 0.1e1_dp/t126
626 t357 = t281*t71
627 t358 = t31*t188
628 t359 = t71*t218
629 t361 = t357 - t358*t359
630 t362 = t356*t361
631 t363 = t345*t362
632 t367 = t342*(-t344*t345*t347/0.3e1_dp - t121*t122*t13*t127 &
633 + t355*t363/0.2e1_dp)
634 t368 = t336*t367
635 t372 = (t321*t114 - 0.7e1_dp/0.2e1_dp*t109*t327 - (t330*dqrho &
636 *t117*t130) + (2._dp*t330*t368))*t134
637 t374 = t135*t136
638 t376 = t111*t93*t138
639 t377 = t376*t287
640 t381 = (-t372*t139 - 0.7e1_dp/0.2e1_dp*t374*t377)*e
641 t383 = 0.1e1_dp/t323
642 t384 = t383*t287
643 t387 = dexeirho(q, dqrho)
644 t388 = t78*t225
645 t390 = t84*r3*t6
646 t391 = t80*t390
647 t394 = t78*t165
648 t397 = t15*t183
649 t398 = t397*t149
650 t400 = t188*t84
651 t401 = t400*t218
652 t402 = t148*t401
653 t404 = t66*t94
654 t405 = t404*t287
655 t406 = t148*t405
656 t408 = -0.2e1_dp/0.3e1_dp*t388*t391 - (2._dp*t394*t150) + t147 &
657 *t398 - t147*t402 - t147*t406
658 t409 = 0.1e1_dp/t1
659 t410 = t408*t409
660 t411 = t3*t10
661 t412 = t410*t411
662 t413 = 0.1e1_dp/t15
663 t414 = t12*t413
664 t415 = 0.1e1_dp/t31
665 t416 = t415*t65
666 t417 = t416*t83
667 t418 = t414*t417
668 t423 = (-t77*t288 + t304*t95 - 2._dp*t92*t307 + t381*t143 - 3._dp &
669 *t142*t384 + t145*(t387 + t412*t418))*clda
670 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t269*t156 - t76*t423)*sx0
671 t425 = ndrho*t4
672 t426 = t425*t11
673 t429 = t245*t66
674 t430 = t70*t429
675 t432 = t188*t261
676 t433 = t148*t432
677 t435 = 2._dp*t426*t81 + t79*t430 - t147*t433
678 t440 = f2*t245
679 t443 = t440*t66 - t86*t432
680 t444 = t70*t443
681 t446 = 2._dp*t426*t89 + t79*t444
682 t447 = f12*t446
683 t449 = t306*t435
684 t463 = t98*(t100*t446*t83 + t100*t91*t435 + 2._dp*t103*t83 &
685 *t435 + 3._dp*t105*t93*t435)
686 t465 = t326*t435
687 t471 = f32*t120
688 t472 = t471*t122
689 t475 = t429*t71
690 t476 = t71*t261
691 t478 = t475 - t358*t476
692 t479 = t356*t478
693 t480 = t345*t479
694 t484 = t342*(t472*t345*t126 + t355*t480/0.2e1_dp)
695 t485 = t336*t484
696 t489 = (t463*t114 - 0.7e1_dp/0.2e1_dp*t109*t465 - (t330*dqndrho &
697 *t117*t130) + (2._dp*t330*t485))*t134
698 t491 = t376*t435
699 t495 = (-t489*t139 - 0.7e1_dp/0.2e1_dp*t374*t491)*e
700 t497 = t383*t435
701 t500 = dexeindrho(q, dqndrho)
702 t501 = t425*t14
703 t504 = t15*t245
704 t505 = t504*t149
705 t507 = t400*t261
706 t508 = t148*t507
707 t510 = t404*t435
708 t511 = t148*t510
709 t513 = 2._dp*t501*t150 + t147*t505 - t147*t508 - t147*t511
710 t514 = t513*t409
711 t515 = t514*t411
712 t520 = (-t77*t94*t435 + t447*t95 - 2._dp*t92*t449 + t495*t143 &
713 - 3._dp*t142*t497 + t145*(t500 + t515*t418))*clda
714 e_ndrho = e_ndrho + (-t76*t520)*sx0
715 END IF
716 IF (order >= 2 .OR. order == -2) THEN
717 t530 = t11*t26
718 t537 = t54*r3*t56*t6*t163
719 t540 = t21/t9/t537
720 t542 = t175*t169
721 t546 = t44*t28*t7
722 t550 = t24*t207*t28
723 t553 = 0.10e2_dp/0.9e1_dp*t2*t4*t199*t70*t169 + 0.8e1_dp/0.3e1_dp &
724 *t159*t231*t7 + (6._dp*t5*t530*t15) + 0.28e2_dp/0.9e1_dp* &
725 t19*t540*t542 + 0.32e2_dp/0.3e1_dp*t174*t546 + (20._dp*t22 &
726 *t550)
727 t557 = t184*t190
728 t566 = 0.1e1_dp/t187/t65
729 t569 = t32*t566*t1*t4
730 t570 = t218**2
731 t577 = t32*t188*t78*t42
732 t579 = t218*r3*t6
733 t616 = 0.28e2_dp/0.9e1_dp*t33*t540*t542 + 0.32e2_dp/0.3e1_dp*t193* &
734 t546 + (20._dp*t34*t550) + 0.40e2_dp/0.9e1_dp*t37*t39/t10/ &
735 t537*t202*t169 + 0.50e2_dp/0.3e1_dp*t201*t207*t46*t7 + 0.30e2_dp &
736 *t40*t42/t25/t163*t46 + (72._dp*t53*t58/t59/ &
737 t12*t61)
738 t620 = t199*t13
739 t621 = t620*t15
740 t627 = t42*t164
741 t628 = t627*t15
742 t632 = t26*t15
743 d2qrhorho = f94*t553*t67*t73 - (2._dp*t557*t220) - 0.4e1_dp/0.3e1_dp &
744 *t184*t222*t228 - (4._dp*t185*t233) + (2._dp*t569*t14 &
745 *t192*t570) + 0.4e1_dp/0.3e1_dp*t577*t72*t579 + (4._dp*t191 &
746 *t165*t219) - (t191*t14*t192*t616) + 0.10e2_dp/0.9e1_dp &
747 *t223*t621*t71*t54*t56 + 0.8e1_dp/0.3e1_dp*t223*t628* &
748 t227 + 0.6e1_dp*t68*t69*t632*t71
749 t647 = -0.4e1_dp/0.3e1_dp*t236*t158*t160 - (4._dp*t237*t166) &
750 - 0.16e2_dp/0.3e1_dp*t241*t173*t176 - (16._dp*t242*t180)
751 t655 = t246*t190
752 t657 = t359*t261
753 t663 = t32*t188*ndrho*t4
754 t678 = -0.16e2_dp/0.3e1_dp*t249*t173*t176 - (16._dp*t250*t180) &
755 - 0.25e2_dp/0.3e1_dp*t253*t200*t203 - (25._dp*t254*t209) - &
756 (48._dp*t258*t215)
757 t685 = t7*t261
758 d2qrhondrho = (f94*t647*t67*t73) - t557*t263 + (2._dp*t184* &
759 t265*t73) - (t655*t220) + (2._dp*t569*t16*t657) - (2._dp &
760 *t663*t220) - (t191*t14*t192*t678) - 0.2e1_dp/0.3e1_dp &
761 *t246*t222*t228 + 0.2e1_dp/0.3e1_dp*t577*t72*t685 - 0.4e1_dp &
762 /0.3e1_dp*t32*(t265)*t4*t228 - (2._dp*t247*t233) + &
763 (2._dp*t191*t165*t262) - (4._dp*t266*t233)
764 t707 = 2._dp*a1*t4*t16 + 12._dp*a2*t1*t21*t29
765 t716 = t261**2
766 t735 = 12._dp*a3*t1*t21*t29 + 20._dp*a4*t240*t39*t47 + 30._dp* &
767 a5*t18*t52*t63
768 d2qndrhondrho = f94*t707*t67*t73 - 2._dp*t655*t263 + 4._dp*t246*t265* &
769 t73 + 2._dp*t569*t14*t192*t716 - 4._dp*t663*t263 - t191*t14 &
770 *t192*t735 + 2._dp*t32*t66*t4*t14*t192
771 t744 = t74**2
772 t751 = t287**2
773 t755 = t78*t620
774 t761 = t78*t627
775 t778 = t553*t66
776 t784 = t566*t570
777 t788 = t188*t616
778 t791 = 0.10e2_dp/0.9e1_dp*t755*t148*t66*t54*t56 + 0.8e1_dp/0.3e1_dp &
779 *t761*t275 - 0.4e1_dp/0.3e1_dp*t272*t397*t274 + 0.4e1_dp/0.3e1_dp &
780 *t388*t358*t579 + (6._dp*t79*t632*t80) - (4._dp*t79 &
781 *t231*t281) + (4._dp*t394*t285) + (t79*t70*t778) &
782 - 0.2e1_dp*t147*t397*t284 + 0.2e1_dp*t147*t148*t784 - t147 &
783 *t148*t788
784 t819 = 0.10e2_dp/0.9e1_dp*t755*t290*t169 + 0.8e1_dp/0.3e1_dp*t761* &
785 t291 - 0.4e1_dp/0.3e1_dp*t272*t15*t300*t7 + (6._dp*t79*t632 &
786 *t88) - 0.4e1_dp*(t79)*t231*t300 + (t79*t70*(f2 &
787 *t553*t66 - 2._dp*t297*t284 + 2._dp*t86*t784 - t86*t788))
788 t824 = c*t383
789 t854 = t323*t83
790 t856 = 0.1e1_dp/t111/t854
791 t857 = t110*t856
792 t867 = dqrho**2
793 t872 = t97*t116*dqrho
794 t875 = t97*t118
795 t878 = t148*t66
796 t887 = t69*t13
797 t888 = t338*t887
798 t889 = t188*t71
799 t905 = t13*sscale
800 t910 = t119*t343*t123
801 t911 = sscale*t356
802 t923 = 0.1e1_dp/t126/t125
803 t924 = t361**2
804 t930 = t183*t188
805 t933 = t31*t566
806 t952 = t372*t136
807 t956 = t111*t83*t138
808 t968 = 0.1e1_dp/t854
809 t975 = d2exeirhorho(q, dqrho, d2qrhorho)
810 t983 = t66*t143
811 t1003 = t358*t84
812 t1007 = t80*t94
813 t1018 = t566*t84
814 t1023 = t78*t16
815 t1024 = t94*t218
816 t1037 = (6._dp*t78*t530*t150) - (4._dp*t394*t398) + (4._dp &
817 *t394*t402) + (2._dp*t147*t148*t983*t751) - (t147 &
818 *t148*t404*t791) + (t147*t15*t553*t149) - (2._dp* &
819 t147*t397*t401) - (2._dp*t147*t397*t405) - 0.4e1_dp/0.3e1_dp &
820 *t388*t281*t390 + 0.4e1_dp/0.3e1_dp*t388*t1003*t579 + 0.4e1_dp &
821 /0.3e1_dp*t388*t1007*t7*t287 + 0.10e2_dp/0.9e1_dp*(t78) &
822 *(t621)*(t80)*(t84)*(t54)*(t56) + (2._dp &
823 *t147*t148*t1018*t570) + 0.2e1_dp*t1023*t358*t1024 &
824 *t287 - (t147*t148*t400*t616) + 0.8e1_dp/0.3e1_dp*(t78) &
825 *(t628)*(t391) + (4._dp*t394*t406)
826 t1055 = t411*t12
827 t1056 = t410*t1055
828 t1057 = t31**2
829 t1059 = t413/t1057
830 t1060 = t65*t83
831 t1073 = (2._dp*t77*t143*t751) - (t77*t94*t791) + (f12 &
832 *t819*t95) - (4._dp*t304*t307) + (6._dp*t92*t824* &
833 t751) - (2._dp*t92*t306*t791) + (-((t98*(t100*t819 &
834 *t83 + 2._dp*t100*t303*t287 + t100*t91*t791 + 2._dp*t103*t751 &
835 + 2._dp*t103*t83*t791 + 6._dp*t105*t83*t751 + 3._dp*t105*t93 &
836 *t791)*t114) - (7._dp*t321*t327) + 0.63e2_dp/0.4e1_dp*(t109) &
837 *(t857)*(t751) - 0.7e1_dp/0.2e1_dp*(t109)*(t326) &
838 *(t791) - t330*d2qrhorho*t117*t130 - t330*t867*t117 &
839 *t130 + (4._dp*t872*t368) + 0.2e1_dp*t875*t335*(0.2e1_dp/ &
840 0.3e1_dp*t338*t158*t13*t878*t227 + (2._dp*t339*t231* &
841 t125) - (t339*t70*t357) + t888*t148*t889*t218)*t367 &
842 + 0.2e1_dp*t330*t336*t342*(0.4e1_dp/0.9e1_dp*t119*t120*t172 &
843 *t345*t126*t54*t56 + 0.2e1_dp/0.3e1_dp*t344*t905*t347 &
844 - t910*t911*t7*t361/0.3e1_dp + (2._dp*t121*t122*t164* &
845 t127) - t355*t905*t362 - t355*t345*t923*t924/0.4e1_dp + t355 &
846 *t345*t356*(t778*t71 - 2._dp*t930*t359 + 2._dp*t933* &
847 t71*t570 - t358*t71*t616)/0.2e1_dp))*t134*t139 - (7._dp &
848 *t952*t377) - 0.35e2_dp/0.4e1_dp*(t374)*(t956)*(t751) &
849 - 0.7e1_dp/0.2e1_dp*(t374)*(t376)*(t791))*e* &
850 (t143) - (6._dp*t381*t384) + (12._dp*t142*t968*t751) &
851 - (3._dp*t142*t383*t791) + t145*(t975 + t1037*t409*t411 &
852 *t418 + 0.2e1_dp/0.3e1_dp*(t410)*(t3)*(t122)* &
853 (t12)*(t413)*(t415)*(t65)*(t83)*(r3) &
854 *(t6) + (2._dp*t412*rho*t413*t417) - t1056*t1059 &
855 *t1060*t183 + (t412)*t414*(t415)*t218*(t83) &
856 + (t412)*t414*t416*(t287))
857 e_rho_rho = e_rho_rho + (-0.4e1_dp/0.9e1_dp/t744*f89*t156 - 0.8e1_dp/0.3e1_dp*t269*t423 &
858 - t76*t1073*clda)*sx0
859 t1079 = t143*t287*t435
860 t1082 = t425*t224
861 t1100 = t647*t66
862 t1110 = t566*t218*t261
863 t1114 = t188*t678
864 t1117 = -0.4e1_dp/0.3e1_dp*t1082*t275 - 0.2e1_dp/0.3e1_dp*t272*t504 &
865 *t274 + 0.2e1_dp/0.3e1_dp*t388*t358*t685 - (4._dp*t426*t278) &
866 - (2._dp*t79*t231*t429) + (2._dp*t394*t433) + (2._dp &
867 *t426*t282) + (t79*t70*t1100) - t147*t397*t432 - (2._dp &
868 *t501*t285) - t147*t504*t284 + 0.2e1_dp*t147*t148*t1110 &
869 - t147*t148*t1114
870 t1143 = -0.4e1_dp/0.3e1_dp*t1082*t291 - 0.2e1_dp/0.3e1_dp*t272*t15 &
871 *t443*t7 - (4._dp*t426*t294) - 0.2e1_dp*t79*t231*t443 + &
872 (2._dp*t426*t301) + t79*t70*(f2*t647*t66 - t297* &
873 t432 - t440*t284 + 2._dp*t86*t1110 - t86*t1114)
874 t1165 = t435*t287
875 t1202 = t97*t116*dqndrho
876 t1215 = t335*(-2._dp*t337*ndrho*t69*t340 - t339*t70*t475 &
877 + t888*t148*t889*t261)
878 t1242 = t245*t188
879 t1258 = (t98*(t100*t1143*t83 + t100*t303*t435 + t100 &
880 *t446*t287 + t100*t91*t1117 + 2._dp*t103*t1165 + 2._dp*t103* &
881 t83*t1117 + 6._dp*t105*t314*t435 + 3._dp*t105*t93*t1117)* &
882 t114) - 0.7e1_dp/0.2e1_dp*t321*t465 - 0.7e1_dp/0.2e1_dp*t463*t327 &
883 + 0.63e2_dp/0.4e1_dp*(t109)*(t110)*(t856)*(t287) &
884 *(t435) - 0.7e1_dp/0.2e1_dp*(t109)*(t326)*(t1117) &
885 - t330*d2qrhondrho*t117*t130 - t330*dqrho*dqndrho*t117*t130 &
886 + (2._dp*t872*t485) + (2._dp*t1202*t368) + (2._dp*t875 &
887 *t1215*t367) + 0.2e1_dp*t330*t336*t342*(-t471*t24*t123 &
888 *t127*t7/0.3e1_dp - t910*t911*t7*t478/0.6e1_dp - t472*t905 &
889 *t126 - t355*t905*t479/0.2e1_dp + t472*t363/0.2e1_dp - t355 &
890 *t345*t923*t361*t478/0.4e1_dp + t355*t345*t356*(t1100 &
891 *t71 - t930*t476 - t1242*t359 + 2._dp*t933*t657 - t358 &
892 *t71*t678)/0.2e1_dp)
893 t1263 = t489*t136
894 t1286 = d2exeirhondrho(q, dqrho, dqndrho, d2qrhondrho)
895 t1316 = -0.4e1_dp/0.3e1_dp*t425*t225*t391 - 0.2e1_dp/0.3e1_dp*t388 &
896 *t429*t390 + 0.2e1_dp/0.3e1_dp*t388*t1003*t685 + 0.2e1_dp/0.3e1_dp &
897 *t388*t1007*t7*t435 - 0.4e1_dp*t425*t165*t150 - (2._dp &
898 *t394*t505) + (2._dp*t394*t508) + (2._dp*t394*t511) + &
899 (2._dp*t501*t398) + t147*t15*t647*t149 - t147*t397*t507
900 t1347 = -t147*t397*t510 - 2._dp*t501*t402 - t147*t504*t401 &
901 + 2._dp*t1023*t933*t84*t218*t261 + t1023*t358*t1024*t435 &
902 - t147*t148*t400*t678 - 2._dp*t501*t406 - t147*t504*t405 &
903 + t1023*t358*t288*t261 + 2._dp*t1023*t80*t1079 - t147 &
904 *t148*t404*t1117
905 t1352 = 0.1e1_dp/t240
906 t1358 = t1059*t1060*t245
907 t1362 = t414*t415*t261*t83
908 t1365 = t414*t416*t435
909 t1369 = (2._dp*t77*t1079) - (t77*t94*t1117) + f12*t1143 &
910 *t95 - (2._dp*t304*t449) - (2._dp*t447*t307) + (6._dp &
911 *t92*c*t384*t435) - (2._dp*t92*t306*t1117) + (-t1258 &
912 *t134*t139 - 0.7e1_dp/0.2e1_dp*t952*t491 - 0.7e1_dp/0.2e1_dp*t1263 &
913 *t377 - 0.35e2_dp/0.4e1_dp*t374*t956*t1165 - 0.7e1_dp/0.2e1_dp* &
914 t374*t376*(t1117))*e*t143 - (3._dp*t381*t497) - (3._dp &
915 *t495*t384) + (12._dp*t142*t968*t287*t435) - (3._dp &
916 *t142*t383*t1117) + (t145*(t1286 + (t1316 + t1347)* &
917 t409*t411*t418 - 2._dp*t408*t1352*t411*t418 - t1056*t1358 &
918 + t412*t1362 + t412*t1365))
919 e_ndrho_rho = e_ndrho_rho + (-0.4e1_dp/0.3e1_dp*t269*t520 - t76*t1369*clda)*sx0
920 t1372 = t435**2
921 t1382 = t707*t66
922 t1388 = t566*t716
923 t1392 = t188*t735
924 t1395 = 2._dp*t887*t878 + 4._dp*t426*t430 - 4._dp*t501*t433 + t79* &
925 t70*t1382 - 2._dp*t147*t504*t432 + 2._dp*t147*t148*t1388 - &
926 t147*t148*t1392
927 t1412 = 2._dp*t69*t89 + 4._dp*t426*t444 + t79*t70*(f2*t707* &
928 t66 - 2._dp*t440*t432 + 2._dp*t86*t1388 - t86*t1392)
929 t1455 = dqndrho**2
930 t1465 = t478**2
931 t1510 = d2exeindrhondrho(q, dqndrho, d2qndrhondrho)
932 t1547 = 2._dp*t887*t150 + 4._dp*t501*t505 - 4._dp*t501*t508 - 4._dp*t501 &
933 *t511 + t147*t15*t707*t149 - 2._dp*t147*t504*t507 - 2._dp &
934 *t147*t504*t510 + 2._dp*t147*t148*t1018*t716 + 2._dp*t1023 &
935 *t358*t94*t261*t435 - t147*t148*t400*t735 + 2._dp*t147 &
936 *t148*t983*t1372 - t147*t148*t404*t1395
937 t1561 = (2._dp*t77*t143*t1372) - (t77*t94*t1395) + (f12 &
938 *t1412*t95) - (4._dp*t447*t449) + (6._dp*t92*t824 &
939 *t1372) - (2._dp*t92*t306*t1395) + (-((t98*(t100* &
940 t1412*t83 + 2._dp*t100*t446*t435 + t100*t91*t1395 + 2._dp*t103 &
941 *t1372 + 2._dp*t103*t83*t1395 + 6._dp*t105*t83*t1372 + 3._dp* &
942 t105*t93*t1395)*t114) - (7._dp*t463*t465) + 0.63e2_dp/0.4e1_dp &
943 *(t109)*(t857)*(t1372) - 0.7e1_dp/0.2e1_dp*(t109) &
944 *(t326)*(t1395) - t330*d2qndrhondrho*t117*t130 - t330 &
945 *t1455*t117*t130 + (4._dp*t1202*t485) + (2._dp*t875* &
946 t1215*t484) + 0.2e1_dp*t330*t336*t342*(t472*t480 - t355 &
947 *t345*t923*t1465/0.4e1_dp + t355*t345*t356*(t1382* &
948 t71 - 2._dp*t1242*t476 + 2._dp*t933*t71*t716 - t358*t71*t735) &
949 /0.2e1_dp))*t134*t139 - (7._dp*t1263*t491) - 0.35e2_dp/0.4e1_dp &
950 *(t374)*(t956)*(t1372) - 0.7e1_dp/0.2e1_dp*(t374) &
951 *(t376)*(t1395))*e*(t143) - (6._dp*t495 &
952 *t497) + (12._dp*t142*t968*t1372) - (3._dp*t142*t383* &
953 t1395) + (t145*(t1510 + t1547*t409*t411*t418 - 2._dp*t513 &
954 *t1352*t411*t418 - t514*t1055*t1358 + t515*t1362 + t515 &
955 *t1365))
956 e_ndrho_ndrho = e_ndrho_ndrho + (-t76*t1561*clda)*sx0
957 END IF
958
959 END SUBROUTINE xwpbe_lda_calc_0
960
961! **************************************************************************************************
962!> \brief Evaluates the screened hole averaged PBE exchange functional for lda
963!> \param e_0 ...
964!> \param e_rho ...
965!> \param e_ndrho ...
966!> \param e_rho_rho ...
967!> \param e_ndrho_rho ...
968!> \param e_ndrho_ndrho ...
969!> \param rho , ndrho: density and norm of the density gradient
970!> \param ndrho ...
971!> \param sscale scaling factor to enforce Lieb-Oxford bound
972!> \param sx0 scaling factor
973!> \param order degree of the derivative that should be evaluated,
974!> if positive all the derivatives up to the given degree are evaluated,
975!> if negative only the given degree is calculated
976!> \par History
977!> 05.2007 created [Manuel Guidon]
978!> \author Manuel Guidon
979!> \note
980!> This routine evaluates the functional for omega=0 using a taylor
981!> expansion for the parameter G.
982! **************************************************************************************************
983 SUBROUTINE xwpbe_lda_calc_01(e_0, e_rho, e_ndrho, e_rho_rho, e_ndrho_rho, &
984 e_ndrho_ndrho, rho, ndrho, sscale, sx0, order)
985 REAL(kind=dp), INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_rho_rho, &
986 e_ndrho_rho, e_ndrho_ndrho
987 REAL(kind=dp), INTENT(IN) :: rho, ndrho, sscale, sx0
988 INTEGER, INTENT(IN) :: order
989
990 REAL(kind=dp) :: d2qndrhondrho, d2qrhondrho, d2qrhorho, dqndrho, dqrho, q, t1, t10, t100, &
991 t101, t1019, t103, t104, t1051, t1056, t1062, t1066, t1069, t107, t1073, t1076, t1080, &
992 t109, t1094, t1098, t11, t1101, t111, t112, t113, t114, t115, t1154, t116, t118, t1191, &
993 t12, t1205, t122, t124, t125, t126, t129, t13, t130, t131, t132, t135, t136, t139, t14, &
994 t140, t141, t142, t146, t149, t15, t150, t151, t153, t154, t156, t157, t158, t159, t16, &
995 t165, t166, t167, t168, t169, t173, t175, t18, t181, t184, t185, t186, t188, t189, t19, &
996 t190, t191, t193, t194, t197, t199, t2, t20, t202, t203, t206, t207
997 REAL(kind=dp) :: t208, t21, t211, t212, t213, t215, t216, t219, t22, t220, t224, t227, t228, &
998 t229, t231, t232, t235, t238, t24, t240, t241, t244, t247, t248, t25, t250, t251, t253, &
999 t254, t256, t257, t26, t260, t263, t266, t267, t270, t272, t273, t276, t277, t28, t280, &
1000 t283, t288, t29, t293, t294, t297, t299, t3, t300, t301, t304, t305, t307, t308, t31, &
1001 t311, t314, t315, t317, t318, t319, t32, t321, t322, t323, t325, t326, t327, t328, t329, &
1002 t33, t330, t331, t332, t333, t334, t335, t34, t340, t342, t343, t346, t347, t349, t350, &
1003 t352, t357, t36, t360, t361, t364, t366, t37, t371, t372, t375
1004 REAL(kind=dp) :: t376, t379, t380, t383, t385, t388, t389, t39, t392, t393, t395, t396, &
1005 t398, t399, t4, t40, t401, t402, t403, t408, t410, t412, t415, t418, t419, t42, t425, &
1006 t428, t430, t434, t438, t44, t441, t445, t454, t457, t458, t46, t465, t467, t47, t5, &
1007 t504, t508, t509, t515, t516, t52, t520, t53, t535, t54, t543, t552, t56, t567, t574, &
1008 t58, t59, t596, t6, t605, t61, t624, t63, t633, t640, t644, t65, t650, t656, t66, t67, &
1009 t674, t678, t68, t681, t69, t7, t70, t71, t714, t72, t73, t74, t759, t76, t766, t77, &
1010 t773, t777, t78, t79, t8, t80, t806, t81, t811, t812, t820, t828, t83, t84
1011 REAL(kind=dp) :: t847, t848, t849, t851, t852, t86, t865, t871, t874, t88, t89, t9, t902, &
1012 t906, t909, t92, t93, t94, t95, t97, t98, t989
1013
1014 IF (order >= 0) THEN
1015 t1 = ndrho**2
1016 t2 = a1*t1
1017 t3 = r2**2
1018 t4 = 0.1e1_dp/t3
1019 t5 = t2*t4
1020 t6 = pi**2
1021 t7 = r3*t6
1022 t8 = t7*rho
1023 t9 = t8**(0.1e1_dp/0.3e1_dp)
1024 t10 = t9**2
1025 t11 = 0.1e1_dp/t10
1026 t12 = rho**2
1027 t13 = 0.1e1_dp/t12
1028 t14 = t11*t13
1029 t15 = sscale**2
1030 t16 = t14*t15
1031 t18 = t1**2
1032 t19 = a2*t18
1033 t20 = t3**2
1034 t21 = 0.1e1_dp/t20
1035 t22 = t19*t21
1036 t24 = 0.1e1_dp/t9/t8
1037 t25 = t12**2
1038 t26 = 0.1e1_dp/t25
1039 t28 = t15**2
1040 t29 = t24*t26*t28
1041 t31 = t5*t16 + t22*t29
1042 t32 = f94*t31
1043 t33 = a3*t18
1044 t34 = t33*t21
1045 t36 = t18*ndrho
1046 t37 = a4*t36
1047 t39 = 0.1e1_dp/t20/r2
1048 t40 = t37*t39
1049 t42 = 0.1e1_dp/t10/t8
1050 t44 = 0.1e1_dp/t25/rho
1051 t46 = t28*sscale
1052 t47 = t42*t44*t46
1053 t52 = 0.1e1_dp/t20/t3
1054 t53 = a5*t18*t1*t52
1055 t54 = r3**2
1056 t56 = t6**2
1057 t58 = 0.1e1_dp/t54/t56
1058 t59 = t25**2
1059 t61 = t28*t15
1060 t63 = t58/t59*t61
1061 t65 = r1 + t34*t29 + t40*t47 + t53*t63
1062 t66 = 0.1e1_dp/t65
1063 t67 = t66*t1
1064 t68 = t32*t67
1065 t69 = t4*t11
1066 t70 = t13*t15
1067 t71 = 0.1e1_dp/a
1068 t72 = t70*t71
1069 t73 = t69*t72
1070 q = t68*t73
1071 t74 = rho**(0.1e1_dp/0.3e1_dp)
1072 t76 = t74*rho*f89
1073 t77 = b*f12
1074 t78 = t1*t4
1075 t79 = t78*t11
1076 t80 = t31*t66
1077 t81 = t70*t80
1078 t83 = t79*t81 + dd
1079 t84 = 0.1e1_dp/t83
1080 t86 = f2*t31
1081 t88 = f1 + t86*t66
1082 t89 = t70*t88
1083 t92 = f12*(t79*t89 + r1)
1084 t93 = t83**2
1085 t94 = 0.1e1_dp/t93
1086 t95 = c*t94
1087 t97 = g2*t1
1088 t98 = t97*t4
1089 t100 = g3*t18
1090 t101 = t100*t21
1091 t103 = g1 + t98*t16 + t101*t29
1092 t104 = t70*t103
1093 t107 = (t79*t104 + r1)*e
1094 t109 = 0.1e1_dp/t93/t83
1095 t111 = f12*a
1096 t112 = exei(q)
1097 t113 = t78*t14
1098 t114 = t15*t31
1099 t115 = t66*t84
1100 t116 = t114*t115
1101 t118 = log(t113*t116)
1102 t122 = (t77*t84 + t92*t95 + t107*t109 + t111*(t112 + t118)) &
1103 *clda
1104 e_0 = e_0 + (-t76*t122)*sx0
1105 END IF
1106 IF (order >= 1 .OR. order == -1) THEN
1107 t124 = t4*t42
1108 t125 = t2*t124
1109 t126 = t70*t7
1110 t129 = t12*rho
1111 t130 = 0.1e1_dp/t129
1112 t131 = t11*t130
1113 t132 = t131*t15
1114 t135 = t54*t56
1115 t136 = t135*t12
1116 t139 = t21/t9/t136
1117 t140 = t19*t139
1118 t141 = t26*t28
1119 t142 = t141*t7
1120 t146 = t24*t44*t28
1121 t149 = -0.2e1_dp/0.3e1_dp*t125*t126 - (2._dp*t5*t132) - 0.4e1_dp/ &
1122 0.3e1_dp*t140*t142 - (4._dp*t22*t146)
1123 t150 = f94*t149
1124 t151 = t150*t67
1125 t153 = t65**2
1126 t154 = 0.1e1_dp/t153
1127 t156 = t154*t1*t4
1128 t157 = t32*t156
1129 t158 = t15*t71
1130 t159 = t33*t139
1131 t165 = 0.1e1_dp/t10/t136
1132 t166 = t39*t165
1133 t167 = t37*t166
1134 t168 = t44*t46
1135 t169 = t168*t7
1136 t173 = 0.1e1_dp/t25/t12
1137 t175 = t42*t173*t46
1138 t181 = t58/t59/rho*t61
1139 t184 = -0.4e1_dp/0.3e1_dp*t159*t142 - (4._dp*t34*t146) - 0.5e1_dp &
1140 /0.3e1_dp*t167*t169 - (5._dp*t40*t175) - (8._dp*t53*t181)
1141 t185 = t158*t184
1142 t186 = t14*t185
1143 t188 = t67*t4
1144 t189 = t32*t188
1145 t190 = t42*t13
1146 t191 = t190*t15
1147 t193 = t71*r3*t6
1148 t194 = t191*t193
1149 t197 = t130*t15
1150 t199 = t69*t197*t71
1151 dqrho = t151*t73 - t157*t186 - 0.2e1_dp/0.3e1_dp*t189*t194 - (2._dp &
1152 *t68*t199)
1153 t202 = a1*ndrho
1154 t203 = t202*t4
1155 t206 = t1*ndrho
1156 t207 = a2*t206
1157 t208 = t207*t21
1158 t211 = 2._dp*t203*t16 + 4._dp*t208*t29
1159 t212 = f94*t211
1160 t213 = t212*t67
1161 t215 = a3*t206
1162 t216 = t215*t21
1163 t219 = a4*t18
1164 t220 = t219*t39
1165 t224 = a5*t36*t52
1166 t227 = 4._dp*t216*t29 + 5._dp*t220*t47 + 6._dp*t224*t63
1167 t228 = t158*t227
1168 t229 = t14*t228
1169 t231 = t66*ndrho
1170 t232 = t32*t231
1171 dqndrho = t213*t73 - t157*t229 + 2._dp*t232*t73
1172 t235 = t74*f89
1173 t238 = t78*t190
1174 t240 = t66*r3*t6
1175 t241 = t114*t240
1176 t244 = t197*t80
1177 t247 = t149*t66
1178 t248 = t70*t247
1179 t250 = t154*t184
1180 t251 = t114*t250
1181 t253 = -0.2e1_dp/0.3e1_dp*t238*t241 - (2._dp*t79*t244) + (t79 &
1182 *t248) - t113*t251
1183 t254 = t94*t253
1184 t256 = t15*t88
1185 t257 = t256*t7
1186 t260 = t197*t88
1187 t263 = f2*t149
1188 t266 = t263*t66 - t86*t250
1189 t267 = t70*t266
1190 t270 = f12*(-0.2e1_dp/0.3e1_dp*t238*t257 - (2._dp*t79*t260) + &
1191 (t79*t267))
1192 t272 = c*t109
1193 t273 = t272*t253
1194 t276 = t15*t103
1195 t277 = t276*t7
1196 t280 = t197*t103
1197 t283 = t97*t124
1198 t288 = t100*t139
1199 t293 = -0.2e1_dp/0.3e1_dp*t283*t126 - (2._dp*t98*t132) - 0.4e1_dp &
1200 /0.3e1_dp*t288*t142 - (4._dp*t101*t146)
1201 t294 = t70*t293
1202 t297 = (-0.2e1_dp/0.3e1_dp*t238*t277 - (2._dp*t79*t280) + (t79 &
1203 *t294))*e
1204 t299 = t93**2
1205 t300 = 0.1e1_dp/t299
1206 t301 = t300*t253
1207 t304 = dexeirho(q, dqrho)
1208 t305 = t78*t191
1209 t307 = t84*r3*t6
1210 t308 = t80*t307
1211 t311 = t78*t131
1212 t314 = t15*t149
1213 t315 = t314*t115
1214 t317 = t154*t84
1215 t318 = t317*t184
1216 t319 = t114*t318
1217 t321 = t66*t94
1218 t322 = t321*t253
1219 t323 = t114*t322
1220 t325 = -0.2e1_dp/0.3e1_dp*t305*t308 - (2._dp*t311*t116) + t113 &
1221 *t315 - t113*t319 - t113*t323
1222 t326 = 0.1e1_dp/t1
1223 t327 = t325*t326
1224 t328 = t3*t10
1225 t329 = t327*t328
1226 t330 = 0.1e1_dp/t15
1227 t331 = t12*t330
1228 t332 = 0.1e1_dp/t31
1229 t333 = t332*t65
1230 t334 = t333*t83
1231 t335 = t331*t334
1232 t340 = (-t77*t254 + t270*t95 - 2._dp*t92*t273 + t297*t109 - 3._dp &
1233 *t107*t301 + t111*(t304 + t329*t335))*clda
1234 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t235*t122 - t76*t340)*sx0
1235 t342 = ndrho*t4
1236 t343 = t342*t11
1237 t346 = t211*t66
1238 t347 = t70*t346
1239 t349 = t154*t227
1240 t350 = t114*t349
1241 t352 = 2._dp*t343*t81 + t79*t347 - t113*t350
1242 t357 = f2*t211
1243 t360 = t357*t66 - t86*t349
1244 t361 = t70*t360
1245 t364 = f12*(2._dp*t343*t89 + t79*t361)
1246 t366 = t272*t352
1247 t371 = g2*ndrho
1248 t372 = t371*t4
1249 t375 = g3*t206
1250 t376 = t375*t21
1251 t379 = 2._dp*t372*t16 + 4._dp*t376*t29
1252 t380 = t70*t379
1253 t383 = (2._dp*t343*t104 + t79*t380)*e
1254 t385 = t300*t352
1255 t388 = dexeindrho(q, dqndrho)
1256 t389 = t342*t14
1257 t392 = t15*t211
1258 t393 = t392*t115
1259 t395 = t317*t227
1260 t396 = t114*t395
1261 t398 = t321*t352
1262 t399 = t114*t398
1263 t401 = 2._dp*t389*t116 + t113*t393 - t113*t396 - t113*t399
1264 t402 = t401*t326
1265 t403 = t402*t328
1266 t408 = (-t77*t94*t352 + t364*t95 - 2._dp*t92*t366 + t383*t109 &
1267 - 3._dp*t107*t385 + t111*(t388 + t403*t335))*clda
1268 e_ndrho = e_ndrho + (-t76*t408)*sx0
1269 END IF
1270 IF (order >= 2 .OR. order == -2) THEN
1271 t410 = t4*t165
1272 t412 = t70*t135
1273 t415 = t197*t7
1274 t418 = t11*t26
1275 t419 = t418*t15
1276 t425 = t54*r3*t56*t6*t129
1277 t428 = t21/t9/t425
1278 t430 = t141*t135
1279 t434 = t44*t28*t7
1280 t438 = t24*t173*t28
1281 t441 = 0.10e2_dp/0.9e1_dp*t2*t410*t412 + 0.8e1_dp/0.3e1_dp*t125*t415 &
1282 + (6._dp*t5*t419) + 0.28e2_dp/0.9e1_dp*t19*t428*t430 + 0.32e2_dp &
1283 /0.3e1_dp*t140*t434 + (20._dp*t22*t438)
1284 t445 = t150*t156
1285 t454 = 0.1e1_dp/t153/t65
1286 t457 = t32*t454*t1*t4
1287 t458 = t184**2
1288 t465 = t32*t154*t78*t42
1289 t467 = t184*r3*t6
1290 t504 = 0.28e2_dp/0.9e1_dp*t33*t428*t430 + 0.32e2_dp/0.3e1_dp*t159* &
1291 t434 + (20._dp*t34*t438) + 0.40e2_dp/0.9e1_dp*t37*t39/t10/ &
1292 t425*t168*t135 + 0.50e2_dp/0.3e1_dp*t167*t173*t46*t7 + 0.30e2_dp &
1293 *t40*t42/t25/t129*t46 + (72._dp*t53*t58/t59/ &
1294 t12*t61)
1295 t508 = t165*t13
1296 t509 = t508*t15
1297 t515 = t42*t130
1298 t516 = t515*t15
1299 t520 = t26*t15
1300 d2qrhorho = f94*t441*t67*t73 - (2._dp*t445*t186) - 0.4e1_dp/0.3e1_dp &
1301 *t150*t188*t194 - (4._dp*t151*t199) + (2._dp*t457*t14 &
1302 *t158*t458) + 0.4e1_dp/0.3e1_dp*t465*t72*t467 + (4._dp*t157 &
1303 *t131*t185) - (t157*t14*t158*t504) + 0.10e2_dp/0.9e1_dp &
1304 *t189*t509*t71*t54*t56 + 0.8e1_dp/0.3e1_dp*t189*t516* &
1305 t193 + 0.6e1_dp*t68*t69*t520*t71
1306 t535 = -0.4e1_dp/0.3e1_dp*t202*t124*t126 - (4._dp*t203*t132) &
1307 - 0.16e2_dp/0.3e1_dp*t207*t139*t142 - (16._dp*t208*t146)
1308 t543 = t212*t156
1309 t552 = t32*t154*ndrho*t4
1310 t567 = -0.16e2_dp/0.3e1_dp*t215*t139*t142 - (16._dp*t216*t146) &
1311 - 0.25e2_dp/0.3e1_dp*t219*t166*t169 - (25._dp*t220*t175) - &
1312 (48._dp*t224*t181)
1313 t574 = t7*t227
1314 d2qrhondrho = (f94*t535*t67*t73) - t445*t229 + (2._dp*t150* &
1315 t231*t73) - (t543*t186) + (2._dp*t457*t16*t71*t184 &
1316 *t227) - (2._dp*t552*t186) - (t157*t14*t158*t567) &
1317 - 0.2e1_dp/0.3e1_dp*t212*t188*t194 + 0.2e1_dp/0.3e1_dp*t465*t72 &
1318 *t574 - 0.4e1_dp/0.3e1_dp*t32*(t231)*t4*t194 - (2._dp*t213 &
1319 *t199) + (2._dp*t157*t131*t228) - (4._dp*t232*t199)
1320 t596 = 2._dp*a1*t4*t16 + 12._dp*a2*t1*t21*t29
1321 t605 = t227**2
1322 t624 = 12._dp*a3*t1*t21*t29 + 20._dp*a4*t206*t39*t47 + 30._dp* &
1323 a5*t18*t52*t63
1324 d2qndrhondrho = f94*t596*t67*t73 - 2._dp*t543*t229 + 4._dp*t212*t231* &
1325 t73 + 2._dp*t457*t14*t158*t605 - 4._dp*t552*t229 - t157*t14 &
1326 *t158*t624 + 2._dp*t32*t66*t4*t14*t158
1327 t633 = t74**2
1328 t640 = t253**2
1329 t644 = t78*t508
1330 t650 = t78*t515
1331 t656 = t31*t154
1332 t674 = t454*t458
1333 t678 = t154*t504
1334 t681 = 0.10e2_dp/0.9e1_dp*t644*t114*t66*t54*t56 + 0.8e1_dp/0.3e1_dp &
1335 *t650*t241 - 0.4e1_dp/0.3e1_dp*t238*t314*t240 + 0.4e1_dp/0.3e1_dp &
1336 *t305*t656*t467 + (6._dp*t79*t520*t80) - (4._dp*t79 &
1337 *t197*t247) + (4._dp*t311*t251) + (t79)*t70*t441 &
1338 *t66 - 0.2e1_dp*t113*t314*t250 + 0.2e1_dp*t113*t114*t674 - &
1339 t113*t114*t678
1340 t714 = c*t300
1341 t759 = 0.1e1_dp/t299/t83
1342 t766 = d2exeirhorho(q, dqrho, d2qrhorho)
1343 t773 = t656*t84
1344 t777 = t80*t94
1345 t806 = t454*t84
1346 t811 = t78*t16
1347 t812 = t94*t184
1348 t820 = t66*t109
1349 t828 = 0.8e1_dp/0.3e1_dp*t78*t516*t308 - 0.4e1_dp/0.3e1_dp*t305*t247 &
1350 *t307 + 0.4e1_dp/0.3e1_dp*t305*t773*t467 + 0.4e1_dp/0.3e1_dp* &
1351 t305*t777*t7*t253 + 0.10e2_dp/0.9e1_dp*t78*t509*t80*t84 &
1352 *t54*t56 + 0.6e1_dp*t78*t418*t116 - (4._dp*t311*t315) + &
1353 (4._dp*t311*t319) + (4._dp*t311*t323) + (t113*t15* &
1354 t441*t115) - (2._dp*t113*t314*t318) - (2._dp*t113*t314 &
1355 *t322) + (2._dp*t113*t114*t806*t458) + 0.2e1_dp*t811*t656 &
1356 *t812*t253 - (t113*t114*t317*t504) + (2._dp*t113 &
1357 *t114*t820*t640) - (t113*t114*t321*t681)
1358 t847 = t328*t12
1359 t848 = t327*t847
1360 t849 = t31**2
1361 t851 = t330/t849
1362 t852 = t65*t83
1363 t865 = (2._dp*t77*t109*t640) - (t77*t94*t681) + f12* &
1364 (0.10e2_dp/0.9e1_dp*t644*t256*t135 + 0.8e1_dp/0.3e1_dp*t650*t257 &
1365 - 0.4e1_dp/0.3e1_dp*t238*t15*t266*t7 + (6._dp*t79*t520* &
1366 t88) - 0.4e1_dp*(t79)*t197*t266 + (t79*t70*(f2*t441 &
1367 *t66 - 2._dp*t263*t250 + 2._dp*t86*t674 - t86*t678)))*t95 &
1368 - (4._dp*t270*t273) + (6._dp*t92*t714*t640) - (2._dp* &
1369 t92*t272*t681) + (0.10e2_dp/0.9e1_dp*t644*t276*t135 + 0.8e1_dp &
1370 /0.3e1_dp*t650*t277 - 0.4e1_dp/0.3e1_dp*t238*t15*t293*t7 + (6._dp &
1371 *t79*t520*t103) - 0.4e1_dp*(t79)*t197*t293 + (t79) &
1372 *(t70)*(0.10e2_dp/0.9e1_dp*t97*t410*t412 + 0.8e1_dp/ &
1373 0.3e1_dp*t283*t415 + (6._dp*t98*t419) + 0.28e2_dp/0.9e1_dp*t100 &
1374 *t428*t430 + 0.32e2_dp/0.3e1_dp*t288*t434 + (20._dp*t101* &
1375 t438)))*e*(t109) - (6._dp*t297*t301) + (12._dp*t107 &
1376 *t759*t640) - (3._dp*t107*t300*t681) + t111*(t766 + t828 &
1377 *t326*t328*t335 + 0.2e1_dp/0.3e1_dp*t327*t3/t9*t12*t330 &
1378 *t332*t65*t83*r3*t6 + 0.2e1_dp*t329*rho*t330*t334 &
1379 - t848*t851*t852*t149 + t329*t331*t332*t184*t83 + t329 &
1380 *t331*t333*t253)
1381 e_rho_rho = e_rho_rho + (-0.4e1_dp/0.9e1_dp/t633*f89*t122 - 0.8e1_dp/0.3e1_dp*t235*t340 &
1382 - t76*t865*clda)*sx0
1383 t871 = t109*t253*t352
1384 t874 = t342*t190
1385 t902 = t454*t184*t227
1386 t906 = t154*t567
1387 t909 = -0.4e1_dp/0.3e1_dp*t874*t241 - 0.2e1_dp/0.3e1_dp*t238*t392* &
1388 t240 + 0.2e1_dp/0.3e1_dp*t305*t656*t574 - (4._dp*t343*t244) &
1389 - (2._dp*t79*t197*t346) + (2._dp*t311*t350) + (2._dp* &
1390 t343*t248) + (t79*t70*t535*t66) - t113*t314*t349 - &
1391 (2._dp*t389*t251) - t113*t392*t250 + 0.2e1_dp*t113*t114 &
1392 *t902 - t113*t114*t906
1393 t989 = d2exeirhondrho(q, dqrho, dqndrho, d2qrhondrho)
1394 t1019 = -0.4e1_dp/0.3e1_dp*t342*t191*t308 - 0.2e1_dp/0.3e1_dp*t305 &
1395 *t346*t307 + 0.2e1_dp/0.3e1_dp*t305*t773*t574 + 0.2e1_dp/0.3e1_dp &
1396 *t305*t777*t7*t352 - 0.4e1_dp*t342*t131*t116 - (2._dp* &
1397 t311*t393) + (2._dp*t311*t396) + (2._dp*t311*t399) + (2._dp &
1398 *t389*t315) + t113*t15*t535*t115 - t113*t314*t395
1399 t1051 = -t113*t314*t398 - 2._dp*t389*t319 - t113*t392*t318 &
1400 + 2._dp*t811*t31*t454*t84*t184*t227 + t811*t656*t812* &
1401 t352 - t113*t114*t317*t567 - 2._dp*t389*t323 - t113*t392 &
1402 *t322 + t811*t656*t254*t227 + 2._dp*t811*t80*t871 - t113 &
1403 *t114*t321*t909
1404 t1056 = 0.1e1_dp/t206
1405 t1062 = t851*t852*t211
1406 t1066 = t331*t332*t227*t83
1407 t1069 = t331*t333*t352
1408 t1073 = (2._dp*t77*t871) - (t77*t94*t909) + f12*(-0.4e1_dp &
1409 /0.3e1_dp*t874*t257 - 0.2e1_dp/0.3e1_dp*t238*t15*t360*t7 &
1410 - (4._dp*t343*t260) - 0.2e1_dp*t79*t197*t360 + (2._dp*t343 &
1411 *t267) + t79*t70*(f2*t535*t66 - t263*t349 - t357 &
1412 *t250 + 2._dp*t86*t902 - t86*t906))*t95 - (2._dp*t270*t366) &
1413 - (2._dp*t364*t273) + (6._dp*t92*c*t301*t352) - (2._dp &
1414 *t92*t272*t909) + (-0.4e1_dp/0.3e1_dp*t874*t277 - 0.2e1_dp/ &
1415 0.3e1_dp*t238*t15*t379*t7 - (4._dp*t343*t280) - 0.2e1_dp* &
1416 t79*t197*t379 + (2._dp*t343*t294) + t79*t70*(-0.4e1_dp/ &
1417 0.3e1_dp*t371*t124*t126 - (4._dp*t372*t132) - 0.16e2_dp/0.3e1_dp &
1418 *t375*t139*t142 - (16._dp*t376*t146)))*e*t109 - (3._dp &
1419 *t297*t385) - (3._dp*t383*t301) + (12._dp*t107*t759 &
1420 *t253*t352) - (3._dp*t107*t300*t909) + (t111*(t989 &
1421 + (t1019 + t1051)*t326*t328*t335 - 2._dp*t325*t1056*t328 &
1422 *t335 - t848*t1062 + t329*t1066 + t329*t1069))
1423 e_ndrho_rho = e_ndrho_rho + (-0.4e1_dp/0.3e1_dp*t235*t408 - t76*t1073*clda)*sx0
1424 t1076 = t352**2
1425 t1080 = t69*t13
1426 t1094 = t454*t605
1427 t1098 = t154*t624
1428 t1101 = 2._dp*t1080*t114*t66 + 4._dp*t343*t347 - 4._dp*t389*t350 &
1429 + t79*t70*t596*t66 - 2._dp*t113*t392*t349 + 2._dp*t113*t114 &
1430 *t1094 - t113*t114*t1098
1431 t1154 = d2exeindrhondrho(q, dqndrho, d2qndrhondrho)
1432 t1191 = 2._dp*t1080*t116 + 4._dp*t389*t393 - 4._dp*t389*t396 - 4._dp* &
1433 t389*t399 + t113*t15*t596*t115 - 2._dp*t113*t392*t395 - &
1434 2._dp*t113*t392*t398 + 2._dp*t113*t114*t806*t605 + 2._dp*t811 &
1435 *t656*t94*t227*t352 - t113*t114*t317*t624 + 2._dp*t113 &
1436 *t114*t820*t1076 - t113*t114*t321*t1101
1437 t1205 = 2._dp*t77*t109*t1076 - t77*t94*t1101 + f12*(2._dp*t69 &
1438 *t89 + 4._dp*t343*t361 + t79*t70*(f2*t596*t66 - 2._dp*t357 &
1439 *t349 + 2._dp*t86*t1094 - t86*t1098))*t95 - 4._dp*t364*t366 &
1440 + 6._dp*t92*t714*t1076 - 2._dp*t92*t272*t1101 + (2._dp*t69*t104 &
1441 + 4._dp*t343*t380 + t79*t70*(2._dp*g2*t4*t16 + 12._dp*g3*t1 &
1442 *t21*t29))*e*t109 - 6._dp*t383*t385 + 12._dp*t107*t759* &
1443 t1076 - 3._dp*t107*t300*t1101 + t111*(t1154 + t1191*t326*t328 &
1444 *t335 - 2._dp*t401*t1056*t328*t335 - t402*t847*t1062 &
1445 + t403*t1066 + t403*t1069)
1446 e_ndrho_ndrho = e_ndrho_ndrho + (-t76*t1205*clda)*sx0
1447 END IF
1448
1449 END SUBROUTINE xwpbe_lda_calc_01
1450
1451! **************************************************************************************************
1452!> \brief Evaluates the screened hole averaged PBE exchange functional for lda.
1453!> \param e_0 ...
1454!> \param e_rho ...
1455!> \param e_ndrho ...
1456!> \param e_rho_rho ...
1457!> \param e_ndrho_rho ...
1458!> \param e_ndrho_ndrho ...
1459!> \param rho , ndrho: density and norm of the density gradient
1460!> \param ndrho ...
1461!> \param omega scaling factor
1462!> \param sscale scaling factor to enforce Lieb-Oxford bound
1463!> \param sx scaling factor
1464!> \param order degree of the derivative that should be evaluated,
1465!> if positive all the derivatives up to the given degree are evaluated,
1466!> if negative only the given degree is calculated
1467!> \par History
1468!> 05.2007 created [Manuel Guidon]
1469!> \author Manuel Guidon
1470!> \note
1471!> This routine evaluates the exact functional for omega!=0.
1472! **************************************************************************************************
1473 SUBROUTINE xwpbe_lda_calc_1(e_0, e_rho, e_ndrho, e_rho_rho, e_ndrho_rho, &
1474 e_ndrho_ndrho, rho, ndrho, omega, sscale, sx, order)
1475 REAL(kind=dp), INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_rho_rho, &
1476 e_ndrho_rho, e_ndrho_ndrho
1477 REAL(kind=dp), INTENT(IN) :: rho, ndrho, omega, sscale, sx
1478 INTEGER, INTENT(IN) :: order
1479
1480 REAL(kind=dp) :: d2qndrhondrho, d2qrhondrho, d2qrhorho, dqndrho, dqrho, q, t1, t10, t1001, &
1481 t1009, t1011, t102, t1024, t1035, t104, t105, t1052, t1066, t1068, t1069, t1071, t1072, &
1482 t1077, t1078, t1079, t108, t1081, t1082, t1085, t1086, t1087, t109, t1090, t1091, t1094, &
1483 t1097, t1098, t11, t110, t1100, t111, t1113, t1115, t1119, t1123, t1126, t1127, t1129, &
1484 t113, t1132, t1134, t1135, t1136, t1139, t115, t116, t1168, t1169, t117, t1171, t1173, &
1485 t1176, t1178, t118, t1181, t1185, t119, t12, t120, t1208, t1209, t121, t1214, t1220, &
1486 t123, t1236, t1237, t124, t1240, t1242, t1243, t125, t1257, t1258
1487 REAL(kind=dp) :: t126, t1264, t1265, t127, t128, t1281, t1282, t1285, t1287, t129, t1294, &
1488 t1297, t13, t1301, t1304, t1305, t1306, t1309, t131, t1310, t1317, t1318, t132, t1324, &
1489 t1325, t1326, t133, t1355, t136, t1379, t1381, t1382, t1392, t14, t140, t1402, t1409, &
1490 t141, t142, t1433, t1437, t144, t1442, t1445, t145, t1456, t1457, t147, t1473, t1478, &
1491 t1479, t148, t149, t1491, t1492, t1498, t15, t150, t1501, t151, t152, t1520, t1524, t153, &
1492 t1531, t1535, t154, t1543, t1546, t1547, t1548, t155, t1551, t1555, t1559, t156, t1562, &
1493 t1563, t1564, t1568, t157, t1572, t1573, t1579, t158, t1580, t159
1494 REAL(kind=dp) :: t1592, t1599, t16, t1602, t1609, t1615, t162, t1624, t1625, t163, t1633, &
1495 t1649, t1658, t166, t1663, t167, t1677, t168, t1680, t1681, t1682, t1686, t169, t1693, &
1496 t1697, t17, t170, t1709, t1710, t1714, t1722, t1723, t1726, t1729, t1731, t174, t1740, &
1497 t176, t1767, t1768, t177, t1770, t1781, t1786, t1791, t18, t180, t1802, t1804, t1805, &
1498 t181, t1816, t1827, t1835, t1839, t1846, t185, t1853, t1854, t186, t1860, t1868, t1880, &
1499 t1881, t1885, t189, t1898, t19, t190, t1906, t1907, t192, t1923, t193, t1932, t1938, &
1500 t194, t195, t1951, t1956, t1961, t1967, t197, t1977, t198, t1983, t1984
1501 REAL(kind=dp) :: t1988, t199, t1995, t2, t200, t202, t2028, t205, t2059, t2072, t2073, t209, &
1502 t2099, t21, t210, t2108, t213, t214, t2142, t2144, t2150, t2173, t2184, t219, t2197, t22, &
1503 t221, t222, t2224, t223, t224, t2240, t2245, t2254, t2258, t2267, t2269, t227, t2271, &
1504 t2274, t228, t2280, t2282, t2285, t2291, t2297, t23, t2305, t2311, t2316, t2323, t2329, &
1505 t233, t2348, t2363, t237, t2371, t2379, t239, t24, t2401, t2405, t241, t2410, t243, &
1506 t2437, t2442, t2449, t2452, t2455, t2457, t246, t247, t2473, t2484, t2499, t25, t250, &
1507 t251, t2512, t252, t2529, t253, t2543, t255, t256, t257, t2573, t258
1508 REAL(kind=dp) :: t263, t264, t265, t267, t2688, t27, t270, t2707, t271, t2715, t273, t275, &
1509 t276, t2764, t2774, t28, t280, t2808, t2810, t2838, t284, t2841, t2844, t2846, t285, &
1510 t286, t2875, t288, t2880, t2884, t289, t29, t290, t2927, t293, t294, t295, t2963, t2971, &
1511 t2975, t2979, t298, t2994, t3, t3001, t303, t3033, t305, t307, t31, t310, t311, t312, &
1512 t313, t3139, t315, t316, t3167, t318, t319, t32, t321, t326, t329, t330, t332, t333, &
1513 t335, t336, t338, t339, t34, t340, t342, t343, t345, t346, t347, t348, t349, t35, t351, &
1514 t352, t353, t354, t357, t358, t36, t361, t362, t363, t364, t368, t371
1515 REAL(kind=dp) :: t372, t373, t374, t375, t376, t377, t378, t38, t383, t384, t385, t386, t39, &
1516 t390, t392, t398, t4, t401, t402, t403, t404, t406, t409, t41, t411, t412, t415, t416, &
1517 t419, t42, t420, t421, t424, t425, t426, t428, t429, t432, t433, t437, t44, t440, t441, &
1518 t442, t444, t446, t449, t452, t453, t454, t457, t46, t461, t463, t465, t468, t469, t472, &
1519 t475, t478, t479, t48, t481, t486, t49, t493, t495, t498, t499, t5, t502, t503, t504, &
1520 t507, t508, t509, t510, t511, t513, t514, t515, t517, t518, t522, t525, t529, t530, t531, &
1521 t532, t533, t534, t535, t537, t538, t539, t54, t540, t542, t55
1522 REAL(kind=dp) :: t550, t551, t552, t553, t554, t556, t557, t558, t56, t562, t563, t567, &
1523 t569, t571, t572, t575, t576, t577, t578, t58, t581, t582, t583, t587, t588, t589, t592, &
1524 t596, t597, t6, t60, t602, t603, t608, t61, t613, t617, t620, t621, t624, t626, t629, &
1525 t63, t631, t634, t638, t639, t644, t645, t65, t653, t655, t656, t657, t658, t659, t663, &
1526 t666, t669, t67, t673, t679, t68, t681, t685, t689, t69, t690, t691, t697, t698, t7, t70, &
1527 t701, t71, t711, t713, t717, t718, t72, t721, t728, t73, t735, t736, t739, t74, t740, &
1528 t746, t747, t748, t75, t752, t753, t754, t755, t759, t761, t763, t765
1529 REAL(kind=dp) :: t769, t77, t771, t772, t779, t78, t780, t781, t783, t784, t787, t791, t792, &
1530 t799, t8, t80, t800, t801, t803, t804, t808, t81, t810, t812, t815, t816, t817, t82, &
1531 t820, t823, t826, t83, t832, t834, t836, t84, t842, t845, t846, t848, t849, t85, t851, &
1532 t865, t867, t87, t870, t871, t873, t874, t876, t877, t88, t880, t884, t885, t888, t889, &
1533 t891, t892, t893, t897, t898, t9, t90, t902, t904, t907, t908, t909, t91, t910, t916, &
1534 t918, t919, t92, t93, t930, t932, t933, t937, t94, t942, t945, t95, t951, t954, t958, &
1535 t96, t962, t965, t968, t97, t971, t972, t979, t982, t988, t99
1536
1537 IF (order >= 0) THEN
1538 t1 = ndrho**2
1539 t2 = r2**2
1540 t3 = 0.1e1_dp/t2
1541 t4 = t1*t3
1542 t5 = pi**2
1543 t6 = r3*t5
1544 t7 = t6*rho
1545 t8 = t7**(0.1e1_dp/0.3e1_dp)
1546 t9 = t8**2
1547 t10 = 0.1e1_dp/t9
1548 t11 = t4*t10
1549 t12 = rho**2
1550 t13 = 0.1e1_dp/t12
1551 t14 = sscale**2
1552 t15 = t13*t14
1553 t16 = a1*t1
1554 t17 = t16*t3
1555 t18 = t10*t13
1556 t19 = t18*t14
1557 t21 = t1**2
1558 t22 = a2*t21
1559 t23 = t2**2
1560 t24 = 0.1e1_dp/t23
1561 t25 = t22*t24
1562 t27 = 0.1e1_dp/t8/t7
1563 t28 = t12**2
1564 t29 = 0.1e1_dp/t28
1565 t31 = t14**2
1566 t32 = t27*t29*t31
1567 t34 = t17*t19 + t25*t32
1568 t35 = a3*t21
1569 t36 = t35*t24
1570 t38 = t21*ndrho
1571 t39 = a4*t38
1572 t41 = 0.1e1_dp/t23/r2
1573 t42 = t39*t41
1574 t44 = 0.1e1_dp/t9/t7
1575 t46 = 0.1e1_dp/t28/rho
1576 t48 = t31*sscale
1577 t49 = t44*t46*t48
1578 t54 = 0.1e1_dp/t23/t2
1579 t55 = a5*t21*t1*t54
1580 t56 = r3**2
1581 t58 = t5**2
1582 t60 = 0.1e1_dp/t56/t58
1583 t61 = t28**2
1584 t63 = t31*t14
1585 t65 = t60/t61*t63
1586 t67 = r1 + t36*t32 + t42*t49 + t55*t65
1587 t68 = 0.1e1_dp/t67
1588 t69 = t34*t68
1589 t70 = t15*t69
1590 t71 = t11*t70
1591 t72 = omega**2
1592 t73 = beta*t72
1593 t74 = t73*t10
1594 t75 = t71 + t74
1595 t77 = 0.1e1_dp/a
1596 q = f94*t75*t77
1597 t78 = rho**(0.1e1_dp/0.3e1_dp)
1598 t80 = t78*rho*f89
1599 t81 = b*f12
1600 t82 = t71 + dd
1601 t83 = 0.1e1_dp/t82
1602 t84 = t81*t83
1603 t85 = f2*t34
1604 t87 = f1 + t85*t68
1605 t88 = t15*t87
1606 t90 = t11*t88 + r1
1607 t91 = f12*t90
1608 t92 = t82**2
1609 t93 = 0.1e1_dp/t92
1610 t94 = c*t93
1611 t95 = t91*t94
1612 t96 = f34*pi
1613 t97 = rootpi
1614 t99 = r6*c
1615 t102 = r4*b
1616 t104 = r8*a
1617 t105 = t92*t82
1618 t108 = t97*(r15*e + t99*t90*t82 + t102*t92 + t104*t105)
1619 t109 = 0.1e1_dp/r16
1620 t110 = sqrt(t82)
1621 t111 = t110*t105
1622 t113 = t109/t111
1623 t115 = sqrt(a)
1624 t116 = f94*t34
1625 t117 = t68*t1
1626 t118 = t116*t117
1627 t119 = t3*t10
1628 t120 = t15*t77
1629 t121 = t119*t120
1630 t123 = exp(t118*t121)
1631 t124 = t115*t123
1632 t125 = f32*ndrho
1633 t126 = 0.1e1_dp/r2
1634 t127 = t125*t126
1635 t128 = 0.1e1_dp/t8
1636 t129 = 0.1e1_dp/rho
1637 t131 = t69*t77
1638 t132 = sqrt(t131)
1639 t133 = sscale*t132
1640 t136 = erfc(t127*t128*t129*t133)
1641 t140 = 0.1e1_dp/f1516
1642 t141 = (t96 + t108*t113 - t96*t124*t136)*t140
1643 t142 = 0.1e1_dp/t97
1644 t144 = 0.1e1_dp/e
1645 t145 = t142*t111*t144
1646 t147 = -t141*t145 + r1
1647 t148 = t147*e
1648 t149 = 0.1e1_dp/t105
1649 t150 = t148*t149
1650 t151 = f158*e
1651 t152 = t147*t83
1652 t153 = t72*t10
1653 t154 = t71 + dd + t153
1654 t155 = t154**2
1655 t156 = t155**2
1656 t157 = t156*t154
1657 t158 = sqrt(t157)
1658 t159 = 0.1e1_dp/t158
1659 t162 = sqrt(t154)
1660 t163 = 0.1e1_dp/t162
1661 t166 = f68*c
1662 t167 = t90*t83
1663 t168 = t155*t154
1664 t169 = sqrt(t168)
1665 t170 = 0.1e1_dp/t169
1666 t174 = (-t151*t152*t159 - t81*t83*t163 - t166*t167*t170) &
1667 *omega
1668 t176 = f52*e
1669 t177 = t147*t93
1670 t180 = f12*c
1671 t181 = t90*t93
1672 t185 = t72*omega
1673 t186 = (-t176*t177*t159 - t180*t181*t170)*t185
1674 t189 = 0.1e1_dp/r3/t5
1675 t190 = t189*t129
1676 t192 = t72**2
1677 t193 = t192*omega
1678 t194 = t159*t193
1679 t195 = t194*t44
1680 t197 = f12*a
1681 t198 = exei(q)
1682 t199 = t71 + dd + t74
1683 t200 = 0.1e1_dp/t199
1684 t202 = log(t75*t200)
1685 t205 = sqrt(t199)
1686 t209 = t115*f34
1687 t210 = exer(q)
1688 t213 = (t197*t97/t205 - t209*t210)*alpha1
1689 t214 = omega*t128
1690 t219 = (t197*t200 - f98*t198)*alpha2
1691 t221 = a*f14
1692 t222 = t199**2
1693 t223 = t222*t199
1694 t224 = sqrt(t223)
1695 t227 = sqrt(t75)
1696 t228 = 0.1e1_dp/t227
1697 t233 = 0.1e1_dp/t115
1698 t237 = (t97*(t221/t224 - f98*t228) + f2716*t210*t233)*alpha3 &
1699 *t185
1700 t239 = 0.1e1_dp/t75
1701 t241 = 0.1e1_dp/t222
1702 t243 = f8132*t77
1703 t246 = (-f98*t239 + t197*t241 + t243*t198)*alpha4
1704 t247 = t192*t27
1705 t250 = t75**2
1706 t251 = t250*t75
1707 t252 = sqrt(t251)
1708 t253 = 0.1e1_dp/t252
1709 t255 = f38*a
1710 t256 = t222**2
1711 t257 = t256*t199
1712 t258 = sqrt(t257)
1713 t263 = a**2
1714 t264 = t263*a
1715 t265 = sqrt(t264)
1716 t267 = f24364/t265
1717 t270 = (t97*(t243*t228 - f916*t253 + t255/t258) - t267*t210) &
1718 *alpha5
1719 t271 = t193*t44
1720 t273 = 0.1e1_dp/t223
1721 t275 = 0.1e1_dp/t250
1722 t276 = f98*t275
1723 t280 = f729128/t263
1724 t284 = t192*t72
1725 t285 = (a*t273 - t276 + t243*r1*t239 - t280*t198)*alpha6 &
1726 *t284
1727 t286 = t60*t13
1728 t288 = f1516*a
1729 t289 = t256*t223
1730 t290 = sqrt(t289)
1731 t293 = t250**2
1732 t294 = t293*t75
1733 t295 = sqrt(t294)
1734 t298 = f8164*t77
1735 t303 = t263**2
1736 t305 = sqrt(t303*a)
1737 t307 = f2187256/t305
1738 t310 = (t97*(t288/t290 - f2732/t295 + t298*t253 - t280*t228) &
1739 + t307*t210)*alpha7
1740 t311 = t192*t185
1741 t312 = t56*t58
1742 t313 = t312*t12
1743 t315 = 0.1e1_dp/t8/t313
1744 t316 = t311*t315
1745 t318 = r3*a
1746 t319 = 0.1e1_dp/t256
1747 t321 = 0.1e1_dp/t251
1748 t326 = f6561512/t264
1749 t329 = (t318*t319 - f94*t321 + t243*t275 - t280*t239 + t326 &
1750 *t198)*alpha8
1751 t330 = t192**2
1752 t332 = 0.1e1_dp/t9/t313
1753 t333 = t330*t332
1754 t335 = t84 + t95 + t150 + t174*t128 + t186*t190 - t150*t195 + &
1755 t197*(t198 + t202) + t213*t214 + t219*t153 + t237*t190 + &
1756 t246*t247 + t270*t271 + t285*t286 + t310*t316 + t329*t333
1757 t336 = t335*clda
1758 e_0 = e_0 + (-t80*t336)*sx
1759 END IF
1760 IF (order >= 1 .OR. order == -1) THEN
1761 t338 = t44*t13
1762 t339 = t4*t338
1763 t340 = t14*t34
1764 t342 = t68*r3*t5
1765 t343 = t340*t342
1766 t345 = 0.2e1_dp/0.3e1_dp*t339*t343
1767 t346 = t12*rho
1768 t347 = 0.1e1_dp/t346
1769 t348 = t347*t14
1770 t349 = t348*t69
1771 t351 = 2._dp*t11*t349
1772 t352 = t3*t44
1773 t353 = t16*t352
1774 t354 = t15*t6
1775 t357 = t10*t347
1776 t358 = t357*t14
1777 t361 = t24*t315
1778 t362 = t22*t361
1779 t363 = t29*t31
1780 t364 = t363*t6
1781 t368 = t27*t46*t31
1782 t371 = -0.2e1_dp/0.3e1_dp*t353*t354 - (2._dp*t17*t358) - 0.4e1_dp &
1783 /0.3e1_dp*t362*t364 - (4._dp*t25*t368)
1784 t372 = t371*t68
1785 t373 = t15*t372
1786 t374 = t11*t373
1787 t375 = t4*t18
1788 t376 = t67**2
1789 t377 = 0.1e1_dp/t376
1790 t378 = t35*t361
1791 t383 = t41*t332
1792 t384 = t39*t383
1793 t385 = t46*t48
1794 t386 = t385*t6
1795 t390 = 0.1e1_dp/t28/t12
1796 t392 = t44*t390*t48
1797 t398 = t60/t61/rho*t63
1798 t401 = -0.4e1_dp/0.3e1_dp*t378*t364 - (4._dp*t36*t368) - 0.5e1_dp &
1799 /0.3e1_dp*t384*t386 - (5._dp*t42*t392) - (8._dp*t55*t398)
1800 t402 = t377*t401
1801 t403 = t340*t402
1802 t404 = t375*t403
1803 t406 = t44*r3*t5
1804 t409 = -t345 - t351 + t374 - t404 - 0.2e1_dp/0.3e1_dp*t73*t406
1805 dqrho = f94*t409*t77
1806 t411 = ndrho*t3
1807 t412 = t411*t10
1808 t415 = a1*ndrho
1809 t416 = t415*t3
1810 t419 = t1*ndrho
1811 t420 = a2*t419
1812 t421 = t420*t24
1813 t424 = 2._dp*t416*t19 + 4._dp*t421*t32
1814 t425 = t424*t68
1815 t426 = t15*t425
1816 t428 = a3*t419
1817 t429 = t428*t24
1818 t432 = a4*t21
1819 t433 = t432*t41
1820 t437 = a5*t38*t54
1821 t440 = 4._dp*t429*t32 + 5._dp*t433*t49 + 6._dp*t437*t65
1822 t441 = t377*t440
1823 t442 = t340*t441
1824 t444 = 2._dp*t412*t70 + t11*t426 - t375*t442
1825 dqndrho = f94*t444*t77
1826 t446 = t78*f89
1827 t449 = t60*t347
1828 t452 = c*t149
1829 t453 = -t345 - t351 + t374 - t404
1830 t454 = t452*t453
1831 t457 = t329*t330
1832 t461 = t56*r3*t58*t5*t346
1833 t463 = 0.1e1_dp/t9/t461
1834 t465 = t463*r3*t5
1835 t468 = t14*t87
1836 t469 = t468*t6
1837 t472 = t348*t87
1838 t475 = f2*t371
1839 t478 = t475*t68 - t85*t402
1840 t479 = t15*t478
1841 t481 = -0.2e1_dp/0.3e1_dp*t339*t469 - (2._dp*t11*t472) + (t11 &
1842 *t479)
1843 t486 = t82*t453
1844 t493 = t97*(t99*t481*t82 + t99*t90*t453 + 2._dp*t102*t486 &
1845 + 3._dp*t104*t92*t453)
1846 t495 = t92**2
1847 t498 = t109/t110/t495
1848 t499 = t498*t453
1849 t502 = t96*t115
1850 t503 = f94*t371
1851 t504 = t503*t117
1852 t507 = t377*t1*t3
1853 t508 = t116*t507
1854 t509 = t14*t77
1855 t510 = t509*t401
1856 t511 = t18*t510
1857 t513 = t117*t3
1858 t514 = t116*t513
1859 t515 = t338*t14
1860 t517 = t77*r3*t5
1861 t518 = t515*t517
1862 t522 = t119*t348*t77
1863 t525 = t504*t121 - t508*t511 - 0.2e1_dp/0.3e1_dp*t514*t518 - (2._dp &
1864 *t118*t522)
1865 t529 = rootpi
1866 t530 = 0.1e1_dp/t529
1867 t531 = t123*t530
1868 t532 = f32**2
1869 t533 = t532*t1
1870 t534 = t533*t119
1871 t535 = t15*t131
1872 t537 = exp(-t534*t535)
1873 t538 = t126*t27
1874 t539 = t125*t538
1875 t540 = t129*sscale
1876 t542 = t132*r3*t5
1877 t550 = t125*t126*t128
1878 t551 = 0.1e1_dp/t132
1879 t552 = t372*t77
1880 t553 = t34*t377
1881 t554 = t77*t401
1882 t556 = t552 - t553*t554
1883 t557 = t551*t556
1884 t558 = t540*t557
1885 t562 = t537*(-t539*t540*t542/0.3e1_dp - t127*t128*t13*t133 &
1886 + t550*t558/0.2e1_dp)
1887 t563 = t531*t562
1888 t567 = (t493*t113 - 0.7e1_dp/0.2e1_dp*t108*t499 - (t502*t525 &
1889 *t123*t136) + (2._dp*t502*t563))*t140
1890 t569 = t141*t142
1891 t571 = t110*t92*t144
1892 t572 = t571*t453
1893 t575 = -t567*t145 - 0.7e1_dp/0.2e1_dp*t569*t572
1894 t576 = t575*e
1895 t577 = t576*t149
1896 t578 = t189*t13
1897 t581 = 0.1e1_dp/t158/t157
1898 t582 = t149*t581
1899 t583 = t148*t582
1900 t587 = -t345 - t351 + t374 - t404 - 0.2e1_dp/0.3e1_dp*t72*t44*t6
1901 t588 = t156*t587
1902 t589 = t271*t588
1903 t592 = t219*t72
1904 t596 = 0.1e1_dp/t224/t223
1905 t597 = t596*t222
1906 t602 = 0.1e1_dp/t227/t75
1907 t603 = f98*t602
1908 t608 = dexerrho(q, dqrho)
1909 t613 = (t97*(-0.3e1_dp/0.2e1_dp*t221*t597*t409 + t603*t409/ &
1910 0.2e1_dp) + f2716*t608*t233)*alpha3*t185
1911 t617 = f12*t481
1912 t620 = 0.1e1_dp/t495
1913 t621 = t620*t453
1914 t624 = t213*omega
1915 t626 = t27*r3*t5
1916 t629 = t246*t192
1917 t631 = t315*r3*t5
1918 t634 = t602*t409
1919 t638 = 0.1e1_dp/t252/t251
1920 t639 = f916*t638
1921 t644 = 0.1e1_dp/t258/t257
1922 t645 = t644*t256
1923 t653 = (t97*(-t243*t634/0.2e1_dp + 0.3e1_dp/0.2e1_dp*t639*t250* &
1924 t409 - 0.5e1_dp/0.2e1_dp*t255*t645*t409) - t267*t608)*alpha5
1925 t655 = -(2._dp*t285*t449) - (2._dp*t91*t454) - 0.8e1_dp/0.3e1_dp &
1926 *t457*t465 + t577 - t186*t578 + 0.5e1_dp/0.2e1_dp*t583*t589 &
1927 - 0.2e1_dp/0.3e1_dp*t592*t406 + t613*t190 - t81*t93*t453 + &
1928 t617*t94 - t237*t578 - (3._dp*t148*t621) - t624*t626/0.3e1_dp &
1929 - 0.4e1_dp/0.3e1_dp*t629*t631 + t653*t271
1930 t656 = t149*t159
1931 t657 = t148*t656
1932 t658 = t193*t332
1933 t659 = t658*t6
1934 t663 = t273*t409
1935 t666 = dexeirho(q, dqrho)
1936 t669 = (t276*t409 - 2._dp*t197*t663 + t243*t666)*alpha4
1937 t673 = t97/t205/t199
1938 t679 = (-t197*t673*t409/0.2e1_dp - t209*t608)*alpha1
1939 t681 = t241*t409
1940 t685 = (-t197*t681 - f98*t666)*alpha2
1941 t689 = 0.1e1_dp/t290/t289
1942 t690 = t256*t222
1943 t691 = t689*t690
1944 t697 = f2732/t295/t294
1945 t698 = t293*t409
1946 t701 = t638*t250
1947 t711 = (t97*(-0.7e1_dp/0.2e1_dp*t288*t691*t409 + 0.5e1_dp/0.2e1_dp &
1948 *t697*t698 - 0.3e1_dp/0.2e1_dp*t298*t701*t409 + t280*t634/ &
1949 0.2e1_dp) + t307*t608)*alpha7
1950 t713 = 0.1e1_dp/t257
1951 t717 = 0.1e1_dp/t293
1952 t718 = f94*t717
1953 t721 = t321*t409
1954 t728 = (-4._dp*t318*t713*t409 + 3._dp*t718*t409 - 2._dp*t243*t721 &
1955 + t280*t275*t409 + t326*t666)*alpha8
1956 t735 = t176*t147
1957 t736 = t656*t453
1958 t739 = t93*t581
1959 t740 = t739*t588
1960 t746 = t180*t90
1961 t747 = t149*t170
1962 t748 = t747*t453
1963 t752 = 0.1e1_dp/t169/t168
1964 t753 = t93*t752
1965 t754 = t155*t587
1966 t755 = t753*t754
1967 t759 = (-t176*t575*t93*t159 + (2._dp*t735*t736) + 0.5e1_dp/ &
1968 0.2e1_dp*(t735)*(t740) - t180*t481*t93*t170 + (2._dp &
1969 *t746*t748) + 0.3e1_dp/0.2e1_dp*(t746)*(t755))*t185
1970 t761 = t310*t311
1971 t763 = 0.1e1_dp/t8/t461
1972 t765 = t763*r3*t5
1973 t769 = t75*t241
1974 t771 = t409*t200 - t769*t409
1975 t772 = t771*t239
1976 t779 = t151*t147
1977 t780 = t93*t159
1978 t781 = t780*t453
1979 t783 = t83*t581
1980 t784 = t783*t588
1981 t787 = t93*t163
1982 t791 = 0.1e1_dp/t162/t154
1983 t792 = t83*t791
1984 t799 = t166*t90
1985 t800 = t93*t170
1986 t801 = t800*t453
1987 t803 = t83*t752
1988 t804 = t803*t754
1989 t808 = (-t151*t575*t83*t159 + t779*t781 + 0.5e1_dp/0.2e1_dp*t779 &
1990 *t784 + t81*t787*t453 + t81*t792*t587/0.2e1_dp - t166 &
1991 *t481*t83*t170 + t799*t801 + 0.3e1_dp/0.2e1_dp*t799*t804)* &
1992 omega
1993 t810 = t148*t620
1994 t812 = t194*t44*t453
1995 t815 = t270*t193
1996 t816 = t332*r3
1997 t817 = t816*t5
1998 t820 = a*t319
1999 t823 = f98*t321
2000 t826 = r1*t275
2001 t832 = (-3._dp*t820*t409 + 2._dp*t823*t409 - t243*t826*t409 - t280 &
2002 *t666)*alpha6*t284
2003 t834 = 0.5e1_dp/0.3e1_dp*t657*t659 + t669*t247 + t679*t214 + t685 &
2004 *t153 - t577*t195 + t711*t316 + t728*t333 - t174*t626 &
2005 /0.3e1_dp + t759*t190 - 0.7e1_dp/0.3e1_dp*t761*t765 + t197*(t666 &
2006 + t772*t199) + t808*t128 + (3._dp*t810*t812) - 0.5e1_dp/0.3e1_dp &
2007 *t815*t817 + t832*t286
2008 t836 = (t655 + t834)*clda
2009 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t446*t336 - t80*t836)*sx
2010 t842 = f2*t424
2011 t845 = t842*t68 - t85*t441
2012 t846 = t15*t845
2013 t848 = 2._dp*t412*t88 + t11*t846
2014 t849 = f12*t848
2015 t851 = t452*t444
2016 t865 = t97*(t99*t848*t82 + t99*t90*t444 + 2._dp*t102*t82 &
2017 *t444 + 3._dp*t104*t92*t444)
2018 t867 = t498*t444
2019 t870 = f94*t424
2020 t871 = t870*t117
2021 t873 = t509*t440
2022 t874 = t18*t873
2023 t876 = t68*ndrho
2024 t877 = t116*t876
2025 t880 = t871*t121 - t508*t874 + 2._dp*t877*t121
2026 t884 = f32*t126
2027 t885 = t884*t128
2028 t888 = t425*t77
2029 t889 = t77*t440
2030 t891 = t888 - t553*t889
2031 t892 = t551*t891
2032 t893 = t540*t892
2033 t897 = t537*(t885*t540*t132 + t550*t893/0.2e1_dp)
2034 t898 = t531*t897
2035 t902 = (t865*t113 - 0.7e1_dp/0.2e1_dp*t108*t867 - (t502*t880 &
2036 *t123*t136) + (2._dp*t502*t898))*t140
2037 t904 = t571*t444
2038 t907 = -t902*t145 - 0.7e1_dp/0.2e1_dp*t569*t904
2039 t908 = t907*e
2040 t909 = t908*t149
2041 t910 = t620*t444
2042 t916 = t780*t444
2043 t918 = t156*t444
2044 t919 = t783*t918
2045 t930 = t800*t444
2046 t932 = t155*t444
2047 t933 = t803*t932
2048 t937 = (-t151*t907*t83*t159 + t779*t916 + 0.5e1_dp/0.2e1_dp*t779 &
2049 *t919 + t81*t787*t444 + t81*t792*t444/0.2e1_dp - t166 &
2050 *t848*t83*t170 + t799*t930 + 0.3e1_dp/0.2e1_dp*t799*t933)* &
2051 omega
2052 t942 = t656*t444
2053 t945 = t739*t918
2054 t951 = t747*t444
2055 t954 = t753*t932
2056 t958 = (-t176*t907*t93*t159 + (2._dp*t735*t942) + 0.5e1_dp/ &
2057 0.2e1_dp*(t735)*(t945) - t180*t848*t93*t170 + (2._dp &
2058 *t746*t951) + 0.3e1_dp/0.2e1_dp*(t746)*(t954))*t185
2059 t962 = t194*t44*t444
2060 t965 = t271*t918
2061 t968 = dexeindrho(q, dqndrho)
2062 t971 = t444*t200 - t769*t444
2063 t972 = t971*t239
2064 t979 = dexerndrho(q, dqndrho)
2065 t982 = (-t197*t673*t444/0.2e1_dp - t209*t979)*alpha1
2066 t988 = (-t197*t241*t444 - f98*t968)*alpha2
2067 t1001 = (t97*(-0.3e1_dp/0.2e1_dp*t221*t597*t444 + t603*t444/ &
2068 0.2e1_dp) + f2716*t979*t233)*alpha3*t185
2069 t1009 = (t276*t444 - 2._dp*t197*t273*t444 + t243*t968)*alpha4
2070 t1011 = t602*t444
2071 t1024 = (t97*(-t243*t1011/0.2e1_dp + 0.3e1_dp/0.2e1_dp*t639*t250 &
2072 *t444 - 0.5e1_dp/0.2e1_dp*t255*t645*t444) - t267*t979)*alpha5
2073 t1035 = (-3._dp*t820*t444 + 2._dp*t823*t444 - t243*t826*t444 - &
2074 t280*t968)*alpha6*t284
2075 t1052 = (t97*(-0.7e1_dp/0.2e1_dp*t288*t691*t444 + 0.5e1_dp/0.2e1_dp &
2076 *t697*t293*t444 - 0.3e1_dp/0.2e1_dp*t298*t701*t444 + t280 &
2077 *t1011/0.2e1_dp) + t307*t979)*alpha7
2078 t1066 = (-4._dp*t318*t713*t444 + 3._dp*t718*t444 - 2._dp*t243*t321 &
2079 *t444 + t280*t275*t444 + t326*t968)*alpha8
2080 t1068 = -t81*t93*t444 + t849*t94 - (2._dp*t91*t851) + t909 &
2081 - (3._dp*t148*t910) + t937*t128 + t958*t190 - t909*t195 &
2082 + (3._dp*t810*t962) + 0.5e1_dp/0.2e1_dp*t583*t965 + t197*(t968 &
2083 + t972*t199) + t982*t214 + t988*t153 + t1001*t190 + t1009 &
2084 *t247 + t1024*t271 + t1035*t286 + t1052*t316 + t1066* &
2085 t333
2086 t1069 = t1068*clda
2087 e_ndrho = e_ndrho + (-t80*t1069)*sx
2088 END IF
2089 IF (order >= 2 .OR. order == -2) THEN
2090 t1071 = t332*t13
2091 t1072 = t4*t1071
2092 t1077 = 0.10e2_dp/0.9e1_dp*t1072*t340*t68*t56*t58
2093 t1078 = t44*t347
2094 t1079 = t4*t1078
2095 t1081 = 0.8e1_dp/0.3e1_dp*t1079*t343
2096 t1082 = t14*t371
2097 t1085 = 0.4e1_dp/0.3e1_dp*t339*t1082*t342
2098 t1086 = t4*t515
2099 t1087 = t6*t401
2100 t1090 = 0.4e1_dp/0.3e1_dp*t1086*t553*t1087
2101 t1091 = t29*t14
2102 t1094 = 6._dp*t11*t1091*t69
2103 t1097 = 4._dp*t11*t348*t372
2104 t1098 = t4*t357
2105 t1100 = 4._dp*t1098*t403
2106 t1113 = t24*t763
2107 t1115 = t363*t312
2108 t1119 = t46*t31*t6
2109 t1123 = t27*t390*t31
2110 t1126 = 0.10e2_dp/0.9e1_dp*t16*t3*t332*t15*t312 + 0.8e1_dp/0.3e1_dp &
2111 *t353*t348*t6 + (6._dp*t17*t10*t29*t14) + 0.28e2_dp/ &
2112 0.9e1_dp*t22*t1113*t1115 + 0.32e2_dp/0.3e1_dp*t362*t1119 + (20._dp &
2113 *t25*t1123)
2114 t1127 = t1126*t68
2115 t1129 = t11*t15*t1127
2116 t1132 = 2._dp*t375*t1082*t402
2117 t1134 = 0.1e1_dp/t376/t67
2118 t1135 = t401**2
2119 t1136 = t1134*t1135
2120 t1139 = 2._dp*t375*t340*t1136
2121 t1168 = 0.28e2_dp/0.9e1_dp*t35*t1113*t1115 + 0.32e2_dp/0.3e1_dp*t378 &
2122 *t1119 + (20._dp*t36*t1123) + 0.40e2_dp/0.9e1_dp*t39*t41* &
2123 t463*t385*t312 + 0.50e2_dp/0.3e1_dp*t384*t390*t48*t6 + 0.30e2_dp &
2124 *t42*t44/t28/t346*t48 + (72._dp*t55*t60/t61/t12 &
2125 *t63)
2126 t1169 = t377*t1168
2127 t1171 = t375*t340*t1169
2128 t1173 = t332*t56*t58
2129 t1176 = t1077 + t1081 - t1085 + t1090 + t1094 - t1097 + t1100 + t1129 &
2130 - t1132 + t1139 - t1171 + 0.10e2_dp/0.9e1_dp*t73*t1173
2131 d2qrhorho = f94*t1176*t77
2132 t1178 = t411*t338
2133 t1181 = t14*t424
2134 t1185 = t6*t440
2135 t1208 = -0.4e1_dp/0.3e1_dp*t415*t352*t354 - (4._dp*t416*t358) &
2136 - 0.16e2_dp/0.3e1_dp*t420*t361*t364 - (16._dp*t421*t368)
2137 t1209 = t1208*t68
2138 t1214 = t411*t18
2139 t1220 = t1134*t401*t440
2140 t1236 = -0.16e2_dp/0.3e1_dp*t428*t361*t364 - (16._dp*t429*t368) &
2141 - 0.25e2_dp/0.3e1_dp*t432*t383*t386 - (25._dp*t433*t392) &
2142 - (48._dp*t437*t398)
2143 t1237 = t377*t1236
2144 t1240 = -0.4e1_dp/0.3e1_dp*t1178*t343 - 0.2e1_dp/0.3e1_dp*t339*t1181 &
2145 *t342 + 0.2e1_dp/0.3e1_dp*t1086*t553*t1185 - (4._dp*t412* &
2146 t349) - (2._dp*t11*t348*t425) + (2._dp*t1098*t442) + (2._dp &
2147 *t412*t373) + (t11*t15*t1209) - t375*t1082*t441 &
2148 - (2._dp*t1214*t403) - t375*t1181*t402 + 0.2e1_dp*t375*t340 &
2149 *t1220 - t375*t340*t1237
2150 d2qrhondrho = f94*t1240*t77
2151 t1242 = t119*t13
2152 t1243 = t340*t68
2153 t1257 = 2._dp*a1*t3*t19 + 12._dp*a2*t1*t24*t32
2154 t1258 = t1257*t68
2155 t1264 = t440**2
2156 t1265 = t1134*t1264
2157 t1281 = 12._dp*a3*t1*t24*t32 + 20._dp*a4*t419*t41*t49 + 30._dp &
2158 *a5*t21*t54*t65
2159 t1282 = t377*t1281
2160 t1285 = 2._dp*t1242*t1243 + 4._dp*t412*t426 - 4._dp*t1214*t442 + t11 &
2161 *t15*t1258 - 2._dp*t375*t1181*t441 + 2._dp*t375*t340*t1265 &
2162 - t375*t340*t1282
2163 d2qndrhondrho = f94*t1285*t77
2164 t1287 = t78**2
2165 t1294 = t166*t481
2166 t1297 = t453**2
2167 t1301 = t1077 + t1081 - t1085 + t1090 + t1094 - t1097 + t1100 + t1129 &
2168 - t1132 + t1139 - t1171
2169 t1304 = t166*t181
2170 t1305 = t752*t453
2171 t1306 = t1305*t754
2172 t1309 = t587**2
2173 t1310 = t154*t1309
2174 t1317 = t1077 + t1081 - t1085 + t1090 + t1094 - t1097 + t1100 + t1129 &
2175 - t1132 + t1139 - t1171 + 0.10e2_dp/0.9e1_dp*t72*t332*t312
2176 t1318 = t155*t1317
2177 t1324 = 0.1e1_dp/t169/t156/t155
2178 t1325 = t83*t1324
2179 t1326 = t156*t1309
2180 t1355 = 0.10e2_dp/0.9e1_dp*t1072*t468*t312 + 0.8e1_dp/0.3e1_dp*t1079 &
2181 *t469 - 0.4e1_dp/0.3e1_dp*t339*t14*t478*t6 + (6._dp*t11* &
2182 t1091*t87) - 0.4e1_dp*(t11)*t348*t478 + (t11*t15* &
2183 (f2*t1126*t68 - 2._dp*t475*t402 + 2._dp*t85*t1136 - t85*t1169))
2184 t1379 = t495*t82
2185 t1381 = 0.1e1_dp/t110/t1379
2186 t1382 = t109*t1381
2187 t1392 = t503*t507
2188 t1402 = t116*t1134*t1*t3
2189 t1409 = t116*t377*t4*t44
2190 t1433 = f94*t1126*t117*t121 - (2._dp*t1392*t511) - 0.4e1_dp &
2191 /0.3e1_dp*t503*t513*t518 - (4._dp*t504*t522) + (2._dp*t1402 &
2192 *t18*t509*t1135) + 0.4e1_dp/0.3e1_dp*t1409*t120*t1087 + &
2193 (4._dp*t508*t357*t510) - (t508*t18*t509*t1168) + &
2194 0.10e2_dp/0.9e1_dp*t514*t1071*t14*t77*t56*t58 + 0.8e1_dp/0.3e1_dp &
2195 *t514*t1078*t14*t517 + 0.6e1_dp*t118*t119*t1091*t77
2196 t1437 = t525**2
2197 t1442 = t96*t115*t525
2198 t1445 = t96*t124
2199 t1456 = t533*t1242
2200 t1457 = t377*t77
2201 t1473 = t13*sscale
2202 t1478 = t125*t538*t129
2203 t1479 = sscale*t551
2204 t1491 = 0.1e1_dp/t132/t131
2205 t1492 = t556**2
2206 t1498 = t371*t377
2207 t1501 = t34*t1134
2208 t1520 = t567*t142
2209 t1524 = t110*t82*t144
2210 t1531 = -((t97*(t99*t1355*t82 + 2._dp*t99*t481*t453 + t99 &
2211 *t90*t1301 + 2._dp*t102*t1297 + 2._dp*t102*t82*t1301 + 6._dp* &
2212 t104*t82*t1297 + 3._dp*t104*t92*t1301)*t113) - (7._dp*t493 &
2213 *t499) + 0.63e2_dp/0.4e1_dp*(t108)*(t1382)*(t1297) &
2214 - 0.7e1_dp/0.2e1_dp*(t108)*(t498)*(t1301) - t502 &
2215 *t1433*t123*t136 - t502*t1437*t123*t136 + (4._dp*t1442 &
2216 *t563) + 0.2e1_dp*t1445*t530*(0.2e1_dp/0.3e1_dp*t533*t352* &
2217 t13*t1243*t517 + (2._dp*t534*t348*t131) - (t534*t15 &
2218 *t552) + t1456*t340*t1457*t401)*t562 + 0.2e1_dp*t502* &
2219 t531*t537*(0.4e1_dp/0.9e1_dp*t125*t126*t315*t540*t132* &
2220 t56*t58 + 0.2e1_dp/0.3e1_dp*t539*t1473*t542 - t1478*t1479* &
2221 t6*t556/0.3e1_dp + (2._dp*t127*t128*t347*t133) - t550*t1473 &
2222 *t557 - t550*t540*t1491*t1492/0.4e1_dp + t550*t540* &
2223 t551*(t1127*t77 - 2._dp*t1498*t554 + 2._dp*t1501*t77*t1135 &
2224 - t553*t77*t1168)/0.2e1_dp))*t140*t145 - (7._dp*t1520 &
2225 *t572) - 0.35e2_dp/0.4e1_dp*(t569)*(t1524)*(t1297) &
2226 - 0.7e1_dp/0.2e1_dp*(t569)*(t571)*(t1301)
2227 t1535 = t151*t575
2228 t1543 = (3._dp*t1294*t804) - (2._dp*t799*t747*t1297) + (t799 &
2229 *t800*t1301) - (3._dp*t1304*t1306) + (3._dp*t799 &
2230 *t803*t1310) + 0.3e1_dp/0.2e1_dp*(t799)*(t803)*(t1318) &
2231 - 0.27e2_dp/0.4e1_dp*(t799)*(t1325)*(t1326) - &
2232 t151*t1531*t83*t159 + (2._dp*t1535*t781) + (5._dp*t1535 &
2233 *t784) - (2._dp*t779*t656*t1297)
2234 t1546 = t151*t177
2235 t1547 = t581*t453
2236 t1548 = t1547*t588
2237 t1551 = t156*t1317
2238 t1555 = t168*t1309
2239 t1559 = t156**2
2240 t1562 = 0.1e1_dp/t158/t1559/t155
2241 t1563 = t83*t1562
2242 t1564 = t1559*t1309
2243 t1568 = t149*t163
2244 t1572 = t81*t93
2245 t1573 = t791*t453
2246 t1579 = 0.1e1_dp/t162/t155
2247 t1580 = t83*t1579
2248 t1592 = t779*t780*(t1301) - (5._dp*t1546*t1548) + 0.5e1_dp &
2249 /0.2e1_dp*t779*t783*t1551 + 0.10e2_dp*t779*t783*t1555 - 0.75e2_dp &
2250 /0.4e1_dp*t779*t1563*t1564 - (2._dp*t81*t1568*t1297) &
2251 - t1572*t1573*t587 + (t81*t787*t1301) - 0.3e1_dp/0.4e1_dp &
2252 *(t81)*(t1580)*(t1309) + (t81*t792*t1317) &
2253 /0.2e1_dp - t166*t1355*t83*t170 + (2._dp*t1294*t801)
2254 t1599 = t576*t582
2255 t1602 = 0.1e1_dp/t1379
2256 t1609 = t315*t56*t58
2257 t1615 = t189*t347
2258 t1624 = 0.1e1_dp/t690
2259 t1625 = t409**2
2260 t1633 = f94/t294
2261 t1649 = d2exeirhorho(q, dqrho, d2qrhorho)
2262 t1658 = t148*t620*t581
2263 t1663 = (t1543 + t1592)*omega*t128 + (10._dp*t583*t271*t1555) &
2264 + (5._dp*t1599*t589) + (12._dp*t148*t1602*t1297) - &
2265 (2._dp*t613*t578) + 0.4e1_dp/0.9e1_dp*t624*t1609 - 0.8e1_dp/0.3e1_dp &
2266 *t669*t192*t631 + (2._dp*t186*t1615) + 0.10e2_dp/0.3e1_dp &
2267 *t576*t656*t659 + 0.5e1_dp/0.2e1_dp*(t583)*(t271)*(t1551) &
2268 + ((20._dp*t318*t1624*t1625 - 4._dp*t318*t713*t1176 &
2269 - 12._dp*t1633*t1625 + 3._dp*t718*t1176 + 6._dp*t243*t717*t1625 &
2270 - 2._dp*t243*t321*t1176 - 2._dp*t280*t321*t1625 + t280* &
2271 t275*t1176 + t326*t1649)*alpha8*t333) - (3._dp*t148*t620 &
2272 *t1301) - (15._dp*t1658*t271*t588*t453)
2273 t1677 = t256**2
2274 t1680 = 0.1e1_dp/t290/t1677/t690
2275 t1681 = t1677*t256
2276 t1682 = t1680*t1681
2277 t1686 = t689*t257
2278 t1693 = t293**2
2279 t1697 = f2732/t295/t1693/t250
2280 t1709 = 0.1e1_dp/t252/t293/t250
2281 t1710 = t1709*t293
2282 t1714 = t638*t75
2283 t1722 = 0.1e1_dp/t227/t250
2284 t1723 = t1722*t1625
2285 t1726 = t602*t1176
2286 t1729 = 0.147e3_dp/0.4e1_dp*t288*t1682*t1625 - 0.21e2_dp*t288*t1686 &
2287 *t1625 - 0.7e1_dp/0.2e1_dp*t288*t691*t1176 - 0.75e2_dp/0.4e1_dp &
2288 *t1697*t1693*t1625 + 0.10e2_dp*t697*t251*t1625 + 0.5e1_dp/ &
2289 0.2e1_dp*t697*t293*t1176 + 0.27e2_dp/0.4e1_dp*t298*t1710*t1625 &
2290 - 0.3e1_dp*t298*t1714*t1625 - 0.3e1_dp/0.2e1_dp*t298*t701*t1176 &
2291 - 0.3e1_dp/0.4e1_dp*t280*t1723 + t280*t1726/0.2e1_dp
2292 t1731 = d2exerrhorho(q, dqrho, d2qrhorho)
2293 t1740 = t148*t1602
2294 t1767 = t56**2
2295 t1768 = t58**2
2296 t1770 = t1767*t1768*t28
2297 t1781 = a*t713
2298 t1786 = f98*t717
2299 t1791 = r1*t321
2300 t1802 = ((-2._dp*t823*t1625 + t276*t1176 + 6._dp*t197*t319* &
2301 t1625 - 2._dp*t197*t273*t1176 + t243*t1649)*alpha4*t247) + &
2302 (t97*t1729 + t307*t1731)*alpha7*t316 - 0.40e2_dp/0.9e1_dp*t657 &
2303 *t193*t463*t312 - (12._dp*t1740*t194*t44*t1297) + &
2304 (6._dp*t285*t60*t29) + ((2._dp*t197*t273*t1625 - t197 &
2305 *t241*t1176 - f98*t1649)*alpha2*t153) - (4._dp*t832* &
2306 t449) - (2._dp*t759*t578) + (2._dp*t237*t1615) - (6._dp* &
2307 t576*t621) + f12*t1355*t94 + 0.70e2_dp/0.9e1_dp*t761/t8/t1770 &
2308 *t56*t58 + 0.40e2_dp/0.9e1_dp*t815*t463*t56*t58 + ((12._dp &
2309 *t1781*t1625 - 3._dp*t820*t1176 - 6._dp*t1786*t1625 + 2._dp*t823 &
2310 *t1176 + 2._dp*t243*t1791*t1625 - t243*t826*t1176 - t280 &
2311 *t1649)*alpha6*t284*t286)
2312 t1804 = t620*t159
2313 t1805 = t148*t1804
2314 t1816 = t576*t620
2315 t1827 = t148*t582*t193
2316 t1835 = t148*t149*t1562
2317 t1839 = c*t620
2318 t1846 = t75*t273
2319 t1853 = t771*t275
2320 t1854 = t199*t409
2321 t1860 = t1531*e*t149
2322 t1868 = f916*t1709
2323 t1880 = 0.1e1_dp/t258/t1677/t222
2324 t1881 = t1880*t1677
2325 t1885 = t644*t223
2326 t1898 = -(10._dp*t1805*t658*t6*t453) - 0.14e2_dp/0.3e1_dp*t711 &
2327 *t311*t765 - 0.16e2_dp/0.3e1_dp*t728*t330*t465 + (6._dp*t1816 &
2328 *t812) + (2._dp*t81*t149*t1297) + 0.28e2_dp/0.9e1_dp*t629 &
2329 *t763*t56*t58 - 0.25e2_dp/0.3e1_dp*t1827*t332*t156*t587 &
2330 *r3*t5 - 0.75e2_dp/0.4e1_dp*t1835*t271*t1564 + (6._dp*t91 &
2331 *t1839*t1297) + (t197*(t1649 + (t1176*t200 - 2._dp*t1625 &
2332 *t241 + 2._dp*t1846*t1625 - t769*t1176)*t239*t199 - t1853* &
2333 t1854 + t772*t409)) - t1860*t195 - (t81*t93*t1301) + &
2334 (t97*(0.3e1_dp/0.4e1_dp*t243*t1723 - t243*t1726/0.2e1_dp - 0.27e2_dp &
2335 /0.4e1_dp*(t1868)*(t293)*(t1625) + (3._dp*t639 &
2336 *t75*t1625) + 0.3e1_dp/0.2e1_dp*(t639)*(t250)*(t1176) &
2337 + 0.75e2_dp/0.4e1_dp*(t255)*(t1881)*(t1625) - &
2338 (10._dp*t255*t1885*t1625) - 0.5e1_dp/0.2e1_dp*(t255)*(t645) &
2339 *(t1176)) - t267*t1731)*alpha5*t271
2340 t1906 = 0.1e1_dp/t205/t222
2341 t1907 = t97*t1906
2342 t1923 = t176*t575
2343 t1932 = t176*t147*t149
2344 t1938 = t93*t1562
2345 t1951 = t180*t481
2346 t1956 = t620*t170
2347 t1961 = t180*t90*t149
2348 t1967 = t93*t1324
2349 t1977 = -t176*t1531*t93*t159 + (4._dp*t1923*t736) + (5._dp &
2350 *t1923*t740) - (6._dp*t735*t1804*t1297) - (10._dp*t1932 &
2351 *t1548) + (2._dp*t735*t656*t1301) - 0.75e2_dp/0.4e1_dp*(t735) &
2352 *(t1938)*(t1564) + (10._dp*t735*t739*t1555) &
2353 + 0.5e1_dp/0.2e1_dp*(t735)*(t739)*(t1551) - t180 &
2354 *t1355*t93*t170 + (4._dp*t1951*t748) + (3._dp*t1951*t755) &
2355 - (6._dp*t746*t1956*t1297) - (6._dp*t1961*t1306) + &
2356 (2._dp*t746*t747*t1301) - 0.27e2_dp/0.4e1_dp*(t746)*(t1967) &
2357 *(t1326) + (3._dp*t746*t753*t1310) + 0.3e1_dp/0.2e1_dp &
2358 *(t746)*(t753)*(t1318)
2359 t1983 = 0.1e1_dp/t224/t690
2360 t1984 = t1983*t256
2361 t1988 = t596*t199
2362 t1995 = f98*t1722
2363 t2028 = -0.4e1_dp/0.3e1_dp*t685*t72*t406 - 0.2e1_dp/0.3e1_dp*t679* &
2364 omega*t626 + (0.3e1_dp/0.4e1_dp*t197*t1907*t1625 - t197*t673 &
2365 *t1176/0.2e1_dp - t209*t1731)*alpha1*t214 + 0.4e1_dp/0.9e1_dp &
2366 *t174*t1609 + t1977*t185*t190 + 0.10e2_dp/0.9e1_dp*t592*t1173 &
2367 + (t97*(0.27e2_dp/0.4e1_dp*t221*t1984*t1625 - 0.3e1_dp*t221 &
2368 *t1988*t1625 - 0.3e1_dp/0.2e1_dp*t221*t597*t1176 - 0.3e1_dp/0.4e1_dp &
2369 *t1995*t1625 + t603*t1176/0.2e1_dp) + f2716*t1731*t233) &
2370 *alpha3*t185*t190 + (3._dp*t810*t194*t44*t1301) - (2._dp &
2371 *t91*t452*t1301) - 0.2e1_dp/0.3e1_dp*t808*t626 - 0.10e2_dp &
2372 /0.3e1_dp*t653*t193*t817 + t1860 - (4._dp*t617*t454) + 0.88e2_dp &
2373 /0.9e1_dp*t457/t9/t1770*t56*t58
2374 e_rho_rho = e_rho_rho - 0.4e1_dp/0.9e1_dp/t1287*f89*t336 - 0.8e1_dp/0.3e1_dp*t446* &
2375 t836 - t80*(t1663 + t1802 + t1898 + t2028)*clda
2376 t2059 = t156*t1240
2377 t2072 = t587*t444
2378 t2073 = t581*t156*t2072
2379 t2099 = -0.4e1_dp/0.3e1_dp*t1178*t469 - 0.2e1_dp/0.3e1_dp*t339*t14 &
2380 *t845*t6 - (4._dp*t412*t472) - 0.2e1_dp*t11*t348*t845 + &
2381 (2._dp*t412*t479) + t11*t15*(f2*t1208*t68 - t475* &
2382 t441 - t842*t402 + 2._dp*t85*t1220 - t85*t1237)
2383 t2108 = t444*t453
2384 t2142 = t870*t507
2385 t2144 = t554*t440
2386 t2150 = t116*t377*ndrho*t3
2387 t2173 = (f94*t1208*t117*t121) - t1392*t874 + (2._dp*t503 &
2388 *t876*t121) - (t2142*t511) + (2._dp*t1402*t19*t2144) &
2389 - (2._dp*t2150*t511) - (t508*t18*t509*t1236) - &
2390 0.2e1_dp/0.3e1_dp*t870*t513*t518 + 0.2e1_dp/0.3e1_dp*t1409*t120 &
2391 *t1185 - 0.4e1_dp/0.3e1_dp*t116*(t876)*t3*t518 - (2._dp &
2392 *t871*t522) + (2._dp*t508*t357*t873) - (4._dp*t877*t522)
2393 t2184 = t96*t115*t880
2394 t2197 = t530*(-2._dp*t532*ndrho*t119*t535 - t534*t15*t888 &
2395 + t1456*t340*t1457*t440)
2396 t2224 = t424*t377
2397 t2240 = (t97*(t99*t2099*t82 + t99*t481*t444 + t99*t848 &
2398 *t453 + t99*t90*t1240 + 2._dp*t102*t2108 + 2._dp*t102*t82 &
2399 *t1240 + 6._dp*t104*t486*t444 + 3._dp*t104*t92*t1240)*t113) &
2400 - 0.7e1_dp/0.2e1_dp*t493*t867 - 0.7e1_dp/0.2e1_dp*t865*t499 + 0.63e2_dp &
2401 /0.4e1_dp*(t108)*(t109)*(t1381)*(t453) &
2402 *(t444) - 0.7e1_dp/0.2e1_dp*(t108)*(t498)*(t1240) &
2403 - t502*t2173*t123*t136 - t502*t525*t880*t123*t136 &
2404 + (2._dp*t1442*t898) + (2._dp*t2184*t563) + (2._dp*t1445 &
2405 *t2197*t562) + 0.2e1_dp*t502*t531*t537*(-t884*t27*t129 &
2406 *t133*t6/0.3e1_dp - t1478*t1479*t6*t891/0.6e1_dp - t885 &
2407 *t1473*t132 - t550*t1473*t892/0.2e1_dp + t885*t558/0.2e1_dp &
2408 - t550*t540*t1491*t556*t891/0.4e1_dp + t550*t540*t551 &
2409 *(t1209*t77 - t1498*t889 - t2224*t554 + 2._dp*t1501*t2144 &
2410 - t553*t77*t1236)/0.2e1_dp)
2411 t2245 = t902*t142
2412 t2254 = -t2240*t140*t145 - 0.7e1_dp/0.2e1_dp*t1520*t904 - 0.7e1_dp &
2413 /0.2e1_dp*t2245*t572 - 0.35e2_dp/0.4e1_dp*t569*t1524*t2108 - &
2414 0.7e1_dp/0.2e1_dp*t569*t571*t1240
2415 t2258 = t1547*t918
2416 t2267 = t151*t907
2417 t2269 = t166*t167
2418 t2271 = t752*t154*t2072
2419 t2274 = t81*t792*t1240/0.2e1_dp - t1572*t1573*t444/0.2e1_dp + &
2420 t81*t787*t1240 + 0.5e1_dp/0.2e1_dp*t779*t783*t2059 - 0.2e1_dp &
2421 *t81*t149*t163*t453*t444 + t1294*t930 + 0.5e1_dp/0.2e1_dp* &
2422 t1535*t919 - 0.5e1_dp/0.2e1_dp*t1546*t2073 - t151*t2254*t83 &
2423 *t159 - 0.5e1_dp/0.2e1_dp*t1546*t2258 + t1535*t916 - 0.2e1_dp*t779 &
2424 *t656*t2108 + t779*t780*t1240 + t2267*t781 + (3._dp* &
2425 t2269*t2271)
2426 t2280 = t151*t152
2427 t2282 = t1562*t1559*t2072
2428 t2285 = t166*t848
2429 t2291 = t752*t155*t2072
2430 t2297 = t1305*t932
2431 t2305 = t581*t168*t2072
2432 t2311 = t155*t1240
2433 t2316 = t1324*t156*t2072
2434 t2323 = -(2._dp*t799*t747*t2108) + (t799*t800*t1240) &
2435 - 0.75e2_dp/0.4e1_dp*t2280*t2282 + 0.3e1_dp/0.2e1_dp*t2285*t804 + &
2436 0.5e1_dp/0.2e1_dp*t2267*t784 - 0.3e1_dp/0.2e1_dp*t1304*t2291 - t166 &
2437 *t2099*t83*t170 - 0.3e1_dp/0.2e1_dp*t1304*t2297 - t1572*t791 &
2438 *t587*t444/0.2e1_dp + 0.10e2_dp*t2280*t2305 + 0.3e1_dp/0.2e1_dp &
2439 *t1294*t933 + t2285*t801 + 0.3e1_dp/0.2e1_dp*(t799)*(t803) &
2440 *(t2311) - 0.27e2_dp/0.4e1_dp*t2269*t2316 - 0.3e1_dp/0.4e1_dp &
2441 *t84*t1579*t587*t444
2442 t2329 = t908*t582
2443 t2348 = t176*t907
2444 t2363 = t176*t177
2445 t2371 = -t176*t2254*t93*t159 + (2._dp*t1923*t942) + 0.5e1_dp &
2446 /0.2e1_dp*(t1923)*(t945) + (2._dp*t2348*t736) - (6._dp &
2447 *t735*t1804*t2108) - (5._dp*t1932*t2258) + (2._dp*t735 &
2448 *t656*t1240) + 0.5e1_dp/0.2e1_dp*(t2348)*(t740) - (5._dp &
2449 *t1932*t2073) - 0.75e2_dp/0.4e1_dp*t2363*t2282 + 0.10e2_dp* &
2450 t2363*t2305 + 0.5e1_dp/0.2e1_dp*(t735)*(t739)*(t2059)
2451 t2379 = t180*t848
2452 t2401 = -t180*t2099*t93*t170 + (2._dp*t1951*t951) + 0.3e1_dp &
2453 /0.2e1_dp*(t1951)*(t954) + (2._dp*t2379*t748) - (6._dp &
2454 *t746*t1956*t2108) - (3._dp*t1961*t2297) + (2._dp*t746 &
2455 *t747*t1240) + 0.3e1_dp/0.2e1_dp*(t2379)*(t755) - (3._dp &
2456 *t1961*t2291) - 0.27e2_dp/0.4e1_dp*t95*t2316 + 0.3e1_dp*t95 &
2457 *t2271 + 0.3e1_dp/0.2e1_dp*(t746)*(t753)*(t2311)
2458 t2405 = -0.25e2_dp/0.6e1_dp*t1827*t816*t5*t156*t444 + 0.12e2_dp &
2459 *t148*t1602*t453*t444 - 0.5e1_dp*t1805*t658*t6*t444 + &
2460 0.6e1_dp*t746*t621*t444 + (t2274 + t2323)*omega*t128 - (2._dp &
2461 *t1035*t449) + 0.5e1_dp/0.2e1_dp*t2329*t589 + 0.5e1_dp/0.2e1_dp &
2462 *t1599*t965 - t81*t93*t1240 - 0.7e1_dp/0.3e1_dp*t1052*t311 &
2463 *t765 - t937*t626/0.3e1_dp + (t2371 + t2401)*t185*t190
2464 t2410 = t2254*e*t149
2465 t2437 = t698*t444
2466 t2442 = t75*t409*t444
2467 t2449 = t1722*t409*t444
2468 t2452 = t602*t1240
2469 t2455 = 0.147e3_dp/0.4e1_dp*t288*t1680*t1681*t409*t444 - 0.21e2_dp &
2470 *t288*t689*t257*t409*t444 - 0.7e1_dp/0.2e1_dp*t288*t691 &
2471 *t1240 - 0.75e2_dp/0.4e1_dp*t1697*t1693*t409*t444 + 0.10e2_dp &
2472 *t697*t251*t409*t444 + 0.5e1_dp/0.2e1_dp*t697*t293*t1240 &
2473 + 0.27e2_dp/0.4e1_dp*t298*t1709*t2437 - 0.3e1_dp*t298*t638*t2442 &
2474 - 0.3e1_dp/0.2e1_dp*t298*t701*t1240 - 0.3e1_dp/0.4e1_dp*t280* &
2475 t2449 + t280*t2452/0.2e1_dp
2476 t2457 = d2exerrhondrho(q, dqrho, dqndrho, d2qrhondrho)
2477 t2473 = t409*t444
2478 t2484 = d2exeirhondrho(q, dqrho, dqndrho, d2qrhondrho)
2479 t2499 = -(3._dp*t908*t621) - t1001*t578 - t2410*t195 + t2410 &
2480 + (t97*t2455 + t307*t2457)*alpha7*t316 + 0.5e1_dp/0.2e1_dp* &
2481 t583*t271*t2059 - 0.12e2_dp*t148*t1602*t159*t271*t2108 &
2482 - t982*omega*t626/0.3e1_dp + ((-2._dp*t823*t2473 + t276* &
2483 t1240 + 6._dp*t197*t319*t409*t444 - 2._dp*t197*t273*t1240 + &
2484 t243*t2484)*alpha4*t247) - 0.15e2_dp/0.2e1_dp*t1658*t271*t588 &
2485 *(t444) - 0.4e1_dp/0.3e1_dp*t1009*t192*t631 - 0.3e1_dp*t148 &
2486 *t620*(t1240)
2487 t2512 = t199*t444
2488 t2529 = t721*t444
2489 t2543 = t908*t620
2490 t2573 = (3._dp*t1816*t962) + (t197*(t2484 + (t1240*t200 &
2491 - 2._dp*t681*t444 + 2._dp*t1846*t2473 - t769*t1240)*t239*t199 &
2492 - t1853*t2512 + t772*t444)) - 0.5e1_dp/0.3e1_dp*t1024*t193 &
2493 *t817 + ((12._dp*t1781*t2473 - 3._dp*t820*t1240 - 6._dp*t1786* &
2494 t2473 + 2._dp*t823*t1240 + 2._dp*t243*r1*t2529 - t243*t826* &
2495 t1240 - t280*t2484)*alpha6*t284*t286) + (2._dp*t81*t149 &
2496 *t453*t444) + (3._dp*t2543*t812) + f12*t2099*t94 + (10._dp &
2497 *t583*t271*t168*t587*t444) + ((2._dp*t197*t663 &
2498 *t444 - t197*t241*t1240 - f98*t2484)*alpha2*t153) - 0.8e1_dp &
2499 /0.3e1_dp*t1066*t330*t465 - 0.2e1_dp/0.3e1_dp*t988*t72*t406 &
2500 - 0.75e2_dp/0.4e1_dp*(t1835)*(t271)*(t1559)*(t587) &
2501 *(t444)
2502 t2688 = -(2._dp*t91*t452*t1240) - (2._dp*t617*t851) + (t97 &
2503 *(0.3e1_dp/0.4e1_dp*t243*t2449 - t243*t2452/0.2e1_dp - 0.27e2_dp &
2504 /0.4e1_dp*t1868*t2437 + (3._dp*t639*t2442) + 0.3e1_dp/0.2e1_dp* &
2505 (t639)*(t250)*(t1240) + 0.75e2_dp/0.4e1_dp*t255*t1880 &
2506 *t1677*t409*t444 - 0.10e2_dp*t255*t644*t223*t409* &
2507 t444 - 0.5e1_dp/0.2e1_dp*t255*t645*(t1240)) - t267*t2457) &
2508 *alpha5*t271 - (3._dp*t576*t910) - (2._dp*t849*t454) - &
2509 t958*t578 + (0.20e2_dp*t318*t1624*t409*t444 - 0.4e1_dp*t318 &
2510 *t713*(t1240) - (12._dp*t1633*t2473) + (3._dp*t718* &
2511 t1240) + 0.6e1_dp*t243*t717*t409*t444 - 0.2e1_dp*t243*t321* &
2512 (t1240) - (2._dp*t280*t2529) + (t280*t275*t1240) &
2513 + t326*t2484)*alpha8*t333 + (3._dp*t810*t194*t44*t1240) &
2514 + (0.3e1_dp/0.4e1_dp*t197*t97*t1906*t409*t444 - t197*t673 &
2515 *(t1240)/0.2e1_dp - t209*t2457)*alpha1*t214 + 0.5e1_dp &
2516 /0.3e1_dp*t908*t656*t659 + (t97*(0.27e2_dp/0.4e1_dp*t221*t1983 &
2517 *t256*t409*t444 - 0.3e1_dp*t221*t596*t1854*t444 - 0.3e1_dp &
2518 /0.2e1_dp*t221*t597*(t1240) - 0.3e1_dp/0.4e1_dp*(t1995) &
2519 *(t2473) + (t603*t1240)/0.2e1_dp) + f2716*t2457*t233) &
2520 *alpha3*t185*t190 - 0.15e2_dp/0.2e1_dp*t1658*t271*t453 &
2521 *t156*t444
2522 e_ndrho_rho = e_ndrho_rho - 0.4e1_dp/0.3e1_dp*t446*t1069 - t80*(t2405 + t2499 + t2573 &
2523 + t2688)*clda
2524 t2707 = 2._dp*t119*t88 + 4._dp*t412*t846 + t11*t15*(f2*t1257 &
2525 *t68 - 2._dp*t842*t441 + 2._dp*t85*t1265 - t85*t1282)
2526 t2715 = t444**2
2527 t2764 = t880**2
2528 t2774 = t891**2
2529 t2808 = -((t97*(t99*t2707*t82 + 2._dp*t99*t848*t444 + t99 &
2530 *t90*t1285 + 2._dp*t102*t2715 + 2._dp*t102*t82*t1285 + 6._dp* &
2531 t104*t82*t2715 + 3._dp*t104*t92*t1285)*t113) - (7._dp*t865 &
2532 *t867) + 0.63e2_dp/0.4e1_dp*(t108)*(t1382)*(t2715) &
2533 - 0.7e1_dp/0.2e1_dp*(t108)*(t498)*(t1285) - (t502 &
2534 *(f94*t1257*t117*t121 - 2._dp*t2142*t874 + 4._dp*t870* &
2535 t876*t121 + 2._dp*t1402*t18*t509*t1264 - 4._dp*t2150*t874 - &
2536 t508*t18*t509*t1281 + 2._dp*t116*t68*t3*t18*t509)*t123 &
2537 *t136) - (t502*t2764*t123*t136) + (4._dp*t2184* &
2538 t898) + (2._dp*t1445*t2197*t897) + 0.2e1_dp*(t502)*t531 &
2539 *t537*(t885*t893 - t550*t540*t1491*t2774/0.4e1_dp + t550 &
2540 *t540*t551*(t1258*t77 - 2._dp*t2224*t889 + 2._dp*t1501 &
2541 *t77*t1264 - t553*t77*t1281)/0.2e1_dp))*t140*t145 - (7._dp &
2542 *t2245*t904) - 0.35e2_dp/0.4e1_dp*(t569)*(t1524)*(t2715) &
2543 - 0.7e1_dp/0.2e1_dp*(t569)*(t571)*(t1285)
2544 t2810 = t2808*e*t149
2545 t2838 = t1722*t2715
2546 t2841 = t602*t1285
2547 t2844 = 0.147e3_dp/0.4e1_dp*t288*t1682*t2715 - 0.21e2_dp*t288*t1686 &
2548 *t2715 - 0.7e1_dp/0.2e1_dp*t288*t691*t1285 - 0.75e2_dp/0.4e1_dp &
2549 *t1697*t1693*t2715 + 0.10e2_dp*t697*t251*t2715 + 0.5e1_dp/ &
2550 0.2e1_dp*t697*t293*t1285 + 0.27e2_dp/0.4e1_dp*t298*t1710*t2715 &
2551 - 0.3e1_dp*t298*t1714*t2715 - 0.3e1_dp/0.2e1_dp*t298*t701*t1285 &
2552 - 0.3e1_dp/0.4e1_dp*t280*t2838 + t280*t2841/0.2e1_dp
2553 t2846 = d2exerndrhondrho(q, dqndrho, d2qndrhondrho)
2554 t2875 = d2exeindrhondrho(q, dqndrho, d2qndrhondrho)
2555 t2880 = t2715*t156
2556 t2884 = t1559*t2715
2557 t2927 = t156*t1285
2558 t2963 = t2810 + (t97*t2844 + t307*t2846)*alpha7*t316 + (3._dp &
2559 *t810*t194*t44*t1285) - (6._dp*t908*t910) - (3._dp* &
2560 t148*t620*t1285) + (0.3e1_dp/0.4e1_dp*t197*t1907*t2715 - t197 &
2561 *t673*(t1285)/0.2e1_dp - t209*t2846)*alpha1*t214 + &
2562 (0.2e1_dp*t197*t273*t2715 - t197*t241*(t1285) - f98*t2875) &
2563 *alpha2*t153 - (15._dp*t1658*t271*t2880) - 0.75e2_dp/ &
2564 0.4e1_dp*(t1835)*(t271)*(t2884) + (0.20e2_dp*t318* &
2565 t1624*t2715 - 0.4e1_dp*t318*t713*(t1285) - 0.12e2_dp*t1633 &
2566 *t2715 + (3._dp*t718*t1285) + 0.6e1_dp*t243*t717*t2715 - &
2567 0.2e1_dp*t243*t321*(t1285) - 0.2e1_dp*t280*t321*t2715 + &
2568 t280*t275*(t1285) + t326*t2875)*alpha8*t333 + t197 &
2569 *(t2875 + ((t1285*t200) - 0.2e1_dp*t2715*t241 + 0.2e1_dp*t1846 &
2570 *t2715 - (t769*t1285))*t239*t199 - t971*t275*t2512 &
2571 + t972*t444) + 0.5e1_dp/0.2e1_dp*(t583)*(t271)*(t2927) &
2572 + (t97*(0.3e1_dp/0.4e1_dp*t243*t2838 - t243*t2841/0.2e1_dp &
2573 - 0.27e2_dp/0.4e1_dp*t1868*t293*t2715 + 0.3e1_dp*t639*t75 &
2574 *t2715 + 0.3e1_dp/0.2e1_dp*t639*t250*(t1285) + 0.75e2_dp/0.4e1_dp &
2575 *t255*t1881*t2715 - 0.10e2_dp*t255*t1885*t2715 - 0.5e1_dp &
2576 /0.2e1_dp*t255*t645*(t1285)) - t267*t2846)*alpha5*(t271) &
2577 + (5._dp*t2329*t965) - (t81*t93*t1285)
2578 t2971 = t2715*t155
2579 t2975 = t154*t2715
2580 t2979 = t155*t1285
2581 t2994 = t168*t2715
2582 t3001 = -(2._dp*t799*t747*t2715) + (t799*t800*t1285) &
2583 - (3._dp*t799*t753*t2971) + (3._dp*t799*t803*t2975) + &
2584 0.3e1_dp/0.2e1_dp*(t799)*(t803)*(t2979) - 0.27e2_dp/0.4e1_dp &
2585 *(t799)*(t1325)*(t2880) - (2._dp*t779*t656 &
2586 *t2715) + (t779*t780*t1285) - (5._dp*t779*t739*t2880) &
2587 + (10._dp*t779*t783*t2994) + 0.5e1_dp/0.2e1_dp*(t779) &
2588 *(t783)*(t2927)
2589 t3033 = -0.75e2_dp/0.4e1_dp*t779*t1563*t2884 - (2._dp*t81*t1568 &
2590 *t2715) - (t81*t93*t791*t2715) + (t81*t787*t1285) &
2591 - 0.3e1_dp/0.4e1_dp*(t81)*(t1580)*(t2715) + (t81 &
2592 *t792*t1285)/0.2e1_dp - t166*t2707*t83*t170 + (2._dp &
2593 *t2285*t930) + (3._dp*t2285*t933) - t151*t2808*t83* &
2594 t159 + (2._dp*t2267*t916) + (5._dp*t2267*t919)
2595 t3139 = -t176*t2808*t93*t159 + (4._dp*t2348*t942) + (5._dp &
2596 *t2348*t945) - (6._dp*t735*t1804*t2715) - (10._dp*t735 &
2597 *t582*t2880) + (2._dp*t735*t656*t1285) - 0.75e2_dp/0.4e1_dp &
2598 *(t735)*(t1938)*(t2884) + (10._dp*t735*t739 &
2599 *t2994) + 0.5e1_dp/0.2e1_dp*(t735)*(t739)*(t2927) - &
2600 t180*t2707*t93*t170 + (4._dp*t2379*t951) + (3._dp*t2379 &
2601 *t954) - (6._dp*t746*t1956*t2715) - (6._dp*t746*t149 &
2602 *t752*t2971) + (2._dp*t746*t747*t1285) - 0.27e2_dp/0.4e1_dp &
2603 *(t746)*(t1967)*(t2880) + (3._dp*t746*t753* &
2604 t2975) + 0.3e1_dp/0.2e1_dp*(t746)*(t753)*(t2979)
2605 t3167 = f12*t2707*t94 + (t3001 + t3033)*omega*t128 + (2._dp &
2606 *t81*t149*t2715) + (6._dp*t2543*t962) - t2810*t195 + (10._dp &
2607 *t583*t271*t2994) + (12._dp*t148*t1602*t2715) + &
2608 (t97*(0.27e2_dp/0.4e1_dp*(t221)*(t1984)*(t2715) - &
2609 (3._dp*t221*t1988*t2715) - 0.3e1_dp/0.2e1_dp*(t221)*(t597) &
2610 *(t1285) - 0.3e1_dp/0.4e1_dp*(t1995)*(t2715) + &
2611 (t603*t1285)/0.2e1_dp) + f2716*t2846*t233)*alpha3*t185 &
2612 *t190 + ((-2._dp*t823*t2715 + t276*t1285 + 6._dp*t197*t319 &
2613 *t2715 - 2._dp*t197*t273*t1285 + t243*t2875)*alpha4*t247) &
2614 - (2._dp*t91*t452*t1285) - (4._dp*t849*t851) + t3139 &
2615 *t185*t190 + (6._dp*t91*t1839*t2715) + ((12._dp*t1781 &
2616 *t2715 - 3._dp*t820*t1285 - 6._dp*t1786*t2715 + 2._dp*t823*t1285 &
2617 + 2._dp*t243*t1791*t2715 - t243*t826*t1285 - t280*t2875)* &
2618 alpha6*t284*t286) - (12._dp*t1740*t194*t44*t2715)
2619 e_ndrho_ndrho = e_ndrho_ndrho - t80*(t2963 + t3167)*clda
2620 END IF
2621
2622 END SUBROUTINE xwpbe_lda_calc_1
2623
2624! **************************************************************************************************
2625!> \brief Evaluates the screened hole averaged PBE exchange functional for lda.
2626!> \param e_0 ...
2627!> \param e_rho ...
2628!> \param e_ndrho ...
2629!> \param e_rho_rho ...
2630!> \param e_ndrho_rho ...
2631!> \param e_ndrho_ndrho ...
2632!> \param rho , ndrho: density and norm of the density gradient
2633!> \param ndrho ...
2634!> \param omega scaling factor
2635!> \param sscale scaling factor to enforce Lieb-Oxford bound
2636!> \param sx scaling factor
2637!> \param order degree of the derivative that should be evaluated,
2638!> if positive all the derivatives up to the given degree are evaluated,
2639!> if negative only the given degree is calculated
2640!> \par History
2641!> 05.2007 created [Manuel Guidon]
2642!> \author Manuel Guidon
2643!> \note
2644!> This routine evaluates the functional for omega!=0 using a taylor
2645!> expansion for the parameter G.
2646! **************************************************************************************************
2647 SUBROUTINE xwpbe_lda_calc_2(e_0, e_rho, e_ndrho, e_rho_rho, e_ndrho_rho, &
2648 e_ndrho_ndrho, rho, ndrho, omega, sscale, sx, order)
2649 REAL(kind=dp), INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_rho_rho, &
2650 e_ndrho_rho, e_ndrho_ndrho
2651 REAL(kind=dp), INTENT(IN) :: rho, ndrho, omega, sscale, sx
2652 INTEGER, INTENT(IN) :: order
2653
2654 REAL(kind=dp) :: d2qndrhondrho, d2qrhondrho, d2qrhorho, dqndrho, dqrho, q, t1, t10, t100, &
2655 t102, t1022, t1024, t1026, t1029, t103, t1031, t1034, t105, t106, t1061, t1067, t1073, &
2656 t108, t109, t1090, t1093, t1095, t11, t110, t111, t1111, t1118, t1119, t112, t113, t1136, &
2657 t1139, t114, t1141, t1149, t115, t1150, t1151, t1157, t1158, t1159, t116, t1162, t1167, &
2658 t1168, t117, t1178, t118, t1181, t1182, t1186, t1195, t12, t121, t122, t1239, t1241, &
2659 t1243, t125, t1251, t1256, t126, t1261, t1262, t1263, t1266, t127, t1270, t1273, t1274, &
2660 t1275, t1276, t128, t1280, t1287, t1288, t129, t13, t1317, t1321
2661 REAL(kind=dp) :: t1326, t133, t1331, t1332, t1333, t134, t1341, t1342, t1343, t1347, t1351, &
2662 t1355, t136, t1362, t137, t1374, t1379, t1382, t1383, t1385, t1392, t1397, t14, t140, &
2663 t1407, t141, t1417, t1426, t1430, t1434, t1435, t1438, t1442, t1443, t145, t1453, t146, &
2664 t1469, t1473, t1476, t149, t15, t151, t1517, t1519, t153, t1538, t154, t1545, t1546, &
2665 t155, t1552, t1553, t156, t1577, t158, t1584, t1589, t159, t1594, t16, t160, t161, t1613, &
2666 t1614, t1615, t1619, t1626, t163, t1630, t1640, t1644, t1655, t166, t1661, t1666, t1667, &
2667 t167, t1671, t1678, t1691, t1699, t17, t171, t172, t1726, t173
2668 REAL(kind=dp) :: t1732, t1736, t1737, t1742, t1756, t176, t1768, t177, t1773, t1785, t1788, &
2669 t1791, t1795, t18, t1816, t182, t1824, t184, t1841, t185, t1850, t186, t187, t1885, t19, &
2670 t190, t191, t1938, t1946, t196, t1976, t1978, t2, t200, t2018, t202, t204, t2053, t2056, &
2671 t206, t2060, t2066, t2069, t2071, t2072, t2076, t2084, t2086, t209, t2090, t2099, t21, &
2672 t210, t2105, t2111, t2115, t213, t2133, t2136, t214, t215, t2155, t2158, t216, t218, &
2673 t2180, t219, t2195, t22, t220, t2203, t221, t2211, t2233, t226, t227, t2274, t2279, t228, &
2674 t2280, t2283, t23, t230, t2306, t2316, t2323, t233, t2336, t234
2675 REAL(kind=dp) :: t236, t2365, t238, t239, t2391, t24, t243, t2432, t2452, t2454, t247, &
2676 t2473, t248, t2486, t249, t25, t2501, t251, t2511, t2515, t2519, t252, t253, t256, t257, &
2677 t2571, t258, t2604, t261, t266, t2668, t268, t27, t270, t273, t274, t275, t276, t278, &
2678 t279, t28, t281, t282, t284, t289, t29, t292, t293, t295, t296, t298, t299, t3, t301, &
2679 t302, t303, t305, t306, t308, t309, t31, t310, t311, t312, t314, t315, t316, t317, t32, &
2680 t320, t321, t324, t325, t326, t327, t331, t334, t335, t336, t337, t338, t339, t34, t340, &
2681 t341, t346, t347, t348, t349, t35, t353, t355, t36, t361, t364, t365
2682 REAL(kind=dp) :: t366, t367, t369, t372, t374, t375, t378, t379, t38, t382, t383, t384, &
2683 t387, t388, t389, t39, t391, t392, t395, t396, t4, t400, t403, t404, t405, t407, t409, &
2684 t41, t413, t416, t417, t42, t420, t423, t428, t433, t434, t436, t44, t440, t441, t442, &
2685 t443, t447, t448, t452, t453, t454, t457, t458, t46, t461, t464, t467, t468, t470, t474, &
2686 t475, t476, t48, t480, t481, t482, t483, t487, t489, t49, t491, t496, t5, t500, t503, &
2687 t505, t506, t507, t510, t512, t513, t514, t516, t519, t522, t523, t524, t530, t531, t535, &
2688 t536, t54, t541, t542, t549, t55, t551, t552, t558, t559, t56, t561
2689 REAL(kind=dp) :: t565, t566, t569, t574, t577, t579, t58, t583, t584, t585, t587, t588, &
2690 t591, t595, t596, t6, t60, t603, t604, t605, t607, t608, t61, t612, t615, t620, t622, &
2691 t626, t628, t629, t63, t633, t634, t635, t638, t641, t644, t65, t650, t652, t656, t658, &
2692 t659, t660, t665, t67, t670, t671, t679, t68, t681, t685, t687, t689, t69, t692, t695, &
2693 t697, t699, t7, t70, t702, t705, t709, t71, t710, t714, t72, t723, t725, t727, t73, t733, &
2694 t736, t737, t739, t74, t740, t742, t747, t748, t75, t751, t752, t755, t756, t758, t759, &
2695 t760, t761, t767, t769, t77, t770, t78, t781, t783, t784, t788, t793
2696 REAL(kind=dp) :: t796, t8, t80, t802, t805, t809, t81, t813, t816, t819, t82, t822, t823, &
2697 t83, t830, t833, t839, t84, t85, t852, t860, t862, t87, t875, t88, t886, t9, t90, t903, &
2698 t91, t917, t919, t92, t920, t923, t928, t93, t930, t932, t933, t936, t938, t939, t94, &
2699 t943, t944, t947, t95, t950, t951, t953, t954, t956, t959, t96, t963, t966, t968, t97, &
2700 t972, t976, t979, t982, t985, t987, t988, t989, t99, t992
2701
2702 IF (order >= 0) THEN
2703 t1 = ndrho**2
2704 t2 = r2**2
2705 t3 = 0.1e1_dp/t2
2706 t4 = t1*t3
2707 t5 = pi**2
2708 t6 = r3*t5
2709 t7 = t6*rho
2710 t8 = t7**(0.1e1_dp/0.3e1_dp)
2711 t9 = t8**2
2712 t10 = 0.1e1_dp/t9
2713 t11 = t4*t10
2714 t12 = rho**2
2715 t13 = 0.1e1_dp/t12
2716 t14 = sscale**2
2717 t15 = t13*t14
2718 t16 = a1*t1
2719 t17 = t16*t3
2720 t18 = t10*t13
2721 t19 = t18*t14
2722 t21 = t1**2
2723 t22 = a2*t21
2724 t23 = t2**2
2725 t24 = 0.1e1_dp/t23
2726 t25 = t22*t24
2727 t27 = 0.1e1_dp/t8/t7
2728 t28 = t12**2
2729 t29 = 0.1e1_dp/t28
2730 t31 = t14**2
2731 t32 = t27*t29*t31
2732 t34 = t17*t19 + t25*t32
2733 t35 = a3*t21
2734 t36 = t35*t24
2735 t38 = t21*ndrho
2736 t39 = a4*t38
2737 t41 = 0.1e1_dp/t23/r2
2738 t42 = t39*t41
2739 t44 = 0.1e1_dp/t9/t7
2740 t46 = 0.1e1_dp/t28/rho
2741 t48 = t31*sscale
2742 t49 = t44*t46*t48
2743 t54 = 0.1e1_dp/t23/t2
2744 t55 = a5*t21*t1*t54
2745 t56 = r3**2
2746 t58 = t5**2
2747 t60 = 0.1e1_dp/t56/t58
2748 t61 = t28**2
2749 t63 = t31*t14
2750 t65 = t60/t61*t63
2751 t67 = r1 + t36*t32 + t42*t49 + t55*t65
2752 t68 = 0.1e1_dp/t67
2753 t69 = t34*t68
2754 t70 = t15*t69
2755 t71 = t11*t70
2756 t72 = omega**2
2757 t73 = beta*t72
2758 t74 = t73*t10
2759 t75 = t71 + t74
2760 t77 = 0.1e1_dp/a
2761 q = f94*t75*t77
2762 t78 = rho**(0.1e1_dp/0.3e1_dp)
2763 t80 = t78*rho*f89
2764 t81 = b*f12
2765 t82 = t71 + dd
2766 t83 = 0.1e1_dp/t82
2767 t84 = t81*t83
2768 t85 = f2*t34
2769 t87 = f1 + t85*t68
2770 t88 = t15*t87
2771 t90 = t11*t88 + r1
2772 t91 = f12*t90
2773 t92 = t82**2
2774 t93 = 0.1e1_dp/t92
2775 t94 = c*t93
2776 t95 = t91*t94
2777 t96 = g2*t1
2778 t97 = t96*t3
2779 t99 = g3*t21
2780 t100 = t99*t24
2781 t102 = g1 + t97*t19 + t100*t32
2782 t103 = t15*t102
2783 t105 = t11*t103 + r1
2784 t106 = t105*e
2785 t108 = 0.1e1_dp/t92/t82
2786 t109 = t106*t108
2787 t110 = f158*e
2788 t111 = t105*t83
2789 t112 = t72*t10
2790 t113 = t71 + dd + t112
2791 t114 = t113**2
2792 t115 = t114**2
2793 t116 = t115*t113
2794 t117 = sqrt(t116)
2795 t118 = 0.1e1_dp/t117
2796 t121 = sqrt(t113)
2797 t122 = 0.1e1_dp/t121
2798 t125 = f68*c
2799 t126 = t90*t83
2800 t127 = t114*t113
2801 t128 = sqrt(t127)
2802 t129 = 0.1e1_dp/t128
2803 t133 = (-t110*t111*t118 - t81*t83*t122 - t125*t126*t129) &
2804 *omega
2805 t134 = 0.1e1_dp/t8
2806 t136 = f52*e
2807 t137 = t105*t93
2808 t140 = f12*c
2809 t141 = t90*t93
2810 t145 = t72*omega
2811 t146 = (-t136*t137*t118 - t140*t141*t129)*t145
2812 t149 = 0.1e1_dp/r3/t5
2813 t151 = t149/rho
2814 t153 = t72**2
2815 t154 = t153*omega
2816 t155 = t118*t154
2817 t156 = t155*t44
2818 t158 = f12*a
2819 t159 = exei(q)
2820 t160 = t71 + dd + t74
2821 t161 = 0.1e1_dp/t160
2822 t163 = log(t75*t161)
2823 t166 = rootpi
2824 t167 = sqrt(t160)
2825 t171 = sqrt(a)
2826 t172 = t171*f34
2827 t173 = exer(q)
2828 t176 = (t158*t166/t167 - t172*t173)*alpha1
2829 t177 = omega*t134
2830 t182 = (t158*t161 - f98*t159)*alpha2
2831 t184 = a*f14
2832 t185 = t160**2
2833 t186 = t185*t160
2834 t187 = sqrt(t186)
2835 t190 = sqrt(t75)
2836 t191 = 0.1e1_dp/t190
2837 t196 = 0.1e1_dp/t171
2838 t200 = (t166*(t184/t187 - f98*t191) + f2716*t173*t196)* &
2839 alpha3*t145
2840 t202 = 0.1e1_dp/t75
2841 t204 = 0.1e1_dp/t185
2842 t206 = f8132*t77
2843 t209 = (-f98*t202 + t158*t204 + t206*t159)*alpha4
2844 t210 = t153*t27
2845 t213 = t75**2
2846 t214 = t213*t75
2847 t215 = sqrt(t214)
2848 t216 = 0.1e1_dp/t215
2849 t218 = f38*a
2850 t219 = t185**2
2851 t220 = t219*t160
2852 t221 = sqrt(t220)
2853 t226 = a**2
2854 t227 = t226*a
2855 t228 = sqrt(t227)
2856 t230 = f24364/t228
2857 t233 = (t166*(t206*t191 - f916*t216 + t218/t221) - t230*t173) &
2858 *alpha5
2859 t234 = t154*t44
2860 t236 = 0.1e1_dp/t186
2861 t238 = 0.1e1_dp/t213
2862 t239 = f98*t238
2863 t243 = f729128/t226
2864 t247 = t153*t72
2865 t248 = (a*t236 - t239 + t206*r1*t202 - t243*t159)*alpha6 &
2866 *t247
2867 t249 = t60*t13
2868 t251 = f1516*a
2869 t252 = t219*t186
2870 t253 = sqrt(t252)
2871 t256 = t213**2
2872 t257 = t256*t75
2873 t258 = sqrt(t257)
2874 t261 = f8164*t77
2875 t266 = t226**2
2876 t268 = sqrt(t266*a)
2877 t270 = f2187256/t268
2878 t273 = (t166*(t251/t253 - f2732/t258 + t261*t216 - t243*t191) &
2879 + t270*t173)*alpha7
2880 t274 = t153*t145
2881 t275 = t56*t58
2882 t276 = t275*t12
2883 t278 = 0.1e1_dp/t8/t276
2884 t279 = t274*t278
2885 t281 = r3*a
2886 t282 = 0.1e1_dp/t219
2887 t284 = 0.1e1_dp/t214
2888 t289 = f6561512/t227
2889 t292 = (t281*t282 - f94*t284 + t206*t238 - t243*t202 + t289 &
2890 *t159)*alpha8
2891 t293 = t153**2
2892 t295 = 0.1e1_dp/t9/t276
2893 t296 = t293*t295
2894 t298 = t84 + t95 + t109 + t133*t134 + t146*t151 - t109*t156 + &
2895 t158*(t159 + t163) + t176*t177 + t182*t112 + t200*t151 + &
2896 t209*t210 + t233*t234 + t248*t249 + t273*t279 + t292*t296
2897 t299 = t298*clda
2898 e_0 = e_0 + (-t80*t299)*sx
2899 END IF
2900 IF (order >= 1 .OR. order == -1) THEN
2901 t301 = t44*t13
2902 t302 = t4*t301
2903 t303 = t14*t34
2904 t305 = t68*r3*t5
2905 t306 = t303*t305
2906 t308 = 0.2e1_dp/0.3e1_dp*t302*t306
2907 t309 = t12*rho
2908 t310 = 0.1e1_dp/t309
2909 t311 = t310*t14
2910 t312 = t311*t69
2911 t314 = 2._dp*t11*t312
2912 t315 = t3*t44
2913 t316 = t16*t315
2914 t317 = t15*t6
2915 t320 = t10*t310
2916 t321 = t320*t14
2917 t324 = t24*t278
2918 t325 = t22*t324
2919 t326 = t29*t31
2920 t327 = t326*t6
2921 t331 = t27*t46*t31
2922 t334 = -0.2e1_dp/0.3e1_dp*t316*t317 - (2._dp*t17*t321) - 0.4e1_dp &
2923 /0.3e1_dp*t325*t327 - (4._dp*t25*t331)
2924 t335 = t334*t68
2925 t336 = t15*t335
2926 t337 = t11*t336
2927 t338 = t4*t18
2928 t339 = t67**2
2929 t340 = 0.1e1_dp/t339
2930 t341 = t35*t324
2931 t346 = t41*t295
2932 t347 = t39*t346
2933 t348 = t46*t48
2934 t349 = t348*t6
2935 t353 = 0.1e1_dp/t28/t12
2936 t355 = t44*t353*t48
2937 t361 = t60/t61/rho*t63
2938 t364 = -0.4e1_dp/0.3e1_dp*t341*t327 - (4._dp*t36*t331) - 0.5e1_dp &
2939 /0.3e1_dp*t347*t349 - (5._dp*t42*t355) - (8._dp*t55*t361)
2940 t365 = t340*t364
2941 t366 = t303*t365
2942 t367 = t338*t366
2943 t369 = t44*r3*t5
2944 t372 = -t308 - t314 + t337 - t367 - 0.2e1_dp/0.3e1_dp*t73*t369
2945 dqrho = f94*t372*t77
2946 t374 = ndrho*t3
2947 t375 = t374*t10
2948 t378 = a1*ndrho
2949 t379 = t378*t3
2950 t382 = t1*ndrho
2951 t383 = a2*t382
2952 t384 = t383*t24
2953 t387 = 2._dp*t379*t19 + 4._dp*t384*t32
2954 t388 = t387*t68
2955 t389 = t15*t388
2956 t391 = a3*t382
2957 t392 = t391*t24
2958 t395 = a4*t21
2959 t396 = t395*t41
2960 t400 = a5*t38*t54
2961 t403 = 4._dp*t392*t32 + 5._dp*t396*t49 + 6._dp*t400*t65
2962 t404 = t340*t403
2963 t405 = t303*t404
2964 t407 = 2._dp*t375*t70 + t11*t389 - t338*t405
2965 dqndrho = f94*t407*t77
2966 t409 = t78*f89
2967 t413 = t27*r3*t5
2968 t416 = t14*t102
2969 t417 = t416*t6
2970 t420 = t311*t102
2971 t423 = t96*t315
2972 t428 = t99*t324
2973 t433 = -0.2e1_dp/0.3e1_dp*t423*t317 - (2._dp*t97*t321) - 0.4e1_dp &
2974 /0.3e1_dp*t428*t327 - (4._dp*t100*t331)
2975 t434 = t15*t433
2976 t436 = -0.2e1_dp/0.3e1_dp*t302*t417 - (2._dp*t11*t420) + (t11 &
2977 *t434)
2978 t440 = t136*t105
2979 t441 = t108*t118
2980 t442 = -t308 - t314 + t337 - t367
2981 t443 = t441*t442
2982 t447 = 0.1e1_dp/t117/t116
2983 t448 = t93*t447
2984 t452 = -t308 - t314 + t337 - t367 - 0.2e1_dp/0.3e1_dp*t72*t44*t6
2985 t453 = t115*t452
2986 t454 = t448*t453
2987 t457 = t14*t87
2988 t458 = t457*t6
2989 t461 = t311*t87
2990 t464 = f2*t334
2991 t467 = t464*t68 - t85*t365
2992 t468 = t15*t467
2993 t470 = -0.2e1_dp/0.3e1_dp*t302*t458 - (2._dp*t11*t461) + (t11 &
2994 *t468)
2995 t474 = t140*t90
2996 t475 = t108*t129
2997 t476 = t475*t442
2998 t480 = 0.1e1_dp/t128/t127
2999 t481 = t93*t480
3000 t482 = t114*t452
3001 t483 = t481*t482
3002 t487 = (-t136*t436*t93*t118 + (2._dp*t440*t443) + 0.5e1_dp/ &
3003 0.2e1_dp*(t440)*(t454) - t140*t470*t93*t129 + (2._dp &
3004 *t474*t476) + 0.3e1_dp/0.2e1_dp*(t474)*(t483))*t145
3005 t489 = t209*t153
3006 t491 = t278*r3*t5
3007 t496 = t166/t167/t160
3008 t500 = dexerrho(q, dqrho)
3009 t503 = (-t158*t496*t372/0.2e1_dp - t172*t500)*alpha1
3010 t505 = t106*t441
3011 t506 = t154*t295
3012 t507 = t506*t6
3013 t510 = f12*t470
3014 t512 = t92**2
3015 t513 = 0.1e1_dp/t512
3016 t514 = t106*t513
3017 t516 = t155*t44*t442
3018 t519 = t149*t13
3019 t522 = 0.1e1_dp/t253/t252
3020 t523 = t219*t185
3021 t524 = t522*t523
3022 t530 = f2732/t258/t257
3023 t531 = t256*t372
3024 t535 = 0.1e1_dp/t215/t214
3025 t536 = t535*t213
3026 t541 = 0.1e1_dp/t190/t75
3027 t542 = t541*t372
3028 t549 = (t166*(-0.7e1_dp/0.2e1_dp*t251*t524*t372 + 0.5e1_dp/0.2e1_dp &
3029 *t530*t531 - 0.3e1_dp/0.2e1_dp*t261*t536*t372 + t243*t542 &
3030 /0.2e1_dp) + t270*t500)*alpha7
3031 t551 = c*t108
3032 t552 = t551*t442
3033 t558 = t436*e
3034 t559 = t558*t108
3035 t561 = 0.1e1_dp/t220
3036 t565 = 0.1e1_dp/t256
3037 t566 = f94*t565
3038 t569 = t284*t372
3039 t574 = dexeirho(q, dqrho)
3040 t577 = (-4._dp*t281*t561*t372 + 3._dp*t566*t372 - 2._dp*t206*t569 &
3041 + t243*t238*t372 + t289*t574)*alpha8
3042 t579 = -t133*t413/0.3e1_dp + t487*t151 - 0.4e1_dp/0.3e1_dp*t489* &
3043 t491 + t503*t177 + 0.5e1_dp/0.3e1_dp*t505*t507 + t510*t94 + (3._dp &
3044 *t514*t516) - t146*t519 + t549*t279 - (2._dp*t91*t552) &
3045 - t81*t93*t442 - t200*t519 - t559*t156 + t577*t296 &
3046 + t559
3047 t583 = t110*t105
3048 t584 = t93*t118
3049 t585 = t584*t442
3050 t587 = t83*t447
3051 t588 = t587*t453
3052 t591 = t93*t122
3053 t595 = 0.1e1_dp/t121/t113
3054 t596 = t83*t595
3055 t603 = t125*t90
3056 t604 = t93*t129
3057 t605 = t604*t442
3058 t607 = t83*t480
3059 t608 = t607*t482
3060 t612 = (-t110*t436*t83*t118 + t583*t585 + 0.5e1_dp/0.2e1_dp*t583 &
3061 *t588 + t81*t591*t442 + t81*t596*t452/0.2e1_dp - t125 &
3062 *t470*t83*t129 + t603*t605 + 0.3e1_dp/0.2e1_dp*t603*t608)* &
3063 omega
3064 t615 = t236*t372
3065 t620 = (t239*t372 - 2._dp*t158*t615 + t206*t574)*alpha4
3066 t622 = t513*t442
3067 t626 = t75*t204
3068 t628 = t372*t161 - t626*t372
3069 t629 = t628*t202
3070 t633 = t233*t154
3071 t634 = t295*r3
3072 t635 = t634*t5
3073 t638 = a*t282
3074 t641 = f98*t284
3075 t644 = r1*t238
3076 t650 = (-3._dp*t638*t372 + 2._dp*t641*t372 - t206*t644*t372 - t243 &
3077 *t574)*alpha6*t247
3078 t652 = t204*t372
3079 t656 = (-t158*t652 - f98*t574)*alpha2
3080 t658 = t108*t447
3081 t659 = t106*t658
3082 t660 = t234*t453
3083 t665 = f916*t535
3084 t670 = 0.1e1_dp/t221/t220
3085 t671 = t670*t219
3086 t679 = (t166*(-t206*t542/0.2e1_dp + 0.3e1_dp/0.2e1_dp*t665*t213 &
3087 *t372 - 0.5e1_dp/0.2e1_dp*t218*t671*t372) - t230*t500)*alpha5
3088 t681 = t292*t293
3089 t685 = t56*r3*t58*t5*t309
3090 t687 = 0.1e1_dp/t9/t685
3091 t689 = t687*r3*t5
3092 t692 = t60*t310
3093 t695 = t273*t274
3094 t697 = 0.1e1_dp/t8/t685
3095 t699 = t697*r3*t5
3096 t702 = t176*omega
3097 t705 = t182*t72
3098 t709 = 0.1e1_dp/t187/t186
3099 t710 = t709*t185
3100 t714 = f98*t541
3101 t723 = (t166*(-0.3e1_dp/0.2e1_dp*t184*t710*t372 + t714*t372/ &
3102 0.2e1_dp) + f2716*t500*t196)*alpha3*t145
3103 t725 = t612*t134 + t620*t210 - (3._dp*t106*t622) + t158*(t574 &
3104 + t629*t160) - 0.5e1_dp/0.3e1_dp*t633*t635 + t650*t249 + &
3105 t656*t112 + 0.5e1_dp/0.2e1_dp*t659*t660 + t679*t234 - 0.8e1_dp/ &
3106 0.3e1_dp*t681*t689 - (2._dp*t248*t692) - 0.7e1_dp/0.3e1_dp*t695 &
3107 *t699 - t702*t413/0.3e1_dp - 0.2e1_dp/0.3e1_dp*t705*t369 + t723 &
3108 *t151
3109 t727 = (t579 + t725)*clda
3110 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t409*t299 - t80*t727)*sx
3111 t733 = f2*t387
3112 t736 = t733*t68 - t85*t404
3113 t737 = t15*t736
3114 t739 = 2._dp*t375*t88 + t11*t737
3115 t740 = f12*t739
3116 t742 = t551*t407
3117 t747 = g2*ndrho
3118 t748 = t747*t3
3119 t751 = g3*t382
3120 t752 = t751*t24
3121 t755 = 2._dp*t748*t19 + 4._dp*t752*t32
3122 t756 = t15*t755
3123 t758 = 2._dp*t375*t103 + t11*t756
3124 t759 = t758*e
3125 t760 = t759*t108
3126 t761 = t513*t407
3127 t767 = t584*t407
3128 t769 = t115*t407
3129 t770 = t587*t769
3130 t781 = t604*t407
3131 t783 = t114*t407
3132 t784 = t607*t783
3133 t788 = (-t110*t758*t83*t118 + t583*t767 + 0.5e1_dp/0.2e1_dp*t583 &
3134 *t770 + t81*t591*t407 + t81*t596*t407/0.2e1_dp - t125 &
3135 *t739*t83*t129 + t603*t781 + 0.3e1_dp/0.2e1_dp*t603*t784)* &
3136 omega
3137 t793 = t441*t407
3138 t796 = t448*t769
3139 t802 = t475*t407
3140 t805 = t481*t783
3141 t809 = (-t136*t758*t93*t118 + (2._dp*t440*t793) + 0.5e1_dp/ &
3142 0.2e1_dp*(t440)*(t796) - t140*t739*t93*t129 + (2._dp &
3143 *t474*t802) + 0.3e1_dp/0.2e1_dp*(t474)*(t805))*t145
3144 t813 = t155*t44*t407
3145 t816 = t234*t769
3146 t819 = dexeindrho(q, dqndrho)
3147 t822 = t407*t161 - t626*t407
3148 t823 = t822*t202
3149 t830 = dexerndrho(q, dqndrho)
3150 t833 = (-t158*t496*t407/0.2e1_dp - t172*t830)*alpha1
3151 t839 = (-t158*t204*t407 - f98*t819)*alpha2
3152 t852 = (t166*(-0.3e1_dp/0.2e1_dp*t184*t710*t407 + t714*t407/ &
3153 0.2e1_dp) + f2716*t830*t196)*alpha3*t145
3154 t860 = (t239*t407 - 2._dp*t158*t236*t407 + t206*t819)*alpha4
3155 t862 = t541*t407
3156 t875 = (t166*(-t206*t862/0.2e1_dp + 0.3e1_dp/0.2e1_dp*t665*t213 &
3157 *t407 - 0.5e1_dp/0.2e1_dp*t218*t671*t407) - t230*t830)*alpha5
3158 t886 = (-3._dp*t638*t407 + 2._dp*t641*t407 - t206*t644*t407 - t243 &
3159 *t819)*alpha6*t247
3160 t903 = (t166*(-0.7e1_dp/0.2e1_dp*t251*t524*t407 + 0.5e1_dp/0.2e1_dp &
3161 *t530*t256*t407 - 0.3e1_dp/0.2e1_dp*t261*t536*t407 + t243 &
3162 *t862/0.2e1_dp) + t270*t830)*alpha7
3163 t917 = (-4._dp*t281*t561*t407 + 3._dp*t566*t407 - 2._dp*t206*t284 &
3164 *t407 + t243*t238*t407 + t289*t819)*alpha8
3165 t919 = -t81*t93*t407 + t740*t94 - (2._dp*t91*t742) + t760 &
3166 - (3._dp*t106*t761) + t788*t134 + t809*t151 - t760*t156 &
3167 + (3._dp*t514*t813) + 0.5e1_dp/0.2e1_dp*t659*t816 + t158*(t819 &
3168 + t823*t160) + t833*t177 + t839*t112 + t852*t151 + t860 &
3169 *t210 + t875*t234 + t886*t249 + t903*t279 + t917*t296
3170 t920 = t919*clda
3171 e_ndrho = e_ndrho + (-t80*t920)*sx
3172 END IF
3173 IF (order >= 2 .OR. order == -2) THEN
3174 t923 = t4*t295*t13
3175 t928 = 0.10e2_dp/0.9e1_dp*t923*t303*t68*t56*t58
3176 t930 = t4*t44*t310
3177 t932 = 0.8e1_dp/0.3e1_dp*t930*t306
3178 t933 = t14*t334
3179 t936 = 0.4e1_dp/0.3e1_dp*t302*t933*t305
3180 t938 = t4*t301*t14
3181 t939 = t34*t340
3182 t943 = 0.4e1_dp/0.3e1_dp*t938*t939*t6*t364
3183 t944 = t29*t14
3184 t947 = 6._dp*t11*t944*t69
3185 t950 = 4._dp*t11*t311*t335
3186 t951 = t4*t320
3187 t953 = 4._dp*t951*t366
3188 t954 = t3*t295
3189 t956 = t15*t275
3190 t959 = t311*t6
3191 t963 = t10*t29*t14
3192 t966 = t24*t697
3193 t968 = t326*t275
3194 t972 = t46*t31*t6
3195 t976 = t27*t353*t31
3196 t979 = 0.10e2_dp/0.9e1_dp*t16*t954*t956 + 0.8e1_dp/0.3e1_dp*t316* &
3197 t959 + (6._dp*t17*t963) + 0.28e2_dp/0.9e1_dp*t22*t966*t968 + &
3198 0.32e2_dp/0.3e1_dp*t325*t972 + (20._dp*t25*t976)
3199 t982 = t11*t15*t979*t68
3200 t985 = 2._dp*t338*t933*t365
3201 t987 = 0.1e1_dp/t339/t67
3202 t988 = t364**2
3203 t989 = t987*t988
3204 t992 = 2._dp*t338*t303*t989
3205 t1022 = t340*(0.28e2_dp/0.9e1_dp*t35*t966*t968 + 0.32e2_dp/0.3e1_dp &
3206 *t341*t972 + (20._dp*t36*t976) + 0.40e2_dp/0.9e1_dp*t39*t41 &
3207 *t687*t348*t275 + 0.50e2_dp/0.3e1_dp*t347*t353*t48*t6 + &
3208 0.30e2_dp*t42*t44/t28/t309*t48 + (72._dp*t55*t60/t61 &
3209 /t12*t63))
3210 t1024 = t338*t303*t1022
3211 t1026 = t295*t56*t58
3212 t1029 = t928 + t932 - t936 + t943 + t947 - t950 + t953 + t982 - t985 &
3213 + t992 - t1024 + 0.10e2_dp/0.9e1_dp*t73*t1026
3214 d2qrhorho = f94*t1029*t77
3215 t1031 = t374*t301
3216 t1034 = t14*t387
3217 t1061 = -0.4e1_dp/0.3e1_dp*t378*t315*t317 - (4._dp*t379*t321) &
3218 - 0.16e2_dp/0.3e1_dp*t383*t324*t327 - (16._dp*t384*t331)
3219 t1067 = t374*t18
3220 t1073 = t987*t364*t403
3221 t1090 = t340*(-0.16e2_dp/0.3e1_dp*t391*t324*t327 - (16._dp*t392 &
3222 *t331) - 0.25e2_dp/0.3e1_dp*t395*t346*t349 - (25._dp*t396 &
3223 *t355) - (48._dp*t400*t361))
3224 t1093 = -0.4e1_dp/0.3e1_dp*t1031*t306 - 0.2e1_dp/0.3e1_dp*t302*t1034 &
3225 *t305 + 0.2e1_dp/0.3e1_dp*t938*t939*t6*t403 - (4._dp*t375 &
3226 *t312) - (2._dp*t11*t311*t388) + (2._dp*t951*t405) + (2._dp &
3227 *t375*t336) + (t11*t15*t1061*t68) - t338*t933 &
3228 *t404 - (2._dp*t1067*t366) - t338*t1034*t365 + 0.2e1_dp*t338 &
3229 *t303*t1073 - t338*t303*t1090
3230 d2qrhondrho = f94*t1093*t77
3231 t1095 = t3*t10
3232 t1111 = 2._dp*a1*t3*t19 + 12._dp*a2*t1*t24*t32
3233 t1118 = t403**2
3234 t1119 = t987*t1118
3235 t1136 = t340*(12._dp*a3*t1*t24*t32 + 20._dp*a4*t382*t41*t49 &
3236 + 30._dp*a5*t21*t54*t65)
3237 t1139 = 2._dp*t1095*t13*t303*t68 + 4._dp*t375*t389 - 4._dp*t1067 &
3238 *t405 + t11*t15*t1111*t68 - 2._dp*t338*t1034*t404 + 2._dp*t338 &
3239 *t303*t1119 - t338*t303*t1136
3240 d2qndrhondrho = f94*t1139*t77
3241 t1141 = t78**2
3242 t1149 = 0.1e1_dp/t512/t82
3243 t1150 = t106*t1149
3244 t1151 = t442**2
3245 t1157 = 0.1e1_dp/t190/t213
3246 t1158 = t372**2
3247 t1159 = t1157*t1158
3248 t1162 = t541*t1029
3249 t1167 = 0.1e1_dp/t215/t256/t213
3250 t1168 = f916*t1167
3251 t1178 = t219**2
3252 t1181 = 0.1e1_dp/t221/t1178/t185
3253 t1182 = t1181*t1178
3254 t1186 = t670*t186
3255 t1195 = d2exerrhorho(q, dqrho, d2qrhorho)
3256 t1239 = 0.10e2_dp/0.9e1_dp*t923*t416*t275 + 0.8e1_dp/0.3e1_dp*t930 &
3257 *t417 - 0.4e1_dp/0.3e1_dp*t302*t14*t433*t6 + (6._dp*t11*t944 &
3258 *t102) - 0.4e1_dp*(t11)*t311*t433 + (t11)*t15* &
3259 (0.10e2_dp/0.9e1_dp*t96*t954*t956 + 0.8e1_dp/0.3e1_dp*t423*t959 &
3260 + (6._dp*t97*t963) + 0.28e2_dp/0.9e1_dp*t99*t966*t968 + 0.32e2_dp &
3261 /0.3e1_dp*t428*t972 + (20._dp*t100*t976))
3262 t1241 = t1239*e*t108
3263 t1243 = t278*t56*t58
3264 t1251 = t136*t436
3265 t1256 = t513*t118
3266 t1261 = t136*t105*t108
3267 t1262 = t447*t442
3268 t1263 = t1262*t453
3269 t1266 = t928 + t932 - t936 + t943 + t947 - t950 + t953 + t982 - t985 &
3270 + t992 - t1024
3271 t1270 = t115**2
3272 t1273 = 0.1e1_dp/t117/t1270/t114
3273 t1274 = t93*t1273
3274 t1275 = t452**2
3275 t1276 = t1270*t1275
3276 t1280 = t127*t1275
3277 t1287 = t928 + t932 - t936 + t943 + t947 - t950 + t953 + t982 - t985 &
3278 + t992 - t1024 + 0.10e2_dp/0.9e1_dp*t72*t295*t275
3279 t1288 = t115*t1287
3280 t1317 = 0.10e2_dp/0.9e1_dp*t923*t457*t275 + 0.8e1_dp/0.3e1_dp*t930 &
3281 *t458 - 0.4e1_dp/0.3e1_dp*t302*t14*t467*t6 + (6._dp*t11*t944 &
3282 *t87) - 0.4e1_dp*(t11)*t311*t467 + (t11*t15*(f2 &
3283 *t979*t68 - 2._dp*t464*t365 + 2._dp*t85*t989 - t85*t1022))
3284 t1321 = t140*t470
3285 t1326 = t513*t129
3286 t1331 = t140*t90*t108
3287 t1332 = t480*t442
3288 t1333 = t1332*t482
3289 t1341 = 0.1e1_dp/t128/t115/t114
3290 t1342 = t93*t1341
3291 t1343 = t115*t1275
3292 t1347 = t113*t1275
3293 t1351 = t114*t1287
3294 t1355 = -t136*t1239*t93*t118 + (4._dp*t1251*t443) + (5._dp &
3295 *t1251*t454) - (6._dp*t440*t1256*t1151) - (10._dp*t1261 &
3296 *t1263) + (2._dp*t440*t441*t1266) - 0.75e2_dp/0.4e1_dp*(t440) &
3297 *(t1274)*(t1276) + (10._dp*t440*t448*t1280) &
3298 + 0.5e1_dp/0.2e1_dp*(t440)*(t448)*(t1288) - t140 &
3299 *t1317*t93*t129 + (4._dp*t1321*t476) + (3._dp*t1321*t483) &
3300 - (6._dp*t474*t1326*t1151) - (6._dp*t1331*t1333) + &
3301 (2._dp*t474*t475*t1266) - 0.27e2_dp/0.4e1_dp*(t474)*(t1342) &
3302 *(t1343) + (3._dp*t474*t481*t1347) + 0.3e1_dp/0.2e1_dp &
3303 *(t474)*(t481)*(t1351)
3304 t1362 = t106*t658*t154
3305 t1374 = d2exeirhorho(q, dqrho, d2qrhorho)
3306 t1379 = t558*t658
3307 t1382 = t56**2
3308 t1383 = t58**2
3309 t1385 = t1382*t1383*t28
3310 t1392 = -(12._dp*t1150*t155*t44*t1151) + (t166*(0.3e1_dp/0.4e1_dp &
3311 *t206*t1159 - t206*t1162/0.2e1_dp - 0.27e2_dp/0.4e1_dp*t1168 &
3312 *t256*t1158 + 0.3e1_dp*t665*t75*t1158 + 0.3e1_dp/0.2e1_dp*t665 &
3313 *t213*t1029 + 0.75e2_dp/0.4e1_dp*t218*t1182*t1158 - 0.10e2_dp &
3314 *t218*t1186*t1158 - 0.5e1_dp/0.2e1_dp*t218*t671*t1029) - t230 &
3315 *t1195)*alpha5*t234 + 0.28e2_dp/0.9e1_dp*t489*t697*t56 &
3316 *t58 + 0.10e2_dp/0.3e1_dp*t558*t441*t507 + t1241 + 0.4e1_dp/0.9e1_dp &
3317 *t702*t1243 + 0.4e1_dp/0.9e1_dp*t133*t1243 + t1355*t145*t151 &
3318 - (2._dp*t91*t551*t1266) - 0.25e2_dp/0.3e1_dp*t1362*t295 &
3319 *t115*t452*r3*t5 + (0.2e1_dp*t158*t236*t1158 - t158*t204 &
3320 *t1029 - f98*t1374)*alpha2*t112 + (5._dp*t1379*t660) &
3321 + 0.70e2_dp/0.9e1_dp*t695/t8/t1385*t56*t58
3322 t1397 = t106*t108*t1273
3323 t1407 = t110*t436
3324 t1417 = t110*t137
3325 t1426 = t83*t1273
3326 t1430 = t108*t122
3327 t1434 = t81*t93
3328 t1435 = t595*t442
3329 t1438 = -t110*t1239*t83*t118 + (2._dp*t1407*t585) + (5._dp &
3330 *t1407*t588) - (2._dp*t583*t441*t1151) + (t583*t584 &
3331 *t1266) - (5._dp*t1417*t1263) + (10._dp*t583*t587*t1280) &
3332 + 0.5e1_dp/0.2e1_dp*(t583)*(t587)*(t1288) - 0.75e2_dp &
3333 /0.4e1_dp*(t583)*(t1426)*(t1276) - (2._dp*t81 &
3334 *t1430*t1151) - t1434*t1435*t452
3335 t1442 = 0.1e1_dp/t121/t114
3336 t1443 = t83*t1442
3337 t1453 = t125*t470
3338 t1469 = t83*t1341
3339 t1473 = t125*t141
3340 t1476 = t81*t591*(t1266) - 0.3e1_dp/0.4e1_dp*t81*t1443*t1275 &
3341 + t81*t596*t1287/0.2e1_dp - t125*t1317*t83*t129 + (2._dp &
3342 *t1453*t605) + (3._dp*t1453*t608) - (2._dp*t603*t475 &
3343 *t1151) + (t603*t604*t1266) + (3._dp*t603*t607*t1347) &
3344 + 0.3e1_dp/0.2e1_dp*(t603)*(t607)*(t1351) - 0.27e2_dp &
3345 /0.4e1_dp*(t603)*(t1469)*(t1343) - (3._dp*t1473 &
3346 *t1333)
3347 t1517 = -0.16e2_dp/0.3e1_dp*t577*t293*t689 - 0.75e2_dp/0.4e1_dp*t1397 &
3348 *t234*t1276 + 0.5e1_dp/0.2e1_dp*t659*t234*t1288 + (t1438 + &
3349 t1476)*omega*t134 + f12*t1317*t94 - (4._dp*t650*t692) &
3350 - 0.14e2_dp/0.3e1_dp*t549*t274*t699 + (12._dp*t106*t1149* &
3351 t1151) - (3._dp*t106*t513*t1266) - 0.40e2_dp/0.9e1_dp*t505*t154 &
3352 *t687*t275 + ((-2._dp*t641*t1158 + t239*t1029 + 6._dp*t158 &
3353 *t282*t1158 - 2._dp*t158*t236*t1029 + t206*t1374)*alpha4 &
3354 *t210) - (6._dp*t558*t622) + (6._dp*t248*t60*t29) - &
3355 (4._dp*t510*t552)
3356 t1519 = t149*t310
3357 t1538 = t75*t236
3358 t1545 = t628*t238
3359 t1546 = t160*t372
3360 t1552 = 0.1e1_dp/t167/t185
3361 t1553 = t166*t1552
3362 t1577 = (2._dp*t146*t1519) - (2._dp*t723*t519) + 0.10e2_dp/0.9e1_dp &
3363 *t705*t1026 - t1241*t156 - 0.10e2_dp/0.3e1_dp*t679*t154 &
3364 *t635 - 0.2e1_dp/0.3e1_dp*t503*omega*t413 + (2._dp*t200*t1519) &
3365 + (t158*(t1374 + (t1029*t161 - 2._dp*t1158*t204 + 2._dp* &
3366 t1538*t1158 - t626*t1029)*t202*t160 - t1545*t1546 + t629 &
3367 *t372)) + (0.3e1_dp/0.4e1_dp*(t158)*(t1553)*(t1158) &
3368 - (t158*t496*t1029)/0.2e1_dp - t172*t1195)*alpha1*t177 &
3369 - 0.8e1_dp/0.3e1_dp*t620*t153*t491 - t81*t93*t1266 - 0.2e1_dp &
3370 /0.3e1_dp*t612*t413 + 0.88e2_dp/0.9e1_dp*t681/t9/t1385*t56 &
3371 *t58
3372 t1584 = a*t561
3373 t1589 = f98*t565
3374 t1594 = r1*t284
3375 t1613 = 0.1e1_dp/t253/t1178/t523
3376 t1614 = t1178*t219
3377 t1615 = t1613*t1614
3378 t1619 = t522*t220
3379 t1626 = t256**2
3380 t1630 = f2732/t258/t1626/t213
3381 t1640 = t1167*t256
3382 t1644 = t535*t75
3383 t1655 = 0.147e3_dp/0.4e1_dp*t251*t1615*t1158 - 0.21e2_dp*t251*t1619 &
3384 *t1158 - 0.7e1_dp/0.2e1_dp*t251*t524*t1029 - 0.75e2_dp/0.4e1_dp &
3385 *t1630*t1626*t1158 + 0.10e2_dp*t530*t214*t1158 + 0.5e1_dp/ &
3386 0.2e1_dp*t530*t256*t1029 + 0.27e2_dp/0.4e1_dp*t261*t1640*t1158 &
3387 - 0.3e1_dp*t261*t1644*t1158 - 0.3e1_dp/0.2e1_dp*t261*t536*t1029 &
3388 - 0.3e1_dp/0.4e1_dp*t243*t1159 + t243*t1162/0.2e1_dp
3389 t1661 = c*t513
3390 t1666 = 0.1e1_dp/t187/t523
3391 t1667 = t1666*t219
3392 t1671 = t709*t160
3393 t1678 = f98*t1157
3394 t1691 = 0.1e1_dp/t523
3395 t1699 = f94/t257
3396 t1726 = t106*t1256
3397 t1732 = t558*t513
3398 t1736 = t106*t513*t447
3399 t1737 = t442*t115
3400 t1742 = -(2._dp*t487*t519) + 0.40e2_dp/0.9e1_dp*t633*t687*t56 &
3401 *t58 + ((12._dp*t1584*t1158 - 3._dp*t638*t1029 - 6._dp*t1589* &
3402 t1158 + 2._dp*t641*t1029 + 2._dp*t206*t1594*t1158 - t206*t644 &
3403 *t1029 - t243*t1374)*alpha6*t247*t249) - 0.4e1_dp/0.3e1_dp* &
3404 t656*t72*t369 + (2._dp*t81*t108*t1151) + (t166*t1655 &
3405 + t270*t1195)*alpha7*t279 + (6._dp*t91*t1661*t1151) + &
3406 (t166*(0.27e2_dp/0.4e1_dp*(t184)*(t1667)*(t1158) - &
3407 (3._dp*t184*t1671*t1158) - 0.3e1_dp/0.2e1_dp*(t184)*(t710) &
3408 *(t1029) - 0.3e1_dp/0.4e1_dp*(t1678)*(t1158) &
3409 + (t714*t1029)/0.2e1_dp) + f2716*t1195*t196)*alpha3*t145 &
3410 *t151 + ((20._dp*t281*t1691*t1158 - 4._dp*t281*t561*t1029 &
3411 - 12._dp*t1699*t1158 + 3._dp*t566*t1029 + 6._dp*t206*t565*t1158 &
3412 - 2._dp*t206*t284*t1029 - 2._dp*t243*t284*t1158 + t243* &
3413 t238*t1029 + t289*t1374)*alpha8*t296) + (10._dp*t659*t234 &
3414 *t1280) + (3._dp*t514*t155*t44*t1266) - (10._dp*t1726 &
3415 *t506*t442*r3*t5) + (6._dp*t1732*t516) - (15._dp*t1736 &
3416 *t234*t1737*t452)
3417 e_rho_rho = e_rho_rho + (-0.4e1_dp/0.9e1_dp/t1141*f89*t299 - 0.8e1_dp/0.3e1_dp*t409* &
3418 t727 - t80*(t1392 + t1517 + t1577 + t1742)*clda)*sx
3419 t1756 = t372*t407
3420 t1768 = t569*t407
3421 t1773 = d2exeirhondrho(q, dqrho, dqndrho, d2qrhondrho)
3422 t1785 = t1157*t372*t407
3423 t1788 = t541*t1093
3424 t1791 = t531*t407
3425 t1795 = t75*t372*t407
3426 t1816 = d2exerrhondrho(q, dqrho, dqndrho, d2qrhondrho)
3427 t1824 = t759*t658
3428 t1841 = t442*t407
3429 t1850 = ((20._dp*t281*t1691*t372*t407 - 4._dp*t281*t561*t1093 &
3430 - 12._dp*t1699*t1756 + 3._dp*t566*t1093 + 6._dp*t206*t565*t372 &
3431 *t407 - 2._dp*t206*t284*t1093 - 2._dp*t243*t1768 + t243*t238 &
3432 *t1093 + t289*t1773)*alpha8*t296) - t833*omega*t413 &
3433 /0.3e1_dp - 0.2e1_dp/0.3e1_dp*t839*t72*t369 + (t166*(0.3e1_dp/0.4e1_dp &
3434 *(t206)*(t1785) - (t206*t1788)/0.2e1_dp - 0.27e2_dp &
3435 /0.4e1_dp*t1168*t1791 + (3._dp*t665*t1795) + 0.3e1_dp/0.2e1_dp &
3436 *(t665)*(t213)*(t1093) + 0.75e2_dp/0.4e1_dp*(t218) &
3437 *(t1181)*(t1178)*(t372)*(t407) - (10._dp &
3438 *t218*t670*t186*t372*t407) - 0.5e1_dp/0.2e1_dp*(t218) &
3439 *(t671)*(t1093)) - t230*t1816)*alpha5*t234 - (3._dp &
3440 *t106*t513*t1093) + 0.5e1_dp/0.2e1_dp*t1824*t660 - (2._dp &
3441 *t740*t552) - 0.8e1_dp/0.3e1_dp*t917*t293*t689 - 0.7e1_dp/0.3e1_dp &
3442 *t903*t274*t699 - 0.15e2_dp/0.2e1_dp*t1736*t234*t453* &
3443 (t407) - 0.12e2_dp*(t106)*t1149*t118*t234*t1841 + &
3444 0.10e2_dp*t659*t234*t127*t452*(t407)
3445 t1885 = t160*t407
3446 t1938 = -0.5e1_dp/0.3e1_dp*t875*t154*t635 + ((12._dp*t1584*t1756 &
3447 - 3._dp*t638*t1093 - 6._dp*t1589*t1756 + 2._dp*t641*t1093 + 2._dp &
3448 *t206*r1*t1768 - t206*t644*t1093 - t243*t1773)*alpha6 &
3449 *t247*t249) - (2._dp*t510*t742) - (t81*t93*t1093) &
3450 + (t158*(t1773 + (t1093*t161 - 2._dp*t652*t407 + 2._dp*t1538 &
3451 *t1756 - t626*t1093)*t202*t160 - t1545*t1885 + t629*t407)) &
3452 + (0.3e1_dp/0.4e1_dp*(t158)*(t166)*(t1552)*(t372) &
3453 *(t407) - (t158*t496*t1093)/0.2e1_dp - t172* &
3454 t1816)*alpha1*t177 - (3._dp*t759*t622) - 0.15e2_dp/0.2e1_dp* &
3455 (t1736)*(t234)*(t1737)*(t407) + (3._dp*t514 &
3456 *t155*t44*t1093) + ((2._dp*t158*t615*t407 - t158*t204 &
3457 *t1093 - f98*t1773)*alpha2*t112) + ((-2._dp*t641*t1756 &
3458 + t239*t1093 + 6._dp*t158*t282*t372*t407 - 2._dp*t158*t236 &
3459 *t1093 + t206*t1773)*alpha4*t210) + (6._dp*t474*t622 &
3460 *t407)
3461 t1946 = t115*t1093
3462 t1976 = -0.4e1_dp/0.3e1_dp*t1031*t417 - 0.2e1_dp/0.3e1_dp*t302*t14 &
3463 *t755*t6 - (4._dp*t375*t420) - 0.2e1_dp*t11*t311*t755 + &
3464 (2._dp*t375*t434) + t11*t15*(-0.4e1_dp/0.3e1_dp*t747*t315 &
3465 *t317 - (4._dp*t748*t321) - 0.16e2_dp/0.3e1_dp*t751*t324*t327 &
3466 - (16._dp*t752*t331))
3467 t1978 = t1976*e*t108
3468 t2018 = 0.147e3_dp/0.4e1_dp*t251*t1613*t1614*t372*t407 - 0.21e2_dp &
3469 *t251*t522*t220*t372*t407 - 0.7e1_dp/0.2e1_dp*t251*t524 &
3470 *t1093 - 0.75e2_dp/0.4e1_dp*t1630*t1626*t372*t407 + 0.10e2_dp &
3471 *t530*t214*t372*t407 + 0.5e1_dp/0.2e1_dp*t530*t256*t1093 &
3472 + 0.27e2_dp/0.4e1_dp*t261*t1167*t1791 - 0.3e1_dp*t261*t535*t1795 &
3473 - 0.3e1_dp/0.2e1_dp*t261*t536*t1093 - 0.3e1_dp/0.4e1_dp*t243* &
3474 t1785 + t243*t1788/0.2e1_dp
3475 t2053 = -0.4e1_dp/0.3e1_dp*t1031*t458 - 0.2e1_dp/0.3e1_dp*t302*t14 &
3476 *t736*t6 - (4._dp*t375*t461) - 0.2e1_dp*t11*t311*t736 + &
3477 (2._dp*t375*t468) + t11*t15*(f2*t1061*t68 - t464* &
3478 t404 - t733*t365 + 2._dp*t85*t1073 - t85*t1090)
3479 t2056 = -(3._dp*t558*t761) - (2._dp*t91*t551*t1093) - t809 &
3480 *t519 + 0.5e1_dp/0.2e1_dp*t659*t234*t1946 + t1978 + 0.5e1_dp/0.2e1_dp &
3481 *t1379*t816 + (t166*t2018 + t270*t1816)*alpha7*t279 &
3482 - (2._dp*t886*t692) + (3._dp*t1732*t813) - t1978*t156 &
3483 - t852*t519 + f12*t2053*t94
3484 t2060 = t759*t513
3485 t2066 = t1262*t769
3486 t2069 = t125*t126
3487 t2071 = t452*t407
3488 t2072 = t480*t113*t2071
3489 t2076 = t447*t115*t2071
3490 t2084 = t110*t111
3491 t2086 = t1273*t1270*t2071
3492 t2090 = t480*t114*t2071
3493 t2099 = t447*t127*t2071
3494 t2105 = t125*t739
3495 t2111 = t114*t1093
3496 t2115 = -0.5e1_dp/0.2e1_dp*t1417*t2066 + (3._dp*t2069*t2072) - &
3497 0.5e1_dp/0.2e1_dp*t1417*t2076 - (2._dp*t603*t475*t1841) + (t603 &
3498 *t604*t1093) - 0.75e2_dp/0.4e1_dp*t2084*t2086 - 0.3e1_dp/ &
3499 0.2e1_dp*t1473*t2090 - (2._dp*t583*t441*t1841) + (t583 &
3500 *t584*t1093) + 0.10e2_dp*t2084*t2099 + 0.5e1_dp/0.2e1_dp*(t583) &
3501 *(t587)*(t1946) + 0.3e1_dp/0.2e1_dp*t2105*t608 + 0.3e1_dp &
3502 /0.2e1_dp*t1453*t784 + t2105*t605 + 0.3e1_dp/0.2e1_dp*(t603) &
3503 *(t607)*(t2111)
3504 t2133 = t110*t758
3505 t2136 = t1332*t783
3506 t2155 = t1341*t115*t2071
3507 t2158 = -t1434*t595*t452*t407/0.2e1_dp - t110*t1976*t83* &
3508 t118 + t1407*t767 - 0.2e1_dp*t81*t108*t122*t442*t407 - t125 &
3509 *t2053*t83*t129 + t1453*t781 + 0.5e1_dp/0.2e1_dp*t2133*t588 &
3510 - 0.3e1_dp/0.2e1_dp*t1473*t2136 - t1434*t1435*t407/0.2e1_dp &
3511 + t81*t591*t1093 + t81*t596*t1093/0.2e1_dp - 0.3e1_dp/0.4e1_dp &
3512 *t84*t1442*t452*t407 + 0.5e1_dp/0.2e1_dp*t1407*t770 + t2133 &
3513 *t585 - 0.27e2_dp/0.4e1_dp*t2069*t2155
3514 t2180 = t136*t758
3515 t2195 = t136*t137
3516 t2203 = -t136*t1976*t93*t118 + (2._dp*t1251*t793) + 0.5e1_dp &
3517 /0.2e1_dp*(t1251)*(t796) + (2._dp*t2180*t443) - (6._dp &
3518 *t440*t1256*t1841) - (5._dp*t1261*t2066) + (2._dp*t440 &
3519 *t441*t1093) + 0.5e1_dp/0.2e1_dp*(t2180)*(t454) - (5._dp &
3520 *t1261*t2076) - 0.75e2_dp/0.4e1_dp*t2195*t2086 + 0.10e2_dp* &
3521 t2195*t2099 + 0.5e1_dp/0.2e1_dp*(t440)*(t448)*(t1946)
3522 t2211 = t140*t739
3523 t2233 = -t140*t2053*t93*t129 + (2._dp*t1321*t802) + 0.3e1_dp &
3524 /0.2e1_dp*(t1321)*(t805) + (2._dp*t2211*t476) - (6._dp &
3525 *t474*t1326*t1841) - (3._dp*t1331*t2136) + (2._dp*t474 &
3526 *t475*t1093) + 0.3e1_dp/0.2e1_dp*(t2211)*(t483) - (3._dp &
3527 *t1331*t2090) - 0.27e2_dp/0.4e1_dp*t95*t2155 + 0.3e1_dp*t95 &
3528 *t2072 + 0.3e1_dp/0.2e1_dp*(t474)*(t481)*(t2111)
3529 t2274 = -0.4e1_dp/0.3e1_dp*t860*t153*t491 + (3._dp*t2060*t516) &
3530 + 0.5e1_dp/0.3e1_dp*t759*t441*t507 + (t2115 + t2158)*omega* &
3531 t134 + (12._dp*t106*t1149*t442*t407) - 0.75e2_dp/0.4e1_dp*(t1397) &
3532 *(t234)*(t1270)*(t452)*(t407) - &
3533 t788*t413/0.3e1_dp + (t2203 + t2233)*t145*t151 + (t166*(0.27e2_dp &
3534 /0.4e1_dp*(t184)*(t1666)*(t219)*(t372)* &
3535 (t407) - (3._dp*t184*t709*t1546*t407) - 0.3e1_dp/0.2e1_dp &
3536 *(t184)*(t710)*(t1093) - 0.3e1_dp/0.4e1_dp*t1678* &
3537 t1756 + (t714*t1093)/0.2e1_dp) + f2716*t1816*t196)*alpha3 &
3538 *t145*t151 - 0.25e2_dp/0.6e1_dp*(t1362)*(t634)*(t5) &
3539 *(t115)*(t407) + (2._dp*t81*t108*t442*t407) &
3540 - (5._dp*t1726*t506*t6*t407)
3541 e_ndrho_rho = e_ndrho_rho + (-0.4e1_dp/0.3e1_dp*t409*t920 - t80*(t1850 + t1938 + t2056 + &
3542 t2274)*clda)*sx
3543 t2279 = t407**2
3544 t2280 = t1157*t2279
3545 t2283 = t541*t1139
3546 t2306 = d2exerndrhondrho(q, dqndrho, d2qndrhondrho)
3547 t2316 = t127*t2279
3548 t2323 = t1270*t2279
3549 t2336 = d2exeindrhondrho(q, dqndrho, d2qndrhondrho)
3550 t2365 = 2._dp*t1095*t88 + 4._dp*t375*t737 + t11*t15*(f2*t1111 &
3551 *t68 - 2._dp*t733*t404 + 2._dp*t85*t1119 - t85*t1136)
3552 t2391 = (t166*(0.3e1_dp/0.4e1_dp*t206*t2280 - t206*t2283/0.2e1_dp &
3553 - 0.27e2_dp/0.4e1_dp*t1168*t256*t2279 + 0.3e1_dp*t665*t75*t2279 &
3554 + 0.3e1_dp/0.2e1_dp*t665*t213*t1139 + 0.75e2_dp/0.4e1_dp*t218 &
3555 *t1182*t2279 - 0.10e2_dp*t218*t1186*t2279 - 0.5e1_dp/0.2e1_dp* &
3556 t218*t671*t1139) - t230*t2306)*alpha5*t234 + (6._dp*t2060 &
3557 *t813) - 0.2e1_dp*t91*t551*t1139 + 0.10e2_dp*t659*t234* &
3558 t2316 + 0.6e1_dp*t91*t1661*t2279 - 0.75e2_dp/0.4e1_dp*t1397*t234 &
3559 *t2323 + (-0.2e1_dp*t641*t2279 + t239*t1139 + 0.6e1_dp*t158 &
3560 *t282*t2279 - 0.2e1_dp*t158*t236*t1139 + t206*t2336)*alpha4 &
3561 *t210 + 0.3e1_dp*t514*t155*t44*t1139 + (5._dp*t1824* &
3562 t816) - (4._dp*t740*t742) - t81*t93*t1139 + f12*t2365* &
3563 t94 - (6._dp*t759*t761) + 0.2e1_dp*t81*t108*t2279 + (0.12e2_dp &
3564 *t1584*t2279 - 0.3e1_dp*t638*t1139 - 0.6e1_dp*t1589*t2279 + &
3565 0.2e1_dp*t641*t1139 + 0.2e1_dp*t206*t1594*t2279 - t206*t644 &
3566 *t1139 - t243*t2336)*alpha6*t247*t249
3567 t2432 = 0.147e3_dp/0.4e1_dp*t251*t1615*t2279 - 0.21e2_dp*t251*t1619 &
3568 *t2279 - 0.7e1_dp/0.2e1_dp*t251*t524*t1139 - 0.75e2_dp/0.4e1_dp &
3569 *t1630*t1626*t2279 + 0.10e2_dp*t530*t214*t2279 + 0.5e1_dp/ &
3570 0.2e1_dp*t530*t256*t1139 + 0.27e2_dp/0.4e1_dp*t261*t1640*t2279 &
3571 - 0.3e1_dp*t261*t1644*t2279 - 0.3e1_dp/0.2e1_dp*t261*t536*t1139 &
3572 - 0.3e1_dp/0.4e1_dp*t243*t2280 + t243*t2283/0.2e1_dp
3573 t2452 = 2._dp*t1095*t103 + 4._dp*t375*t756 + t11*t15*(2._dp*g2* &
3574 t3*t19 + 12._dp*g3*t1*t24*t32)
3575 t2454 = t2452*e*t108
3576 t2473 = t2279*t115
3577 t2486 = t115*t1139
3578 t2501 = t2279*t114
3579 t2511 = t113*t2279
3580 t2515 = t114*t1139
3581 t2519 = -t136*t2452*t93*t118 + (4._dp*t2180*t793) + (5._dp &
3582 *t2180*t796) - (6._dp*t440*t1256*t2279) - (10._dp*t440 &
3583 *t658*t2473) + (2._dp*t440*t441*t1139) - 0.75e2_dp/0.4e1_dp &
3584 *(t440)*(t1274)*(t2323) + (10._dp*t440*t448 &
3585 *t2316) + 0.5e1_dp/0.2e1_dp*(t440)*(t448)*(t2486) - &
3586 t140*t2365*t93*t129 + (4._dp*t2211*t802) + (3._dp*t2211 &
3587 *t805) - (6._dp*t474*t1326*t2279) - (6._dp*t474*t108 &
3588 *t480*t2501) + (2._dp*t474*t475*t1139) - 0.27e2_dp/0.4e1_dp &
3589 *(t474)*(t1342)*(t2473) + (3._dp*t474*t481* &
3590 t2511) + 0.3e1_dp/0.2e1_dp*(t474)*(t481)*(t2515)
3591 t2571 = -t110*t2452*t83*t118 + (2._dp*t2133*t767) + (5._dp &
3592 *t2133*t770) - (2._dp*t583*t441*t2279) + (t583*t584 &
3593 *t1139) - (5._dp*t583*t448*t2473) + (10._dp*t583*t587 &
3594 *t2316) + 0.5e1_dp/0.2e1_dp*(t583)*(t587)*(t2486) &
3595 - 0.75e2_dp/0.4e1_dp*(t583)*(t1426)*(t2323) - (2._dp &
3596 *t81*t1430*t2279) - (t81*t93*t595*t2279)
3597 t2604 = t81*t591*t1139 - 0.3e1_dp/0.4e1_dp*t81*t1443*t2279 + &
3598 t81*t596*t1139/0.2e1_dp - t125*t2365*t83*t129 + (2._dp* &
3599 t2105*t781) + (3._dp*t2105*t784) - 0.2e1_dp*t603*t475*t2279 &
3600 + t603*t604*t1139 - 0.3e1_dp*t603*t481*t2501 + 0.3e1_dp*t603 &
3601 *t607*t2511 + 0.3e1_dp/0.2e1_dp*t603*t607*t2515 - 0.27e2_dp &
3602 /0.4e1_dp*t603*t1469*t2473
3603 t2668 = ((2._dp*t158*t236*t2279 - t158*t204*t1139 - f98* &
3604 t2336)*alpha2*t112) + (t166*t2432 + t270*t2306)*alpha7 &
3605 *t279 - t2454*t156 - (12._dp*t1150*t155*t44*t2279) + (12._dp &
3606 *t106*t1149*t2279) + t2519*t145*t151 + 0.5e1_dp/0.2e1_dp &
3607 *t659*t234*t2486 - 0.15e2_dp*t1736*t234*t2473 - (3._dp* &
3608 t106*t513*t1139) + (0.3e1_dp/0.4e1_dp*(t158)*(t1553) &
3609 *(t2279) - (t158*t496*t1139)/0.2e1_dp - t172*t2306) &
3610 *alpha1*t177 + t2454 + (t2571 + t2604)*omega*t134 + (t166* &
3611 (0.27e2_dp/0.4e1_dp*(t184)*(t1667)*(t2279) - (3._dp &
3612 *t184*t1671*t2279) - 0.3e1_dp/0.2e1_dp*(t184)*(t710) &
3613 *(t1139) - 0.3e1_dp/0.4e1_dp*(t1678)*(t2279) + (t714 &
3614 *t1139)/0.2e1_dp) + f2716*t2306*t196)*alpha3*t145*t151 &
3615 + (t158*(t2336 + (t1139*t161 - 2._dp*t2279*t204 + 2._dp* &
3616 t1538*t2279 - t626*t1139)*t202*t160 - t822*t238*t1885 &
3617 + t823*t407)) + ((20._dp*t281*t1691*t2279 - 4._dp*t281*t561 &
3618 *t1139 - 12._dp*t1699*t2279 + 3._dp*t566*t1139 + 6._dp*t206*t565 &
3619 *t2279 - 2._dp*t206*t284*t1139 - 2._dp*t243*t284*t2279 + t243 &
3620 *t238*t1139 + t289*t2336)*alpha8*t296)
3621 e_ndrho_ndrho = e_ndrho_ndrho + (-t80*(t2391 + t2668)*clda)*sx
3622 END IF
3623
3624 END SUBROUTINE xwpbe_lda_calc_2
3625
3626! **************************************************************************************************
3627!> \brief Evaluates the screened hole averaged PBE exchange functional for lda.
3628!> \param e_0 ...
3629!> \param e_rho ...
3630!> \param e_ndrho ...
3631!> \param e_rho_rho ...
3632!> \param e_ndrho_rho ...
3633!> \param e_ndrho_ndrho ...
3634!> \param rho , ndrho: density and norm of the density gradient
3635!> \param ndrho ...
3636!> \param omega screening parameter
3637!> \param sscale scaling factor to enforce Lieb-Oxford bound
3638!> \param sx scaling factor
3639!> \param order degree of the derivative that should be evaluated,
3640!> if positive all the derivatives up to the given degree are evaluated,
3641!> if negative only the given degree is calculated
3642!> \par History
3643!> 05.2007 created [Manuel Guidon]
3644!> \author Manuel Guidon
3645!> \note
3646!> This routine evaluates the functional for omega!=0 using a simple
3647!> gaussian expansion for large ww.
3648! **************************************************************************************************
3649 SUBROUTINE xwpbe_lda_calc_3(e_0, e_rho, e_ndrho, e_rho_rho, e_ndrho_rho, &
3650 e_ndrho_ndrho, rho, ndrho, omega, sscale, sx, order)
3651 REAL(kind=dp), INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_rho_rho, &
3652 e_ndrho_rho, e_ndrho_ndrho
3653 REAL(kind=dp), INTENT(IN) :: rho, ndrho, omega, sscale, sx
3654 INTEGER, INTENT(IN) :: order
3655
3656 REAL(kind=dp) :: d2qndrhondrho, d2qrhondrho, d2qrhorho, dqndrho, dqrho, q, t1, t10, t1004, &
3657 t1005, t1015, t102, t1025, t1032, t104, t105, t1056, t1060, t1065, t1068, t1079, t108, &
3658 t1080, t109, t1096, t11, t110, t1101, t1102, t111, t1114, t1115, t1121, t1124, t113, &
3659 t1143, t1147, t115, t1154, t1156, t116, t1162, t1169, t117, t1170, t1178, t1179, t118, &
3660 t1189, t119, t1193, t12, t120, t1202, t1203, t1204, t121, t1210, t1213, t1214, t1215, &
3661 t1216, t1220, t123, t1230, t1235, t124, t1240, t1241, t1242, t125, t1250, t1251, t1252, &
3662 t1256, t126, t1260, t1264, t127, t1273, t128, t1288, t129, t1295, t13
3663 REAL(kind=dp) :: t1300, t1304, t1308, t1309, t131, t1315, t1316, t132, t1326, t133, t1331, &
3664 t1337, t1346, t1350, t136, t1363, t1372, t1382, t1386, t1388, t1393, t14, t140, t1400, &
3665 t1401, t1402, t1408, t141, t142, t1437, t144, t1446, t145, t147, t148, t1480, t1482, &
3666 t1488, t149, t15, t150, t151, t1511, t152, t1522, t1535, t154, t155, t156, t1562, t157, &
3667 t1578, t158, t1583, t159, t1592, t1594, t16, t1608, t162, t1620, t1627, t163, t1632, &
3668 t1645, t1652, t166, t167, t1675, t1678, t168, t1685, t1687, t1688, t169, t1692, t1695, &
3669 t17, t170, t1712, t1719, t1731, t1737, t1739, t174, t1747, t1753, t176
3670 REAL(kind=dp) :: t1762, t1765, t177, t1781, t1796, t18, t180, t1804, t181, t1812, t1834, &
3671 t185, t186, t1860, t1878, t1886, t189, t19, t190, t192, t193, t1935, t194, t1945, t195, &
3672 t197, t1979, t198, t1981, t1989, t199, t1999, t2, t200, t2003, t2007, t2013, t202, t2050, &
3673 t206, t2060, t2064, t2068, t208, t209, t21, t210, t2107, t212, t213, t2140, t215, t2159, &
3674 t216, t217, t2174, t218, t219, t22, t221, t222, t223, t224, t227, t228, t23, t231, t232, &
3675 t234, t235, t236, t237, t238, t24, t242, t245, t246, t247, t248, t249, t25, t250, t251, &
3676 t252, t258, t259, t260, t261, t262, t266, t268, t27, t274, t277
3677 REAL(kind=dp) :: t278, t279, t28, t280, t285, t287, t288, t29, t291, t292, t295, t296, t297, &
3678 t3, t300, t301, t302, t304, t305, t308, t309, t31, t313, t316, t317, t318, t32, t320, &
3679 t322, t325, t328, t329, t332, t335, t338, t339, t34, t341, t342, t344, t345, t35, t352, &
3680 t359, t36, t361, t364, t365, t368, t369, t370, t373, t374, t375, t376, t377, t379, t38, &
3681 t380, t381, t383, t384, t388, t39, t391, t395, t396, t397, t398, t399, t4, t400, t401, &
3682 t403, t404, t405, t406, t408, t41, t416, t417, t418, t419, t42, t420, t422, t423, t424, &
3683 t428, t429, t433, t435, t437, t438, t44, t441, t442, t443, t444
3684 REAL(kind=dp) :: t445, t451, t452, t453, t456, t457, t46, t461, t462, t463, t466, t470, &
3685 t471, t478, t479, t48, t480, t483, t484, t485, t486, t49, t490, t493, t499, t5, t500, &
3686 t501, t504, t505, t511, t512, t513, t516, t517, t521, t523, t526, t528, t531, t532, t533, &
3687 t534, t537, t538, t539, t54, t542, t544, t545, t546, t548, t549, t55, t550, t554, t555, &
3688 t56, t561, t564, t565, t567, t568, t570, t58, t584, t586, t589, t590, t592, t593, t595, &
3689 t596, t599, t6, t60, t603, t604, t607, t608, t61, t610, t611, t612, t616, t617, t621, &
3690 t623, t626, t627, t628, t629, t63, t635, t637, t638, t649, t65, t651
3691 REAL(kind=dp) :: t652, t656, t661, t664, t67, t670, t673, t677, t68, t681, t684, t687, t69, &
3692 t690, t691, t695, t696, t698, t699, t7, t70, t704, t705, t706, t708, t709, t71, t712, &
3693 t713, t714, t717, t718, t72, t721, t724, t725, t727, t73, t74, t743, t746, t748, t75, &
3694 t752, t756, t759, t760, t762, t765, t767, t768, t769, t77, t772, t78, t781, t8, t80, &
3695 t803, t804, t806, t81, t811, t813, t816, t82, t820, t83, t84, t843, t844, t849, t85, &
3696 t855, t87, t871, t872, t875, t877, t878, t88, t892, t893, t899, t9, t90, t900, t91, t916, &
3697 t917, t92, t920, t922, t93, t932, t933, t94, t95, t96, t964, t967, t968
3698 REAL(kind=dp) :: t969, t97, t973, t976, t99
3699
3700 IF (order >= 0) THEN
3701 t1 = ndrho**2
3702 t2 = r2**2
3703 t3 = 0.1e1_dp/t2
3704 t4 = t1*t3
3705 t5 = pi**2
3706 t6 = r3*t5
3707 t7 = t6*rho
3708 t8 = t7**(0.1e1_dp/0.3e1_dp)
3709 t9 = t8**2
3710 t10 = 0.1e1_dp/t9
3711 t11 = t4*t10
3712 t12 = rho**2
3713 t13 = 0.1e1_dp/t12
3714 t14 = sscale**2
3715 t15 = t13*t14
3716 t16 = a1*t1
3717 t17 = t16*t3
3718 t18 = t10*t13
3719 t19 = t18*t14
3720 t21 = t1**2
3721 t22 = a2*t21
3722 t23 = t2**2
3723 t24 = 0.1e1_dp/t23
3724 t25 = t22*t24
3725 t27 = 0.1e1_dp/t8/t7
3726 t28 = t12**2
3727 t29 = 0.1e1_dp/t28
3728 t31 = t14**2
3729 t32 = t27*t29*t31
3730 t34 = t17*t19 + t25*t32
3731 t35 = a3*t21
3732 t36 = t35*t24
3733 t38 = t21*ndrho
3734 t39 = a4*t38
3735 t41 = 0.1e1_dp/t23/r2
3736 t42 = t39*t41
3737 t44 = 0.1e1_dp/t9/t7
3738 t46 = 0.1e1_dp/t28/rho
3739 t48 = t31*sscale
3740 t49 = t44*t46*t48
3741 t54 = 0.1e1_dp/t23/t2
3742 t55 = a5*t21*t1*t54
3743 t56 = r3**2
3744 t58 = t5**2
3745 t60 = 0.1e1_dp/t56/t58
3746 t61 = t28**2
3747 t63 = t31*t14
3748 t65 = t60/t61*t63
3749 t67 = r1 + t36*t32 + t42*t49 + t55*t65
3750 t68 = 0.1e1_dp/t67
3751 t69 = t34*t68
3752 t70 = t15*t69
3753 t71 = t11*t70
3754 t72 = omega**2
3755 t73 = beta2*t72
3756 t74 = t73*t10
3757 t75 = t71 + t74
3758 t77 = 0.1e1_dp/a
3759 q = f94*t75*t77
3760 t78 = rho**(0.1e1_dp/0.3e1_dp)
3761 t80 = t78*rho*f89
3762 t81 = b*f12
3763 t82 = t71 + dd
3764 t83 = 0.1e1_dp/t82
3765 t84 = t81*t83
3766 t85 = f2*t34
3767 t87 = f1 + t85*t68
3768 t88 = t15*t87
3769 t90 = t11*t88 + r1
3770 t91 = f12*t90
3771 t92 = t82**2
3772 t93 = 0.1e1_dp/t92
3773 t94 = c*t93
3774 t95 = t91*t94
3775 t96 = f34*pi
3776 t97 = rootpi
3777 t99 = r6*c
3778 t102 = r4*b
3779 t104 = r8*a
3780 t105 = t92*t82
3781 t108 = t97*(r15*e + t99*t90*t82 + t102*t92 + t104*t105)
3782 t109 = 0.1e1_dp/r16
3783 t110 = sqrt(t82)
3784 t111 = t110*t105
3785 t113 = t109/t111
3786 t115 = sqrt(a)
3787 t116 = f94*t34
3788 t117 = t68*t1
3789 t118 = t116*t117
3790 t119 = t3*t10
3791 t120 = t15*t77
3792 t121 = t119*t120
3793 t123 = exp(t118*t121)
3794 t124 = t115*t123
3795 t125 = f32*ndrho
3796 t126 = 0.1e1_dp/r2
3797 t127 = t125*t126
3798 t128 = 0.1e1_dp/t8
3799 t129 = 0.1e1_dp/rho
3800 t131 = t69*t77
3801 t132 = sqrt(t131)
3802 t133 = sscale*t132
3803 t136 = erfc(t127*t128*t129*t133)
3804 t140 = 0.1e1_dp/f1516
3805 t141 = (t96 + t108*t113 - t96*t124*t136)*t140
3806 t142 = 0.1e1_dp/t97
3807 t144 = 0.1e1_dp/e
3808 t145 = t142*t111*t144
3809 t147 = -t141*t145 + r1
3810 t148 = t147*e
3811 t149 = 0.1e1_dp/t105
3812 t150 = t148*t149
3813 t151 = f158*e
3814 t152 = t147*t83
3815 t154 = t71 + dd + t72*t10
3816 t155 = t154**2
3817 t156 = t155**2
3818 t157 = t156*t154
3819 t158 = sqrt(t157)
3820 t159 = 0.1e1_dp/t158
3821 t162 = sqrt(t154)
3822 t163 = 0.1e1_dp/t162
3823 t166 = f68*c
3824 t167 = t90*t83
3825 t168 = t155*t154
3826 t169 = sqrt(t168)
3827 t170 = 0.1e1_dp/t169
3828 t174 = (-t151*t152*t159 - t81*t83*t163 - t166*t167*t170) &
3829 *omega
3830 t176 = f52*e
3831 t177 = t147*t93
3832 t180 = f12*c
3833 t181 = t90*t93
3834 t185 = t72*omega
3835 t186 = (-t176*t177*t159 - t180*t181*t170)*t185
3836 t189 = 0.1e1_dp/r3/t5
3837 t190 = t189*t129
3838 t192 = t72**2
3839 t193 = t192*omega
3840 t194 = t159*t193
3841 t195 = t194*t44
3842 t197 = f12*a
3843 t198 = exei(q)
3844 t199 = t71 + dd + t74
3845 t200 = 0.1e1_dp/t199
3846 t202 = log(t75*t200)
3847 t206 = (t84 + t95 + t150 + t174*t128 + t186*t190 - t150*t195 &
3848 + t197*(t198 + t202))*clda
3849 e_0 = e_0 + (-t80*t206)*sx
3850 END IF
3851 IF (order >= 1 .OR. order == -1) THEN
3852 t208 = t44*t13
3853 t209 = t4*t208
3854 t210 = t14*t34
3855 t212 = t68*r3*t5
3856 t213 = t210*t212
3857 t215 = 0.2e1_dp/0.3e1_dp*t209*t213
3858 t216 = t12*rho
3859 t217 = 0.1e1_dp/t216
3860 t218 = t217*t14
3861 t219 = t218*t69
3862 t221 = 2._dp*t11*t219
3863 t222 = t3*t44
3864 t223 = t16*t222
3865 t224 = t15*t6
3866 t227 = t10*t217
3867 t228 = t227*t14
3868 t231 = t56*t58
3869 t232 = t231*t12
3870 t234 = 0.1e1_dp/t8/t232
3871 t235 = t24*t234
3872 t236 = t22*t235
3873 t237 = t29*t31
3874 t238 = t237*t6
3875 t242 = t27*t46*t31
3876 t245 = -0.2e1_dp/0.3e1_dp*t223*t224 - (2._dp*t17*t228) - 0.4e1_dp &
3877 /0.3e1_dp*t236*t238 - (4._dp*t25*t242)
3878 t246 = t245*t68
3879 t247 = t15*t246
3880 t248 = t11*t247
3881 t249 = t4*t18
3882 t250 = t67**2
3883 t251 = 0.1e1_dp/t250
3884 t252 = t35*t235
3885 t258 = 0.1e1_dp/t9/t232
3886 t259 = t41*t258
3887 t260 = t39*t259
3888 t261 = t46*t48
3889 t262 = t261*t6
3890 t266 = 0.1e1_dp/t28/t12
3891 t268 = t44*t266*t48
3892 t274 = t60/t61/rho*t63
3893 t277 = -0.4e1_dp/0.3e1_dp*t252*t238 - (4._dp*t36*t242) - 0.5e1_dp &
3894 /0.3e1_dp*t260*t262 - (5._dp*t42*t268) - (8._dp*t55*t274)
3895 t278 = t251*t277
3896 t279 = t210*t278
3897 t280 = t249*t279
3898 t285 = -t215 - t221 + t248 - t280 - 0.2e1_dp/0.3e1_dp*t73*t44*r3 &
3899 *t5
3900 dqrho = f94*t285*t77
3901 t287 = ndrho*t3
3902 t288 = t287*t10
3903 t291 = a1*ndrho
3904 t292 = t291*t3
3905 t295 = t1*ndrho
3906 t296 = a2*t295
3907 t297 = t296*t24
3908 t300 = 2._dp*t292*t19 + 4._dp*t297*t32
3909 t301 = t300*t68
3910 t302 = t15*t301
3911 t304 = a3*t295
3912 t305 = t304*t24
3913 t308 = a4*t21
3914 t309 = t308*t41
3915 t313 = a5*t38*t54
3916 t316 = 4._dp*t305*t32 + 5._dp*t309*t49 + 6._dp*t313*t65
3917 t317 = t251*t316
3918 t318 = t210*t317
3919 t320 = 2._dp*t288*t70 + t11*t302 - t249*t318
3920 dqndrho = f94*t320*t77
3921 t322 = t78*f89
3922 t325 = -t215 - t221 + t248 - t280
3923 t328 = t14*t87
3924 t329 = t328*t6
3925 t332 = t218*t87
3926 t335 = f2*t245
3927 t338 = t335*t68 - t85*t278
3928 t339 = t15*t338
3929 t341 = -0.2e1_dp/0.3e1_dp*t209*t329 - (2._dp*t11*t332) + (t11 &
3930 *t339)
3931 t342 = f12*t341
3932 t344 = c*t149
3933 t345 = t344*t325
3934 t352 = t82*t325
3935 t359 = t97*(t99*t341*t82 + t99*t90*t325 + 2._dp*t102*t352 &
3936 + 3._dp*t104*t92*t325)
3937 t361 = t92**2
3938 t364 = t109/t110/t361
3939 t365 = t364*t325
3940 t368 = t96*t115
3941 t369 = f94*t245
3942 t370 = t369*t117
3943 t373 = t251*t1*t3
3944 t374 = t116*t373
3945 t375 = t14*t77
3946 t376 = t375*t277
3947 t377 = t18*t376
3948 t379 = t117*t3
3949 t380 = t116*t379
3950 t381 = t208*t14
3951 t383 = t77*r3*t5
3952 t384 = t381*t383
3953 t388 = t119*t218*t77
3954 t391 = t370*t121 - t374*t377 - 0.2e1_dp/0.3e1_dp*t380*t384 - (2._dp &
3955 *t118*t388)
3956 t395 = rootpi
3957 t396 = 0.1e1_dp/t395
3958 t397 = t123*t396
3959 t398 = f32**2
3960 t399 = t398*t1
3961 t400 = t399*t119
3962 t401 = t15*t131
3963 t403 = exp(-t400*t401)
3964 t404 = t126*t27
3965 t405 = t125*t404
3966 t406 = t129*sscale
3967 t408 = t132*r3*t5
3968 t416 = t125*t126*t128
3969 t417 = 0.1e1_dp/t132
3970 t418 = t246*t77
3971 t419 = t34*t251
3972 t420 = t77*t277
3973 t422 = t418 - t419*t420
3974 t423 = t417*t422
3975 t424 = t406*t423
3976 t428 = t403*(-t405*t406*t408/0.3e1_dp - t127*t128*t13*t133 &
3977 + t416*t424/0.2e1_dp)
3978 t429 = t397*t428
3979 t433 = (t359*t113 - 0.7e1_dp/0.2e1_dp*t108*t365 - (t368*t391 &
3980 *t123*t136) + (2._dp*t368*t429))*t140
3981 t435 = t141*t142
3982 t437 = t110*t92*t144
3983 t438 = t437*t325
3984 t441 = -t433*t145 - 0.7e1_dp/0.2e1_dp*t435*t438
3985 t442 = t441*e
3986 t443 = t442*t149
3987 t444 = 0.1e1_dp/t361
3988 t445 = t444*t325
3989 t451 = t151*t147
3990 t452 = t93*t159
3991 t453 = t452*t325
3992 t456 = 0.1e1_dp/t158/t157
3993 t457 = t83*t456
3994 t461 = -t215 - t221 + t248 - t280 - 0.2e1_dp/0.3e1_dp*t72*t44*t6
3995 t462 = t156*t461
3996 t463 = t457*t462
3997 t466 = t93*t163
3998 t470 = 0.1e1_dp/t162/t154
3999 t471 = t83*t470
4000 t478 = t166*t90
4001 t479 = t93*t170
4002 t480 = t479*t325
4003 t483 = 0.1e1_dp/t169/t168
4004 t484 = t83*t483
4005 t485 = t155*t461
4006 t486 = t484*t485
4007 t490 = (-t151*t441*t83*t159 + t451*t453 + 0.5e1_dp/0.2e1_dp*t451 &
4008 *t463 + t81*t466*t325 + t81*t471*t461/0.2e1_dp - t166 &
4009 *t341*t83*t170 + t478*t480 + 0.3e1_dp/0.2e1_dp*t478*t486)* &
4010 omega
4011 t493 = t27*r3*t5
4012 t499 = t176*t147
4013 t500 = t149*t159
4014 t501 = t500*t325
4015 t504 = t93*t456
4016 t505 = t504*t462
4017 t511 = t180*t90
4018 t512 = t149*t170
4019 t513 = t512*t325
4020 t516 = t93*t483
4021 t517 = t516*t485
4022 t521 = (-t176*t441*t93*t159 + (2._dp*t499*t501) + 0.5e1_dp/ &
4023 0.2e1_dp*(t499)*(t505) - t180*t341*t93*t170 + (2._dp &
4024 *t511*t513) + 0.3e1_dp/0.2e1_dp*(t511)*(t517))*t185
4025 t523 = t189*t13
4026 t526 = t148*t444
4027 t528 = t194*t44*t325
4028 t531 = t149*t456
4029 t532 = t148*t531
4030 t533 = t193*t44
4031 t534 = t533*t462
4032 t537 = t148*t500
4033 t538 = t193*t258
4034 t539 = t538*t6
4035 t542 = dexeirho(q, dqrho)
4036 t544 = t199**2
4037 t545 = 0.1e1_dp/t544
4038 t546 = t75*t545
4039 t548 = t285*t200 - t546*t285
4040 t549 = 0.1e1_dp/t75
4041 t550 = t548*t549
4042 t554 = -t81*t93*t325 + t342*t94 - (2._dp*t91*t345) + t443 &
4043 - (3._dp*t148*t445) + t490*t128 - t174*t493/0.3e1_dp + t521 &
4044 *t190 - t186*t523 - t443*t195 + (3._dp*t526*t528) + 0.5e1_dp &
4045 /0.2e1_dp*t532*t534 + 0.5e1_dp/0.3e1_dp*t537*t539 + t197*(t542 &
4046 + t550*t199)
4047 t555 = t554*clda
4048 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t322*t206 - t80*t555)*sx
4049 t561 = f2*t300
4050 t564 = t561*t68 - t85*t317
4051 t565 = t15*t564
4052 t567 = 2._dp*t288*t88 + t11*t565
4053 t568 = f12*t567
4054 t570 = t344*t320
4055 t584 = t97*(t99*t567*t82 + t99*t90*t320 + 2._dp*t102*t82 &
4056 *t320 + 3._dp*t104*t92*t320)
4057 t586 = t364*t320
4058 t589 = f94*t300
4059 t590 = t589*t117
4060 t592 = t375*t316
4061 t593 = t18*t592
4062 t595 = t68*ndrho
4063 t596 = t116*t595
4064 t599 = t590*t121 - t374*t593 + 2._dp*t596*t121
4065 t603 = f32*t126
4066 t604 = t603*t128
4067 t607 = t301*t77
4068 t608 = t77*t316
4069 t610 = t607 - t419*t608
4070 t611 = t417*t610
4071 t612 = t406*t611
4072 t616 = t403*(t604*t406*t132 + t416*t612/0.2e1_dp)
4073 t617 = t397*t616
4074 t621 = (t584*t113 - 0.7e1_dp/0.2e1_dp*t108*t586 - (t368*t599 &
4075 *t123*t136) + (2._dp*t368*t617))*t140
4076 t623 = t437*t320
4077 t626 = -t621*t145 - 0.7e1_dp/0.2e1_dp*t435*t623
4078 t627 = t626*e
4079 t628 = t627*t149
4080 t629 = t444*t320
4081 t635 = t452*t320
4082 t637 = t156*t320
4083 t638 = t457*t637
4084 t649 = t479*t320
4085 t651 = t155*t320
4086 t652 = t484*t651
4087 t656 = (-t151*t626*t83*t159 + t451*t635 + 0.5e1_dp/0.2e1_dp*t451 &
4088 *t638 + t81*t466*t320 + t81*t471*t320/0.2e1_dp - t166 &
4089 *t567*t83*t170 + t478*t649 + 0.3e1_dp/0.2e1_dp*t478*t652)* &
4090 omega
4091 t661 = t500*t320
4092 t664 = t504*t637
4093 t670 = t512*t320
4094 t673 = t516*t651
4095 t677 = (-t176*t626*t93*t159 + (2._dp*t499*t661) + 0.5e1_dp/ &
4096 0.2e1_dp*(t499)*(t664) - t180*t567*t93*t170 + (2._dp &
4097 *t511*t670) + 0.3e1_dp/0.2e1_dp*(t511)*(t673))*t185
4098 t681 = t194*t44*t320
4099 t684 = t533*t637
4100 t687 = dexeindrho(q, dqndrho)
4101 t690 = t320*t200 - t546*t320
4102 t691 = t690*t549
4103 t695 = -t81*t93*t320 + t568*t94 - (2._dp*t91*t570) + t628 &
4104 - (3._dp*t148*t629) + t656*t128 + t677*t190 - t628*t195 &
4105 + (3._dp*t526*t681) + 0.5e1_dp/0.2e1_dp*t532*t684 + t197*(t687 &
4106 + t691*t199)
4107 t696 = t695*clda
4108 e_ndrho = e_ndrho + (-t80*t696)*sx
4109 END IF
4110 IF (order >= 2 .OR. order == -2) THEN
4111 t698 = t258*t13
4112 t699 = t4*t698
4113 t704 = 0.10e2_dp/0.9e1_dp*t699*t210*t68*t56*t58
4114 t705 = t44*t217
4115 t706 = t4*t705
4116 t708 = 0.8e1_dp/0.3e1_dp*t706*t213
4117 t709 = t14*t245
4118 t712 = 0.4e1_dp/0.3e1_dp*t209*t709*t212
4119 t713 = t4*t381
4120 t714 = t6*t277
4121 t717 = 0.4e1_dp/0.3e1_dp*t713*t419*t714
4122 t718 = t29*t14
4123 t721 = 6._dp*t11*t718*t69
4124 t724 = 4._dp*t11*t218*t246
4125 t725 = t4*t227
4126 t727 = 4._dp*t725*t279
4127 t743 = t56*r3*t58*t5*t216
4128 t746 = t24/t8/t743
4129 t748 = t237*t231
4130 t752 = t46*t31*t6
4131 t756 = t27*t266*t31
4132 t759 = 0.10e2_dp/0.9e1_dp*t16*t3*t258*t15*t231 + 0.8e1_dp/0.3e1_dp &
4133 *t223*t218*t6 + (6._dp*t17*t10*t29*t14) + 0.28e2_dp/ &
4134 0.9e1_dp*t22*t746*t748 + 0.32e2_dp/0.3e1_dp*t236*t752 + (20._dp &
4135 *t25*t756)
4136 t760 = t759*t68
4137 t762 = t11*t15*t760
4138 t765 = 2._dp*t249*t709*t278
4139 t767 = 0.1e1_dp/t250/t67
4140 t768 = t277**2
4141 t769 = t767*t768
4142 t772 = 2._dp*t249*t210*t769
4143 t781 = 0.1e1_dp/t9/t743
4144 t803 = 0.28e2_dp/0.9e1_dp*t35*t746*t748 + 0.32e2_dp/0.3e1_dp*t252* &
4145 t752 + (20._dp*t36*t756) + 0.40e2_dp/0.9e1_dp*t39*t41*t781 &
4146 *t261*t231 + 0.50e2_dp/0.3e1_dp*t260*t266*t48*t6 + 0.30e2_dp* &
4147 t42*t44/t28/t216*t48 + (72._dp*t55*t60/t61/t12* &
4148 t63)
4149 t804 = t251*t803
4150 t806 = t249*t210*t804
4151 t811 = t704 + t708 - t712 + t717 + t721 - t724 + t727 + t762 - t765 &
4152 + t772 - t806 + 0.10e2_dp/0.9e1_dp*t73*t258*t56*t58
4153 d2qrhorho = f94*t811*t77
4154 t813 = t287*t208
4155 t816 = t14*t300
4156 t820 = t6*t316
4157 t843 = -0.4e1_dp/0.3e1_dp*t291*t222*t224 - (4._dp*t292*t228) &
4158 - 0.16e2_dp/0.3e1_dp*t296*t235*t238 - (16._dp*t297*t242)
4159 t844 = t843*t68
4160 t849 = t287*t18
4161 t855 = t767*t277*t316
4162 t871 = -0.16e2_dp/0.3e1_dp*t304*t235*t238 - (16._dp*t305*t242) &
4163 - 0.25e2_dp/0.3e1_dp*t308*t259*t262 - (25._dp*t309*t268) - &
4164 (48._dp*t313*t274)
4165 t872 = t251*t871
4166 t875 = -0.4e1_dp/0.3e1_dp*t813*t213 - 0.2e1_dp/0.3e1_dp*t209*t816* &
4167 t212 + 0.2e1_dp/0.3e1_dp*t713*t419*t820 - (4._dp*t288*t219) &
4168 - (2._dp*t11*t218*t301) + (2._dp*t725*t318) + (2._dp* &
4169 t288*t247) + (t11*t15*t844) - t249*t709*t317 - (2._dp &
4170 *t849*t279) - t249*t816*t278 + 0.2e1_dp*t249*t210*t855 &
4171 - t249*t210*t872
4172 d2qrhondrho = f94*t875*t77
4173 t877 = t119*t13
4174 t878 = t210*t68
4175 t892 = 2._dp*a1*t3*t19 + 12._dp*a2*t1*t24*t32
4176 t893 = t892*t68
4177 t899 = t316**2
4178 t900 = t767*t899
4179 t916 = 12._dp*a3*t1*t24*t32 + 20._dp*a4*t295*t41*t49 + 30._dp* &
4180 a5*t21*t54*t65
4181 t917 = t251*t916
4182 t920 = 2._dp*t877*t878 + 4._dp*t288*t302 - 4._dp*t849*t318 + t11* &
4183 t15*t893 - 2._dp*t249*t816*t317 + 2._dp*t249*t210*t900 - t249 &
4184 *t210*t917
4185 d2qndrhondrho = f94*t920*t77
4186 t922 = t78**2
4187 t932 = t704 + t708 - t712 + t717 + t721 - t724 + t727 + t762 - t765 &
4188 + t772 - t806 + 0.10e2_dp/0.9e1_dp*t72*t258*t231
4189 t933 = t156*t932
4190 t964 = 0.10e2_dp/0.9e1_dp*t699*t328*t231 + 0.8e1_dp/0.3e1_dp*t706* &
4191 t329 - 0.4e1_dp/0.3e1_dp*t209*t14*t338*t6 + (6._dp*t11*t718 &
4192 *t87) - 0.4e1_dp*(t11)*t218*t338 + (t11*t15*(f2 &
4193 *t759*t68 - 2._dp*t335*t278 + 2._dp*t85*t769 - t85*t804))
4194 t967 = t361*t82
4195 t968 = 0.1e1_dp/t967
4196 t969 = t325**2
4197 t973 = t442*t444
4198 t976 = t704 + t708 - t712 + t717 + t721 - t724 + t727 + t762 - t765 &
4199 + t772 - t806
4200 t1004 = 0.1e1_dp/t110/t967
4201 t1005 = t109*t1004
4202 t1015 = t369*t373
4203 t1025 = t116*t767*t1*t3
4204 t1032 = t116*t251*t4*t44
4205 t1056 = f94*t759*t117*t121 - (2._dp*t1015*t377) - 0.4e1_dp/ &
4206 0.3e1_dp*t369*t379*t384 - (4._dp*t370*t388) + (2._dp*t1025 &
4207 *t18*t375*t768) + 0.4e1_dp/0.3e1_dp*t1032*t120*t714 + (4._dp &
4208 *t374*t227*t376) - (t374*t18*t375*t803) + 0.10e2_dp &
4209 /0.9e1_dp*t380*t698*t14*t77*t56*t58 + 0.8e1_dp/0.3e1_dp* &
4210 t380*t705*t14*t383 + 0.6e1_dp*t118*t119*t718*t77
4211 t1060 = t391**2
4212 t1065 = t96*t115*t391
4213 t1068 = t96*t124
4214 t1079 = t399*t877
4215 t1080 = t251*t77
4216 t1096 = t13*sscale
4217 t1101 = t125*t404*t129
4218 t1102 = sscale*t417
4219 t1114 = 0.1e1_dp/t132/t131
4220 t1115 = t422**2
4221 t1121 = t245*t251
4222 t1124 = t34*t767
4223 t1143 = t433*t142
4224 t1147 = t110*t82*t144
4225 t1154 = -((t97*(t99*t964*t82 + 2._dp*t99*t341*t325 + t99 &
4226 *t90*t976 + 2._dp*t102*t969 + 2._dp*t102*t82*t976 + 6._dp*t104 &
4227 *t82*t969 + 3._dp*t104*t92*t976)*t113) - (7._dp*t359* &
4228 t365) + 0.63e2_dp/0.4e1_dp*(t108)*(t1005)*(t969) - 0.7e1_dp &
4229 /0.2e1_dp*(t108)*(t364)*(t976) - t368*t1056 &
4230 *t123*t136 - t368*t1060*t123*t136 + (4._dp*t1065*t429) &
4231 + 0.2e1_dp*t1068*t396*(0.2e1_dp/0.3e1_dp*t399*t222*t13*t878 &
4232 *t383 + (2._dp*t400*t218*t131) - (t400*t15*t418) &
4233 + t1079*t210*t1080*t277)*t428 + 0.2e1_dp*t368*t397*t403 &
4234 *(0.4e1_dp/0.9e1_dp*t125*t126*t234*t406*t132*t56*t58 &
4235 + 0.2e1_dp/0.3e1_dp*t405*t1096*t408 - t1101*t1102*t6*t422 &
4236 /0.3e1_dp + (2._dp*t127*t128*t217*t133) - t416*t1096*t423 &
4237 - t416*t406*t1114*t1115/0.4e1_dp + t416*t406*t417*(t760 &
4238 *t77 - 2._dp*t1121*t420 + 2._dp*t1124*t77*t768 - t419* &
4239 t77*t803)/0.2e1_dp))*t140*t145 - (7._dp*t1143*t438) - 0.35e2_dp &
4240 /0.4e1_dp*(t435)*(t1147)*(t969) - 0.7e1_dp/0.2e1_dp &
4241 *(t435)*(t437)*(t976)
4242 t1156 = t1154*e*t149
4243 t1162 = t442*t531
4244 t1169 = t148*t444*t456
4245 t1170 = t325*t156
4246 t1178 = t444*t159
4247 t1179 = t148*t1178
4248 t1189 = 0.5e1_dp/0.2e1_dp*t532*t533*t933 - (6._dp*t442*t445) &
4249 + f12*t964*t94 + (12._dp*t148*t968*t969) + (6._dp*t973 &
4250 *t528) - (3._dp*t148*t444*t976) + t1156 - (t81*t93* &
4251 t976) + (2._dp*t81*t149*t969) + (5._dp*t1162*t534) + 0.10e2_dp &
4252 /0.3e1_dp*(t442)*(t500)*(t539) - 0.15e2_dp*t1169 &
4253 *t533*t1170*t461 - (2._dp*t91*t344*t976) - (10._dp* &
4254 t1179*t538*t325*r3*t5) + 0.4e1_dp/0.9e1_dp*t174*t234*t56 &
4255 *t58
4256 t1193 = t176*t441
4257 t1202 = t176*t147*t149
4258 t1203 = t456*t325
4259 t1204 = t1203*t462
4260 t1210 = t156**2
4261 t1213 = 0.1e1_dp/t158/t1210/t155
4262 t1214 = t93*t1213
4263 t1215 = t461**2
4264 t1216 = t1210*t1215
4265 t1220 = t168*t1215
4266 t1230 = t180*t341
4267 t1235 = t444*t170
4268 t1240 = t180*t90*t149
4269 t1241 = t483*t325
4270 t1242 = t1241*t485
4271 t1250 = 0.1e1_dp/t169/t156/t155
4272 t1251 = t93*t1250
4273 t1252 = t156*t1215
4274 t1256 = t154*t1215
4275 t1260 = t155*t932
4276 t1264 = -t176*t1154*t93*t159 + (4._dp*t1193*t501) + (5._dp &
4277 *t1193*t505) - (6._dp*t499*t1178*t969) - (10._dp*t1202 &
4278 *t1204) + (2._dp*t499*t500*t976) - 0.75e2_dp/0.4e1_dp*(t499) &
4279 *(t1214)*(t1216) + (10._dp*t499*t504*t1220) &
4280 + 0.5e1_dp/0.2e1_dp*(t499)*(t504)*(t933) - t180*t964 &
4281 *t93*t170 + (4._dp*t1230*t513) + (3._dp*t1230*t517) &
4282 - (6._dp*t511*t1235*t969) - (6._dp*t1240*t1242) + (2._dp &
4283 *t511*t512*t976) - 0.27e2_dp/0.4e1_dp*(t511)*(t1251) &
4284 *(t1252) + (3._dp*t511*t516*t1256) + 0.3e1_dp/0.2e1_dp* &
4285 (t511)*(t516)*(t1260)
4286 t1273 = t148*t149*t1213
4287 t1288 = t148*t531*t193
4288 t1295 = t148*t968
4289 t1300 = t83*t1213
4290 t1304 = t149*t163
4291 t1308 = t81*t93
4292 t1309 = t470*t325
4293 t1315 = 0.1e1_dp/t162/t155
4294 t1316 = t83*t1315
4295 t1326 = t166*t341
4296 t1331 = t166*t181
4297 t1337 = -0.75e2_dp/0.4e1_dp*t451*t1300*t1216 - (2._dp*t81*t1304 &
4298 *t969) - t1308*t1309*t461 + (t81*t466*t976) - 0.3e1_dp &
4299 /0.4e1_dp*(t81)*(t1316)*(t1215) + (t81*t471 &
4300 *t932)/0.2e1_dp - t166*t964*t83*t170 + (2._dp*t1326*t480) &
4301 + (3._dp*t1326*t486) - (3._dp*t1331*t1242) - (2._dp* &
4302 t478*t512*t969)
4303 t1346 = t83*t1250
4304 t1350 = t151*t441
4305 t1363 = t151*t177
4306 t1372 = (t478*t479*t976) + (3._dp*t478*t484*t1256) + &
4307 0.3e1_dp/0.2e1_dp*(t478)*(t484)*(t1260) - 0.27e2_dp/0.4e1_dp &
4308 *(t478)*(t1346)*(t1252) + (2._dp*t1350*t453) &
4309 - t151*t1154*t83*t159 + (5._dp*t1350*t463) - (2._dp &
4310 *t451*t500*t969) + (t451*t452*t976) - (5._dp*t1363 &
4311 *t1204) + (10._dp*t451*t457*t1220) + 0.5e1_dp/0.2e1_dp*(t451) &
4312 *(t457)*(t933)
4313 t1382 = c*t444
4314 t1386 = d2exeirhorho(q, dqrho, d2qrhorho)
4315 t1388 = t285**2
4316 t1393 = t75/t544/t199
4317 t1400 = t75**2
4318 t1401 = 0.1e1_dp/t1400
4319 t1402 = t548*t1401
4320 t1408 = t1264*t185*t190 + (10._dp*t532*t533*t1220) - (2._dp &
4321 *t521*t523) - 0.75e2_dp/0.4e1_dp*(t1273)*(t533)*(t1216) &
4322 + (3._dp*t526*t194*t44*t976) - t1156*t195 - 0.2e1_dp &
4323 /0.3e1_dp*t490*t493 + (2._dp*t186*t189*t217) - 0.25e2_dp &
4324 /0.3e1_dp*t1288*t258*t156*t461*r3*t5 - (12._dp*t1295* &
4325 t194*t44*t969) + (t1337 + t1372)*omega*t128 - 0.40e2_dp/0.9e1_dp &
4326 *t537*t193*t781*t231 - (4._dp*t342*t345) + (6._dp* &
4327 t91*t1382*t969) + (t197*(t1386 + (t811*t200 - 2._dp*t1388 &
4328 *t545 + 2._dp*t1393*t1388 - t546*t811)*t549*t199 - t1402 &
4329 *t199*t285 + t550*t285))
4330 e_rho_rho = e_rho_rho + (-0.4e1_dp/0.9e1_dp/t922*f89*t206 - 0.8e1_dp/0.3e1_dp*t322*t555 &
4331 - t80*(t1189 + t1408)*clda)*sx
4332 t1437 = -0.4e1_dp/0.3e1_dp*t813*t329 - 0.2e1_dp/0.3e1_dp*t209*t14* &
4333 t564*t6 - (4._dp*t288*t332) - 0.2e1_dp*t11*t218*t564 + (2._dp &
4334 *t288*t339) + t11*t15*(f2*t843*t68 - t335*t317 &
4335 - t561*t278 + 2._dp*t85*t855 - t85*t872)
4336 t1446 = t320*t325
4337 t1480 = t589*t373
4338 t1482 = t420*t316
4339 t1488 = t116*t251*ndrho*t3
4340 t1511 = (f94*t843*t117*t121) - t1015*t593 + (2._dp*t369 &
4341 *t595*t121) - (t1480*t377) + (2._dp*t1025*t19*t1482) &
4342 - (2._dp*t1488*t377) - (t374*t18*t375*t871) - 0.2e1_dp &
4343 /0.3e1_dp*t589*t379*t384 + 0.2e1_dp/0.3e1_dp*t1032*t120* &
4344 t820 - 0.4e1_dp/0.3e1_dp*t116*(t595)*t3*t384 - (2._dp*t590 &
4345 *t388) + (2._dp*t374*t227*t592) - (4._dp*t596*t388)
4346 t1522 = t96*t115*t599
4347 t1535 = t396*(-2._dp*t398*ndrho*t119*t401 - t400*t15*t607 &
4348 + t1079*t210*t1080*t316)
4349 t1562 = t300*t251
4350 t1578 = (t97*(t99*t1437*t82 + t99*t341*t320 + t99*t567 &
4351 *t325 + t99*t90*t875 + 2._dp*t102*t1446 + 2._dp*t102*t82 &
4352 *t875 + 6._dp*t104*t352*t320 + 3._dp*t104*t92*t875)*t113) - &
4353 0.7e1_dp/0.2e1_dp*t359*t586 - 0.7e1_dp/0.2e1_dp*t584*t365 + 0.63e2_dp &
4354 /0.4e1_dp*(t108)*(t109)*(t1004)*(t325)*(t320) &
4355 - 0.7e1_dp/0.2e1_dp*(t108)*(t364)*(t875) - &
4356 t368*t1511*t123*t136 - t368*t391*t599*t123*t136 + (2._dp &
4357 *t1065*t617) + (2._dp*t1522*t429) + (2._dp*t1068* &
4358 t1535*t428) + 0.2e1_dp*t368*t397*t403*(-t603*t27*t129* &
4359 t133*t6/0.3e1_dp - t1101*t1102*t6*t610/0.6e1_dp - t604*t1096 &
4360 *t132 - t416*t1096*t611/0.2e1_dp + t604*t424/0.2e1_dp - t416 &
4361 *t406*t1114*t422*t610/0.4e1_dp + t416*t406*t417*(t844 &
4362 *t77 - t1121*t608 - t1562*t420 + 2._dp*t1124*t1482 - &
4363 t419*t77*t871)/0.2e1_dp)
4364 t1583 = t621*t142
4365 t1592 = -t1578*t140*t145 - 0.7e1_dp/0.2e1_dp*t1143*t623 - 0.7e1_dp &
4366 /0.2e1_dp*t1583*t438 - 0.35e2_dp/0.4e1_dp*t435*t1147*t1446 - &
4367 0.7e1_dp/0.2e1_dp*t435*t437*t875
4368 t1594 = t1592*e*t149
4369 t1608 = d2exeirhondrho(q, dqrho, dqndrho, d2qrhondrho)
4370 t1620 = t199*t320
4371 t1627 = t627*t444
4372 t1632 = t156*t875
4373 t1645 = t627*t531
4374 t1652 = -t1594*t195 - t656*t493/0.3e1_dp - (3._dp*t442*t629) &
4375 - 0.25e2_dp/0.6e1_dp*t1288*t258*r3*t5*t156*t320 - (3._dp &
4376 *t627*t445) + t197*(t1608 + (t875*t200 - 0.2e1_dp*t285*t545 &
4377 *t320 + 0.2e1_dp*t1393*t285*t320 - t546*t875)*t549*t199 &
4378 - t1402*t1620 + t550*t320) + 0.5e1_dp/0.2e1_dp*t1162*t684 + &
4379 (3._dp*t1627*t528) + (3._dp*t973*t681) + t1594 + 0.5e1_dp/0.2e1_dp &
4380 *t532*t533*t1632 - t677*t523 + 0.5e1_dp/0.3e1_dp*(t627) &
4381 *(t500)*(t539) - 0.12e2_dp*t148*t968*t159*t533 &
4382 *t1446 + 0.5e1_dp/0.2e1_dp*t1645*t534 + 0.2e1_dp*t81*t149*t325 &
4383 *t320
4384 t1675 = t1241*t651
4385 t1678 = t151*t626
4386 t1685 = t151*t152
4387 t1687 = t461*t320
4388 t1688 = t1213*t1210*t1687
4389 t1692 = t483*t155*t1687
4390 t1695 = t1203*t637
4391 t1712 = t155*t875
4392 t1719 = 0.3e1_dp/0.2e1_dp*t1326*t652 - 0.3e1_dp/0.2e1_dp*t1331*t1675 &
4393 + t1678*t453 - (2._dp*t451*t500*t1446) + (t451*t452 &
4394 *t875) - 0.75e2_dp/0.4e1_dp*t1685*t1688 - 0.3e1_dp/0.2e1_dp*t1331 &
4395 *t1692 - 0.5e1_dp/0.2e1_dp*t1363*t1695 + t1350*t635 - 0.3e1_dp/ &
4396 0.4e1_dp*t84*t1315*t461*t320 + 0.5e1_dp/0.2e1_dp*t1678*t463 - &
4397 t1308*t470*t461*t320/0.2e1_dp - t1308*t1309*t320/0.2e1_dp &
4398 + 0.3e1_dp/0.2e1_dp*t478*t484*t1712 - 0.2e1_dp*t478*t512*(t1446)
4399 t1731 = t166*t567
4400 t1737 = t166*t167
4401 t1739 = t483*t154*t1687
4402 t1747 = t1250*t156*t1687
4403 t1753 = t456*t156*t1687
4404 t1762 = t456*t168*t1687
4405 t1765 = (t478*t479*t875) - t166*t1437*t83*t170 + t1326 &
4406 *t649 - (2._dp*t81*t149*t163*t325*t320) + 0.3e1_dp/0.2e1_dp &
4407 *t1731*t486 + 0.5e1_dp/0.2e1_dp*t451*t457*t1632 + (3._dp* &
4408 t1737*t1739) - t151*t1592*t83*t159 + t1731*t480 - 0.27e2_dp &
4409 /0.4e1_dp*(t1737)*(t1747) + (t81*t466*t875) - &
4410 0.5e1_dp/0.2e1_dp*t1363*t1753 + 0.5e1_dp/0.2e1_dp*t1350*t638 + (t81 &
4411 *t471*t875)/0.2e1_dp + (10._dp*t1685*t1762)
4412 t1781 = t176*t626
4413 t1796 = t176*t177
4414 t1804 = -t176*t1592*t93*t159 + (2._dp*t1193*t661) + 0.5e1_dp &
4415 /0.2e1_dp*(t1193)*(t664) + (2._dp*t1781*t501) - (6._dp &
4416 *t499*t1178*t1446) - (5._dp*t1202*t1695) + (2._dp*t499 &
4417 *t500*t875) + 0.5e1_dp/0.2e1_dp*(t1781)*(t505) - (5._dp &
4418 *t1202*t1753) - 0.75e2_dp/0.4e1_dp*t1796*t1688 + 0.10e2_dp* &
4419 t1796*t1762 + 0.5e1_dp/0.2e1_dp*(t499)*(t504)*(t1632)
4420 t1812 = t180*t567
4421 t1834 = -t180*t1437*t93*t170 + (2._dp*t1230*t670) + 0.3e1_dp &
4422 /0.2e1_dp*(t1230)*(t673) + (2._dp*t1812*t513) - (6._dp &
4423 *t511*t1235*t1446) - (3._dp*t1240*t1675) + (2._dp*t511 &
4424 *t512*t875) + 0.3e1_dp/0.2e1_dp*(t1812)*(t517) - (3._dp &
4425 *t1240*t1692) - 0.27e2_dp/0.4e1_dp*t95*t1747 + 0.3e1_dp*t95 &
4426 *t1739 + 0.3e1_dp/0.2e1_dp*(t511)*(t516)*(t1712)
4427 t1860 = (6._dp*t511*t445*t320) + (3._dp*t526*t194*t44* &
4428 t875) - (t81*t93*t875) - (3._dp*t148*t444*t875) - (2._dp &
4429 *t568*t345) + f12*t1437*t94 - (5._dp*t1179*t538* &
4430 t6*t320) + (t1719 + t1765)*omega*t128 - 0.75e2_dp/0.4e1_dp*(t1273) &
4431 *(t533)*(t1210)*(t461)*(t320) + (t1804 &
4432 + t1834)*t185*t190 - 0.15e2_dp/0.2e1_dp*(t1169)*(t533) &
4433 *(t462)*(t320) + (12._dp*t148*t968*t325* &
4434 t320) - (2._dp*t342*t570) - 0.15e2_dp/0.2e1_dp*(t1169)*(t533) &
4435 *(t1170)*(t320) + (10._dp*t532*t533*t168 &
4436 *t461*t320) - (2._dp*t91*t344*t875)
4437 e_ndrho_rho = e_ndrho_rho + (-0.4e1_dp/0.3e1_dp*t322*t696 - t80*(t1652 + t1860)*clda)*sx
4438 t1878 = 2._dp*t119*t88 + 4._dp*t288*t565 + t11*t15*(f2*t892* &
4439 t68 - 2._dp*t561*t317 + 2._dp*t85*t900 - t85*t917)
4440 t1886 = t320**2
4441 t1935 = t599**2
4442 t1945 = t610**2
4443 t1979 = -((t97*(t99*t1878*t82 + 2._dp*t99*t567*t320 + t99 &
4444 *t90*t920 + 2._dp*t102*t1886 + 2._dp*t102*t82*t920 + 6._dp*t104 &
4445 *t82*t1886 + 3._dp*t104*t92*t920)*t113) - (7._dp*t584 &
4446 *t586) + 0.63e2_dp/0.4e1_dp*(t108)*(t1005)*(t1886) &
4447 - 0.7e1_dp/0.2e1_dp*(t108)*(t364)*(t920) - (t368 &
4448 *(f94*t892*t117*t121 - 2._dp*t1480*t593 + 4._dp*t589*t595 &
4449 *t121 + 2._dp*t1025*t18*t375*t899 - 4._dp*t1488*t593 - t374 &
4450 *t18*t375*t916 + 2._dp*t116*t68*t3*t18*t375)*t123*t136) &
4451 - (t368*t1935*t123*t136) + (4._dp*t1522*t617) + &
4452 (2._dp*t1068*t1535*t616) + 0.2e1_dp*(t368)*t397*t403 &
4453 *(t604*t612 - t416*t406*t1114*t1945/0.4e1_dp + t416*t406 &
4454 *t417*(t893*t77 - 2._dp*t1562*t608 + 2._dp*t1124*t77* &
4455 t899 - t419*t77*t916)/0.2e1_dp))*t140*t145 - (7._dp*t1583 &
4456 *t623) - 0.35e2_dp/0.4e1_dp*(t435)*(t1147)*(t1886) &
4457 - 0.7e1_dp/0.2e1_dp*(t435)*(t437)*(t920)
4458 t1981 = t1979*e*t149
4459 t1989 = t1886*t156
4460 t1999 = t168*t1886
4461 t2003 = t156*t920
4462 t2007 = t1210*t1886
4463 t2013 = -t1981*t195 + t1981 + (6._dp*t1627*t681) + (3._dp*t526 &
4464 *t194*t44*t920) - (15._dp*t1169*t533*t1989) + (5._dp &
4465 *t1645*t684) - (12._dp*t1295*t194*t44*t1886) + (10._dp &
4466 *t532*t533*t1999) + 0.5e1_dp/0.2e1_dp*(t532)*(t533) &
4467 *(t2003) - 0.75e2_dp/0.4e1_dp*(t1273)*(t533)*(t2007) &
4468 - (4._dp*t568*t570)
4469 t2050 = t1886*t155
4470 t2060 = t154*t1886
4471 t2064 = t155*t920
4472 t2068 = -t176*t1979*t93*t159 + (4._dp*t1781*t661) + (5._dp &
4473 *t1781*t664) - (6._dp*t499*t1178*t1886) - (10._dp*t499 &
4474 *t531*t1989) + (2._dp*t499*t500*t920) - 0.75e2_dp/0.4e1_dp &
4475 *(t499)*(t1214)*(t2007) + (10._dp*t499*t504* &
4476 t1999) + 0.5e1_dp/0.2e1_dp*(t499)*(t504)*(t2003) - &
4477 t180*t1878*t93*t170 + (4._dp*t1812*t670) + (3._dp*t1812 &
4478 *t673) - (6._dp*t511*t1235*t1886) - (6._dp*t511*t149 &
4479 *t483*t2050) + (2._dp*t511*t512*t920) - 0.27e2_dp/0.4e1_dp* &
4480 (t511)*(t1251)*(t1989) + (3._dp*t511*t516*t2060) &
4481 + 0.3e1_dp/0.2e1_dp*(t511)*(t516)*(t2064)
4482 t2107 = -(2._dp*t451*t500*t1886) + (t451*t452*t920) - &
4483 (5._dp*t451*t504*t1989) + (5._dp*t1678*t638) + (10._dp &
4484 *t451*t457*t1999) + 0.5e1_dp/0.2e1_dp*(t451)*(t457)* &
4485 (t2003) - 0.75e2_dp/0.4e1_dp*(t451)*(t1300)*(t2007) &
4486 - (2._dp*t81*t1304*t1886) - (t81*t93*t470*t1886) &
4487 + (t81*t466*t920) - 0.3e1_dp/0.4e1_dp*(t81)*(t1316) &
4488 *(t1886)
4489 t2140 = t81*t471*t920/0.2e1_dp - t166*t1878*t83*t170 + (2._dp &
4490 *t1731*t649) + (3._dp*t1731*t652) - (2._dp*t478*t512 &
4491 *t1886) + (t478)*t479*t920 - (3._dp*t478*t516*t2050) &
4492 + (3._dp*t478*t484*t2060) + 0.3e1_dp/0.2e1_dp*(t478)* &
4493 (t484)*(t2064) - 0.27e2_dp/0.4e1_dp*(t478)*(t1346) &
4494 *(t1989) - t151*t1979*t83*t159 + (2._dp*t1678*t635)
4495 t2159 = d2exeindrhondrho(q, dqndrho, d2qndrhondrho)
4496 t2174 = t2068*t185*t190 + 6._dp*t91*t1382*t1886 - 2._dp*t91*t344 &
4497 *t920 + (t2107 + t2140)*omega*t128 + f12*t1878*t94 - &
4498 t81*t93*t920 - 6._dp*t627*t629 - 3._dp*t148*t444*t920 + 2._dp* &
4499 t81*t149*t1886 + 12._dp*t148*t968*t1886 + t197*(t2159 + (t920 &
4500 *t200 - 2._dp*t1886*t545 + 2._dp*t1393*t1886 - t546*t920)* &
4501 t549*t199 - t690*t1401*t1620 + t691*t320)
4502 e_ndrho_ndrho = e_ndrho_ndrho + (-t80*(t2013 + t2174)*clda)*sx
4503 END IF
4504
4505 END SUBROUTINE xwpbe_lda_calc_3
4506
4507! **************************************************************************************************
4508!> \brief Evaluates the screened hole averaged PBE exchange functional for lda.
4509!> \param e_0 ...
4510!> \param e_rho ...
4511!> \param e_ndrho ...
4512!> \param e_rho_rho ...
4513!> \param e_ndrho_rho ...
4514!> \param e_ndrho_ndrho ...
4515!> \param rho , ndrho: density and norm of the density gradient
4516!> \param ndrho ...
4517!> \param omega screening parameter
4518!> \param sscale scaling factor to enforce Lieb-Oxford bound
4519!> \param sx scaling factor
4520!> \param order degree of the derivative that should be evaluated,
4521!> if positive all the derivatives up to the given degree are evaluated,
4522!> if negative only the given degree is calculated
4523!> \par History
4524!> 05.2007 created [Manuel Guidon]
4525!> \author Manuel Guidon
4526!> \note
4527!> This routine evaluates the functional for omega!=0 using a simple
4528!> gaussian expansion for large ww and a taylor expansion for the
4529!> parameter G.
4530! **************************************************************************************************
4531 SUBROUTINE xwpbe_lda_calc_4(e_0, e_rho, e_ndrho, e_rho_rho, e_ndrho_rho, &
4532 e_ndrho_ndrho, rho, ndrho, omega, sscale, sx, order)
4533 REAL(kind=dp), INTENT(INOUT) :: e_0, e_rho, e_ndrho, e_rho_rho, &
4534 e_ndrho_rho, e_ndrho_ndrho
4535 REAL(kind=dp), INTENT(IN) :: rho, ndrho, omega, sscale, sx
4536 INTEGER, INTENT(IN) :: order
4537
4538 REAL(kind=dp) :: d2qndrhondrho, d2qrhondrho, d2qrhorho, dqndrho, dqrho, q, t1, t10, t100, &
4539 t1001, t1011, t1017, t102, t1026, t103, t1033, t1035, t1040, t1047, t1048, t1049, t105, &
4540 t106, t1065, t1066, t1071, t1074, t108, t1082, t1089, t109, t1098, t11, t110, t111, &
4541 t1111, t1118, t113, t114, t115, t1155, t1157, t116, t117, t1174, t118, t1181, t1184, &
4542 t1189, t1190, t1198, t12, t1205, t1208, t121, t1210, t1218, t122, t1224, t1231, t125, &
4543 t1255, t126, t1261, t1264, t1266, t127, t1270, t1277, t128, t1288, t129, t1299, t13, &
4544 t1319, t1324, t133, t1336, t134, t1351, t136, t137, t1382, t1397, t14, t140
4545 REAL(kind=dp) :: t1405, t141, t1413, t1435, t1443, t1447, t1448, t145, t1452, t146, t1481, &
4546 t1483, t149, t15, t1500, t151, t1529, t153, t1533, t1537, t154, t155, t1552, t156, t1562, &
4547 t1566, t1570, t1576, t158, t159, t16, t160, t161, t1618, t163, t1652, t167, t1672, t169, &
4548 t17, t170, t171, t173, t174, t176, t177, t178, t179, t18, t180, t182, t183, t184, t185, &
4549 t188, t189, t19, t192, t193, t195, t196, t197, t198, t199, t2, t203, t206, t207, t208, &
4550 t209, t21, t210, t211, t212, t213, t219, t22, t220, t221, t222, t223, t227, t229, t23, &
4551 t235, t238, t239, t24, t240, t241, t246, t248, t249, t25, t252
4552 REAL(kind=dp) :: t253, t256, t257, t258, t261, t262, t263, t265, t266, t269, t27, t270, &
4553 t274, t277, t278, t279, t28, t281, t283, t286, t289, t29, t290, t293, t296, t299, t3, &
4554 t300, t302, t303, t305, t306, t309, t31, t310, t313, t316, t32, t321, t326, t327, t329, &
4555 t330, t331, t332, t333, t334, t34, t340, t341, t342, t345, t346, t35, t350, t351, t352, &
4556 t355, t359, t36, t360, t367, t368, t369, t372, t373, t374, t375, t379, t38, t382, t388, &
4557 t389, t39, t390, t393, t394, t4, t400, t401, t402, t405, t406, t41, t410, t412, t415, &
4558 t417, t42, t420, t421, t422, t423, t426, t427, t428, t431, t433, t434
4559 REAL(kind=dp) :: t435, t437, t438, t439, t44, t443, t444, t450, t453, t454, t456, t457, &
4560 t459, t46, t464, t465, t468, t469, t472, t473, t475, t476, t477, t478, t48, t484, t486, &
4561 t487, t49, t498, t5, t500, t501, t505, t510, t513, t519, t522, t526, t530, t533, t536, &
4562 t539, t54, t540, t544, t545, t548, t55, t553, t555, t557, t558, t56, t561, t563, t564, &
4563 t568, t569, t572, t575, t576, t578, t579, t58, t581, t584, t588, t594, t597, t599, t6, &
4564 t60, t603, t607, t61, t610, t613, t616, t618, t619, t620, t623, t63, t632, t65, t655, &
4565 t657, t662, t664, t667, t67, t68, t69, t694, t7, t70, t700, t706, t71
4566 REAL(kind=dp) :: t72, t723, t726, t728, t73, t74, t744, t75, t751, t752, t769, t77, t772, &
4567 t774, t78, t782, t783, t784, t789, t792, t793, t794, t795, t799, t8, t80, t803, t804, &
4568 t807, t81, t811, t812, t819, t82, t83, t84, t848, t85, t852, t862, t863, t864, t865, &
4569 t868, t87, t872, t878, t879, t88, t880, t9, t90, t91, t916, t92, t920, t93, t930, t931, &
4570 t932, t935, t939, t94, t943, t95, t956, t96, t961, t966, t97, t972, t985, t99, t990, t995
4571
4572 IF (order >= 0) THEN
4573 t1 = ndrho**2
4574 t2 = r2**2
4575 t3 = 0.1e1_dp/t2
4576 t4 = t1*t3
4577 t5 = pi**2
4578 t6 = r3*t5
4579 t7 = t6*rho
4580 t8 = t7**(0.1e1_dp/0.3e1_dp)
4581 t9 = t8**2
4582 t10 = 0.1e1_dp/t9
4583 t11 = t4*t10
4584 t12 = rho**2
4585 t13 = 0.1e1_dp/t12
4586 t14 = sscale**2
4587 t15 = t13*t14
4588 t16 = a1*t1
4589 t17 = t16*t3
4590 t18 = t10*t13
4591 t19 = t18*t14
4592 t21 = t1**2
4593 t22 = a2*t21
4594 t23 = t2**2
4595 t24 = 0.1e1_dp/t23
4596 t25 = t22*t24
4597 t27 = 0.1e1_dp/t8/t7
4598 t28 = t12**2
4599 t29 = 0.1e1_dp/t28
4600 t31 = t14**2
4601 t32 = t27*t29*t31
4602 t34 = t17*t19 + t25*t32
4603 t35 = a3*t21
4604 t36 = t35*t24
4605 t38 = t21*ndrho
4606 t39 = a4*t38
4607 t41 = 0.1e1_dp/t23/r2
4608 t42 = t39*t41
4609 t44 = 0.1e1_dp/t9/t7
4610 t46 = 0.1e1_dp/t28/rho
4611 t48 = t31*sscale
4612 t49 = t44*t46*t48
4613 t54 = 0.1e1_dp/t23/t2
4614 t55 = a5*t21*t1*t54
4615 t56 = r3**2
4616 t58 = t5**2
4617 t60 = 0.1e1_dp/t56/t58
4618 t61 = t28**2
4619 t63 = t31*t14
4620 t65 = t60/t61*t63
4621 t67 = r1 + t36*t32 + t42*t49 + t55*t65
4622 t68 = 0.1e1_dp/t67
4623 t69 = t34*t68
4624 t70 = t15*t69
4625 t71 = t11*t70
4626 t72 = omega**2
4627 t73 = beta2*t72
4628 t74 = t73*t10
4629 t75 = t71 + t74
4630 t77 = 0.1e1_dp/a
4631 q = f94*t75*t77
4632 t78 = rho**(0.1e1_dp/0.3e1_dp)
4633 t80 = t78*rho*f89
4634 t81 = b*f12
4635 t82 = t71 + dd
4636 t83 = 0.1e1_dp/t82
4637 t84 = t81*t83
4638 t85 = f2*t34
4639 t87 = f1 + t85*t68
4640 t88 = t15*t87
4641 t90 = t11*t88 + r1
4642 t91 = f12*t90
4643 t92 = t82**2
4644 t93 = 0.1e1_dp/t92
4645 t94 = c*t93
4646 t95 = t91*t94
4647 t96 = g2*t1
4648 t97 = t96*t3
4649 t99 = g3*t21
4650 t100 = t99*t24
4651 t102 = g1 + t97*t19 + t100*t32
4652 t103 = t15*t102
4653 t105 = t11*t103 + r1
4654 t106 = t105*e
4655 t108 = 0.1e1_dp/t92/t82
4656 t109 = t106*t108
4657 t110 = f158*e
4658 t111 = t105*t83
4659 t113 = t71 + dd + t72*t10
4660 t114 = t113**2
4661 t115 = t114**2
4662 t116 = t115*t113
4663 t117 = sqrt(t116)
4664 t118 = 0.1e1_dp/t117
4665 t121 = sqrt(t113)
4666 t122 = 0.1e1_dp/t121
4667 t125 = f68*c
4668 t126 = t90*t83
4669 t127 = t114*t113
4670 t128 = sqrt(t127)
4671 t129 = 0.1e1_dp/t128
4672 t133 = (-t110*t111*t118 - t81*t83*t122 - t125*t126*t129) &
4673 *omega
4674 t134 = 0.1e1_dp/t8
4675 t136 = f52*e
4676 t137 = t105*t93
4677 t140 = f12*c
4678 t141 = t90*t93
4679 t145 = t72*omega
4680 t146 = (-t136*t137*t118 - t140*t141*t129)*t145
4681 t149 = 0.1e1_dp/r3/t5
4682 t151 = t149/rho
4683 t153 = t72**2
4684 t154 = t153*omega
4685 t155 = t118*t154
4686 t156 = t155*t44
4687 t158 = f12*a
4688 t159 = exei(q)
4689 t160 = t71 + dd + t74
4690 t161 = 0.1e1_dp/t160
4691 t163 = log(t75*t161)
4692 t167 = (t84 + t95 + t109 + t133*t134 + t146*t151 - t109*t156 &
4693 + t158*(t159 + t163))*clda
4694 e_0 = e_0 + (-t80*t167)*sx
4695 END IF
4696 IF (order >= 1 .OR. order == -1) THEN
4697 t169 = t44*t13
4698 t170 = t4*t169
4699 t171 = t14*t34
4700 t173 = t68*r3*t5
4701 t174 = t171*t173
4702 t176 = 0.2e1_dp/0.3e1_dp*t170*t174
4703 t177 = t12*rho
4704 t178 = 0.1e1_dp/t177
4705 t179 = t178*t14
4706 t180 = t179*t69
4707 t182 = 2._dp*t11*t180
4708 t183 = t3*t44
4709 t184 = t16*t183
4710 t185 = t15*t6
4711 t188 = t10*t178
4712 t189 = t188*t14
4713 t192 = t56*t58
4714 t193 = t192*t12
4715 t195 = 0.1e1_dp/t8/t193
4716 t196 = t24*t195
4717 t197 = t22*t196
4718 t198 = t29*t31
4719 t199 = t198*t6
4720 t203 = t27*t46*t31
4721 t206 = -0.2e1_dp/0.3e1_dp*t184*t185 - (2._dp*t17*t189) - 0.4e1_dp &
4722 /0.3e1_dp*t197*t199 - (4._dp*t25*t203)
4723 t207 = t206*t68
4724 t208 = t15*t207
4725 t209 = t11*t208
4726 t210 = t4*t18
4727 t211 = t67**2
4728 t212 = 0.1e1_dp/t211
4729 t213 = t35*t196
4730 t219 = 0.1e1_dp/t9/t193
4731 t220 = t41*t219
4732 t221 = t39*t220
4733 t222 = t46*t48
4734 t223 = t222*t6
4735 t227 = 0.1e1_dp/t28/t12
4736 t229 = t44*t227*t48
4737 t235 = t60/t61/rho*t63
4738 t238 = -0.4e1_dp/0.3e1_dp*t213*t199 - (4._dp*t36*t203) - 0.5e1_dp &
4739 /0.3e1_dp*t221*t223 - (5._dp*t42*t229) - (8._dp*t55*t235)
4740 t239 = t212*t238
4741 t240 = t171*t239
4742 t241 = t210*t240
4743 t246 = -t176 - t182 + t209 - t241 - 0.2e1_dp/0.3e1_dp*t73*t44*r3 &
4744 *t5
4745 dqrho = f94*t246*t77
4746 t248 = ndrho*t3
4747 t249 = t248*t10
4748 t252 = a1*ndrho
4749 t253 = t252*t3
4750 t256 = t1*ndrho
4751 t257 = a2*t256
4752 t258 = t257*t24
4753 t261 = 2._dp*t253*t19 + 4._dp*t258*t32
4754 t262 = t261*t68
4755 t263 = t15*t262
4756 t265 = a3*t256
4757 t266 = t265*t24
4758 t269 = a4*t21
4759 t270 = t269*t41
4760 t274 = a5*t38*t54
4761 t277 = 4._dp*t266*t32 + 5._dp*t270*t49 + 6._dp*t274*t65
4762 t278 = t212*t277
4763 t279 = t171*t278
4764 t281 = 2._dp*t249*t70 + t11*t263 - t210*t279
4765 dqndrho = f94*t281*t77
4766 t283 = t78*f89
4767 t286 = -t176 - t182 + t209 - t241
4768 t289 = t14*t87
4769 t290 = t289*t6
4770 t293 = t179*t87
4771 t296 = f2*t206
4772 t299 = t296*t68 - t85*t239
4773 t300 = t15*t299
4774 t302 = -0.2e1_dp/0.3e1_dp*t170*t290 - (2._dp*t11*t293) + (t11 &
4775 *t300)
4776 t303 = f12*t302
4777 t305 = c*t108
4778 t306 = t305*t286
4779 t309 = t14*t102
4780 t310 = t309*t6
4781 t313 = t179*t102
4782 t316 = t96*t183
4783 t321 = t99*t196
4784 t326 = -0.2e1_dp/0.3e1_dp*t316*t185 - (2._dp*t97*t189) - 0.4e1_dp &
4785 /0.3e1_dp*t321*t199 - (4._dp*t100*t203)
4786 t327 = t15*t326
4787 t329 = -0.2e1_dp/0.3e1_dp*t170*t310 - (2._dp*t11*t313) + (t11 &
4788 *t327)
4789 t330 = t329*e
4790 t331 = t330*t108
4791 t332 = t92**2
4792 t333 = 0.1e1_dp/t332
4793 t334 = t333*t286
4794 t340 = t110*t105
4795 t341 = t93*t118
4796 t342 = t341*t286
4797 t345 = 0.1e1_dp/t117/t116
4798 t346 = t83*t345
4799 t350 = -t176 - t182 + t209 - t241 - 0.2e1_dp/0.3e1_dp*t72*t44*t6
4800 t351 = t115*t350
4801 t352 = t346*t351
4802 t355 = t93*t122
4803 t359 = 0.1e1_dp/t121/t113
4804 t360 = t83*t359
4805 t367 = t125*t90
4806 t368 = t93*t129
4807 t369 = t368*t286
4808 t372 = 0.1e1_dp/t128/t127
4809 t373 = t83*t372
4810 t374 = t114*t350
4811 t375 = t373*t374
4812 t379 = (-t110*t329*t83*t118 + t340*t342 + 0.5e1_dp/0.2e1_dp*t340 &
4813 *t352 + t81*t355*t286 + t81*t360*t350/0.2e1_dp - t125 &
4814 *t302*t83*t129 + t367*t369 + 0.3e1_dp/0.2e1_dp*t367*t375)* &
4815 omega
4816 t382 = t27*r3*t5
4817 t388 = t136*t105
4818 t389 = t108*t118
4819 t390 = t389*t286
4820 t393 = t93*t345
4821 t394 = t393*t351
4822 t400 = t140*t90
4823 t401 = t108*t129
4824 t402 = t401*t286
4825 t405 = t93*t372
4826 t406 = t405*t374
4827 t410 = (-t136*t329*t93*t118 + (2._dp*t388*t390) + 0.5e1_dp/ &
4828 0.2e1_dp*(t388)*(t394) - t140*t302*t93*t129 + (2._dp &
4829 *t400*t402) + 0.3e1_dp/0.2e1_dp*(t400)*(t406))*t145
4830 t412 = t149*t13
4831 t415 = t106*t333
4832 t417 = t155*t44*t286
4833 t420 = t108*t345
4834 t421 = t106*t420
4835 t422 = t154*t44
4836 t423 = t422*t351
4837 t426 = t106*t389
4838 t427 = t154*t219
4839 t428 = t427*t6
4840 t431 = dexeirho(q, dqrho)
4841 t433 = t160**2
4842 t434 = 0.1e1_dp/t433
4843 t435 = t75*t434
4844 t437 = t246*t161 - t435*t246
4845 t438 = 0.1e1_dp/t75
4846 t439 = t437*t438
4847 t443 = -t81*t93*t286 + t303*t94 - (2._dp*t91*t306) + t331 &
4848 - (3._dp*t106*t334) + t379*t134 - t133*t382/0.3e1_dp + t410 &
4849 *t151 - t146*t412 - t331*t156 + (3._dp*t415*t417) + 0.5e1_dp &
4850 /0.2e1_dp*t421*t423 + 0.5e1_dp/0.3e1_dp*t426*t428 + t158*(t431 &
4851 + t439*t160)
4852 t444 = t443*clda
4853 e_rho = e_rho + (-0.4e1_dp/0.3e1_dp*t283*t167 - t80*t444)*sx
4854 t450 = f2*t261
4855 t453 = t450*t68 - t85*t278
4856 t454 = t15*t453
4857 t456 = 2._dp*t249*t88 + t11*t454
4858 t457 = f12*t456
4859 t459 = t305*t281
4860 t464 = g2*ndrho
4861 t465 = t464*t3
4862 t468 = g3*t256
4863 t469 = t468*t24
4864 t472 = 2._dp*t465*t19 + 4._dp*t469*t32
4865 t473 = t15*t472
4866 t475 = 2._dp*t249*t103 + t11*t473
4867 t476 = t475*e
4868 t477 = t476*t108
4869 t478 = t333*t281
4870 t484 = t341*t281
4871 t486 = t115*t281
4872 t487 = t346*t486
4873 t498 = t368*t281
4874 t500 = t114*t281
4875 t501 = t373*t500
4876 t505 = (-t110*t475*t83*t118 + t340*t484 + 0.5e1_dp/0.2e1_dp*t340 &
4877 *t487 + t81*t355*t281 + t81*t360*t281/0.2e1_dp - t125 &
4878 *t456*t83*t129 + t367*t498 + 0.3e1_dp/0.2e1_dp*t367*t501)* &
4879 omega
4880 t510 = t389*t281
4881 t513 = t393*t486
4882 t519 = t401*t281
4883 t522 = t405*t500
4884 t526 = (-t136*t475*t93*t118 + (2._dp*t388*t510) + 0.5e1_dp/ &
4885 0.2e1_dp*(t388)*(t513) - t140*t456*t93*t129 + (2._dp &
4886 *t400*t519) + 0.3e1_dp/0.2e1_dp*(t400)*(t522))*t145
4887 t530 = t155*t44*t281
4888 t533 = t422*t486
4889 t536 = dexeindrho(q, dqndrho)
4890 t539 = t281*t161 - t435*t281
4891 t540 = t539*t438
4892 t544 = -t81*t93*t281 + t457*t94 - (2._dp*t91*t459) + t477 &
4893 - (3._dp*t106*t478) + t505*t134 + t526*t151 - t477*t156 &
4894 + (3._dp*t415*t530) + 0.5e1_dp/0.2e1_dp*t421*t533 + t158*(t536 &
4895 + t540*t160)
4896 t545 = t544*clda
4897 e_ndrho = e_ndrho + (-t80*t545)*sx
4898 END IF
4899 IF (order >= 2 .OR. order == -2) THEN
4900 t548 = t4*t219*t13
4901 t553 = 0.10e2_dp/0.9e1_dp*t548*t171*t68*t56*t58
4902 t555 = t4*t44*t178
4903 t557 = 0.8e1_dp/0.3e1_dp*t555*t174
4904 t558 = t14*t206
4905 t561 = 0.4e1_dp/0.3e1_dp*t170*t558*t173
4906 t563 = t4*t169*t14
4907 t564 = t34*t212
4908 t568 = 0.4e1_dp/0.3e1_dp*t563*t564*t6*t238
4909 t569 = t29*t14
4910 t572 = 6._dp*t11*t569*t69
4911 t575 = 4._dp*t11*t179*t207
4912 t576 = t4*t188
4913 t578 = 4._dp*t576*t240
4914 t579 = t3*t219
4915 t581 = t15*t192
4916 t584 = t179*t6
4917 t588 = t10*t29*t14
4918 t594 = t56*r3*t58*t5*t177
4919 t597 = t24/t8/t594
4920 t599 = t198*t192
4921 t603 = t46*t31*t6
4922 t607 = t27*t227*t31
4923 t610 = 0.10e2_dp/0.9e1_dp*t16*t579*t581 + 0.8e1_dp/0.3e1_dp*t184* &
4924 t584 + (6._dp*t17*t588) + 0.28e2_dp/0.9e1_dp*t22*t597*t599 + &
4925 0.32e2_dp/0.3e1_dp*t197*t603 + (20._dp*t25*t607)
4926 t613 = t11*t15*t610*t68
4927 t616 = 2._dp*t210*t558*t239
4928 t618 = 0.1e1_dp/t211/t67
4929 t619 = t238**2
4930 t620 = t618*t619
4931 t623 = 2._dp*t210*t171*t620
4932 t632 = 0.1e1_dp/t9/t594
4933 t655 = t212*(0.28e2_dp/0.9e1_dp*t35*t597*t599 + 0.32e2_dp/0.3e1_dp &
4934 *t213*t603 + (20._dp*t36*t607) + 0.40e2_dp/0.9e1_dp*t39*t41 &
4935 *t632*t222*t192 + 0.50e2_dp/0.3e1_dp*t221*t227*t48*t6 + &
4936 0.30e2_dp*t42*t44/t28/t177*t48 + (72._dp*t55*t60/t61 &
4937 /t12*t63))
4938 t657 = t210*t171*t655
4939 t662 = t553 + t557 - t561 + t568 + t572 - t575 + t578 + t613 - t616 &
4940 + t623 - t657 + 0.10e2_dp/0.9e1_dp*t73*t219*t56*t58
4941 d2qrhorho = f94*t662*t77
4942 t664 = t248*t169
4943 t667 = t14*t261
4944 t694 = -0.4e1_dp/0.3e1_dp*t252*t183*t185 - (4._dp*t253*t189) &
4945 - 0.16e2_dp/0.3e1_dp*t257*t196*t199 - (16._dp*t258*t203)
4946 t700 = t248*t18
4947 t706 = t618*t238*t277
4948 t723 = t212*(-0.16e2_dp/0.3e1_dp*t265*t196*t199 - (16._dp*t266 &
4949 *t203) - 0.25e2_dp/0.3e1_dp*t269*t220*t223 - (25._dp*t270* &
4950 t229) - (48._dp*t274*t235))
4951 t726 = -0.4e1_dp/0.3e1_dp*t664*t174 - 0.2e1_dp/0.3e1_dp*t170*t667* &
4952 t173 + 0.2e1_dp/0.3e1_dp*t563*t564*t6*t277 - (4._dp*t249* &
4953 t180) - (2._dp*t11*t179*t262) + (2._dp*t576*t279) + (2._dp &
4954 *t249*t208) + (t11*t15*t694*t68) - t210*t558*t278 &
4955 - (2._dp*t700*t240) - t210*t667*t239 + 0.2e1_dp*t210* &
4956 t171*t706 - t210*t171*t723
4957 d2qrhondrho = f94*t726*t77
4958 t728 = t3*t10
4959 t744 = 2._dp*a1*t3*t19 + 12._dp*a2*t1*t24*t32
4960 t751 = t277**2
4961 t752 = t618*t751
4962 t769 = t212*(12._dp*a3*t1*t24*t32 + 20._dp*a4*t256*t41*t49 &
4963 + 30._dp*a5*t21*t54*t65)
4964 t772 = 2._dp*t728*t13*t171*t68 + 4._dp*t249*t263 - 4._dp*t700*t279 &
4965 + t11*t15*t744*t68 - 2._dp*t210*t667*t278 + 2._dp*t210* &
4966 t171*t752 - t210*t171*t769
4967 d2qndrhondrho = f94*t772*t77
4968 t774 = t78**2
4969 t782 = 0.1e1_dp/t332/t82
4970 t783 = t106*t782
4971 t784 = t286**2
4972 t789 = t115**2
4973 t792 = 0.1e1_dp/t117/t789/t114
4974 t793 = t83*t792
4975 t794 = t350**2
4976 t795 = t789*t794
4977 t799 = t108*t122
4978 t803 = t81*t93
4979 t804 = t359*t286
4980 t807 = t553 + t557 - t561 + t568 + t572 - t575 + t578 + t613 - t616 &
4981 + t623 - t657
4982 t811 = 0.1e1_dp/t121/t114
4983 t812 = t83*t811
4984 t819 = t553 + t557 - t561 + t568 + t572 - t575 + t578 + t613 - t616 &
4985 + t623 - t657 + 0.10e2_dp/0.9e1_dp*t72*t219*t192
4986 t848 = 0.10e2_dp/0.9e1_dp*t548*t289*t192 + 0.8e1_dp/0.3e1_dp*t555* &
4987 t290 - 0.4e1_dp/0.3e1_dp*t170*t14*t299*t6 + (6._dp*t11*t569 &
4988 *t87) - 0.4e1_dp*(t11)*t179*t299 + (t11*t15*(f2 &
4989 *t610*t68 - 2._dp*t296*t239 + 2._dp*t85*t620 - t85*t655))
4990 t852 = t125*t302
4991 t862 = -0.75e2_dp/0.4e1_dp*t340*t793*t795 - (2._dp*t81*t799* &
4992 t784) - t803*t804*t350 + (t81*t355*t807) - 0.3e1_dp/0.4e1_dp &
4993 *(t81)*(t812)*(t794) + (t81*t360*t819) &
4994 /0.2e1_dp - t125*t848*t83*t129 + (2._dp*t852*t369) + (3._dp &
4995 *t852*t375) - (2._dp*t367*t401*t784) + (t367*t368 &
4996 *t807)
4997 t863 = t125*t141
4998 t864 = t372*t286
4999 t865 = t864*t374
5000 t868 = t113*t794
5001 t872 = t114*t819
5002 t878 = 0.1e1_dp/t128/t115/t114
5003 t879 = t83*t878
5004 t880 = t115*t794
5005 t916 = 0.10e2_dp/0.9e1_dp*t548*t309*t192 + 0.8e1_dp/0.3e1_dp*t555* &
5006 t310 - 0.4e1_dp/0.3e1_dp*t170*t14*t326*t6 + (6._dp*t11*t569 &
5007 *t102) - 0.4e1_dp*(t11)*t179*t326 + (t11)*t15*(0.10e2_dp &
5008 /0.9e1_dp*t96*t579*t581 + 0.8e1_dp/0.3e1_dp*t316*t584 + &
5009 (6._dp*t97*t588) + 0.28e2_dp/0.9e1_dp*t99*t597*t599 + 0.32e2_dp &
5010 /0.3e1_dp*t321*t603 + (20._dp*t100*t607))
5011 t920 = t110*t329
5012 t930 = t110*t137
5013 t931 = t345*t286
5014 t932 = t931*t351
5015 t935 = t127*t794
5016 t939 = t115*t819
5017 t943 = -(3._dp*t863*t865) + (3._dp*t367*t373*t868) + 0.3e1_dp &
5018 /0.2e1_dp*(t367)*(t373)*(t872) - 0.27e2_dp/0.4e1_dp &
5019 *(t367)*(t879)*(t880) - t110*t916*t83*t118 &
5020 + (2._dp*t920*t342) + (5._dp*t920*t352) - (2._dp*t340* &
5021 t389*t784) + (t340*t341*t807) - (5._dp*t930*t932) + &
5022 (10._dp*t340*t346*t935) + 0.5e1_dp/0.2e1_dp*(t340)*(t346) &
5023 *(t939)
5024 t956 = t136*t329
5025 t961 = t333*t118
5026 t966 = t136*t105*t108
5027 t972 = t93*t792
5028 t985 = t140*t302
5029 t990 = t333*t129
5030 t995 = t140*t90*t108
5031 t1001 = t93*t878
5032 t1011 = -t136*t916*t93*t118 + (4._dp*t956*t390) + (5._dp &
5033 *t956*t394) - (6._dp*t388*t961*t784) - (10._dp*t966*t932) &
5034 + (2._dp*t388*t389*t807) - 0.75e2_dp/0.4e1_dp*(t388) &
5035 *(t972)*(t795) + (10._dp*t388*t393*t935) + 0.5e1_dp &
5036 /0.2e1_dp*(t388)*(t393)*(t939) - t140*t848*t93 &
5037 *t129 + (4._dp*t985*t402) + (3._dp*t985*t406) - (6._dp* &
5038 t400*t990*t784) - (6._dp*t995*t865) + (2._dp*t400*t401 &
5039 *t807) - 0.27e2_dp/0.4e1_dp*(t400)*(t1001)*(t880) &
5040 + (3._dp*t400*t405*t868) + 0.3e1_dp/0.2e1_dp*(t400)*(t405) &
5041 *(t872)
5042 t1017 = t106*t961
5043 t1026 = t106*t420*t154
5044 t1033 = d2exeirhorho(q, dqrho, d2qrhorho)
5045 t1035 = t246**2
5046 t1040 = t75/t433/t160
5047 t1047 = t75**2
5048 t1048 = 0.1e1_dp/t1047
5049 t1049 = t437*t1048
5050 t1065 = t106*t333*t345
5051 t1066 = t286*t115
5052 t1071 = t330*t420
5053 t1074 = -(12._dp*t783*t155*t44*t784) + (t862 + t943)*omega &
5054 *t134 + f12*t848*t94 + 0.4e1_dp/0.9e1_dp*t133*t195*t56* &
5055 t58 + t1011*t145*t151 + (12._dp*t106*t782*t784) - (10._dp &
5056 *t1017*t427*t286*r3*t5) - (t81*t93*t807) - 0.25e2_dp &
5057 /0.3e1_dp*(t1026)*(t219)*(t115)*(t350)* &
5058 (r3)*(t5) + (t158*(t1033 + (t662*t161 - 2._dp*t1035 &
5059 *t434 + 2._dp*t1040*t1035 - t435*t662)*t438*t160 - t1049 &
5060 *t160*t246 + t439*t246)) + (3._dp*t415*t155*t44*t807) &
5061 + (2._dp*t81*t108*t784) - (4._dp*t303*t306) - (15._dp* &
5062 t1065*t422*t1066*t350) + (5._dp*t1071*t423)
5063 t1082 = t106*t108*t792
5064 t1089 = t330*t333
5065 t1098 = t916*e*t108
5066 t1111 = c*t333
5067 t1118 = 0.5e1_dp/0.2e1_dp*t421*t422*t939 + (2._dp*t146*t149* &
5068 t178) - 0.75e2_dp/0.4e1_dp*t1082*t422*t795 - (3._dp*t106*t333 &
5069 *t807) + (6._dp*t1089*t417) + 0.10e2_dp*t421*t422*t935 &
5070 - 0.2e1_dp/0.3e1_dp*t379*t382 + t1098 - 0.40e2_dp/0.9e1_dp*t426*t154 &
5071 *t632*t192 - (2._dp*t410*t412) - (2._dp*t91*t305*t807) &
5072 - (6._dp*t330*t334) - t1098*t156 + (6._dp*t91*t1111 &
5073 *t784) + 0.10e2_dp/0.3e1_dp*(t330)*(t389)*(t428)
5074 e_rho_rho = e_rho_rho + (-0.4e1_dp/0.9e1_dp/t774*f89*t167 - 0.8e1_dp/0.3e1_dp*t283*t444 &
5075 - t80*(t1074 + t1118)*clda)*sx
5076 t1155 = -0.4e1_dp/0.3e1_dp*t664*t310 - 0.2e1_dp/0.3e1_dp*t170*t14* &
5077 t472*t6 - (4._dp*t249*t313) - 0.2e1_dp*t11*t179*t472 + (2._dp &
5078 *t249*t327) + t11*t15*(-0.4e1_dp/0.3e1_dp*t464*t183* &
5079 t185 - (4._dp*t465*t189) - 0.16e2_dp/0.3e1_dp*t468*t196*t199 &
5080 - (16._dp*t469*t203))
5081 t1157 = t1155*e*t108
5082 t1174 = t476*t333
5083 t1181 = t931*t486
5084 t1184 = t114*t726
5085 t1189 = t350*t281
5086 t1190 = t372*t114*t1189
5087 t1198 = t115*t726
5088 t1205 = t110*t475
5089 t1208 = t110*t111
5090 t1210 = t792*t789*t1189
5091 t1218 = t286*t281
5092 t1224 = t125*t456
5093 t1231 = -0.5e1_dp/0.2e1_dp*t930*t1181 + 0.3e1_dp/0.2e1_dp*t367*t373 &
5094 *t1184 - 0.3e1_dp/0.2e1_dp*t863*t1190 - t803*t804*t281/0.2e1_dp &
5095 + t81*t355*t726 + 0.5e1_dp/0.2e1_dp*t340*t346*t1198 + t81 &
5096 *t360*t726/0.2e1_dp + 0.5e1_dp/0.2e1_dp*t1205*t352 - 0.75e2_dp/0.4e1_dp &
5097 *t1208*t1210 - 0.2e1_dp*t81*t108*t122*t286*t281 - 0.2e1_dp &
5098 *t340*t389*t1218 + t340*t341*t726 + 0.3e1_dp/0.2e1_dp* &
5099 t1224*t375 - t110*t1155*t83*t118 + t920*t484
5100 t1255 = -0.4e1_dp/0.3e1_dp*t664*t290 - 0.2e1_dp/0.3e1_dp*t170*t14* &
5101 t453*t6 - (4._dp*t249*t293) - 0.2e1_dp*t11*t179*t453 + (2._dp &
5102 *t249*t300) + t11*t15*(f2*t694*t68 - t296*t278 &
5103 - t450*t239 + 2._dp*t85*t706 - t85*t723)
5104 t1261 = t345*t115*t1189
5105 t1264 = t125*t126
5106 t1266 = t878*t115*t1189
5107 t1270 = t345*t127*t1189
5108 t1277 = t372*t113*t1189
5109 t1288 = t864*t500
5110 t1299 = -t125*t1255*t83*t129 + t852*t498 - 0.5e1_dp/0.2e1_dp* &
5111 t930*t1261 - 0.27e2_dp/0.4e1_dp*t1264*t1266 + (10._dp*t1208* &
5112 t1270) + 0.3e1_dp/0.2e1_dp*t852*t501 + t1224*t369 + 0.3e1_dp*t1264 &
5113 *t1277 - 0.3e1_dp/0.4e1_dp*t84*t811*t350*t281 - t803*t359 &
5114 *t350*t281/0.2e1_dp - 0.3e1_dp/0.2e1_dp*t863*t1288 - (2._dp*t367 &
5115 *t401*t1218) + (t367*t368*t726) + 0.5e1_dp/0.2e1_dp*t920 &
5116 *t487 + t1205*t342
5117 t1319 = -0.75e2_dp/0.4e1_dp*t1082*t422*t789*t350*t281 - t1157 &
5118 *t156 - 0.15e2_dp/0.2e1_dp*t1065*t422*t1066*t281 + t1157 - (2._dp &
5119 *t303*t459) + 0.5e1_dp/0.3e1_dp*t476*t389*t428 - 0.25e2_dp &
5120 /0.6e1_dp*t1026*t219*r3*t5*t115*t281 + (3._dp*t1174* &
5121 t417) - t526*t412 - (2._dp*t91*t305*t726) + (t1231 + t1299) &
5122 *omega*t134 + 0.6e1_dp*t400*t334*t281 - 0.5e1_dp*t1017*t427 &
5123 *t6*t281 + 0.10e2_dp*t421*t422*t127*t350*t281 - (2._dp &
5124 *t457*t306) + 0.5e1_dp/0.2e1_dp*t1071*t533
5125 t1324 = d2exeirhondrho(q, dqrho, dqndrho, d2qrhondrho)
5126 t1336 = t160*t281
5127 t1351 = t476*t420
5128 t1382 = t136*t475
5129 t1397 = t136*t137
5130 t1405 = -t136*t1155*t93*t118 + (2._dp*t956*t510) + 0.5e1_dp &
5131 /0.2e1_dp*(t956)*(t513) + (2._dp*t1382*t390) - (6._dp &
5132 *t388*t961*t1218) - (5._dp*t966*t1181) + (2._dp*t388 &
5133 *t389*t726) + 0.5e1_dp/0.2e1_dp*(t1382)*(t394) - (5._dp &
5134 *t966*t1261) - 0.75e2_dp/0.4e1_dp*t1397*t1210 + 0.10e2_dp*t1397 &
5135 *t1270 + 0.5e1_dp/0.2e1_dp*(t388)*(t393)*(t1198)
5136 t1413 = t140*t456
5137 t1435 = -t140*t1255*t93*t129 + (2._dp*t985*t519) + 0.3e1_dp &
5138 /0.2e1_dp*(t985)*(t522) + (2._dp*t1413*t402) - (6._dp &
5139 *t400*t990*t1218) - (3._dp*t995*t1288) + (2._dp*t400 &
5140 *t401*t726) + 0.3e1_dp/0.2e1_dp*(t1413)*(t406) - (3._dp &
5141 *t995*t1190) - 0.27e2_dp/0.4e1_dp*t95*t1266 + 0.3e1_dp*t95*t1277 &
5142 + 0.3e1_dp/0.2e1_dp*(t400)*(t405)*(t1184)
5143 t1443 = -0.15e2_dp/0.2e1_dp*t1065*t422*t351*t281 + t158*(t1324 &
5144 + (t726*t161 - 0.2e1_dp*t246*t434*t281 + 0.2e1_dp*t1040*t246 &
5145 *t281 - t435*t726)*t438*t160 - t1049*t1336 + t439*t281) &
5146 - 0.12e2_dp*t106*t782*t118*t422*t1218 + 0.5e1_dp/0.2e1_dp* &
5147 t421*t422*t1198 - (3._dp*t330*t478) + 0.5e1_dp/0.2e1_dp*t1351 &
5148 *t423 + 0.12e2_dp*t106*t782*t286*t281 - 0.3e1_dp*t106*t333 &
5149 *t726 - t81*t93*t726 + f12*t1255*t94 + (3._dp*t1089 &
5150 *t530) - (3._dp*t476*t334) + 0.2e1_dp*t81*t108*t286*t281 &
5151 - t505*t382/0.3e1_dp + (t1405 + t1435)*t145*t151 + 0.3e1_dp*t415 &
5152 *t155*t44*t726
5153 e_ndrho_rho = e_ndrho_rho + (-0.4e1_dp/0.3e1_dp*t283*t545 - t80*(t1319 + t1443)*clda)*sx
5154 t1447 = t281**2
5155 t1448 = t1447*t115
5156 t1452 = d2exeindrhondrho(q, dqndrho, d2qndrhondrho)
5157 t1481 = 2._dp*t728*t103 + 4._dp*t249*t473 + t11*t15*(2._dp*g2*t3 &
5158 *t19 + 12._dp*g3*t1*t24*t32)
5159 t1483 = t1481*e*t108
5160 t1500 = 2._dp*t728*t88 + 4._dp*t249*t454 + t11*t15*(f2*t744* &
5161 t68 - 2._dp*t450*t278 + 2._dp*t85*t752 - t85*t769)
5162 t1529 = t789*t1447
5163 t1533 = t127*t1447
5164 t1537 = t115*t772
5165 t1552 = t1447*t114
5166 t1562 = t113*t1447
5167 t1566 = t114*t772
5168 t1570 = -t136*t1481*t93*t118 + (4._dp*t1382*t510) + (5._dp &
5169 *t1382*t513) - (6._dp*t388*t961*t1447) - (10._dp*t388 &
5170 *t420*t1448) + (2._dp*t388*t389*t772) - 0.75e2_dp/0.4e1_dp* &
5171 (t388)*(t972)*(t1529) + (10._dp*t388*t393*t1533) &
5172 + 0.5e1_dp/0.2e1_dp*(t388)*(t393)*(t1537) - t140 &
5173 *t1500*t93*t129 + (4._dp*t1413*t519) + (3._dp*t1413 &
5174 *t522) - (6._dp*t400*t990*t1447) - (6._dp*t400*t108*t372 &
5175 *t1552) + (2._dp*t400*t401*t772) - 0.27e2_dp/0.4e1_dp*(t400) &
5176 *(t1001)*(t1448) + (3._dp*t400*t405*t1562) &
5177 + 0.3e1_dp/0.2e1_dp*(t400)*(t405)*(t1566)
5178 t1576 = -15._dp*t1065*t422*t1448 + t158*(t1452 + (t772*t161 - &
5179 2._dp*t1447*t434 + 2._dp*t1040*t1447 - t435*t772)*t438*t160 &
5180 - t539*t1048*t1336 + t540*t281) + t1483 - t81*t93*t772 &
5181 + f12*t1500*t94 + 2._dp*t81*t108*t1447 - 6._dp*t476*t478 - 3._dp &
5182 *t106*t333*t772 - 4._dp*t457*t459 + t1570*t145*t151 + 10._dp &
5183 *t421*t422*t1533
5184 t1618 = -(2._dp*t81*t799*t1447) - (t81*t93*t359*t1447) &
5185 + (t81*t355*t772) - 0.3e1_dp/0.4e1_dp*(t81)*(t812) &
5186 *(t1447) + (t81*t360*t772)/0.2e1_dp - t125*t1500 &
5187 *t83*t129 + (2._dp*t1224*t498) + (3._dp*t1224*t501) - &
5188 (2._dp*t367*t401*t1447) + (t367*t368*t772) - (3._dp &
5189 *t367*t405*t1552)
5190 t1652 = (3._dp*t367*t373*t1562) + 0.3e1_dp/0.2e1_dp*(t367) &
5191 *(t373)*(t1566) - 0.27e2_dp/0.4e1_dp*(t367)*(t879) &
5192 *(t1448) - t110*t1481*t83*t118 + (2._dp*t1205*t484) &
5193 + (5._dp*t1205*t487) - (2._dp*t340*t389*t1447) + (t340 &
5194 *t341*t772) - (5._dp*t340*t393*t1448) + (10._dp* &
5195 t340*t346*t1533) + 0.5e1_dp/0.2e1_dp*(t340)*(t346)* &
5196 (t1537) - 0.75e2_dp/0.4e1_dp*(t340)*(t793)*(t1529)
5197 t1672 = 0.5e1_dp/0.2e1_dp*t421*t422*t1537 - 0.75e2_dp/0.4e1_dp*t1082 &
5198 *t422*t1529 + (6._dp*t91*t1111*t1447) - (2._dp*t91* &
5199 t305*t772) + (t1618 + t1652)*omega*t134 + (12._dp*t106*t782 &
5200 *t1447) - t1483*t156 + (6._dp*t1174*t530) + (5._dp*t1351 &
5201 *t533) - (12._dp*t783*t155*t44*t1447) + (3._dp*t415 &
5202 *t155*t44*t772)
5203 e_ndrho_ndrho = e_ndrho_ndrho + (-t80*(t1576 + t1672)*clda)*sx
5204 END IF
5205
5206 END SUBROUTINE xwpbe_lda_calc_4
5207
5208! **************************************************************************************************
5209!> \brief return various information on the functional
5210!> \param reference string with the reference of the actual functional
5211!> \param shortform string with the shortform of the functional name
5212!> \param needs the components needed by this functional are set to
5213!> true (does not set the unneeded components to false)
5214!> \param max_deriv ...
5215!> \par History
5216!> 05.2007 created [Manuel Guidon]
5217!> \author Manuel Guidon
5218! **************************************************************************************************
5219 SUBROUTINE xwpbe_lsd_info(reference, shortform, needs, max_deriv)
5220 CHARACTER(LEN=*), INTENT(OUT), OPTIONAL :: reference, shortform
5221 TYPE(xc_rho_cflags_type), INTENT(inout), OPTIONAL :: needs
5222 INTEGER, INTENT(out), OPTIONAL :: max_deriv
5223
5224 IF (PRESENT(reference)) THEN
5225 reference = "Jochen Heyd and Gustavo E. Scuseria, J. Chem. Phys., 120, 7274 {LSD version}"
5226 END IF
5227 IF (PRESENT(shortform)) THEN
5228 shortform = "shortrange part of PBE exchange {LSD}"
5229 END IF
5230 IF (PRESENT(needs)) THEN
5231 needs%rho_spin = .true.
5232 needs%norm_drho_spin = .true.
5233 END IF
5234 IF (PRESENT(max_deriv)) max_deriv = 2
5235 END SUBROUTINE xwpbe_lsd_info
5236
5237! **************************************************************************************************
5238!> \brief evaluates the screened hole averaged PBE exchange functional for lsd
5239!> \param rho_set the density where you want to evaluate the functional
5240!> \param deriv_set place where to store the functional derivatives (they are
5241!> added to the derivatives)
5242!> \param order degree of the derivative that should be evaluated,
5243!> if positive all the derivatives up to the given degree are evaluated,
5244!> if negative only the given degree is calculated
5245!> \param xwpbe_params input parameters (scaling,omega)
5246!> \par History
5247!> 05.2007 created [Manuel Guidon]
5248!> \author Manuel Guidon
5249!> \note
5250!> The current version provides code for derivatives up to second order.
5251!> Using the maple sheet in cp2k/doc it is straightforward to produce routines
5252!> for higher derivatives.
5253! **************************************************************************************************
5254 SUBROUTINE xwpbe_lsd_eval(rho_set, deriv_set, order, xwpbe_params)
5255
5256 TYPE(xc_rho_set_type), INTENT(IN) :: rho_set
5257 TYPE(xc_derivative_set_type), INTENT(IN) :: deriv_set
5258 INTEGER, INTENT(IN) :: order
5259 TYPE(section_vals_type), POINTER :: xwpbe_params
5260
5261 CHARACTER(len=*), PARAMETER :: routinen = 'xwpbe_lsd_eval'
5262
5263 INTEGER :: handle, npoints
5264 INTEGER, DIMENSION(2, 3) :: bo
5265 REAL(kind=dp) :: epsilon_norm_drho, epsilon_rho, omega, &
5266 sx, sx0
5267 REAL(kind=dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: dummy, e_0, e_ndrhoa, &
5268 e_ndrhoa_ndrhoa, e_ndrhoa_rhoa, e_ndrhob, e_ndrhob_ndrhob, e_ndrhob_rhob, e_rhoa, &
5269 e_rhoa_rhoa, e_rhob, e_rhob_rhob, norm_drhoa, norm_drhob, rhoa, rhob
5270 TYPE(xc_derivative_type), POINTER :: deriv
5271
5272 CALL timeset(routinen, handle)
5273
5274 CALL cite_reference(heyd2004)
5275
5276 CALL section_vals_val_get(xwpbe_params, "SCALE_X", r_val=sx)
5277 CALL section_vals_val_get(xwpbe_params, "SCALE_X0", r_val=sx0)
5278 CALL section_vals_val_get(xwpbe_params, "OMEGA", r_val=omega)
5279
5280 CALL xc_rho_set_get(rho_set, rhoa=rhoa, rhob=rhob, norm_drhoa=norm_drhoa, &
5281 norm_drhob=norm_drhob, local_bounds=bo, rho_cutoff=epsilon_rho, &
5282 drho_cutoff=epsilon_norm_drho)
5283 npoints = (bo(2, 1) - bo(1, 1) + 1)*(bo(2, 2) - bo(1, 2) + 1)*(bo(2, 3) - bo(1, 3) + 1)
5284
5285 dummy => rhoa
5286
5287 e_0 => dummy
5288 e_rhoa => dummy
5289 e_rhob => dummy
5290 e_ndrhoa => dummy
5291 e_ndrhob => dummy
5292 e_rhoa_rhoa => dummy
5293 e_rhob_rhob => dummy
5294 e_ndrhoa_rhoa => dummy
5295 e_ndrhob_rhob => dummy
5296 e_ndrhoa_ndrhoa => dummy
5297 e_ndrhob_ndrhob => dummy
5298
5299 IF (order >= 0) THEN
5300 deriv => xc_dset_get_derivative(deriv_set, [INTEGER::], &
5301 allocate_deriv=.true.)
5302 CALL xc_derivative_get(deriv, deriv_data=e_0)
5303 END IF
5304 IF (order >= 1 .OR. order == -1) THEN
5305 deriv => xc_dset_get_derivative(deriv_set, [deriv_rhoa], &
5306 allocate_deriv=.true.)
5307 CALL xc_derivative_get(deriv, deriv_data=e_rhoa)
5308 deriv => xc_dset_get_derivative(deriv_set, [deriv_rhob], &
5309 allocate_deriv=.true.)
5310 CALL xc_derivative_get(deriv, deriv_data=e_rhob)
5311 deriv => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa], &
5312 allocate_deriv=.true.)
5313 CALL xc_derivative_get(deriv, deriv_data=e_ndrhoa)
5314 deriv => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob], &
5315 allocate_deriv=.true.)
5316 CALL xc_derivative_get(deriv, deriv_data=e_ndrhob)
5317 END IF
5318 IF (order >= 2 .OR. order == -2) THEN
5319 deriv => xc_dset_get_derivative(deriv_set, [deriv_rhoa, deriv_rhoa], &
5320 allocate_deriv=.true.)
5321 CALL xc_derivative_get(deriv, deriv_data=e_rhoa_rhoa)
5322 deriv => xc_dset_get_derivative(deriv_set, [deriv_rhob, deriv_rhob], &
5323 allocate_deriv=.true.)
5324 CALL xc_derivative_get(deriv, deriv_data=e_rhob_rhob)
5325 deriv => xc_dset_get_derivative(deriv_set, [deriv_norm_drhoa, deriv_rhoa], &
5326 allocate_deriv=.true.)
5327 CALL xc_derivative_get(deriv, deriv_data=e_ndrhoa_rhoa)
5328 deriv => xc_dset_get_derivative(deriv_set, [deriv_norm_drhob, deriv_rhob], &
5329 allocate_deriv=.true.)
5330 CALL xc_derivative_get(deriv, deriv_data=e_ndrhob_rhob)
5331 deriv => xc_dset_get_derivative(deriv_set, &
5332 [deriv_norm_drhoa, deriv_norm_drhoa], allocate_deriv=.true.)
5333 CALL xc_derivative_get(deriv, deriv_data=e_ndrhoa_ndrhoa)
5334 deriv => xc_dset_get_derivative(deriv_set, &
5335 [deriv_norm_drhob, deriv_norm_drhob], allocate_deriv=.true.)
5336 CALL xc_derivative_get(deriv, deriv_data=e_ndrhob_ndrhob)
5337 END IF
5338 IF (order > 2 .OR. order < -2) THEN
5339 cpabort("derivatives bigger than 2 not implemented")
5340 END IF
5341
5342!$OMP PARALLEL DEFAULT(NONE) &
5343!$OMP SHARED(npoints, order, rhoa, norm_drhoa, e_0, e_rhoa, e_ndrhoa) &
5344!$OMP SHARED(e_rhoa_rhoa, e_ndrhoa_rhoa, e_ndrhoa_ndrhoa, epsilon_rho) &
5345!$OMP SHARED(sx, sx0, omega) &
5346!$OMP SHARED(rhob, norm_drhob, e_rhob, e_ndrhob, e_rhob_rhob) &
5347!$OMP SHARED(e_ndrhob_rhob, e_ndrhob_ndrhob)
5348
5349 !Call lsd_calc for alpha - and beta - spins
5350
5351 CALL xwpbe_lsd_calc(npoints, order, rho=rhoa, norm_drho=norm_drhoa, &
5352 e_0=e_0, e_rho=e_rhoa, e_ndrho=e_ndrhoa, e_rho_rho=e_rhoa_rhoa, &
5353 e_ndrho_rho=e_ndrhoa_rhoa, e_ndrho_ndrho=e_ndrhoa_ndrhoa, &
5354 epsilon_rho=epsilon_rho, &
5355 sx=sx, sx0=sx0, omega=omega)
5356 CALL xwpbe_lsd_calc(npoints, order, rho=rhob, norm_drho=norm_drhob, &
5357 e_0=e_0, e_rho=e_rhob, e_ndrho=e_ndrhob, e_rho_rho=e_rhob_rhob, &
5358 e_ndrho_rho=e_ndrhob_rhob, e_ndrho_ndrho=e_ndrhob_ndrhob, &
5359 epsilon_rho=epsilon_rho, &
5360 sx=sx, sx0=sx0, omega=omega)
5361
5362!$OMP END PARALLEL
5363
5364 CALL timestop(handle)
5365
5366 END SUBROUTINE xwpbe_lsd_eval
5367
5368! **************************************************************************************************
5369!> \brief evaluates the screened hole averaged PBE exchange functional for lsd.
5370!> \param npoints ...
5371!> \param order degree of the derivative that should be evaluated,
5372!> if positive all the derivatives up to the given degree are evaluated,
5373!> if negative only the given degree is calculated
5374!> \param rho , ndrho: density and norm of the density gradient
5375!> \param norm_drho ...
5376!> \param e_0 ...
5377!> \param e_rho ...
5378!> \param e_ndrho ...
5379!> \param e_rho_rho ...
5380!> \param e_ndrho_rho ...
5381!> \param e_ndrho_ndrho ...
5382!> \param epsilon_rho ...
5383!> \param sx , sx0: scaling factor for omega!=0 and omega=0
5384!> \param sx0 ...
5385!> \param omega screening parameter
5386!> \par History
5387!> 05.2007 created [Manuel Guidon]
5388!> \author Manuel Guidon
5389!> \note
5390!> - The lsd part is calculated using the spin-scaling relations for the
5391!> exchange energy:
5392!>
5393!> Ex[na,nb] = 0.5 * Ex[2*na] + 0.5 * Ex[2*nb].
5394!>
5395!> - In order to avoid numerical instabilities, this routine calls different
5396!> subroutines. There are 4 routines for the case omega!=0 and 2 routines
5397!> for omega=0.
5398! **************************************************************************************************
5399 SUBROUTINE xwpbe_lsd_calc(npoints, order, rho, norm_drho, e_0, e_rho, e_ndrho, &
5400 e_rho_rho, e_ndrho_rho, e_ndrho_ndrho, &
5401 epsilon_rho, sx, sx0, omega)
5402
5403 INTEGER, INTENT(in) :: npoints, order
5404 REAL(kind=dp), DIMENSION(1:npoints), INTENT(inout) :: rho, norm_drho, e_0, e_rho, e_ndrho, &
5405 e_rho_rho, e_ndrho_rho, e_ndrho_ndrho
5406 REAL(kind=dp), INTENT(in) :: epsilon_rho, sx, sx0, omega
5407
5408 INTEGER :: ip
5409 REAL(dp) :: e_0_temp, my_ndrho, my_rho
5410 REAL(kind=dp) :: ss, ss2, sscale, t1, t2, t3, t4, t5, t6, &
5411 t7, t8, ww
5412
5413!$OMP DO
5414
5415 DO ip = 1, npoints
5416 !According to spin-scaling relation, we need twice the density and its gradient
5417 my_rho = 2.0_dp*max(rho(ip), 0.0_dp)
5418 IF (my_rho > epsilon_rho) THEN
5419 my_ndrho = 2.0_dp*max(norm_drho(ip), 0.0_dp)
5420
5421 !Do some precalculation in order to catch the correct branch afterwards
5422 sscale = 1.0_dp
5423 t1 = pi**2
5424 t2 = t1*my_rho
5425 t3 = t2**(0.1e1_dp/0.3e1_dp)
5426 t4 = 0.1e1_dp/t3
5427 t5 = omega*t4
5428 ww = 0.6933612743506347048433524e0_dp*t5
5429 t6 = my_ndrho*t4
5430 t7 = 0.1e1_dp/my_rho
5431 t8 = t7*sscale
5432 ss = 0.3466806371753173524216762e0_dp*t6*t8
5433 IF (ss > scutoff) THEN
5434 ss2 = ss*ss
5435 sscale = ((smax)*ss2 - (sconst))/(ss2*ss)
5436 END IF
5437 e_0_temp = 0.0_dp
5438 IF (sx0 /= 0.0_dp) THEN
5439 !original PBE hole
5440 IF (ss*sscale > gcutoff) THEN
5441 CALL xwpbe_lda_calc_0(e_0_temp, e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
5442 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
5443 my_ndrho, sscale, sx0, order)
5444 ELSE
5445 CALL xwpbe_lda_calc_01(e_0_temp, e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
5446 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
5447 my_ndrho, sscale, sx0, order)
5448 END IF
5449 !According to spin-scaling relation, we need only half of the energy
5450 e_0(ip) = e_0(ip) + 0.5_dp*e_0_temp
5451 END IF
5452 e_0_temp = 0.0_dp
5453 IF (sx /= 0.0_dp) THEN
5454 IF (ww < wcutoff .AND. ss*sscale > gcutoff) THEN
5455 CALL xwpbe_lda_calc_1(e_0_temp, e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
5456 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
5457 my_ndrho, omega, sscale, sx, order)
5458 ELSE IF (ww < wcutoff .AND. ss*sscale <= gcutoff) THEN
5459 CALL xwpbe_lda_calc_2(e_0_temp, e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
5460 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
5461 my_ndrho, omega, sscale, sx, order)
5462 ELSE IF (ww >= wcutoff .AND. ss*sscale > gcutoff) THEN
5463 CALL xwpbe_lda_calc_3(e_0_temp, e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
5464 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
5465 my_ndrho, omega, sscale, sx, order)
5466 ELSE
5467 CALL xwpbe_lda_calc_4(e_0_temp, e_rho(ip), e_ndrho(ip), e_rho_rho(ip), &
5468 e_ndrho_rho(ip), e_ndrho_ndrho(ip), my_rho, &
5469 my_ndrho, omega, sscale, sx, order)
5470 END IF
5471 !According to spin-scaling relation, we need only half of the energy
5472 END IF
5473 e_0(ip) = e_0(ip) + 0.5_dp*e_0_temp
5474 END IF
5475 END DO
5476
5477!$OMP END DO
5478
5479 END SUBROUTINE xwpbe_lsd_calc
5480
5481! **************************************************************************************************
5482!> \brief These functions evaluate products exp(x)*Ei(x) and pi*exp(x)*erfc(sqrt(x)),
5483!> as well as their derivatives with respect to various combinations of
5484!> rho and norm_drho.
5485!> \param Q , dQrho, dQndrho, d2Qrhondrho :
5486!> Argument Q and derivatives with respect to various combinations of
5487!> rho and norm_drho
5488!> \return ...
5489!> \par History
5490!> 05.2007 created [Manuel Guidon]
5491!> \author Manuel Guidon
5492!> \note
5493!> - In order to avoid numerical instabilities, these routines use Taylor-
5494!> expansions for the above core-products for large arguments.
5495!> - When adapting this module for higher order derivatives, appropriate
5496!> functions have to be provided!
5497! **************************************************************************************************
5498 FUNCTION exei(Q)
5499 REAL(dp), INTENT(IN) :: q
5500 REAL(dp) :: exei
5501
5502 exei = 0.0_dp
5503 IF (q < expcutoff) THEN
5504 !Use exact product
5505 exei = exp(q)*expint(1, q)
5506 ELSE
5507 !Use approximation
5508 exei = (1._dp/q)*(q*q + exei1*q + exei2)/(q*q + exei3*q + exei4)
5509 END IF
5510 END FUNCTION exei
5511
5512! **************************************************************************************************
5513!> \brief ...
5514!> \param Q ...
5515!> \return ...
5516! **************************************************************************************************
5517 FUNCTION exer(Q)
5518 REAL(dp), INTENT(IN) :: q
5519 REAL(dp) :: exer
5520
5521 REAL(dp) :: q3, q5
5522
5523 exer = 0.0_dp
5524 IF (q < expcutoff) THEN
5525 !Use exact expression
5526 exer = pi*exp(q)*erfc(sqrt(q))
5527 ELSE
5528 !Use approximation
5529 q3 = q*q*q
5530 q5 = q3*q*q
5531 exer = pi*(1.0_dp/sqrt(q*pi) - 1.0_dp/(2.0_dp*sqrt(pi*q3)) + 3.0_dp/(4.0_dp*(sqrt(pi*q5))))
5532 END IF
5533 END FUNCTION exer
5534
5535! **************************************************************************************************
5536!> \brief ...
5537!> \param Q ...
5538!> \param dQrho ...
5539!> \return ...
5540! **************************************************************************************************
5541 FUNCTION dexeirho(Q, dQrho)
5542 REAL(dp), INTENT(IN) :: q, dqrho
5543 REAL(dp) :: dexeirho
5544
5545 dexeirho = dqrho*(exei(q) - 1.0_dp/q)
5546 END FUNCTION dexeirho
5547
5548! **************************************************************************************************
5549!> \brief ...
5550!> \param Q ...
5551!> \param dQndrho ...
5552!> \return ...
5553! **************************************************************************************************
5554 FUNCTION dexeindrho(Q, dQndrho)
5555 REAL(dp), INTENT(IN) :: q, dqndrho
5556 REAL(dp) :: dexeindrho
5557
5558 dexeindrho = dqndrho*(exei(q) - 1.0_dp/q)
5559 END FUNCTION dexeindrho
5560
5561! **************************************************************************************************
5562!> \brief ...
5563!> \param Q ...
5564!> \param dQrho ...
5565!> \return ...
5566! **************************************************************************************************
5567 FUNCTION dexerrho(Q, dQrho)
5568 REAL(dp), INTENT(IN) :: q, dqrho
5569 REAL(dp) :: dexerrho
5570
5571 dexerrho = dqrho*exer(q) - dqrho*rootpi/sqrt(q)
5572 END FUNCTION dexerrho
5573
5574! **************************************************************************************************
5575!> \brief ...
5576!> \param Q ...
5577!> \param dQndrho ...
5578!> \return ...
5579! **************************************************************************************************
5580 FUNCTION dexerndrho(Q, dQndrho)
5581 REAL(dp), INTENT(IN) :: q, dqndrho
5582 REAL(dp) :: dexerndrho
5583
5584 dexerndrho = dqndrho*exer(q) - dqndrho*rootpi/sqrt(q)
5585 END FUNCTION dexerndrho
5586
5587! **************************************************************************************************
5588!> \brief ...
5589!> \param Q ...
5590!> \param dQrho ...
5591!> \param d2Qrhorho ...
5592!> \return ...
5593! **************************************************************************************************
5594 FUNCTION d2exeirhorho(Q, dQrho, d2Qrhorho)
5595 REAL(dp), INTENT(IN) :: q, dqrho, d2qrhorho
5596 REAL(dp) :: d2exeirhorho
5597
5598 d2exeirhorho = exei(q)*(d2qrhorho + dqrho*dqrho) + &
5599 1.0_dp/(q*q)*(-q*dqrho*dqrho - q*d2qrhorho + dqrho*dqrho)
5600 END FUNCTION d2exeirhorho
5601
5602! **************************************************************************************************
5603!> \brief ...
5604!> \param Q ...
5605!> \param dQrho ...
5606!> \param d2Qrhorho ...
5607!> \return ...
5608! **************************************************************************************************
5609 FUNCTION d2exerrhorho(Q, dQrho, d2Qrhorho)
5610 REAL(dp), INTENT(IN) :: q, dqrho, d2qrhorho
5611 REAL(dp) :: d2exerrhorho
5612
5613 REAL(dp) :: pi12, q12
5614
5615 q12 = sqrt(q)
5616 pi12 = rootpi
5617
5618 d2exerrhorho = exer(q)*(d2qrhorho + dqrho*dqrho) - dqrho*dqrho/(pi12*q12) + &
5619 0.5_dp*dqrho*dqrho/(pi12*q*q12) - d2qrhorho/(pi12*q12)
5620 END FUNCTION d2exerrhorho
5621
5622! **************************************************************************************************
5623!> \brief ...
5624!> \param Q ...
5625!> \param dQrho ...
5626!> \param dQndrho ...
5627!> \param d2Qrhondrho ...
5628!> \return ...
5629! **************************************************************************************************
5630 FUNCTION d2exeirhondrho(Q, dQrho, dQndrho, d2Qrhondrho)
5631 REAL(dp), INTENT(IN) :: q, dqrho, dqndrho, d2qrhondrho
5632 REAL(dp) :: d2exeirhondrho
5633
5634 d2exeirhondrho = exei(q)*(d2qrhondrho + dqrho*dqndrho) - &
5635 1.0_dp/q*(dqrho*dqndrho + d2qrhondrho) + 1.0_dp/(q*q)*dqrho*dqndrho
5636 END FUNCTION d2exeirhondrho
5637
5638! **************************************************************************************************
5639!> \brief ...
5640!> \param Q ...
5641!> \param dQrho ...
5642!> \param dQndrho ...
5643!> \param d2Qrhondrho ...
5644!> \return ...
5645! **************************************************************************************************
5646 FUNCTION d2exerrhondrho(Q, dQrho, dQndrho, d2Qrhondrho)
5647 REAL(dp), INTENT(IN) :: q, dqrho, dqndrho, d2qrhondrho
5648 REAL(dp) :: d2exerrhondrho
5649
5650 REAL(dp) :: pi12, q12
5651
5652 q12 = sqrt(q)
5653 pi12 = rootpi
5654
5655 d2exerrhondrho = exer(q)*(d2qrhondrho + dqrho*dqndrho) - 1.0_dp/(pi12*q12)*dqrho*dqndrho &
5656 + 0.5_dp/(pi12*q12*q)*dqrho*dqndrho - 1.0_dp/(pi12*q12)*d2qrhondrho
5657 END FUNCTION d2exerrhondrho
5658
5659! **************************************************************************************************
5660!> \brief ...
5661!> \param Q ...
5662!> \param dQndrho ...
5663!> \param d2Qndrhondrho ...
5664!> \return ...
5665! **************************************************************************************************
5666 FUNCTION d2exeindrhondrho(Q, dQndrho, d2Qndrhondrho)
5667 REAL(dp), INTENT(IN) :: q, dqndrho, d2qndrhondrho
5668 REAL(dp) :: d2exeindrhondrho
5669
5670 d2exeindrhondrho = exei(q)*(d2qndrhondrho + dqndrho*dqndrho) + &
5671 1.0_dp/(q*q)*(-q*dqndrho*dqndrho - q*d2qndrhondrho + dqndrho*dqndrho)
5672 END FUNCTION d2exeindrhondrho
5673
5674! **************************************************************************************************
5675!> \brief ...
5676!> \param Q ...
5677!> \param dQndrho ...
5678!> \param d2Qndrhondrho ...
5679!> \return ...
5680! **************************************************************************************************
5681 FUNCTION d2exerndrhondrho(Q, dQndrho, d2Qndrhondrho)
5682 REAL(dp), INTENT(IN) :: q, dqndrho, d2qndrhondrho
5683 REAL(dp) :: d2exerndrhondrho
5684
5685 REAL(dp) :: pi12, q12
5686
5687 q12 = sqrt(q)
5688 pi12 = rootpi
5689
5690 d2exerndrhondrho = exer(q)*(d2qndrhondrho + dqndrho*dqndrho) - dqndrho*dqndrho/(pi12*q12) &
5691 + 0.5_dp*dqndrho*dqndrho/(pi12*q*q12) - d2qndrhondrho/(pi12*q12)
5692 END FUNCTION d2exerndrhondrho
5693
5694END MODULE xc_xwpbe
5695
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public heyd2004
objects that represent the structure of input sections and the data contained in an input section
subroutine, public section_vals_val_get(section_vals, keyword_name, i_rep_section, i_rep_val, n_rep_val, val, l_val, i_val, r_val, c_val, l_vals, i_vals, r_vals, c_vals, explicit)
returns the requested value
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Definition of mathematical constants and functions.
real(kind=dp), parameter, public pi
real(kind=dp), parameter, public rootpi
Collection of simple mathematical functions and subroutines.
Definition mathlib.F:15
elemental impure real(dp) function, public expint(n, x)
computes the exponential integral En(x) = Int(exp(-x*t)/t^n,t=1..infinity) x>0, n=0,...
Definition mathlib.F:1404
Module with functions to handle derivative descriptors. derivative description are strings have the f...
integer, parameter, public deriv_norm_drho
integer, parameter, public deriv_norm_drhoa
integer, parameter, public deriv_rhob
integer, parameter, public deriv_rhoa
integer, parameter, public deriv_rho
integer, parameter, public deriv_norm_drhob
represent a group ofunctional derivatives
type(xc_derivative_type) function, pointer, public xc_dset_get_derivative(derivative_set, description, allocate_deriv)
returns the requested xc_derivative
Provides types for the management of the xc-functionals and their derivatives.
subroutine, public xc_derivative_get(deriv, split_desc, order, deriv_data, accept_null_data)
returns various information on the given derivative
contains the structure
contains the structure
subroutine, public xc_rho_set_get(rho_set, can_return_null, rho, drho, norm_drho, rhoa, rhob, norm_drhoa, norm_drhob, rho_1_3, rhoa_1_3, rhob_1_3, laplace_rho, laplace_rhoa, laplace_rhob, drhoa, drhob, rho_cutoff, drho_cutoff, tau_cutoff, tau, tau_a, tau_b, local_bounds)
returns the various attributes of rho_set
Calculates short range exchange part for wPBE functional and averaged PBE exchange-hole functional (o...
Definition xc_xwpbe.F:15
subroutine, public xwpbe_lda_eval(rho_set, deriv_set, order, xwpbe_params)
evaluates the screened hole averaged PBE exchange functional for lda
Definition xc_xwpbe.F:150
subroutine, public xwpbe_lsd_eval(rho_set, deriv_set, order, xwpbe_params)
evaluates the screened hole averaged PBE exchange functional for lsd
Definition xc_xwpbe.F:5255
subroutine, public xwpbe_lda_info(reference, shortform, needs, max_deriv)
return various information on the functional
Definition xc_xwpbe.F:113
subroutine, public xwpbe_lsd_info(reference, shortform, needs, max_deriv)
return various information on the functional
Definition xc_xwpbe.F:5220
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