Line data Source code
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 Generation of the spherical Lebedev grids.
10 : !> All Lebedev grids were generated with a precision of at least
11 : !> 33 digits (Mathematica). Thus the Lebedev abscissas and weights
12 : !> are accurate to 32 digits (quadruple precision).
13 : !> \version 1.0
14 : !>
15 : !> \par Literature
16 : !> - V. I. Lebedev, Zh. Vychisl. Mat. Mat. Fiz. 15, 48 (1975)
17 : !> - V. I. Lebedev, Zh. Vychisl. Mat. Mat. Fiz. 16, 293 (1976)
18 : !> - V. I. Lebedev, Sibirsk Mat. Zh. 18, 132 (1977)
19 : !> - V. I. Lebedev and A. L. Skorokhodov, Russ. Acad. Sci. Dokl.
20 : !> Math. 45, 587 (1992)
21 : !> - V. I. Lebedev, Russ. Acad. Sci. Dokl. Math. 50, 283 (1995)
22 : !> \par Notes
23 : !> Implemented Lebedev grids:
24 : !> No. l n(nonred.) n(total)
25 : !> 1 3 1 6
26 : !> 2 5 2 14
27 : !> 3 7 3 26
28 : !> 4 9 3 38
29 : !> 5 11 4 50
30 : !> 6 15 5 86
31 : !> 7 17 6 110
32 : !> 8 19 7 146
33 : !> 9 23 9 194
34 : !> 10 29 12 302
35 : !> 11 35 16 434
36 : !> 12 41 20 590
37 : !> 13 47 25 770
38 : !> 14 53 30 974
39 : !> \par Variables:
40 : !> - lebedev_grid: Lebedev grids.
41 : !> l: Angular momentum quantum number l.
42 : !> n: Number of grid points.
43 : !> w: Grid point weights.
44 : !> r: Abscissas (grid point coordinates)
45 : !> - max_np : Maximum number of nonredundant grid points.
46 : !> - na1 : Number of point for subsystem A1.
47 : !> - na2 : Number of point for subsystem A2.
48 : !> - na3 : Number of point for subsystem A3.
49 : !> - nb : Number of point for subsystem B.
50 : !> - nc : Number of point for subsystem C.
51 : !> - nd : Number of point for subsystem D.
52 : !> - nlg : Number of implemented Lebedev grids.
53 : !> - nlgp : Grid point counter.
54 : !> - r : Working storage (grid point coordinates).
55 : !> - w : Working storage (grid point weights).
56 : ! **************************************************************************************************
57 : MODULE lebedev
58 :
59 : USE kinds, ONLY: dp
60 : #include "../base/base_uses.f90"
61 :
62 : IMPLICIT NONE
63 :
64 : SAVE
65 :
66 : PRIVATE
67 : CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'lebedev'
68 :
69 : INTEGER, PARAMETER :: na1 = 6, &
70 : na2 = 12, &
71 : na3 = 8, &
72 : nb = 24, &
73 : nc = 24, &
74 : nd = 48, &
75 : nlg = 14, &
76 : max_np = 36
77 :
78 : ! **************************************************************************************************
79 : TYPE oh_grid
80 : INTEGER :: l = -1, n = -1
81 : REAL(KIND=dp), DIMENSION(:), POINTER :: w => NULL()
82 : REAL(KIND=dp), DIMENSION(:, :), POINTER :: r => NULL()
83 : END TYPE oh_grid
84 :
85 : TYPE(oh_grid), DIMENSION(nlg), TARGET :: lebedev_grid = oh_grid()
86 :
87 : REAL(KIND=dp), PARAMETER :: one = 1.0_dp, rs2 = one/SQRT(2.0_dp), rs3 = one/SQRT(3.0_dp), zero = 0.0_dp
88 : INTEGER :: nlgp = -1
89 : LOGICAL :: init_lebedev_grids_done = .FALSE.
90 :
91 : REAL(KIND=dp), DIMENSION(max_np/3) :: w = 0.0_dp
92 : REAL(KIND=dp), DIMENSION(max_np) :: r = 0.0_dp
93 :
94 : PUBLIC :: lebedev_grid
95 :
96 : PUBLIC :: deallocate_lebedev_grids, get_number_of_lebedev_grid, init_lebedev_grids
97 :
98 : CONTAINS
99 :
100 : ! **************************************************************************************************
101 : !> \brief Get the number of the Lebedev grid, which has the requested
102 : !> angular momentum quantnum number l or size n.
103 : !> \param l ...
104 : !> \param n ...
105 : !> \return ...
106 : !> \date 05.05.99
107 : !> \par Variables
108 : !> \author Matthias Krack
109 : !> \version 1.0
110 : !> \note - l : Minimal angular momentum quantum number of the requested Lebedev grid.
111 : !> \note - n : Minimal size of the requested Lebedev grid.
112 : ! **************************************************************************************************
113 2013 : FUNCTION get_number_of_lebedev_grid(l, n) RESULT(number_of_lebedev_grid)
114 :
115 : INTEGER, INTENT(IN), OPTIONAL :: l, n
116 : INTEGER :: number_of_lebedev_grid
117 :
118 : INTEGER :: i
119 2013 : INTEGER, ALLOCATABLE, DIMENSION(:) :: ll, nn
120 : INTEGER, DIMENSION(1) :: lgnum
121 :
122 2013 : IF (.NOT. init_lebedev_grids_done) CALL init_lebedev_grids
123 :
124 2013 : lgnum(1) = 0
125 2013 : ALLOCATE (nn(SIZE(lebedev_grid, 1)), ll(SIZE(lebedev_grid, 1)))
126 30195 : DO i = 1, SIZE(nn, 1)
127 28182 : nn(i) = lebedev_grid(i)%n
128 30195 : ll(i) = lebedev_grid(i)%l
129 : END DO
130 2013 : IF (PRESENT(l)) THEN
131 : ! lgnum(:) = MINLOC(lebedev_grid(:)%n,MASK=(lebedev_grid(:)%l >= l))
132 0 : lgnum(:) = MINLOC(nn(:), MASK=(ll(:) >= l))
133 2013 : ELSE IF (PRESENT(n)) THEN
134 : ! lgnum(:) = MINLOC(lebedev_grid(:)%n,MASK=(lebedev_grid(:)%n >= n))
135 34221 : lgnum(:) = MINLOC(nn(:), MASK=(nn(:) >= n))
136 : ELSE
137 0 : CPABORT("*** ERROR in FUNCTION get_number_of_lebedev_grid ***")
138 : END IF
139 :
140 2013 : IF (lgnum(1) == 0) THEN
141 0 : CPABORT("*** ERROR in FUNCTION get_number_of_lebedev_grid ***")
142 : ELSE
143 : number_of_lebedev_grid = lgnum(1)
144 : END IF
145 2013 : DEALLOCATE (nn, ll)
146 2013 : END FUNCTION get_number_of_lebedev_grid
147 :
148 : ! **************************************************************************************************
149 : !> \brief Load the Lebedev grid points of a subsystem.
150 : !> \param subsystem ...
151 : !> \param lgnum ...
152 : !> \param np ...
153 : !> \date 06.05.99
154 : !> \par Variables
155 : !> - subsystem: String, which specifies the selected subsystem.
156 : !> - lgnum : Number of the current Lebedev grid.
157 : !> - np : Number of the nonredundant grid points.
158 : !> \author Matthias Krack
159 : !> \version 1.0
160 : ! **************************************************************************************************
161 62717 : SUBROUTINE load_sub_grid(subsystem, lgnum, np)
162 : CHARACTER(*), INTENT(IN) :: subsystem
163 : INTEGER, INTENT(IN) :: lgnum, np
164 :
165 : INTEGER :: i, j
166 : REAL(KIND=dp) :: x, y, z
167 :
168 : ! *** Check argument values ***
169 :
170 62717 : IF ((lgnum < 1) .OR. (lgnum > nlg)) THEN
171 0 : CPABORT("Argument value #2 (lgnum) is out of range")
172 : END IF
173 :
174 62717 : IF ((np < 0) .OR. (np > max_np)) THEN
175 0 : CPABORT("Argument value #3 (np) is out of range")
176 : END IF
177 :
178 14882 : SELECT CASE (subsystem)
179 : CASE ("A1")
180 104174 : lebedev_grid(lgnum)%w(1:na1) = w(1)
181 : lebedev_grid(lgnum)%r(1:3, 1:na1) = &
182 : RESHAPE((/zero, zero, one, &
183 : zero, zero, -one, &
184 : zero, one, zero, &
185 : zero, -one, zero, &
186 : one, zero, zero, &
187 372050 : -one, zero, zero/), (/3, na1/))
188 14882 : nlgp = na1
189 : CASE ("A2")
190 82914 : lebedev_grid(lgnum)%w(nlgp + 1:nlgp + na2) = w(1)
191 : lebedev_grid(lgnum)%r(1:3, nlgp + 1:nlgp + na2) = &
192 : RESHAPE((/zero, rs2, rs2, &
193 : zero, rs2, -rs2, &
194 : zero, -rs2, rs2, &
195 : zero, -rs2, -rs2, &
196 : rs2, zero, rs2, &
197 : rs2, zero, -rs2, &
198 : -rs2, zero, rs2, &
199 : -rs2, zero, -rs2, &
200 : rs2, rs2, zero, &
201 : rs2, -rs2, zero, &
202 : -rs2, rs2, zero, &
203 312522 : -rs2, -rs2, zero/), (/3, na2/))
204 6378 : nlgp = nlgp + na2
205 : CASE ("A3")
206 124371 : lebedev_grid(lgnum)%w(nlgp + 1:nlgp + na3) = w(1)
207 : lebedev_grid(lgnum)%r(1:3, nlgp + 1:nlgp + na3) = &
208 : RESHAPE((/rs3, rs3, rs3, &
209 : rs3, rs3, -rs3, &
210 : rs3, -rs3, rs3, &
211 : -rs3, rs3, rs3, &
212 : rs3, -rs3, -rs3, &
213 : -rs3, rs3, -rs3, &
214 : -rs3, -rs3, rs3, &
215 456027 : -rs3, -rs3, -rs3/), (/3, na3/))
216 13819 : nlgp = nlgp + na3
217 : CASE ("B")
218 71221 : DO i = 1, np
219 60591 : x = r(i)
220 60591 : y = rs2*SQRT(one - x**2)
221 1514775 : lebedev_grid(lgnum)%w(nlgp + nb*(i - 1) + 1:nlgp + nb*i) = w(i)
222 : lebedev_grid(lgnum)%r(1:3, nlgp + nb*(i - 1) + 1:nlgp + nb*i) = &
223 : RESHAPE((/x, y, y, &
224 : x, y, -y, &
225 : x, -y, y, &
226 : x, -y, -y, &
227 : -x, y, y, &
228 : -x, y, -y, &
229 : -x, -y, y, &
230 : -x, -y, -y, &
231 : y, x, y, &
232 : y, x, -y, &
233 : -y, x, y, &
234 : -y, x, -y, &
235 : y, -x, y, &
236 : y, -x, -y, &
237 : -y, -x, y, &
238 : -y, -x, -y, &
239 : y, y, x, &
240 : y, -y, x, &
241 : -y, y, x, &
242 : -y, -y, x, &
243 : y, y, -x, &
244 : y, -y, -x, &
245 : -y, y, -x, &
246 10250509 : -y, -y, -x/), (/3, nb/))
247 : END DO
248 10630 : nlgp = nlgp + nb*np
249 : CASE ("C")
250 28701 : DO i = 1, np
251 19134 : x = r(i)
252 19134 : y = SQRT(one - x**2)
253 478350 : lebedev_grid(lgnum)%w(nlgp + nc*(i - 1) + 1:nlgp + nc*i) = w(i)
254 : lebedev_grid(lgnum)%r(1:3, nlgp + nc*(i - 1) + 1:nlgp + nc*i) = &
255 : RESHAPE((/x, y, zero, &
256 : x, -y, zero, &
257 : -x, y, zero, &
258 : -x, -y, zero, &
259 : y, x, zero, &
260 : y, -x, zero, &
261 : -y, x, zero, &
262 : -y, -x, zero, &
263 : x, zero, y, &
264 : x, zero, -y, &
265 : -x, zero, y, &
266 : -x, zero, -y, &
267 : y, zero, x, &
268 : y, zero, -x, &
269 : -y, zero, x, &
270 : -y, zero, -x, &
271 : zero, x, y, &
272 : zero, x, -y, &
273 : zero, -x, y, &
274 : zero, -x, -y, &
275 : zero, y, x, &
276 : zero, y, -x, &
277 : zero, -y, x, &
278 3243213 : zero, -y, -x/), (/3, nc/))
279 : END DO
280 9567 : nlgp = nlgp + nc*np
281 : CASE ("D")
282 7441 : IF (MODULO(np, 3) == 0) THEN
283 44646 : DO i = 1, np, 3
284 37205 : j = (i + 2)/3
285 37205 : x = r(i)
286 37205 : y = r(i + 1)
287 37205 : z = r(i + 2)
288 1823045 : lebedev_grid(lgnum)%w(nlgp + nd*(j - 1) + 1:nlgp + nd*j) = w(j)
289 : lebedev_grid(lgnum)%r(1:3, nlgp + nd*(j - 1) + 1:nlgp + nd*j) = &
290 : RESHAPE((/x, y, z, x, y, -z, x, -y, z, -x, y, z, &
291 : x, -y, -z, -x, y, -z, -x, -y, z, -x, -y, -z, &
292 : x, z, y, x, z, -y, x, -z, y, -x, z, y, &
293 : x, -z, -y, -x, z, -y, -x, -z, y, -x, -z, -y, &
294 : y, x, z, y, x, -z, y, -x, z, -y, x, z, &
295 : y, -x, -z, -y, x, -z, -y, -x, z, -y, -x, -z, &
296 : y, z, x, y, z, -x, y, -z, x, -y, z, x, &
297 : y, -z, -x, -y, z, -x, -y, -z, x, -y, -z, -x, &
298 : z, x, y, z, x, -y, z, -x, y, -z, x, y, &
299 : z, -x, -y, -z, x, -y, -z, -x, y, -z, -x, -y, &
300 : z, y, x, z, y, -x, z, -y, x, -z, y, x, &
301 12545526 : z, -y, -x, -z, y, -x, -z, -y, x, -z, -y, -x/), (/3, nd/))
302 : END DO
303 : ELSE
304 0 : CPABORT("Subsytem D: np is not modulo 3 (check argument #3)")
305 : END IF
306 7441 : nlgp = nlgp + nd*np/3
307 : CASE DEFAULT
308 : CALL cp_abort(__LOCATION__, &
309 : "The invalid subsystem <"//TRIM(subsystem)//"> was "// &
310 62717 : "specified (check argument #1)")
311 : END SELECT
312 :
313 : ! *** Reinitialize working storage ***
314 :
315 62717 : w(:) = zero
316 62717 : r(:) = zero
317 :
318 62717 : END SUBROUTINE load_sub_grid
319 :
320 : ! **************************************************************************************************
321 : !> \brief ...
322 : ! **************************************************************************************************
323 1061 : SUBROUTINE deallocate_lebedev_grids()
324 :
325 : INTEGER :: ilg
326 :
327 1061 : CPASSERT(init_lebedev_grids_done)
328 1061 : init_lebedev_grids_done = .FALSE.
329 :
330 15915 : DO ilg = 1, nlg
331 15915 : DEALLOCATE (lebedev_grid(ilg)%r, lebedev_grid(ilg)%w)
332 : END DO
333 :
334 1061 : END SUBROUTINE deallocate_lebedev_grids
335 :
336 : ! **************************************************************************************************
337 : !> \brief Load the coordinates and weights of the nonredundant Lebedev grid
338 : !> points.
339 : !> \date 04.05.99
340 : !> \author Matthias Krack
341 : !> \version 1.0
342 : ! **************************************************************************************************
343 1063 : SUBROUTINE init_lebedev_grids()
344 :
345 : CHARACTER(len=*), PARAMETER :: routineN = 'init_lebedev_grids'
346 :
347 : INTEGER :: handle, ilg
348 :
349 1063 : CALL timeset(routineN, handle)
350 :
351 15945 : DO ilg = 1, nlg
352 14882 : IF (ASSOCIATED(lebedev_grid(ilg)%r)) DEALLOCATE (lebedev_grid(ilg)%r)
353 15945 : IF (ASSOCIATED(lebedev_grid(ilg)%w)) DEALLOCATE (lebedev_grid(ilg)%w)
354 : END DO
355 :
356 : ! *** Load the angular momentum quantum numbers l of the Lebedev grids ***
357 :
358 15945 : lebedev_grid(1:nlg)%l = (/3, 5, 7, 9, 11, 15, 17, 19, 23, 29, 35, 41, 47, 53/)
359 :
360 : ! *** Load the total number of grid points for each Lebedev grid ***
361 :
362 : lebedev_grid(1:nlg)%n = (/6, 14, 26, 38, 50, 86, 110, 146, 194, 302, 434, 590, 770, &
363 15945 : 974/)
364 :
365 : ! *** Allocate storage for the Lebedev grids ***
366 :
367 15945 : DO ilg = 1, nlg
368 : ALLOCATE (lebedev_grid(ilg)%r(3, lebedev_grid(ilg)%n), &
369 75473 : lebedev_grid(ilg)%w(lebedev_grid(ilg)%n))
370 : END DO
371 :
372 : ! *** Load the coordinates and weights of the Lebedev grid points ***
373 :
374 : ! *** 1. l = 3 (6 points, octahedron) ***
375 :
376 1063 : w(1) = 1.0_dp/6.0_dp
377 1063 : CALL load_sub_grid("A1", 1, 0)
378 :
379 : ! *** 2. l = 5 (14 points, capped octahedron) ***
380 :
381 1063 : w(1) = 1.0_dp/15.0_dp
382 1063 : CALL load_sub_grid("A1", 2, 0)
383 :
384 1063 : w(1) = 3.0_dp/40.0_dp
385 1063 : CALL load_sub_grid("A3", 2, 0)
386 :
387 : ! *** 3. l = 7 (26 points) ***
388 :
389 1063 : w(1) = 1.0_dp/21.0_dp
390 1063 : CALL load_sub_grid("A1", 3, 0)
391 :
392 1063 : w(1) = 4.0_dp/105.0_dp
393 1063 : CALL load_sub_grid("A2", 3, 0)
394 :
395 1063 : w(1) = 9.0_dp/280.0_dp
396 1063 : CALL load_sub_grid("A3", 3, 0)
397 :
398 : ! *** 4. l = 9 (38 points) ***
399 :
400 1063 : w(1) = 1.0_dp/105.0_dp
401 1063 : CALL load_sub_grid("A1", 4, 0)
402 :
403 1063 : w(1) = 9.0_dp/280.0_dp
404 1063 : CALL load_sub_grid("A3", 4, 0)
405 :
406 1063 : w(1) = 1.0_dp/35.0_dp
407 1063 : r(1) = rs2*SQRT(1.0_dp + rs3)
408 1063 : CALL load_sub_grid("C", 4, 1)
409 :
410 : ! *** 5. l = 11 (50 points) ***
411 :
412 1063 : w(1) = 4.0_dp/315.0_dp
413 1063 : CALL load_sub_grid("A1", 5, 0)
414 :
415 1063 : w(1) = 64.0_dp/2835.0_dp
416 1063 : CALL load_sub_grid("A2", 5, 0)
417 :
418 1063 : w(1) = 27.0_dp/1280.0_dp
419 1063 : CALL load_sub_grid("A3", 5, 0)
420 :
421 1063 : w(1) = 14641.0_dp/725760.0_dp
422 1063 : r(1) = 3.0_dp/SQRT(11.0_dp)
423 1063 : CALL load_sub_grid("B", 5, 1)
424 :
425 : ! *** 6. l = 15 (86 points) ***
426 :
427 1063 : w(1) = 1.15440115440115440115440115440115E-2_dp
428 1063 : CALL load_sub_grid("A1", 6, 0)
429 :
430 1063 : w(1) = 1.19439090858562823236989259736470E-2_dp
431 1063 : CALL load_sub_grid("A3", 6, 0)
432 :
433 1063 : w(1) = 1.11105557106034025109468482160140E-2_dp
434 1063 : r(1) = 8.52518311701267605338736780155357E-1_dp
435 1063 : w(2) = 1.18765012945371420137882805994025E-2_dp
436 1063 : r(2) = 1.89063552885395482707075847005288E-1_dp
437 1063 : CALL load_sub_grid("B", 6, 2)
438 :
439 1063 : w(1) = 1.18123037469044753644792263073650E-2_dp
440 1063 : r(1) = 9.27330657151172465678969739310097E-1_dp
441 1063 : CALL load_sub_grid("C", 6, 1)
442 :
443 : ! *** 7. l = 17 (110 points) ***
444 :
445 1063 : w(1) = 3.82827049493716160382827049493716E-3_dp
446 1063 : CALL load_sub_grid("A1", 7, 0)
447 :
448 1063 : w(1) = 9.79373751248751248751248751248751E-3_dp
449 1063 : CALL load_sub_grid("A3", 7, 0)
450 :
451 1063 : w(1) = 8.21173728319111097598993405227308E-3_dp
452 1063 : r(1) = 9.65124035086594105655529546158531E-1_dp
453 1063 : w(2) = 9.59547133607096284945318117290259E-3_dp
454 1063 : r(2) = 8.28769981252592210694031500711749E-1_dp
455 1063 : w(3) = 9.94281489117810328140065828526450E-3_dp
456 1063 : r(3) = 2.15957291845848832354930328945946E-1_dp
457 1063 : CALL load_sub_grid("B", 7, 3)
458 :
459 1063 : w(1) = 9.69499636166302832969499636166303E-3_dp
460 1063 : r(1) = 8.78158910604066133449110592671618E-1_dp
461 1063 : CALL load_sub_grid("C", 7, 1)
462 :
463 : ! *** 8. l = 19 (146 points) ***
464 :
465 1063 : w(1) = 5.99631368862138092907323676554446E-4_dp
466 1063 : CALL load_sub_grid("A1", 8, 0)
467 :
468 1063 : w(1) = 7.37299971862075642305743268410561E-3_dp
469 1063 : CALL load_sub_grid("A2", 8, 0)
470 :
471 1063 : w(1) = 7.21051536014448777763305996834282E-3_dp
472 1063 : CALL load_sub_grid("A3", 8, 0)
473 :
474 1063 : w(1) = 7.57439415905403372268748574713806E-3_dp
475 1063 : r(1) = 9.74888643677173235480043489928723E-1_dp
476 1063 : w(2) = 6.75382948631447744073541732486459E-3_dp
477 1063 : r(2) = 8.07089818359582501629574989264033E-1_dp
478 1063 : w(3) = 7.11635549311755538760089284953968E-3_dp
479 1063 : r(3) = 2.91298882209526746288335878313128E-1_dp
480 1063 : CALL load_sub_grid("B", 8, 3)
481 :
482 1063 : w(1) = 6.99108735330326239417148508057599E-3_dp
483 1063 : r(1) = 1.40355381171318328571556780746292E-1_dp
484 1063 : r(2) = 4.49332832326955734884695382705101E-1_dp
485 1063 : r(3) = 8.82270011260322631916665753046583E-1_dp
486 1063 : CALL load_sub_grid("D", 8, 3)
487 :
488 : ! *** 9. l = 23 (194 points) ***
489 :
490 1063 : w(1) = 1.78234044724461115736727104869868E-3_dp
491 1063 : CALL load_sub_grid("A1", 9, 0)
492 :
493 1063 : w(1) = 5.71690594997710189299212838832099E-3_dp
494 1063 : CALL load_sub_grid("A2", 9, 0)
495 :
496 1063 : w(1) = 5.57338317884873796836784958446647E-3_dp
497 1063 : CALL load_sub_grid("A3", 9, 0)
498 :
499 1063 : w(1) = 5.51877146727361369172768460119380E-3_dp
500 1063 : r(1) = 7.77493219314767127213777704028801E-1_dp
501 1063 : w(2) = 5.15823771180538310324916154718792E-3_dp
502 1063 : r(2) = 9.12509096867473692992168387555434E-1_dp
503 1063 : w(3) = 5.60870408258799684374936673855184E-3_dp
504 1063 : r(3) = 3.14196994182586079225390955831946E-1_dp
505 1063 : w(4) = 4.10677702816939409072861128564582E-3_dp
506 1063 : r(4) = 9.82972302707253296863729593965148E-1_dp
507 1063 : CALL load_sub_grid("B", 9, 4)
508 :
509 1063 : w(1) = 5.05184606461480847598931196006390E-3_dp
510 1063 : r(1) = 9.38319218137591520905616389195671E-1_dp
511 1063 : CALL load_sub_grid("C", 9, 1)
512 :
513 1063 : w(1) = 5.53024891623309370129768269143303E-3_dp
514 1063 : r(1) = 1.59041710538352952424263581362096E-1_dp
515 1063 : r(2) = 5.25118572443642024905268207753317E-1_dp
516 1063 : r(3) = 8.36036015482458885943746377793309E-1_dp
517 1063 : CALL load_sub_grid("D", 9, 3)
518 :
519 : ! *** 10. l = 29 (302 points) ***
520 :
521 1063 : w(1) = 8.54591172512814813423121032618880E-4_dp
522 1063 : CALL load_sub_grid("A1", 10, 0)
523 :
524 1063 : w(1) = 3.59911928502557145886397858961119E-3_dp
525 1063 : CALL load_sub_grid("A3", 10, 0)
526 :
527 1063 : w(1) = 3.65004580767725542865433220112651E-3_dp
528 1063 : r(1) = 1.29238672710514925339493976600550E-1_dp
529 1063 : w(2) = 3.60482260141988171131480913104353E-3_dp
530 1063 : r(2) = 3.71034178384821189405344300671593E-1_dp
531 1063 : w(3) = 3.57672966174336707556208137560857E-3_dp
532 1063 : r(3) = 7.43452042987555751133204566760209E-1_dp
533 1063 : w(4) = 3.44978842430588331001302771048283E-3_dp
534 1063 : r(4) = 8.67643624544083327473890295837421E-1_dp
535 1063 : w(5) = 3.10895312241367525484587698082774E-3_dp
536 1063 : r(5) = 9.49454317226443084214869821724903E-1_dp
537 1063 : w(6) = 2.35210141368916437879217118337424E-3_dp
538 1063 : r(6) = 9.90705621379408123821774729602922E-1_dp
539 1063 : CALL load_sub_grid("B", 10, 6)
540 :
541 1063 : w(1) = 3.60082093221646027279920634177099E-3_dp
542 1063 : r(1) = 8.20326419827759303328870367500864E-1_dp
543 1063 : w(2) = 2.98234496317180385195111046924520E-3_dp
544 1063 : r(2) = 9.64408914879206014987053264857406E-1_dp
545 1063 : CALL load_sub_grid("C", 10, 2)
546 :
547 1063 : w(1) = 3.57154055427338708123297920312395E-3_dp
548 1063 : r(1) = 2.51003475177046506904110494820777E-1_dp
549 1063 : r(2) = 5.44867737258077380269062623720797E-1_dp
550 1063 : r(3) = 8.00072749407395172686232883863933E-1_dp
551 1063 : w(2) = 3.39231220500617018197882653945702E-3_dp
552 1063 : r(4) = 1.23354853258332742165467555277499E-1_dp
553 1063 : r(5) = 4.12772408316853095996383989497138E-1_dp
554 1063 : r(6) = 9.02442529533000401095678759353334E-1_dp
555 1063 : CALL load_sub_grid("D", 10, 6)
556 :
557 : ! *** 11. l = 35 (434 points) ***
558 :
559 1063 : w(1) = 5.26589796822443623921598397444095E-4_dp
560 1063 : CALL load_sub_grid("A1", 11, 0)
561 :
562 1063 : w(1) = 2.54821997200260718024899528063707E-3_dp
563 1063 : CALL load_sub_grid("A2", 11, 0)
564 :
565 1063 : w(1) = 2.51231741892730716751285677008112E-3_dp
566 1063 : CALL load_sub_grid("A3", 11, 0)
567 :
568 1063 : w(1) = 1.46249562159461384222611198788353E-3_dp
569 1063 : r(1) = 9.94255912631277812357804047239411E-1_dp
570 1063 : w(2) = 2.01427902091852819554717351102614E-3_dp
571 1063 : r(2) = 9.67987158791472796844440561853288E-1_dp
572 1063 : w(3) = 2.30269478222741577118243755624539E-3_dp
573 1063 : r(3) = 9.14472801120872429366691177286487E-1_dp
574 1063 : w(4) = 2.44537343731298000188170923067793E-3_dp
575 1063 : r(4) = 8.31584400419232294499745594669204E-1_dp
576 1063 : w(5) = 2.50172516840293614549327311336461E-3_dp
577 1063 : r(5) = 7.19016501040843432905788800294849E-1_dp
578 1063 : w(6) = 2.51326717459756436118956600426018E-3_dp
579 1063 : r(6) = 4.07712664897769512483055658274718E-1_dp
580 1063 : w(7) = 2.53040380118635500209853222454729E-3_dp
581 1063 : r(7) = 2.12646824707552073524018894972799E-1_dp
582 1063 : CALL load_sub_grid("B", 11, 7)
583 :
584 1063 : w(1) = 1.91095128217953227363116198076372E-3_dp
585 1063 : r(1) = 9.77642811118264871364737333213224E-1_dp
586 1063 : w(2) = 2.41744237563898077608784837021936E-3_dp
587 1063 : r(2) = 8.81813287779428812899447039158355E-1_dp
588 1063 : CALL load_sub_grid("C", 11, 2)
589 :
590 1063 : w(1) = 2.23660776043784866397235325901501E-3_dp
591 1063 : r(1) = 9.92176963642923726861469072682696E-2_dp
592 1063 : r(2) = 3.34436314534345491435541212141297E-1_dp
593 1063 : r(3) = 9.37180985855372235789161206437430E-1_dp
594 1063 : w(2) = 2.41693004432477530950382860647420E-3_dp
595 1063 : r(4) = 2.05482369640304370826435780923978E-1_dp
596 1063 : r(5) = 4.50233038258262537898138529993494E-1_dp
597 1063 : r(6) = 8.68946032287241197946412945028781E-1_dp
598 1063 : w(3) = 2.51223685456349510228853571762152E-3_dp
599 1063 : r(7) = 1.06801826075804827808519981079378E-1_dp
600 1063 : r(8) = 5.90515704892527108597639202779953E-1_dp
601 1063 : r(9) = 7.99927854385728570494616568630393E-1_dp
602 1063 : w(4) = 2.49664405455308596359511734587523E-3_dp
603 1063 : r(10) = 3.10428403516654146818973681387686E-1_dp
604 1063 : r(11) = 5.55015236107680716116395510647568E-1_dp
605 1063 : r(12) = 7.71746262691590088133470564383333E-1_dp
606 1063 : CALL load_sub_grid("D", 11, 12)
607 :
608 : ! *** 12. l = 41 (590 points) ***
609 :
610 1063 : w(1) = 3.09512129530618734224885916984167E-4_dp
611 1063 : CALL load_sub_grid("A1", 12, 0)
612 :
613 1063 : w(1) = 1.85237969859748902097779927120955E-3_dp
614 1063 : CALL load_sub_grid("A3", 12, 0)
615 :
616 1063 : w(1) = 9.76433116505105003063946798281256E-4_dp
617 1063 : r(1) = 9.96278129754016372294779397439010E-1_dp
618 1063 : w(2) = 1.38473723485169190049558481046633E-3_dp
619 1063 : r(2) = 9.78480583762693839428807199465825E-1_dp
620 1063 : w(3) = 1.61721064725441119207240564027320E-3_dp
621 1063 : r(3) = 9.41414158220402542954812123169147E-1_dp
622 1063 : w(4) = 1.74956465728115411858337657547711E-3_dp
623 1063 : r(4) = 8.83078727934132546639472279693012E-1_dp
624 1063 : w(5) = 1.81847177816276877817839645350131E-3_dp
625 1063 : r(5) = 8.02836877335273789544708232847842E-1_dp
626 1063 : w(6) = 1.84671595615124182496431643927999E-3_dp
627 1063 : r(6) = 7.00768575373572920755474238992223E-1_dp
628 1063 : w(7) = 1.85202882829621309713188574624172E-3_dp
629 1063 : r(7) = 4.33373868777154278470427918169993E-1_dp
630 1063 : w(8) = 1.85881258543831701688713685607976E-3_dp
631 1063 : r(8) = 2.70356088359165054450644840302674E-1_dp
632 1063 : w(9) = 1.87179063927774375088198703268059E-3_dp
633 1063 : r(9) = 9.21904070768989460773325829762845E-2_dp
634 1063 : CALL load_sub_grid("B", 12, 9)
635 :
636 1063 : w(1) = 1.30032168588604773254689500223665E-3_dp
637 1063 : r(1) = 9.85013335028001910431569760301413E-1_dp
638 1063 : w(2) = 1.70515399639586401999426890257133E-3_dp
639 1063 : r(2) = 9.18045287711453949033261544688478E-1_dp
640 1063 : w(3) = 1.85716119677407798248150549753942E-3_dp
641 1063 : r(3) = 7.91101929626901988791072435283520E-1_dp
642 1063 : CALL load_sub_grid("C", 12, 3)
643 :
644 1063 : w(1) = 1.55521360339680849695800543399046E-3_dp
645 1063 : r(1) = 8.21302158193251139256011433978433E-2_dp
646 1063 : r(2) = 2.77867319058624428710339115104831E-1_dp
647 1063 : r(3) = 9.57102074310072578548507660672158E-1_dp
648 1063 : w(2) = 1.80223912800852549116687840059028E-3_dp
649 1063 : r(4) = 8.99920584207487492736600381248490E-2_dp
650 1063 : r(5) = 5.03356427107511721798695016575784E-1_dp
651 1063 : r(6) = 8.59379855890721226547417613471625E-1_dp
652 1063 : w(3) = 1.84983056044366016523678105066982E-3_dp
653 1063 : r(7) = 1.81664084036020946133369276322890E-1_dp
654 1063 : r(8) = 5.98412649788537962548021778158698E-1_dp
655 1063 : r(9) = 7.80320742479920327279647082439668E-1_dp
656 1063 : w(4) = 1.71390450710670866804340083221112E-3_dp
657 1063 : r(10) = 1.72079522565687812382959749101837E-1_dp
658 1063 : r(11) = 3.79103540769556328153581995776882E-1_dp
659 1063 : r(12) = 9.09213475092373607255560905376387E-1_dp
660 1063 : w(5) = 1.80265893437745115894760427403985E-3_dp
661 1063 : r(13) = 2.63471665593794963182134911777324E-1_dp
662 1063 : r(14) = 4.74239284255198024276965888711084E-1_dp
663 1063 : r(15) = 8.40047488359050429417090817376105E-1_dp
664 1063 : w(6) = 1.84286647290528563239873317969286E-3_dp
665 1063 : r(16) = 3.51828092773351899746468433493901E-1_dp
666 1063 : r(17) = 5.61026380862206018993247924039616E-1_dp
667 1063 : r(18) = 7.49310611904115932021924350883623E-1_dp
668 1063 : CALL load_sub_grid("D", 12, 18)
669 :
670 : ! *** 13. l = 47 (770 points) ***
671 :
672 1063 : w(1) = 2.19294208818118413191132531546907E-4_dp
673 1063 : CALL load_sub_grid("A1", 13, 0)
674 :
675 1063 : w(1) = 1.43643361731907982089311290725143E-3_dp
676 1063 : CALL load_sub_grid("A2", 13, 0)
677 :
678 1063 : w(1) = 1.42194034433587736471699229343586E-3_dp
679 1063 : CALL load_sub_grid("A3", 13, 0)
680 :
681 1063 : w(1) = 6.79812351105050201620332392505941E-4_dp
682 1063 : r(1) = 9.97408677652823043744886496130338E-1_dp
683 1063 : w(2) = 9.91318423529491220896771270468706E-4_dp
684 1063 : r(2) = 9.84799753572301179668683394920869E-1_dp
685 1063 : w(3) = 1.18020783323894879580204544917243E-3_dp
686 1063 : r(3) = 9.58036675983391439732458619060098E-1_dp
687 1063 : w(4) = 1.29659960208092067423594734151509E-3_dp
688 1063 : r(4) = 9.15317950483154831654282453968846E-1_dp
689 1063 : w(5) = 1.36587142742831640181200652406724E-3_dp
690 1063 : r(5) = 8.55901928697886435270454067917142E-1_dp
691 1063 : w(6) = 1.40298860477532526267417750582642E-3_dp
692 1063 : r(6) = 7.79621319527635171330859492071650E-1_dp
693 1063 : w(7) = 1.41864556359560936142032713234525E-3_dp
694 1063 : r(7) = 6.86644447264154195285405155618666E-1_dp
695 1063 : w(8) = 1.42137674185166176103362636565150E-3_dp
696 1063 : r(8) = 4.52311920313658441442123883818590E-1_dp
697 1063 : w(9) = 1.42399647549096162940277119054908E-3_dp
698 1063 : r(9) = 3.12521305001653125265256223110153E-1_dp
699 1063 : w(10) = 1.43155404217856675285551659613462E-3_dp
700 1063 : r(10) = 1.60155803498828974610387120985563E-1_dp
701 1063 : CALL load_sub_grid("B", 13, 10)
702 :
703 1063 : w(1) = 9.25440149986536789398468419487000E-4_dp
704 1063 : r(1) = 9.89477537495598496934466234590453E-1_dp
705 1063 : w(2) = 1.25023999505350931588903916766368E-3_dp
706 1063 : r(2) = 9.40776878793758755393692765525837E-1_dp
707 1063 : w(3) = 1.39436584332923012313782491233921E-3_dp
708 1063 : r(3) = 8.45749305193653306776973233373898E-1_dp
709 1063 : CALL load_sub_grid("C", 13, 3)
710 :
711 1063 : w(1) = 1.12708909467174883469499826293069E-3_dp
712 1063 : r(1) = 6.94402439334941301856132689108761E-2_dp
713 1063 : r(2) = 2.35518789424232641745294975361896E-1_dp
714 1063 : r(3) = 9.69385863498432080572651262482050E-1_dp
715 1063 : w(2) = 1.34575376091067007284708159178371E-3_dp
716 1063 : r(4) = 2.26900410952945985812144550510454E-1_dp
717 1063 : r(5) = 4.10218247404573022502091360294078E-1_dp
718 1063 : r(6) = 8.83310360522112719095559130461882E-1_dp
719 1063 : w(3) = 1.42495728331678280442457616193820E-3_dp
720 1063 : r(7) = 8.02557460777533890494192154117455E-2_dp
721 1063 : r(8) = 6.21430241748160458082227723944198E-1_dp
722 1063 : r(9) = 7.79348105702660973885784203335648E-1_dp
723 1063 : w(4) = 1.26152334123774998512114871120604E-3_dp
724 1063 : r(10) = 1.46799952789657197013820141783396E-1_dp
725 1063 : r(11) = 3.24528434571739443574137218155171E-1_dp
726 1063 : r(12) = 9.34414827052402165196138643907493E-1_dp
727 1063 : w(5) = 1.39254710605269594012443620424449E-3_dp
728 1063 : r(13) = 1.57150776982472710564392240262888E-1_dp
729 1063 : r(14) = 5.22448218969662967424959711591943E-1_dp
730 1063 : r(15) = 8.38064133458312497889043403162912E-1_dp
731 1063 : w(6) = 1.41876167787765638610216672064623E-3_dp
732 1063 : r(16) = 2.36570299315724563080851921006450E-1_dp
733 1063 : r(17) = 6.01754663408955808458505175650313E-1_dp
734 1063 : r(18) = 7.62840624604669826410820436887813E-1_dp
735 1063 : w(7) = 1.33836668447955413932118842030907E-3_dp
736 1063 : r(19) = 7.71481586676573204146393256189282E-2_dp
737 1063 : r(20) = 4.34657551614116278920169057936696E-1_dp
738 1063 : r(21) = 8.97285336132833396499244991766618E-1_dp
739 1063 : w(8) = 1.39370086267613137196129133534721E-3_dp
740 1063 : r(22) = 3.06293666621073020830889612421600E-1_dp
741 1063 : r(23) = 4.90882658903761621546950183900134E-1_dp
742 1063 : r(24) = 8.15609223203975422051589658409773E-1_dp
743 1063 : w(9) = 1.41591475746693200265535028223575E-3_dp
744 1063 : r(25) = 3.82247737952478700050265491776632E-1_dp
745 1063 : r(26) = 5.64876814909950046651375249432877E-1_dp
746 1063 : r(27) = 7.31300793659765701947278263710234E-1_dp
747 1063 : CALL load_sub_grid("D", 13, 27)
748 :
749 : ! *** 14. l = 53 (974 points) ***
750 :
751 1063 : w(1) = 1.43829419052743111472634384792800E-4_dp
752 1063 : CALL load_sub_grid("A1", 14, 0)
753 :
754 1063 : w(1) = 1.12577228828700411922446003897444E-3_dp
755 1063 : CALL load_sub_grid("A3", 14, 0)
756 :
757 1063 : w(1) = 4.94802934194924095056628951683154E-4_dp
758 1063 : r(1) = 9.98155345023846501191494527575073E-1_dp
759 1063 : w(2) = 7.35799010912547049057334785150092E-4_dp
760 1063 : r(2) = 9.88883224354685545466876075112182E-1_dp
761 1063 : w(3) = 8.88913277130438430936840534873175E-4_dp
762 1063 : r(3) = 9.68890220434707404463853311788372E-1_dp
763 1063 : w(4) = 9.88834783892143487490379018339493E-4_dp
764 1063 : r(4) = 9.36602730407163187902332491169310E-1_dp
765 1063 : w(5) = 1.05329968170947064968554154238842E-3_dp
766 1063 : r(5) = 8.91267942647606054508357503868536E-1_dp
767 1063 : w(6) = 1.09277880701457848752501645357106E-3_dp
768 1063 : r(6) = 8.32596723702351872809065001851482E-1_dp
769 1063 : w(7) = 1.11438939406322716311544826926779E-3_dp
770 1063 : r(7) = 7.60582905315251495676259855686005E-1_dp
771 1063 : w(8) = 1.12372478805155528926212353749792E-3_dp
772 1063 : r(8) = 6.75400969108414309734349145075511E-1_dp
773 1063 : w(9) = 1.12523932524381359890224350348300E-3_dp
774 1063 : r(9) = 4.66858905695743283152769352096062E-1_dp
775 1063 : w(10) = 1.12615327181590500171763113615557E-3_dp
776 1063 : r(10) = 3.44613654237438223690005816795002E-1_dp
777 1063 : w(11) = 1.13028693112384079609639852411886E-3_dp
778 1063 : r(11) = 2.11954151850184645694140401473565E-1_dp
779 1063 : w(12) = 1.13498653436395488643714589963293E-3_dp
780 1063 : r(12) = 7.16244014499556615845369803814026E-2_dp
781 1063 : CALL load_sub_grid("B", 14, 12)
782 :
783 1063 : w(1) = 6.82336792710993096637138363442284E-4_dp
784 1063 : r(1) = 9.92323565431490196070394244122238E-1_dp
785 1063 : w(2) = 9.45415816044709583567874030695969E-4_dp
786 1063 : r(2) = 9.55781512496548488574596747552425E-1_dp
787 1063 : w(3) = 1.07442997538567914061819358161104E-3_dp
788 1063 : r(3) = 8.82785980701181710576015026411856E-1_dp
789 1063 : w(4) = 1.12930008656913165822354345410170E-3_dp
790 1063 : r(4) = 7.73778447257374736807517446423091E-1_dp
791 1063 : CALL load_sub_grid("C", 14, 4)
792 :
793 1063 : w(1) = 8.43688450090195438498026316671055E-4_dp
794 1063 : r(1) = 5.97404861418134181366741615801962E-2_dp
795 1063 : r(2) = 2.02912875277752280821562682821390E-1_dp
796 1063 : r(3) = 9.77372722845309994986723236843860E-1_dp
797 1063 : w(2) = 1.07525572044888463296011392358171E-3_dp
798 1063 : r(4) = 1.37576040847363647998707229269443E-1_dp
799 1063 : r(5) = 4.60262194248405393969672054729315E-1_dp
800 1063 : r(6) = 8.77058461865802689033970747916718E-1_dp
801 1063 : w(3) = 1.10857723686446203483870096411918E-3_dp
802 1063 : r(7) = 3.39101652633628571879780724877562E-1_dp
803 1063 : r(8) = 5.03067399966203571325278413235681E-1_dp
804 1063 : r(9) = 7.94942299964208514029117644252761E-1_dp
805 1063 : w(4) = 9.56647532378335729987022997768218E-4_dp
806 1063 : r(10) = 1.27167519143981950887694563391455E-1_dp
807 1063 : r(11) = 2.81760642244213432084049569237994E-1_dp
808 1063 : r(12) = 9.51020169374389952612600596224493E-1_dp
809 1063 : w(5) = 1.08066325071739071464463316273343E-3_dp
810 1063 : r(13) = 2.69312074041351249441688496163892E-1_dp
811 1063 : r(14) = 4.33156129172015739916409763707103E-1_dp
812 1063 : r(15) = 8.60143461601761963548074094490711E-1_dp
813 1063 : w(6) = 1.12679713119629459182839576027292E-3_dp
814 1063 : r(16) = 1.41978645260191825726693154370171E-1_dp
815 1063 : r(17) = 6.25616735858081415467234398457286E-1_dp
816 1063 : r(18) = 7.67102186220558360145428572382623E-1_dp
817 1063 : w(7) = 1.02256871535806121135514702022316E-3_dp
818 1063 : r(19) = 6.70928460073825495111114896527700E-2_dp
819 1063 : r(20) = 3.79839521685915669705644712365302E-1_dp
820 1063 : r(21) = 9.22616110730809020138255560099254E-1_dp
821 1063 : w(8) = 1.10896026771310753764243318312336E-3_dp
822 1063 : r(22) = 7.05773818325617225225155364651637E-2_dp
823 1063 : r(23) = 5.51750542142352049132113965320893E-1_dp
824 1063 : r(24) = 8.31017552413474225750006298786621E-1_dp
825 1063 : w(9) = 1.12279065343576582686387381292198E-3_dp
826 1063 : r(25) = 2.78388847788215460217462722823059E-1_dp
827 1063 : r(26) = 6.02961915615918685584436745852250E-1_dp
828 1063 : r(27) = 7.47620610834085792324588316104014E-1_dp
829 1063 : w(10) = 1.03240184711745983700951101978720E-3_dp
830 1063 : r(28) = 1.97957893891740690574322079335028E-1_dp
831 1063 : r(29) = 3.58960632958909578333772677316348E-1_dp
832 1063 : r(30) = 9.12118378409121483660044157731511E-1_dp
833 1063 : w(11) = 1.10724938228385393683388780275631E-3_dp
834 1063 : r(31) = 2.08730706110327399856945819943227E-1_dp
835 1063 : r(32) = 5.34866643813547649971323458627733E-1_dp
836 1063 : r(33) = 8.18748536281021806431067610000242E-1_dp
837 1063 : w(12) = 1.12178004851997205823535727177375E-3_dp
838 1063 : r(34) = 4.05512213787283588596898056051174E-1_dp
839 1063 : r(35) = 5.67499754607437348401393912269671E-1_dp
840 1063 : r(36) = 7.16591845467023718833743633176626E-1_dp
841 1063 : CALL load_sub_grid("D", 14, 36)
842 :
843 1063 : init_lebedev_grids_done = .TRUE.
844 :
845 1063 : CALL timestop(handle)
846 :
847 1063 : END SUBROUTINE init_lebedev_grids
848 :
849 0 : END MODULE lebedev
|