(git:374b731)
Loading...
Searching...
No Matches
semi_empirical_int_arrays.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 Arrays of parameters used in the semi-empirical calculations
10!> \References Everywhere in this module TCA stands for:
11!> - TCA: W. Thiel and A. A. Voityuk - Teor. Chim. Acta (1992) 81:391-404
12!> - TCA77: M.J.S. Dewar and W. Thiel - Teor. Chim. Acta (1977) 46:89-104
13!>
14!> \author Teodoro Laino [tlaino] - University of Zurich
15!> \date 03.2008 [tlaino]
16! **************************************************************************************************
18
19 USE kinds, ONLY: dp
20#include "./base/base_uses.f90"
21
22 IMPLICIT NONE
23
24 PRIVATE
25
26 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'semi_empirical_int_arrays'
27 REAL(kind=dp), PARAMETER, PUBLIC :: rij_threshold = 0.00002_dp
28
29 ! Mapping index for orbital ordering
30 INTEGER, DIMENSION(9), PUBLIC :: se_orbital_pointer = (/1, 4, 2, 3, 9, 8, 7, 6, 5/)
31 INTEGER, DIMENSION(9), PUBLIC :: se_map_alm = (/1, 3, 4, 2, 8, 6, 5, 7, 9/)
32
33 ! Arrays to treat the invertion of the reference frame for the integrals
34 ! Using the same indexing convention of the integrals
35 INTEGER, PARAMETER, DIMENSION(2, 9), PUBLIC :: map_x_to_z = reshape((/ &
36 1, 0, & ! s <-> s
37 4, 0, & ! px <-> pz
38 3, 0, & ! py <-> py
39 2, 0, & ! pz <-> px
40 7, 5, & ! dx2 <-> SQR3/2*dz2 + 0.5*dx2
41 6, 0, & ! dzx <-> dzx
42 7, 5, & ! dz2 <-> -0.5*dz2 + SQR3/2*dx2
43 9, 0, & ! dzy <-> dxy
44 8, 0 & ! dxy <-> dzy
45 /), (/2, 9/))
46 REAL(kind=dp), PARAMETER, DIMENSION(2, 9), PUBLIC :: fac_x_to_z = reshape((/ &
47 1.0_dp, 0.0_dp, &
48 1.0_dp, 0.0_dp, &
49 1.0_dp, 0.0_dp, &
50 1.0_dp, 0.0_dp, &
51 0.8660254037844386_dp, 0.5_dp, &
52 1.0_dp, 0.0_dp, &
53 -0.5_dp, 0.8660254037844386_dp, &
54 1.0_dp, 0.0_dp, &
55 1.0_dp, 0.0_dp &
56 /), (/2, 9/))
57
58 ! Clm coefficients for d-orbitals: see Table [1] and [2] of TCA
59 REAL(kind=dp), DIMENSION(45, 0:2, -2:2), PUBLIC :: clm_d
60 ! Clm coefficients for sp-orbitals: see original paper TCA77
61 INTEGER, DIMENSION(45, 0:2, -2:2), PUBLIC :: clm_sp
62 ! alm coefficients: see Laino and Hutter (periodic SE)
63 REAL(kind=dp), DIMENSION(45, 0:2, -2:2), PUBLIC :: alm
64
65 ! These values are absolutely arbitrary and are used only for a proper
66 ! tag of the integrals
67 INTEGER, PARAMETER, PUBLIC :: &
68 clmz = 10, clmp = 11, clmzz = 12, clmzp = 13, clmyy = 14, clmxy = 15, clmxx = 16
69
70 ! Indexes for diagonal storage of ij and kl multipoles
71 INTEGER, DIMENSION(9, 9), PUBLIC :: indexa, indexb
72
73 ! Type of integral for 2electron 2centers integrals
74 INTEGER, DIMENSION(45), PARAMETER, PUBLIC :: int2c_type = (/ &
75 1, 2, 3, 2, 3, 3, 2, 3, 3, 3, 4, 5, 5, 5, 6, 4, 5, 5, 5, &
76 6, 6, 4, 5, 5, 5, 6, 6, 6, 4, 5, 5, 5, 6, 6, 6, 6, 4, 5, &
77 5, 5, 6, 6, 6, 6, 6/)
78
79 ! Mappinf of shell index
80 INTEGER, DIMENSION(9), PARAMETER, PUBLIC :: l_index = (/ &
81 0, 1, 1, 1, 2, 2, 2, 2, 2/)
82
83 ! Index for <ij|kl>
84 INTEGER, DIMENSION(45, 45), PUBLIC :: ijkl_ind
85
86 ! Symmetry index for <ij|kl>
87 INTEGER, DIMENSION(491), PUBLIC :: ijkl_sym
88
89 ! Index for integral rotations
90 INTEGER, DIMENSION(3, 3), PUBLIC :: indpp
91 INTEGER, DIMENSION(5, 3), PUBLIC :: inddp
92 INTEGER, DIMENSION(5, 5), PUBLIC :: inddd
93
94 ! Indexes use for the construction of the one-center two-electron integrals
95 INTEGER, DIMENSION(243), PUBLIC :: int_ij = (/ &
96 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, &
97 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, &
98 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, &
99 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 18, 18, 18, 19, &
100 19, 19, 19, 19, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, &
101 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, &
102 26, 26, 26, 26, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, &
103 29, 30, 30, 30, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 34, 34, 34, 34, &
104 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, &
105 38, 38, 38, 39, 39, 39, 39, 39, 40, 40, 40, 41, 42, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, &
106 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45/)
107 INTEGER, DIMENSION(243), PUBLIC :: int_kl = (/ &
108 15, 21, 28, 36, 45, 12, 19, 23, 39, 11, 15, 21, 22, 26, 28, 36, 45, 13, 24, 32, 38, 34, 37, &
109 43, 11, 15, 21, 22, 26, 28, 36, 45, 17, 25, 31, 16, 20, 27, 44, 29, 33, 35, 42, 15, 21, 22, &
110 28, 36, 45, 3, 6, 11, 21, 26, 36, 2, 12, 19, 23, 39, 4, 13, 24, 32, 38, 14, 17, 31, 1, &
111 3, 6, 10, 15, 21, 22, 28, 36, 45, 8, 16, 20, 27, 44, 7, 14, 17, 25, 31, 18, 30, 40, 2, &
112 12, 19, 23, 39, 8, 16, 20, 27, 44, 1, 3, 6, 10, 11, 15, 21, 22, 26, 28, 36, 45, 3, 6, &
113 10, 15, 21, 22, 28, 36, 45, 2, 12, 19, 23, 39, 4, 13, 24, 32, 38, 7, 17, 25, 31, 3, 6, &
114 11, 21, 26, 36, 8, 16, 20, 27, 44, 1, 3, 6, 10, 15, 21, 22, 28, 36, 45, 9, 29, 33, 35, &
115 42, 18, 30, 40, 7, 14, 17, 25, 31, 4, 13, 24, 32, 38, 9, 29, 33, 35, 42, 5, 34, 37, 43, &
116 9, 29, 33, 35, 42, 1, 3, 6, 10, 11, 15, 21, 22, 26, 28, 36, 45, 5, 34, 37, 43, 4, 13, &
117 24, 32, 38, 2, 12, 19, 23, 39, 18, 30, 40, 41, 9, 29, 33, 35, 42, 5, 34, 37, 43, 8, 16, &
118 20, 27, 44, 1, 3, 6, 10, 15, 21, 22, 28, 36, 45/)
119 INTEGER, DIMENSION(243), PUBLIC :: int_onec2el = (/ &
120 1, 1, 1, 1, 1, 3, 3, 8, 3, 9, 6, 6, 12, 14, 13, 7, 6, 15, 8, 3, 3, 11, 9, &
121 14, 17, 6, 7, 12, 18, 13, 6, 6, 3, 2, 3, 9, 11, 10, 11, 9, 16, 10, 11, 7, 6, 4, &
122 5, 6, 7, 9, 17, 19, 32, 22, 40, 3, 33, 34, 27, 46, 15, 33, 28, 41, 47, 35, 35, 42, 1, &
123 6, 6, 7, 29, 38, 22, 31, 38, 51, 9, 19, 32, 21, 32, 3, 35, 33, 24, 34, 35, 35, 35, 3, &
124 34, 33, 26, 34, 11, 32, 44, 37, 49, 1, 6, 7, 6, 32, 38, 29, 21, 39, 30, 38, 38, 12, 12, &
125 4, 22, 21, 19, 20, 21, 22, 8, 27, 26, 25, 27, 8, 28, 25, 26, 27, 2, 24, 23, 24, 14, 18, &
126 22, 39, 48, 45, 10, 21, 37, 36, 37, 1, 13, 13, 5, 31, 30, 20, 29, 30, 31, 9, 19, 40, 21, &
127 32, 35, 35, 35, 3, 42, 34, 24, 33, 3, 41, 26, 33, 34, 16, 40, 44, 43, 50, 11, 44, 32, 39, &
128 10, 21, 43, 36, 37, 1, 7, 6, 6, 40, 38, 38, 21, 45, 30, 29, 38, 9, 32, 19, 22, 3, 47, &
129 27, 34, 33, 3, 46, 34, 27, 33, 35, 35, 35, 52, 11, 32, 50, 37, 44, 14, 39, 22, 48, 11, 32, &
130 49, 37, 44, 1, 6, 6, 7, 51, 38, 22, 31, 38, 29/)
131
132 PUBLIC :: init_se_intd_array
133
134CONTAINS
135! **************************************************************************************************
136!> \brief Initialize all arrays used for the evaluation of the integrals
137!>
138!> \date 04.2008 [tlaino]
139!> \author Teodoro Laino [tlaino] - University of Zurich
140! **************************************************************************************************
142
143 CALL setup_index_array()
144 CALL setup_indrot_array()
145 CALL setup_clm_array()
146 CALL setup_ijkl_array()
147
148 END SUBROUTINE init_se_intd_array
149
150! **************************************************************************************************
151!> \brief Fills in array for the diagonal storage of the ij and kl multipoles term
152!>
153!> \date 03.2008 [tlaino]
154!> \author Teodoro Laino [tlaino] - University of Zurich
155! **************************************************************************************************
156 SUBROUTINE setup_index_array()
157
158 INTEGER :: i, j
159
160 DO i = 1, 9
161 DO j = 1, i
162 ! indexa:
163 ! s pz px py dz2 dzx dzy dx2-y2 dxy
164 ! s 1 2 3 4 5 6 7 8 9
165 ! pz 2 10 11 12 13 14 15 16 17
166 ! px 3 11 18 19 20 21 22 23 24
167 ! py 4 12 19 25 26 27 28 29 30
168 ! dz2 5 13 20 26 31 32 33 34 35
169 ! dzx 6 14 21 27 32 36 37 38 39
170 ! dzy 7 15 22 28 33 37 40 41 42
171 ! dx2-y2 8 16 23 29 34 38 41 43 44
172 ! dxy 9 17 24 30 35 39 42 44 45
173 indexa(i, j) = (9*(j - 1)) - (j*(j - 1))/2 + i
174 indexa(j, i) = indexa(i, j)
175 ! indexb:
176 ! s pz px py dz2 dzx dzy dx2-y2 dxy
177 ! s 1 2 4 7 11 16 22 29 37
178 ! pz 2 3 5 8 12 17 23 30 38
179 ! px 4 5 6 9 13 18 24 31 39
180 ! py 7 8 9 10 14 19 25 32 40
181 ! dz2 11 12 13 14 15 20 26 33 41
182 ! dzx 16 17 18 19 20 21 27 34 42
183 ! dzy 22 23 24 25 26 27 28 35 43
184 ! dx2-y2 29 30 31 32 33 34 35 36 44
185 ! dxy 37 38 39 40 41 42 43 44 45
186 indexb(i, j) = (i*(i - 1))/2 + j
187 indexb(j, i) = indexb(i, j)
188 END DO
189 END DO
190 END SUBROUTINE setup_index_array
191
192! **************************************************************************************************
193!> \brief Fills in array for the rotation of the integrals
194!>
195!> \date 04.2008 [tlaino]
196!> \author Teodoro Laino [tlaino] - University of Zurich
197! **************************************************************************************************
198 SUBROUTINE setup_indrot_array()
199
200! Setup indexes for integral rotations
201! INDPP
202
203 indpp(1, 1) = 1
204 indpp(2, 1) = 4
205 indpp(3, 1) = 5
206 indpp(1, 2) = 4
207 indpp(2, 2) = 2
208 indpp(3, 2) = 6
209 indpp(1, 3) = 5
210 indpp(2, 3) = 6
211 indpp(3, 3) = 3
212 ! INDDP
213 inddp(1, 1) = 1
214 inddp(2, 1) = 4
215 inddp(3, 1) = 7
216 inddp(4, 1) = 10
217 inddp(5, 1) = 13
218 inddp(1, 2) = 2
219 inddp(2, 2) = 5
220 inddp(3, 2) = 8
221 inddp(4, 2) = 11
222 inddp(5, 2) = 14
223 inddp(1, 3) = 3
224 inddp(2, 3) = 6
225 inddp(3, 3) = 9
226 inddp(4, 3) = 12
227 inddp(5, 3) = 15
228 ! INDDD
229 inddd(1, 1) = 1
230 inddd(2, 1) = 6
231 inddd(3, 1) = 7
232 inddd(4, 1) = 9
233 inddd(5, 1) = 12
234 inddd(1, 2) = 6
235 inddd(2, 2) = 2
236 inddd(3, 2) = 8
237 inddd(4, 2) = 10
238 inddd(5, 2) = 13
239 inddd(1, 3) = 7
240 inddd(2, 3) = 8
241 inddd(3, 3) = 3
242 inddd(4, 3) = 11
243 inddd(5, 3) = 14
244 inddd(1, 4) = 9
245 inddd(2, 4) = 10
246 inddd(3, 4) = 11
247 inddd(4, 4) = 4
248 inddd(5, 4) = 15
249 inddd(1, 5) = 12
250 inddd(2, 5) = 13
251 inddd(3, 5) = 14
252 inddd(4, 5) = 15
253 inddd(5, 5) = 5
254 END SUBROUTINE setup_indrot_array
255
256! **************************************************************************************************
257!> \brief Fills in Clm coefficients (see Table [2] of TCA)
258!>
259!> \date 03.2008 [tlaino]
260!> \author Teodoro Laino [tlaino] - University of Zurich
261! **************************************************************************************************
262 SUBROUTINE setup_clm_array()
263
264 INTEGER :: clm1, clm1m
265 REAL(kind=dp) :: alm1, alms15_49, alms15_49m, alms15m, alms20_49, alms20_49m, alms35, &
266 alms35m, alms45, alms5_49, alms5_49m, clm23, clm23m, clm43, clm43m, clms13, clms13m, &
267 clms43, clms43m
268
269 clm1 = 1
270 clm1m = -1
271 clms13 = sqrt(1.0_dp/3.0_dp)
272 clms13m = -sqrt(1.0_dp/3.0_dp)
273 clm23 = 2.0_dp/3.0_dp
274 clm23m = -2.0_dp/3.0_dp
275 clm43 = 4.0_dp/3.0_dp
276 clm43m = -4.0_dp/3.0_dp
277 clms43 = sqrt(4.0_dp/3.0_dp)
278 clms43m = -sqrt(4.0_dp/3.0_dp)
279 alm1 = 1.0_dp
280 alms45 = sqrt(4.0_dp/5.0_dp)
281 alms35 = sqrt(3.0_dp/5.0_dp)
282 alms35m = -alms35
283 alms15m = -sqrt(1.0_dp/5.0_dp)
284 alms20_49 = sqrt(20.0_dp/49.0_dp)
285 alms20_49m = -alms20_49
286 alms5_49 = sqrt(5.0_dp/49.0_dp)
287 alms5_49m = -alms5_49
288 alms15_49 = sqrt(15.0_dp/49.0_dp)
289 alms15_49m = -alms15_49
290
291 ! Notation (1) s
292 ! (2) pz = p_sigma (5) d_sigma = dz2 (8) d_delta = dx2-y2
293 ! (3) px = p_pi (6) d_pi = dzx (9) d_{\overline{delta}} = dxy
294 ! (4) py = pi_{\overline{pi}} (7) d_{\overline{pi}} = dzy
295
296 clm_d = 0.0_dp
297 clm_sp = 0
298 alm = 0.0_dp
299 ! Let's fill all element of table 1 with resulting multipole lesser than 2
300 ! Important Note: the value of the clm_sp does not reflect any phyisical
301 ! rule for decomposing/summing multipoles. It's just a
302 ! computational trick to put some order where conceptual mess
303 ! has been created..
304 ! s s
305 clm_d(1, 0, 0) = clm1
306 clm_sp(1, 0, 0) = clm1
307 alm(1, 0, 0) = alm1
308 ! s pz
309 clm_d(2, 1, 0) = clm1
310 clm_sp(2, 1, 0) = clmz
311 alm(2, 1, 0) = alm1
312 ! s px
313 clm_d(3, 1, 1) = clm1
314 clm_sp(3, 1, 1) = clmp
315 alm(3, 1, 1) = alm1
316 ! s py
317 clm_d(4, 1, -1) = clm1
318 clm_sp(4, 1, -1) = clmp
319 alm(4, 1, -1) = alm1
320 ! s dz2
321 clm_d(5, 2, 0) = clms43
322 alm(5, 2, 0) = alm1
323 ! s dzx
324 clm_d(6, 2, 1) = clm1
325 alm(6, 2, 1) = alm1
326 ! s dzy
327 clm_d(7, 2, -1) = clm1
328 alm(7, 2, -1) = alm1
329 ! s dx2-y2
330 clm_d(8, 2, 2) = clm1
331 alm(8, 2, 2) = alm1
332 ! s dxy
333 clm_d(9, 2, -2) = clm1
334 alm(9, 2, -2) = alm1
335 ! pz pz
336 clm_d(10, 0, 0) = clm1
337 clm_d(10, 2, 0) = clm43
338 clm_sp(10, 0, 0) = clm1
339 clm_sp(10, 2, 0) = clmzz
340 alm(10, 0, 0) = alm1
341 alm(10, 2, 0) = alms45
342 ! pz px
343 clm_d(11, 2, 1) = clm1
344 clm_sp(11, 2, 1) = clmzp
345 alm(11, 2, 1) = alms35
346 ! pz py
347 clm_d(12, 2, -1) = clm1
348 clm_sp(12, 2, -1) = clmzp
349 alm(12, 2, -1) = alms35
350 ! pz dz2
351 clm_d(13, 1, 0) = clms43
352 alm(13, 1, 0) = alms45
353 ! pz dzx
354 clm_d(14, 1, 1) = clm1
355 alm(14, 1, 1) = alms35
356 ! pz dzy
357 clm_d(15, 1, -1) = clm1
358 alm(15, 1, -1) = alms35
359 ! px px
360 clm_d(18, 0, 0) = clm1
361 clm_d(18, 2, 0) = clm23m
362 clm_d(18, 2, 2) = clm1
363 clm_sp(18, 0, 0) = clm1
364 clm_sp(18, 2, 0) = clmyy
365 alm(18, 0, 0) = alm1
366 alm(18, 2, 0) = alms15m
367 alm(18, 2, 2) = alms35
368 ! px py
369 clm_d(19, 2, -2) = clm1
370 clm_sp(19, 2, -2) = clmxy
371 alm(19, 2, -2) = alms35
372 ! px dz2
373 clm_d(20, 1, 1) = clms13m
374 alm(20, 1, 1) = alms15m
375 ! px dzx
376 clm_d(21, 1, 0) = clm1
377 alm(21, 1, 0) = alms35
378 ! px dx2-y2
379 clm_d(23, 1, 1) = clm1
380 alm(23, 1, 1) = alms35
381 ! px dxy
382 clm_d(24, 1, -1) = clm1
383 alm(24, 1, -1) = alms35
384 ! py py
385 clm_d(25, 0, 0) = clm1
386 clm_d(25, 2, 0) = clm23m
387 clm_d(25, 2, 2) = clm1m
388 clm_sp(25, 0, 0) = clm1
389 clm_sp(25, 2, 0) = clmxx
390 alm(25, 0, 0) = alm1
391 alm(25, 2, 0) = alms15m
392 alm(25, 2, 2) = alms35m
393 ! py dz2
394 clm_d(26, 1, -1) = clms13m
395 alm(26, 1, -1) = alms15m
396 ! py dzy
397 clm_d(28, 1, 0) = clm1
398 alm(28, 1, 0) = alms35
399 ! py dx2-y2
400 clm_d(29, 1, -1) = clm1m
401 alm(29, 1, -1) = alms35m
402 ! py dxy
403 clm_d(30, 1, 1) = clm1
404 alm(30, 1, 1) = alms35
405 ! dz2 dz2
406 clm_d(31, 0, 0) = clm1
407 clm_d(31, 2, 0) = clm43
408 alm(31, 0, 0) = alm1
409 alm(31, 2, 0) = alms20_49
410 ! dz2 dzx
411 clm_d(32, 2, 1) = clms13
412 alm(32, 2, 1) = alms5_49
413 ! dz2 dzy
414 clm_d(33, 2, -1) = clms13
415 alm(33, 2, -1) = alms5_49
416 ! dz2 dx2-y2
417 clm_d(34, 2, 2) = clms43m
418 alm(34, 2, 2) = alms20_49m
419 ! dz2 dxy
420 clm_d(35, 2, -2) = clms43m
421 alm(35, 2, -2) = alms20_49m
422 ! dzx dzx
423 clm_d(36, 0, 0) = clm1
424 clm_d(36, 2, 0) = clm23
425 clm_d(36, 2, 2) = clm1
426 alm(36, 0, 0) = alm1
427 alm(36, 2, 0) = alms5_49
428 alm(36, 2, 2) = alms15_49
429 ! dzx dzy
430 clm_d(37, 2, -2) = clm1
431 alm(37, 2, -2) = alms15_49m
432 ! dzx dxy-y2
433 clm_d(38, 2, 1) = clm1
434 alm(38, 2, 1) = alms15_49
435 ! dzx dxy
436 clm_d(39, 2, -1) = clm1
437 alm(38, 2, -1) = alms15_49
438 ! dzy dzy
439 clm_d(40, 0, 0) = clm1
440 clm_d(40, 2, 0) = clm23
441 clm_d(40, 2, 2) = clm1m
442 alm(40, 0, 0) = alm1
443 alm(40, 2, 0) = alms5_49
444 alm(40, 2, 2) = alms5_49m
445 ! dzy dx2-y2
446 clm_d(41, 2, -1) = clm1m
447 alm(41, 2, -1) = alms15_49m
448 ! dzy dxy
449 clm_d(42, 2, 1) = clm1
450 alm(42, 2, 1) = alms15_49
451 ! dx2-y2 dx2-y2
452 clm_d(43, 0, 0) = clm1
453 clm_d(43, 2, 0) = clm43m
454 alm(43, 0, 0) = alm1
455 alm(43, 2, 0) = alms20_49m
456 ! dxy dxy
457 clm_d(45, 0, 0) = clm1
458 clm_d(45, 2, 0) = clm43m
459 alm(45, 0, 0) = alm1
460 alm(45, 2, 0) = alms20_49m
461 END SUBROUTINE setup_clm_array
462
463! **************************************************************************************************
464!> \brief Fills in the index number for the <ij|kl> integral as well as the
465!> symmetry index
466!>
467!> \date 03.2008 [tlaino]
468!> \author Teodoro Laino [tlaino] - University of Zurich
469! **************************************************************************************************
470 SUBROUTINE setup_ijkl_array()
471
472! Address unique indexes (excluding those related by rotations)
473! Indexes according:
474! s pz px py dz2 dzx dzy dx2-y2 dxy
475! s 1 2 3 4 5 6 7 8 9
476! pz 2 10 11 12 13 14 15 16 17
477! px 3 11 18 19 20 21 22 23 24
478! py 4 12 19 25 26 27 28 29 30
479! dz2 5 13 20 26 31 32 33 34 35
480! dzx 6 14 21 27 32 36 37 38 39
481! dzy 7 15 22 28 33 37 40 41 42
482! dx2-y2 8 16 23 29 34 38 41 43 44
483! dxy 9 17 24 30 35 39 42 44 45
484! ################ Zero the Arrays #######################
485
486 ijkl_ind = 0
487 ijkl_sym = 0
488 ! ################ s s #######################
489 ! s s - s s
490 ijkl_ind(1, 1) = 1
491 ! s s - pz s
492 ijkl_ind(1, 2) = 2
493 ! s s - pz pz
494 ijkl_ind(1, 10) = 3
495 ! s s - px px
496 ijkl_ind(1, 18) = 4
497 ! s s - py py
498 ijkl_ind(1, 25) = 5
499 ijkl_sym(5) = 4
500 ! s s - dz2 s
501 ijkl_ind(1, 5) = 35
502 ! s s - dz2 pz
503 ijkl_ind(1, 13) = 36
504 ! s s - dz2 dz2
505 ijkl_ind(1, 31) = 37
506 ! s s - dzx px
507 ijkl_ind(1, 21) = 38
508 ! s s - dzx dzx
509 ijkl_ind(1, 36) = 39
510 ! s s - dzy py
511 ijkl_ind(1, 28) = 40
512 ijkl_sym(40) = 38
513 ! s s - dzy dzy
514 ijkl_ind(1, 40) = 41
515 ijkl_sym(41) = 39
516 ! s s - dx2-y2 dx2-y2
517 ijkl_ind(1, 43) = 42
518 ! s s - dxy dxy
519 ijkl_ind(1, 45) = 43
520 ijkl_sym(43) = 42
521 ! ################ pz s #######################
522 ! pz s - s s
523 ijkl_ind(2, 1) = 6
524 ! pz s - pz s
525 ijkl_ind(2, 2) = 7
526 ! pz s - pz pz
527 ijkl_ind(2, 10) = 8
528 ! pz s - px px
529 ijkl_ind(2, 18) = 9
530 ! pz s - py py
531 ijkl_ind(2, 25) = 10
532 ijkl_sym(10) = 9
533 ! pz s - dz2 s
534 ijkl_ind(2, 5) = 44
535 ! pz s - dz2 pz
536 ijkl_ind(2, 13) = 45
537 ! pz s - dz2 dz2
538 ijkl_ind(2, 31) = 46
539 ! pz s - dzx px
540 ijkl_ind(2, 21) = 47
541 ! pz s - dzx dzx
542 ijkl_ind(2, 36) = 48
543 ! pz s - dzy py
544 ijkl_ind(2, 28) = 49
545 ijkl_sym(49) = 47
546 ! pz s - dzy dzy
547 ijkl_ind(2, 40) = 50
548 ijkl_sym(50) = 48
549 ! pz s - dx2-y2 dx2-y2
550 ijkl_ind(2, 43) = 51
551 ! pz s - dxy dxy
552 ijkl_ind(2, 45) = 52
553 ijkl_sym(52) = 51
554 ! ################ pz pz #######################
555 ! pz pz - s s
556 ijkl_ind(10, 1) = 11
557 ! pz pz - pz s
558 ijkl_ind(10, 2) = 12
559 ! pz pz - pz pz
560 ijkl_ind(10, 10) = 13
561 ! pz pz - px px
562 ijkl_ind(10, 18) = 14
563 ! pz pz - py py
564 ijkl_ind(10, 25) = 15
565 ijkl_sym(15) = 14
566 ! pz pz - dz2 s
567 ijkl_ind(10, 5) = 53
568 ! pz pz - dz2 pz
569 ijkl_ind(10, 13) = 54
570 ! pz pz - dz2 dz2
571 ijkl_ind(10, 31) = 55
572 ! pz pz - dzx px
573 ijkl_ind(10, 21) = 56
574 ! pz pz - dzx dzx
575 ijkl_ind(10, 36) = 57
576 ! pz pz - dzy py
577 ijkl_ind(10, 28) = 58
578 ijkl_sym(58) = 56
579 ! pz pz - dzy dzy
580 ijkl_ind(10, 40) = 59
581 ijkl_sym(59) = 57
582 ! pz pz - dx2-y2 dx2-y2
583 ijkl_ind(10, 43) = 60
584 ! pz pz - dxy dxy
585 ijkl_ind(10, 45) = 61
586 ijkl_sym(61) = 60
587 ! ################ px s #######################
588 ! px s - px s
589 ijkl_ind(3, 3) = 16
590 ! px s - px pz
591 ijkl_ind(3, 11) = 17
592 ! px s - dz2 px
593 ijkl_ind(3, 20) = 62
594 ! px s - dzx s
595 ijkl_ind(3, 6) = 63
596 ! px s - dzx pz
597 ijkl_ind(3, 14) = 64
598 ! px s - dzx dz2
599 ijkl_ind(3, 32) = 65
600 ! px s - dx2-y2 px
601 ijkl_ind(3, 23) = 66
602 ! px s - dx2-y2 dzx
603 ijkl_ind(3, 38) = 67
604 ! px s - dxy py
605 ijkl_ind(3, 30) = 68
606 ijkl_sym(68) = 66
607 ! px s - dxy dzy
608 ijkl_ind(3, 42) = 69
609 ijkl_sym(69) = 67
610 ! ################ px pz #######################
611 ! px pz - px s
612 ijkl_ind(11, 3) = 18
613 ! px pz - px pz
614 ijkl_ind(11, 11) = 19
615 ! px pz - dz2 px
616 ijkl_ind(11, 20) = 70
617 ! px pz - dzx s
618 ijkl_ind(11, 6) = 71
619 ! px pz - dzx pz
620 ijkl_ind(11, 14) = 72
621 ! px pz - dzx dz2
622 ijkl_ind(11, 32) = 73
623 ! px pz - dx2-y2 px
624 ijkl_ind(11, 23) = 74
625 ! px pz - dx2-y2 dzx
626 ijkl_ind(11, 38) = 75
627 ! px pz - dxy py
628 ijkl_ind(11, 30) = 76
629 ijkl_sym(76) = 74
630 ! px pz - dxy dzy
631 ijkl_ind(11, 42) = 77
632 ijkl_sym(77) = 75
633 ! ################ px px #######################
634 ! px px - s s
635 ijkl_ind(18, 1) = 20
636 ! px px - pz s
637 ijkl_ind(18, 2) = 21
638 ! px px - pz pz
639 ijkl_ind(18, 10) = 22
640 ! px px - px px
641 ijkl_ind(18, 18) = 23
642 ! px px - py py
643 ijkl_ind(18, 25) = 24
644 ! px px - dz2 s
645 ijkl_ind(18, 5) = 78
646 ! px px - dz2 pz
647 ijkl_ind(18, 13) = 79
648 ! px px - dz2 dz2
649 ijkl_ind(18, 31) = 80
650 ! px px - dzx px
651 ijkl_ind(18, 21) = 81
652 ! px px - dzx dzx
653 ijkl_ind(18, 36) = 82
654 ! px px - dzy py
655 ijkl_ind(18, 28) = 83
656 ! px px - dzy dzy
657 ijkl_ind(18, 40) = 84
658 ! px px - dx2-y2 s
659 ijkl_ind(18, 8) = 85
660 ! px px - dx2-y2 pz
661 ijkl_ind(18, 16) = 86
662 ! px px - dx2-y2 dz2
663 ijkl_ind(18, 34) = 87
664 ! px px - dx2-y2 dx2-y2
665 ijkl_ind(18, 43) = 88
666 ! px px - dxy dxy
667 ijkl_ind(18, 45) = 89
668 ijkl_sym(89) = 88
669 ! ################ py s #######################
670 ! py s - py s
671 ijkl_ind(4, 4) = 25
672 ijkl_sym(25) = 16
673 ! py s - py pz
674 ijkl_ind(4, 12) = 26
675 ijkl_sym(26) = 17
676 ! py s - dz2 py
677 ijkl_ind(4, 26) = 90
678 ijkl_sym(90) = 62
679 ! py s - dzy s
680 ijkl_ind(4, 7) = 91
681 ijkl_sym(91) = 63
682 ! py s - dzy pz
683 ijkl_ind(4, 15) = 92
684 ijkl_sym(92) = 64
685 ! py s - dzy dz2
686 ijkl_ind(4, 33) = 93
687 ijkl_sym(93) = 65
688 ! py s - dx2-y2 py
689 ijkl_ind(4, 29) = 94
690 ijkl_sym(94) = 66*(-1)
691 ! py s - dx2-y2 dzy
692 ijkl_ind(4, 41) = 95
693 ijkl_sym(95) = 67*(-1)
694 ! py s - dxy px
695 ijkl_ind(4, 24) = 96
696 ijkl_sym(96) = 66
697 ! py s - dxy dzx
698 ijkl_ind(4, 39) = 97
699 ijkl_sym(97) = 67
700 ! ################ py pz #######################
701 ! py pz - py s
702 ijkl_ind(12, 4) = 27
703 ijkl_sym(27) = 18
704 ! py pz - py pz
705 ijkl_ind(12, 12) = 28
706 ijkl_sym(28) = 19
707 ! py pz - dzy s
708 ijkl_ind(12, 26) = 98
709 ijkl_sym(98) = 70
710 ! py pz - dzy pz
711 ijkl_ind(12, 7) = 99
712 ijkl_sym(99) = 71
713 ! py pz - dzy dz2
714 ijkl_ind(12, 15) = 100
715 ijkl_sym(100) = 72
716 ! py pz - dzy dz2
717 ijkl_ind(12, 33) = 101
718 ijkl_sym(101) = 73
719 ! py pz - dx2-y2 py
720 ijkl_ind(12, 29) = 102
721 ijkl_sym(102) = 74*(-1)
722 ! py pz - dx2-y2 dzy
723 ijkl_ind(12, 41) = 103
724 ijkl_sym(103) = 75*(-1)
725 ! py pz - dxy px
726 ijkl_ind(12, 24) = 104
727 ijkl_sym(104) = 74
728 ! py pz - dxy dzx
729 ijkl_ind(12, 39) = 105
730 ijkl_sym(105) = 75
731 ! ################ py px #######################
732 ! py px - py px
733 ijkl_ind(19, 19) = 29
734 ! py px - dzx py
735 ijkl_ind(19, 27) = 106
736 ijkl_sym(106) = 86
737 ! py px - dzy px
738 ijkl_ind(19, 22) = 107
739 ijkl_sym(107) = 86
740 ! py px - dzy dzx
741 ijkl_ind(19, 37) = 108
742 ! py px - dxy s
743 ijkl_ind(19, 9) = 109
744 ijkl_sym(109) = 85
745 ! py px - dxy pz
746 ijkl_ind(19, 17) = 110
747 ijkl_sym(110) = 86
748 ! py px - dxy dz2
749 ijkl_ind(19, 35) = 111
750 ijkl_sym(111) = 87
751 ! ################ py py #######################
752 ! py py - s s
753 ijkl_ind(25, 1) = 30
754 ijkl_sym(30) = 20
755 ! py py - pz s
756 ijkl_ind(25, 2) = 31
757 ijkl_sym(31) = 21
758 ! py py - pz pz
759 ijkl_ind(25, 10) = 32
760 ijkl_sym(32) = 22
761 ! py py - px px
762 ijkl_ind(25, 18) = 33
763 ijkl_sym(33) = 24
764 ! py py - py py
765 ijkl_ind(25, 25) = 34
766 ijkl_sym(34) = 23
767 ! py py - dz2 s
768 ijkl_ind(25, 5) = 112
769 ijkl_sym(112) = 78
770 ! py py - dz2 pz
771 ijkl_ind(25, 13) = 113
772 ijkl_sym(113) = 79
773 ! py py - dz2 dz2
774 ijkl_ind(25, 31) = 114
775 ijkl_sym(114) = 80
776 ! py py - dzx px
777 ijkl_ind(25, 21) = 115
778 ijkl_sym(115) = 83
779 ! py py - dzx dzx
780 ijkl_ind(25, 36) = 116
781 ijkl_sym(116) = 84
782 ! py py - dzy py
783 ijkl_ind(25, 28) = 117
784 ijkl_sym(117) = 81
785 ! py py - dzy dzy
786 ijkl_ind(25, 40) = 118
787 ijkl_sym(118) = 82
788 ! py py - dx2-y2 s
789 ijkl_ind(25, 8) = 119
790 ijkl_sym(119) = 85*(-1)
791 ! py py - dx2-y2 pz
792 ijkl_ind(25, 16) = 120
793 ijkl_sym(120) = 86*(-1)
794 ! py py - dx2-y2 dz2
795 ijkl_ind(25, 34) = 121
796 ijkl_sym(121) = 87*(-1)
797 ! py py - dx2-y2 dx2-y2
798 ijkl_ind(25, 43) = 122
799 ijkl_sym(122) = 88
800 ! py py - dxy dxy
801 ijkl_ind(25, 45) = 123
802 ijkl_sym(123) = 88
803 ! ################ dz2 dz2 #######################
804 ! dz2 s - s s
805 ijkl_ind(5, 1) = 124
806 ! dz2 s - pz s
807 ijkl_ind(5, 2) = 125
808 ! dz2 s - pz pz
809 ijkl_ind(5, 10) = 126
810 ! dz2 s - px px
811 ijkl_ind(5, 18) = 127
812 ! dz2 s - py py
813 ijkl_ind(5, 25) = 128
814 ijkl_sym(128) = 127
815 ! dz2 s - dz2 s
816 ijkl_ind(5, 5) = 129
817 ! dz2 s - dz2 pz
818 ijkl_ind(5, 13) = 130
819 ! dz2 s - dz2 dz2
820 ijkl_ind(5, 31) = 131
821 ! dz2 s - dzx px
822 ijkl_ind(5, 21) = 132
823 ! dz2 s - dzx dzx
824 ijkl_ind(5, 36) = 133
825 ! dz2 s - dzy py
826 ijkl_ind(5, 28) = 134
827 ijkl_sym(134) = 132
828 ! dz2 s - dzy dzy
829 ijkl_ind(5, 40) = 135
830 ijkl_sym(135) = 133
831 ! dz2 s - dx2-y2 dx2-y2
832 ijkl_ind(5, 43) = 136
833 ! dz2 s - dxy dxy
834 ijkl_ind(5, 45) = 137
835 ijkl_sym(137) = 136
836 ! ################ dz2 pz #######################
837 ! dz2 pz - s s
838 ijkl_ind(13, 1) = 138
839 ! dz2 pz - pz s
840 ijkl_ind(13, 2) = 139
841 ! dz2 pz - pz pz
842 ijkl_ind(13, 10) = 140
843 ! dz2 pz - px px
844 ijkl_ind(13, 18) = 141
845 ! dz2 pz - py py
846 ijkl_ind(13, 25) = 142
847 ijkl_sym(142) = 141
848 ! dz2 pz - dz2 s
849 ijkl_ind(13, 5) = 143
850 ! dz2 pz - dz2 pz
851 ijkl_ind(13, 13) = 144
852 ! dz2 pz - dz2 dz2
853 ijkl_ind(13, 31) = 145
854 ! dz2 pz - dzx px
855 ijkl_ind(13, 21) = 146
856 ! dz2 pz - dzx dzx
857 ijkl_ind(13, 36) = 147
858 ! dz2 pz - dzy py
859 ijkl_ind(13, 28) = 148
860 ijkl_sym(148) = 146
861 ! dz2 pz - dzy dzy
862 ijkl_ind(13, 40) = 149
863 ijkl_sym(149) = 147
864 ! dz2 pz - dx2-y2 dx2-y2
865 ijkl_ind(13, 43) = 150
866 ! dz2 pz - dxy dxy
867 ijkl_ind(13, 45) = 151
868 ijkl_sym(151) = 150
869 ! ################ dz2 px #######################
870 ! dz2 px - px s
871 ijkl_ind(20, 3) = 152
872 ! dz2 px - px pz
873 ijkl_ind(20, 11) = 153
874 ! dz2 px - dz2 px
875 ijkl_ind(20, 20) = 154
876 ! dz2 px - dzx s
877 ijkl_ind(20, 6) = 155
878 ! dz2 px - dzx pz
879 ijkl_ind(20, 14) = 156
880 ! dz2 px - dzx dz2
881 ijkl_ind(20, 32) = 157
882 ! dz2 px - dx2-y2 px
883 ijkl_ind(20, 23) = 158
884 ! dz2 px - dx2-y2 dzx
885 ijkl_ind(20, 38) = 159
886 ! dz2 px - dxy py
887 ijkl_ind(20, 30) = 160
888 ijkl_sym(160) = 158
889 ! dz2 px - dxy dxy
890 ijkl_ind(20, 42) = 161
891 ijkl_sym(161) = 159
892 ! ################ dz2 py #######################
893 ! dz2 py - py s
894 ijkl_ind(26, 4) = 162
895 ijkl_sym(162) = 152
896 ! dz2 py - py pz
897 ijkl_ind(26, 12) = 163
898 ijkl_sym(163) = 153
899 ! dz2 py - dz2 py
900 ijkl_ind(26, 26) = 164
901 ijkl_sym(164) = 154
902 ! dz2 py - dzy s
903 ijkl_ind(26, 7) = 165
904 ijkl_sym(165) = 155
905 ! dz2 py - dzy pz
906 ijkl_ind(26, 15) = 166
907 ijkl_sym(166) = 156
908 ! dz2 py - dzy dz2
909 ijkl_ind(26, 33) = 167
910 ijkl_sym(167) = 157
911 ! dz2 py - dx2-y2 py
912 ijkl_ind(26, 29) = 168
913 ijkl_sym(168) = 158*(-1)
914 ! dz2 py - dx2-y2 dzy
915 ijkl_ind(26, 41) = 169
916 ijkl_sym(169) = 159*(-1)
917 ! dz2 py - dxy px
918 ijkl_ind(26, 24) = 170
919 ijkl_sym(170) = 158
920 ! dz2 py - dxy dzx
921 ijkl_ind(26, 39) = 171
922 ijkl_sym(171) = 159
923 ! ################ dz2 dz2 #######################
924 ! dz2 dz2 - s s
925 ijkl_ind(31, 1) = 172
926 ! dz2 dz2 - pz s
927 ijkl_ind(31, 2) = 173
928 ! dz2 dz2 - pz pz
929 ijkl_ind(31, 10) = 174
930 ! dz2 dz2 - px px
931 ijkl_ind(31, 18) = 175
932 ! dz2 dz2 - py py
933 ijkl_ind(31, 25) = 176
934 ijkl_sym(176) = 175
935 ! dz2 dz2 - dz2 s
936 ijkl_ind(31, 5) = 177
937 ! dz2 dz2 - dz2 pz
938 ijkl_ind(31, 13) = 178
939 ! dz2 dz2 - dz2 dz2
940 ijkl_ind(31, 31) = 179
941 ! dz2 dz2 - dzx px
942 ijkl_ind(31, 21) = 180
943 ! dz2 dz2 - dzx dzx
944 ijkl_ind(31, 36) = 181
945 ! dz2 dz2 - dzy py
946 ijkl_ind(31, 28) = 182
947 ijkl_sym(182) = 180
948 ! dz2 dz2 - dzy dzy
949 ijkl_ind(31, 40) = 183
950 ijkl_sym(183) = 181
951 ! dz2 dz2 - dx2-y2 dx2-y2
952 ijkl_ind(31, 43) = 184
953 ! dz2 dz2 - dxy dxy
954 ijkl_ind(31, 45) = 185
955 ijkl_sym(185) = 184
956 ! ################ dzx s #######################
957 ! dzx s - px s
958 ijkl_ind(6, 3) = 186
959 ! dzx s - px pz
960 ijkl_ind(6, 11) = 187
961 ! dzx s - dz2 px
962 ijkl_ind(6, 20) = 188
963 ! dzx s - dzx s
964 ijkl_ind(6, 6) = 189
965 ! dzx s - dzx pz
966 ijkl_ind(6, 14) = 190
967 ! dzx s - dzx dz2
968 ijkl_ind(6, 32) = 191
969 ! dzx s - dx2-y2 px
970 ijkl_ind(6, 23) = 192
971 ! dzx s - dx2-y2 dx2-y2
972 ijkl_ind(6, 38) = 193
973 ! dzx s - dxy py
974 ijkl_ind(6, 30) = 194
975 ijkl_sym(194) = 192
976 ! dzx s - dxy dzy
977 ijkl_ind(6, 42) = 195
978 ijkl_sym(195) = 193
979 ! ################ dzx pz #######################
980 ! dzx pz - px s
981 ijkl_ind(14, 3) = 196
982 ! dzx pz - px pz
983 ijkl_ind(14, 11) = 197
984 ! dzx pz - dz2 px
985 ijkl_ind(14, 20) = 198
986 ! dzx pz - dzx s
987 ijkl_ind(14, 6) = 199
988 ! dzx pz - dzx pz
989 ijkl_ind(14, 14) = 200
990 ! dzx pz - dzx dz2
991 ijkl_ind(14, 32) = 201
992 ! dzx pz - dx2-y2 px
993 ijkl_ind(14, 23) = 202
994 ! dzx pz - dx2-y2 dx2-y2
995 ijkl_ind(14, 38) = 203
996 ! dzx pz - dxy py
997 ijkl_ind(14, 30) = 204
998 ijkl_sym(204) = 202
999 ! dzx pz - dxy dzy
1000 ijkl_ind(14, 42) = 205
1001 ijkl_sym(205) = 203
1002 ! ################ dzx px #######################
1003 ! dzx px - s s
1004 ijkl_ind(21, 1) = 206
1005 ! dzx px - pz s
1006 ijkl_ind(21, 2) = 207
1007 ! dzx px - pz pz
1008 ijkl_ind(21, 10) = 208
1009 ! dzx px - px px
1010 ijkl_ind(21, 18) = 209
1011 ! dzx px - py py
1012 ijkl_ind(21, 25) = 210
1013 ! dzx px - dz2 s
1014 ijkl_ind(21, 5) = 211
1015 ! dzx px - dz2 pz
1016 ijkl_ind(21, 13) = 212
1017 ! dzx px - dz2 dz2
1018 ijkl_ind(21, 31) = 213
1019 ! dzx px - dzx px
1020 ijkl_ind(21, 21) = 214
1021 ! dzx px - dzx dzx
1022 ijkl_ind(21, 36) = 215
1023 ! dzx px - dzy py
1024 ijkl_ind(21, 28) = 216
1025 ! dzx px - dzy dzy
1026 ijkl_ind(21, 40) = 217
1027 ! dzx px - dx2-y2 s
1028 ijkl_ind(21, 8) = 218
1029 ! dzx px - dx2-y2 pz
1030 ijkl_ind(21, 16) = 219
1031 ! dzx px - dx2-y2 dz2
1032 ijkl_ind(21, 34) = 220
1033 ! dzx px - dx2-y2 dx2-y2
1034 ijkl_ind(21, 43) = 221
1035 ! dzx px - dxy dxy
1036 ijkl_ind(21, 45) = 222
1037 ijkl_sym(222) = 221
1038 ! ################ dzx py #######################
1039 ! dzx py - px py
1040 ijkl_ind(27, 19) = 223
1041 ! dzx py - dzx py
1042 ijkl_ind(27, 27) = 224
1043 ijkl_sym(224) = 219
1044 ! dzx py - dzy px
1045 ijkl_ind(27, 22) = 225
1046 ijkl_sym(225) = 219
1047 ! dzx py - dzy dzx
1048 ijkl_ind(27, 37) = 226
1049 ! dzx py - dxy s
1050 ijkl_ind(27, 9) = 227
1051 ijkl_sym(227) = 218
1052 ! dzx py - dxy pz
1053 ijkl_ind(27, 17) = 228
1054 ijkl_sym(228) = 219
1055 ! dzx py - dxy dz2
1056 ijkl_ind(27, 35) = 229
1057 ijkl_sym(229) = 220
1058 ! ################ dzx dz2 #######################
1059 ! dzx dz2 - px s
1060 ijkl_ind(32, 3) = 230
1061 ! dzx dz2 - px pz
1062 ijkl_ind(32, 11) = 231
1063 ! dzx dz2 - dz2 px
1064 ijkl_ind(32, 20) = 232
1065 ! dzx dz2 - dzx s
1066 ijkl_ind(32, 6) = 233
1067 ! dzx dz2 - dzx pz
1068 ijkl_ind(32, 14) = 234
1069 ! dzx dz2 - dzx dz2
1070 ijkl_ind(32, 32) = 235
1071 ! dzx dz2 - dx2-y2 px
1072 ijkl_ind(32, 23) = 236
1073 ! dzx dz2 - dx2-y2 dx2-y2
1074 ijkl_ind(32, 38) = 237
1075 ! dzx dz2 - dxy py
1076 ijkl_ind(32, 30) = 238
1077 ijkl_sym(238) = 236
1078 ! dzx dz2 - dxy dzy
1079 ijkl_ind(32, 42) = 239
1080 ijkl_sym(239) = 237
1081 ! ################ dzx dzx #######################
1082 ! dzx dzx - s s
1083 ijkl_ind(36, 1) = 240
1084 ! dzx dzx - pz s
1085 ijkl_ind(36, 2) = 241
1086 ! dzx dzx - pz pz
1087 ijkl_ind(36, 10) = 242
1088 ! dzx dzx - px px
1089 ijkl_ind(36, 18) = 243
1090 ! dzx dzx - py py
1091 ijkl_ind(36, 25) = 244
1092 ! dzx dzx - dz2 s
1093 ijkl_ind(36, 5) = 245
1094 ! dzx dzx - dz2 pz
1095 ijkl_ind(36, 13) = 246
1096 ! dzx dzx - dz2 dz2
1097 ijkl_ind(36, 31) = 247
1098 ! dzx dzx - dzx px
1099 ijkl_ind(36, 21) = 248
1100 ! dzx dzx - dzx dzx
1101 ijkl_ind(36, 36) = 249
1102 ! dzx dzx - dzy py
1103 ijkl_ind(36, 28) = 250
1104 ! dzx dzx - dzy dzy
1105 ijkl_ind(36, 40) = 251
1106 ! dzx dzx - dx2-y2 s
1107 ijkl_ind(36, 8) = 252
1108 ! dzx dzx - dx2-y2 pz
1109 ijkl_ind(36, 16) = 253
1110 ! dzx dzx - dx2-y2 dz2
1111 ijkl_ind(36, 34) = 254
1112 ! dzx dzx - dx2-y2 dx2-y2
1113 ijkl_ind(36, 43) = 255
1114 ! dzx dzx - dxy dxy
1115 ijkl_ind(36, 45) = 256
1116 ijkl_sym(256) = 255
1117 ! ################ dzy s #######################
1118 ! dzy s - py s
1119 ijkl_ind(7, 4) = 257
1120 ijkl_sym(257) = 186
1121 ! dzy s - py pz
1122 ijkl_ind(7, 12) = 258
1123 ijkl_sym(258) = 187
1124 ! dzy s - dz2 py
1125 ijkl_ind(7, 26) = 259
1126 ijkl_sym(259) = 188
1127 ! dzy s - dzy s
1128 ijkl_ind(7, 7) = 260
1129 ijkl_sym(260) = 189
1130 ! dzy s - dzy pz
1131 ijkl_ind(7, 15) = 261
1132 ijkl_sym(261) = 190
1133 ! dzy s - dzy dz2
1134 ijkl_ind(7, 33) = 262
1135 ijkl_sym(262) = 191
1136 ! dzy s - dx2-y2 py
1137 ijkl_ind(7, 29) = 263
1138 ijkl_sym(263) = 192*(-1)
1139 ! dzy s - dx2-y2 dzy
1140 ijkl_ind(7, 41) = 264
1141 ijkl_sym(264) = 193*(-1)
1142 ! dzy s - dxy px
1143 ijkl_ind(7, 24) = 265
1144 ijkl_sym(265) = 192
1145 ! dzy s - dxy dzx
1146 ijkl_ind(7, 39) = 266
1147 ijkl_sym(266) = 193
1148 ! ################ dzy pz #######################
1149 ! dzy pz - py s
1150 ijkl_ind(15, 4) = 267
1151 ijkl_sym(267) = 196
1152 ! dzy pz - py pz
1153 ijkl_ind(15, 12) = 268
1154 ijkl_sym(268) = 197
1155 ! dzy pz - dz2 py
1156 ijkl_ind(15, 26) = 269
1157 ijkl_sym(269) = 198
1158 ! dzy pz - dzy s
1159 ijkl_ind(15, 7) = 270
1160 ijkl_sym(270) = 199
1161 ! dzy pz - dzy pz
1162 ijkl_ind(15, 15) = 271
1163 ijkl_sym(271) = 200
1164 ! dzy pz - dzy dz2
1165 ijkl_ind(15, 33) = 272
1166 ijkl_sym(272) = 201
1167 ! dzy pz - dx2-y2 py
1168 ijkl_ind(15, 29) = 273
1169 ijkl_sym(273) = 202*(-1)
1170 ! dzy pz - dx2-y2 dzy
1171 ijkl_ind(15, 41) = 274
1172 ijkl_sym(274) = 203*(-1)
1173 ! dzy pz - dxy px
1174 ijkl_ind(15, 24) = 275
1175 ijkl_sym(275) = 202
1176 ! dzy pz - dxy dzx
1177 ijkl_ind(15, 39) = 276
1178 ijkl_sym(276) = 203
1179 ! ################ dzy px #######################
1180 ! dzy px - px py
1181 ijkl_ind(22, 19) = 277
1182 ijkl_sym(277) = 223
1183 ! dzy px - dzx py
1184 ijkl_ind(22, 27) = 278
1185 ijkl_sym(278) = 219
1186 ! dzy px - dzy px
1187 ijkl_ind(22, 22) = 279
1188 ijkl_sym(279) = 219
1189 ! dzy px - dzy dzx
1190 ijkl_ind(22, 37) = 280
1191 ijkl_sym(280) = 226
1192 ! dzy px - dxy s
1193 ijkl_ind(22, 9) = 281
1194 ijkl_sym(281) = 218
1195 ! dzy px - dxy pz
1196 ijkl_ind(22, 17) = 282
1197 ijkl_sym(282) = 219
1198 ! dzy px - dxy dz2
1199 ijkl_ind(22, 35) = 283
1200 ijkl_sym(283) = 220
1201 ! ################ dzy py #######################
1202 ! dzy py - s s
1203 ijkl_ind(28, 1) = 284
1204 ijkl_sym(284) = 206
1205 ! dzy py - pz s
1206 ijkl_ind(28, 2) = 285
1207 ijkl_sym(285) = 207
1208 ! dzy py - pz pz
1209 ijkl_ind(28, 10) = 286
1210 ijkl_sym(286) = 208
1211 ! dzy py - px px
1212 ijkl_ind(28, 18) = 287
1213 ijkl_sym(287) = 210
1214 ! dzy py - py py
1215 ijkl_ind(28, 25) = 288
1216 ijkl_sym(288) = 209
1217 ! dzy py - dz2 s
1218 ijkl_ind(28, 5) = 289
1219 ijkl_sym(289) = 211
1220 ! dzy py - dz2 pz
1221 ijkl_ind(28, 13) = 290
1222 ijkl_sym(290) = 212
1223 ! dzy py - dz2 dz2
1224 ijkl_ind(28, 31) = 291
1225 ijkl_sym(291) = 213
1226 ! dzy py - dzx px
1227 ijkl_ind(28, 21) = 292
1228 ijkl_sym(292) = 216
1229 ! dzy py - dzx dzx
1230 ijkl_ind(28, 36) = 293
1231 ijkl_sym(293) = 217
1232 ! dzy py - dzy py
1233 ijkl_ind(28, 28) = 294
1234 ijkl_sym(294) = 214
1235 ! dzy py - dzy dzy
1236 ijkl_ind(28, 40) = 295
1237 ijkl_sym(295) = 215
1238 ! dzy py - dx2-y2 s
1239 ijkl_ind(28, 8) = 296
1240 ijkl_sym(296) = 218*(-1)
1241 ! dzy py - dx2-y2 pz
1242 ijkl_ind(28, 16) = 297
1243 ijkl_sym(297) = 219*(-1)
1244 ! dzy py - dx2-y2 dz2
1245 ijkl_ind(28, 34) = 298
1246 ijkl_sym(298) = 220*(-1)
1247 ! dzy py - dx2-y2 dx2-y2
1248 ijkl_ind(28, 43) = 299
1249 ijkl_sym(299) = 221
1250 ! dzy py - dxy dxy
1251 ijkl_ind(28, 45) = 300
1252 ijkl_sym(300) = 221
1253 ! ################ dzy dz2 #######################
1254 ! dzy dz2 - py s
1255 ijkl_ind(33, 4) = 301
1256 ijkl_sym(301) = 230
1257 ! dzy dz2 - py pz
1258 ijkl_ind(33, 12) = 302
1259 ijkl_sym(302) = 231
1260 ! dzy dz2 - dz2 py
1261 ijkl_ind(33, 26) = 303
1262 ijkl_sym(303) = 232
1263 ! dzy dz2 - dzy s
1264 ijkl_ind(33, 7) = 304
1265 ijkl_sym(304) = 233
1266 ! dzy dz2 - dzy pz
1267 ijkl_ind(33, 15) = 305
1268 ijkl_sym(305) = 234
1269 ! dzy dz2 - dzy dz2
1270 ijkl_ind(33, 33) = 306
1271 ijkl_sym(306) = 235
1272 ! dzy dz2 - dx2-y2 py
1273 ijkl_ind(33, 29) = 307
1274 ijkl_sym(307) = 236*(-1)
1275 ! dzy dz2 - dx2-y2 dzy
1276 ijkl_ind(33, 41) = 308
1277 ijkl_sym(308) = 237*(-1)
1278 ! dzy dz2 - dxy px
1279 ijkl_ind(33, 24) = 309
1280 ijkl_sym(309) = 236
1281 ! dzy dz2 - dxy dzx
1282 ijkl_ind(33, 39) = 310
1283 ijkl_sym(310) = 237
1284 ! ################ dzy dzx #######################
1285 ! dzy dzx - px py
1286 ijkl_ind(37, 19) = 311
1287 ! dzy dzx - dzx py
1288 ijkl_ind(37, 27) = 312
1289 ijkl_sym(312) = 253
1290 ! dzy dzx - dzy px
1291 ijkl_ind(37, 22) = 313
1292 ijkl_sym(313) = 253
1293 ! dzy dzx - dzy dzx
1294 ijkl_ind(37, 37) = 314
1295 ! dzy dzx - dxy s
1296 ijkl_ind(37, 9) = 315
1297 ijkl_sym(315) = 252
1298 ! dzy dzx - dxy pz
1299 ijkl_ind(37, 17) = 316
1300 ijkl_sym(316) = 253
1301 ! dzy dzx - dxy dz2
1302 ijkl_ind(37, 35) = 317
1303 ijkl_sym(317) = 254
1304 ! ################ dzy dzy #######################
1305 ! dzy dzy - s s
1306 ijkl_ind(40, 1) = 318
1307 ijkl_sym(318) = 240
1308 ! dzy dzy - pz s
1309 ijkl_ind(40, 2) = 319
1310 ijkl_sym(319) = 241
1311 ! dzy dzy - pz pz
1312 ijkl_ind(40, 10) = 320
1313 ijkl_sym(320) = 242
1314 ! dzy dzy - px px
1315 ijkl_ind(40, 18) = 321
1316 ijkl_sym(321) = 244
1317 ! dzy dzy - py py
1318 ijkl_ind(40, 25) = 322
1319 ijkl_sym(322) = 243
1320 ! dzy dzy - dz2 s
1321 ijkl_ind(40, 5) = 323
1322 ijkl_sym(323) = 245
1323 ! dzy dzy - dz2 pz
1324 ijkl_ind(40, 13) = 324
1325 ijkl_sym(324) = 246
1326 ! dzy dzy - dz2 dz2
1327 ijkl_ind(40, 31) = 325
1328 ijkl_sym(325) = 247
1329 ! dzy dzy - dzx px
1330 ijkl_ind(40, 21) = 326
1331 ijkl_sym(326) = 250
1332 ! dzy dzy - dzx dzx
1333 ijkl_ind(40, 36) = 327
1334 ijkl_sym(327) = 251
1335 ! dzy dzy - dzy py
1336 ijkl_ind(40, 28) = 328
1337 ijkl_sym(328) = 248
1338 ! dzy dzy - dzy dzy
1339 ijkl_ind(40, 40) = 329
1340 ijkl_sym(329) = 249
1341 ! dzy dzy - dx2-y2 s
1342 ijkl_ind(40, 8) = 330
1343 ijkl_sym(330) = 252*(-1)
1344 ! dzy dzy - dx2-y2 pz
1345 ijkl_ind(40, 16) = 331
1346 ijkl_sym(331) = 253*(-1)
1347 ! dzy dzy - dx2-y2 dz2
1348 ijkl_ind(40, 34) = 332
1349 ijkl_sym(332) = 254*(-1)
1350 ! dzy dzy - dx2-y2 dx2-y2
1351 ijkl_ind(40, 43) = 333
1352 ijkl_sym(333) = 255
1353 ! dzy dzy - dxy dxy
1354 ijkl_ind(40, 45) = 334
1355 ijkl_sym(334) = 255
1356 ! ################ dx2-y2 s #######################
1357 ! dx2-y2 s - px px
1358 ijkl_ind(8, 18) = 335
1359 ! dx2-y2 s - py py
1360 ijkl_ind(8, 25) = 336
1361 ijkl_sym(336) = 335*(-1)
1362 ! dx2-y2 s - dzx px
1363 ijkl_ind(8, 21) = 337
1364 ! dx2-y2 s - dzx dzx
1365 ijkl_ind(8, 36) = 338
1366 ! dx2-y2 s - dzy py
1367 ijkl_ind(8, 28) = 339
1368 ijkl_sym(339) = 337*(-1)
1369 ! dx2-y2 s - dzy dzy
1370 ijkl_ind(8, 40) = 340
1371 ijkl_sym(340) = 338*(-1)
1372 ! dx2-y2 s - dx2-y2 s
1373 ijkl_ind(8, 8) = 341
1374 ! dx2-y2 s - dx2-y2 pz
1375 ijkl_ind(8, 16) = 342
1376 ijkl_sym(342) = 337
1377 ! dx2-y2 s - dx2-y2 dz2
1378 ijkl_ind(8, 34) = 343
1379 ! ################ dx2-y2 pz #######################
1380 ! dx2-y2 pz - px px
1381 ijkl_ind(16, 18) = 344
1382 ijkl_sym(344) = 223
1383 ! dx2-y2 pz - py py
1384 ijkl_ind(16, 25) = 345
1385 ijkl_sym(345) = 223*(-1)
1386 ! dx2-y2 pz - dzx px
1387 ijkl_ind(16, 21) = 346
1388 ijkl_sym(346) = 219
1389 ! dx2-y2 pz - dzx dzx
1390 ijkl_ind(16, 36) = 347
1391 ijkl_sym(347) = 226
1392 ! dx2-y2 pz - dzy py
1393 ijkl_ind(16, 28) = 348
1394 ijkl_sym(348) = 219*(-1)
1395 ! dx2-y2 pz - dzy dzy
1396 ijkl_ind(16, 40) = 349
1397 ijkl_sym(349) = 226*(-1)
1398 ! dx2-y2 pz - dx2-y2 s
1399 ijkl_ind(16, 8) = 350
1400 ijkl_sym(350) = 218
1401 ! dx2-y2 pz - dx2-y2 pz
1402 ijkl_ind(16, 16) = 351
1403 ijkl_sym(351) = 219
1404 ! dx2-y2 pz - dx2-y2 dz2
1405 ijkl_ind(16, 34) = 352
1406 ijkl_sym(352) = 220
1407 ! ################ dx2-y2 px #######################
1408 ! dx2-y2 px - px s
1409 ijkl_ind(23, 3) = 353
1410 ! dx2-y2 px - px pz
1411 ijkl_ind(23, 11) = 354
1412 ! dx2-y2 px - dz2 px
1413 ijkl_ind(23, 20) = 355
1414 ! dx2-y2 px - dzx s
1415 ijkl_ind(23, 6) = 356
1416 ! dx2-y2 px - dzx pz
1417 ijkl_ind(23, 14) = 357
1418 ! dx2-y2 px - dzx dz2
1419 ijkl_ind(23, 32) = 358
1420 ! dx2-y2 px - dx2-y2 px
1421 ijkl_ind(23, 23) = 359
1422 ! dx2-y2 px - dx2-y2 dx2-y2
1423 ijkl_ind(23, 38) = 360
1424 ! dx2-y2 px - dxy py
1425 ijkl_ind(23, 30) = 361
1426 ! dx2-y2 px - dxy dzy
1427 ijkl_ind(23, 42) = 362
1428 ! ################ dx2-y2 py #######################
1429 ! dx2-y2 py - py s
1430 ijkl_ind(29, 4) = 363
1431 ijkl_sym(363) = 353*(-1)
1432 ! dx2-y2 py - py pz
1433 ijkl_ind(29, 12) = 364
1434 ijkl_sym(364) = 354*(-1)
1435 ! dx2-y2 py - dz2 py
1436 ijkl_ind(29, 26) = 365
1437 ijkl_sym(365) = 355*(-1)
1438 ! dx2-y2 py - dzy s
1439 ijkl_ind(29, 7) = 366
1440 ijkl_sym(366) = 356*(-1)
1441 ! dx2-y2 py - dzy pz
1442 ijkl_ind(29, 15) = 367
1443 ijkl_sym(367) = 357*(-1)
1444 ! dx2-y2 py - dzy dz2
1445 ijkl_ind(29, 33) = 368
1446 ijkl_sym(368) = 358*(-1)
1447 ! dx2-y2 py - dx2-y2 py
1448 ijkl_ind(29, 29) = 369
1449 ijkl_sym(369) = 359
1450 ! dx2-y2 py - dx2-y2 dzy
1451 ijkl_ind(29, 41) = 370
1452 ijkl_sym(370) = 360
1453 ! dx2-y2 py - dxy px
1454 ijkl_ind(29, 24) = 371
1455 ijkl_sym(371) = 361*(-1)
1456 ! dx2-y2 py - dxy dzx
1457 ijkl_ind(29, 39) = 372
1458 ijkl_sym(372) = 362*(-1)
1459 ! ################ dx2-y2 dz2 #######################
1460 ! dx2-y2 dz2 - px px
1461 ijkl_ind(34, 18) = 373
1462 ! dx2-y2 dz2 - py py
1463 ijkl_ind(34, 25) = 374
1464 ijkl_sym(374) = 373*(-1)
1465 ! dx2-y2 dz2 - dzx px
1466 ijkl_ind(34, 21) = 375
1467 ! dx2-y2 dz2 - dzx dzx
1468 ijkl_ind(34, 36) = 376
1469 ! dx2-y2 dz2 - dzy py
1470 ijkl_ind(34, 28) = 377
1471 ijkl_sym(377) = 375*(-1)
1472 ! dx2-y2 dz2 - dzy dzy
1473 ijkl_ind(34, 40) = 378
1474 ijkl_sym(378) = 376*(-1)
1475 ! dx2-y2 dz2 - dx2-y2 s
1476 ijkl_ind(34, 8) = 379
1477 ! dx2-y2 dz2 - dx2-y2 pz
1478 ijkl_ind(34, 16) = 380
1479 ijkl_sym(380) = 375
1480 ! dx2-y2 dz2 - dx2-y2 dz2
1481 ijkl_ind(34, 34) = 381
1482 ! ################ dx2-y2 dzx #######################
1483 ! dx2-y2 dzx - px s
1484 ijkl_ind(38, 3) = 382
1485 ! dx2-y2 dzx - px pz
1486 ijkl_ind(38, 11) = 383
1487 ! dx2-y2 dzx - dz2 px
1488 ijkl_ind(38, 20) = 384
1489 ! dx2-y2 dzx - dzx s
1490 ijkl_ind(38, 6) = 385
1491 ! dx2-y2 dzx - dzx pz
1492 ijkl_ind(38, 14) = 386
1493 ! dx2-y2 dzx - dzx dz2
1494 ijkl_ind(38, 32) = 387
1495 ! dx2-y2 dzx - dx2-y2 px
1496 ijkl_ind(38, 23) = 388
1497 ! dx2-y2 dzx - dx2-y2 dx2-y2
1498 ijkl_ind(38, 38) = 389
1499 ! dx2-y2 dzx - dxy py
1500 ijkl_ind(38, 30) = 390
1501 ! dx2-y2 dzx - dxy dzy
1502 ijkl_ind(38, 42) = 391
1503 ! ################ dx2-y2 dzy #######################
1504 ! dx2-y2 dzy - py s
1505 ijkl_ind(41, 4) = 392
1506 ijkl_sym(392) = 382*(-1)
1507 ! dx2-y2 dzy - py pz
1508 ijkl_ind(41, 12) = 393
1509 ijkl_sym(393) = 383*(-1)
1510 ! dx2-y2 dzy - dz2 py
1511 ijkl_ind(41, 26) = 394
1512 ijkl_sym(394) = 384*(-1)
1513 ! dx2-y2 dzy - dzy s
1514 ijkl_ind(41, 7) = 395
1515 ijkl_sym(395) = 385*(-1)
1516 ! dx2-y2 dzy - dzy pz
1517 ijkl_ind(41, 15) = 396
1518 ijkl_sym(396) = 386*(-1)
1519 ! dx2-y2 dzy - dzy dz2
1520 ijkl_ind(41, 33) = 397
1521 ijkl_sym(397) = 387*(-1)
1522 ! dx2-y2 dzy - dx2-y2 py
1523 ijkl_ind(41, 29) = 398
1524 ijkl_sym(398) = 388
1525 ! dx2-y2 dzy - dx2-y2 dzy
1526 ijkl_ind(41, 41) = 399
1527 ijkl_sym(399) = 389
1528 ! dx2-y2 dzy - dxy px
1529 ijkl_ind(41, 24) = 400
1530 ijkl_sym(400) = 390*(-1)
1531 ! dx2-y2 dzy - dxy dzx
1532 ijkl_ind(41, 39) = 401
1533 ijkl_sym(401) = 391*(-1)
1534 ! ################ dx2-y2 dx2-y2 #######################
1535 ! dx2-y2 dx2-y2 - s s
1536 ijkl_ind(43, 1) = 402
1537 ! dx2-y2 dx2-y2 - pz s
1538 ijkl_ind(43, 2) = 403
1539 ! dx2-y2 dx2-y2 - pz pz
1540 ijkl_ind(43, 10) = 404
1541 ! dx2-y2 dx2-y2 - px px
1542 ijkl_ind(43, 18) = 405
1543 ! dx2-y2 dx2-y2 - py py
1544 ijkl_ind(43, 25) = 406
1545 ijkl_sym(406) = 405
1546 ! dx2-y2 dx2-y2 - dz2 s
1547 ijkl_ind(43, 5) = 407
1548 ! dx2-y2 dx2-y2 - dz2 pz
1549 ijkl_ind(43, 13) = 408
1550 ! dx2-y2 dx2-y2 - dz2 dz2
1551 ijkl_ind(43, 31) = 409
1552 ! dx2-y2 dx2-y2 - dzx px
1553 ijkl_ind(43, 21) = 410
1554 ! dx2-y2 dx2-y2 - dzx dzx
1555 ijkl_ind(43, 36) = 411
1556 ! dx2-y2 dx2-y2 - dzy py
1557 ijkl_ind(43, 28) = 412
1558 ijkl_sym(412) = 410
1559 ! dx2-y2 dx2-y2 - dzy dzy
1560 ijkl_ind(43, 40) = 413
1561 ijkl_sym(413) = 411
1562 ! dx2-y2 dx2-y2 - dx2-y2 dx2-y2
1563 ijkl_ind(43, 43) = 414
1564 ! dx2-y2 dx2-y2 - dxy dxy
1565 ijkl_ind(43, 45) = 415
1566 ! ################ dxy s #######################
1567 ! dxy s - px py
1568 ijkl_ind(9, 19) = 416
1569 ijkl_sym(416) = 335
1570 ! dxy s - dzx py
1571 ijkl_ind(9, 27) = 417
1572 ijkl_sym(417) = 337
1573 ! dxy s - dzy px
1574 ijkl_ind(9, 22) = 418
1575 ijkl_sym(418) = 337
1576 ! dxy s - dzy dzx
1577 ijkl_ind(9, 37) = 419
1578 ijkl_sym(419) = 338
1579 ! dxy s - dxy s
1580 ijkl_ind(9, 9) = 420
1581 ijkl_sym(420) = 341
1582 ! dxy s - dxy pz
1583 ijkl_ind(9, 17) = 421
1584 ijkl_sym(421) = 337
1585 ! dxy s - dxy dz2
1586 ijkl_ind(9, 35) = 422
1587 ijkl_sym(422) = 343
1588 ! ################ dxy pz #######################
1589 ! dxy pz - px py
1590 ijkl_ind(17, 19) = 423
1591 ijkl_sym(423) = 223
1592 ! dxy pz - dzx py
1593 ijkl_ind(17, 27) = 424
1594 ijkl_sym(424) = 219
1595 ! dxy pz - dzy px
1596 ijkl_ind(17, 22) = 425
1597 ijkl_sym(425) = 219
1598 ! dxy pz - dzy dzx
1599 ijkl_ind(17, 37) = 426
1600 ijkl_sym(426) = 226
1601 ! dxy pz - dxy s
1602 ijkl_ind(17, 9) = 427
1603 ijkl_sym(427) = 218
1604 ! dxy pz - dxy pz
1605 ijkl_ind(17, 17) = 428
1606 ijkl_sym(428) = 219
1607 ! dxy pz - dxy dz2
1608 ijkl_ind(17, 35) = 429
1609 ijkl_sym(429) = 220
1610 ! ################ dxy px #######################
1611 ! dxy px - py s
1612 ijkl_ind(24, 4) = 430
1613 ijkl_sym(430) = 353
1614 ! dxy px - py pz
1615 ijkl_ind(24, 12) = 431
1616 ijkl_sym(431) = 354
1617 ! dxy px - dz2 py
1618 ijkl_ind(24, 26) = 432
1619 ijkl_sym(432) = 355
1620 ! dxy px - dzy s
1621 ijkl_ind(24, 7) = 433
1622 ijkl_sym(433) = 356
1623 ! dxy px - dzy pz
1624 ijkl_ind(24, 15) = 434
1625 ijkl_sym(434) = 357
1626 ! dxy px - dzy dz2
1627 ijkl_ind(24, 33) = 435
1628 ijkl_sym(435) = 358
1629 ! dxy px - dx2-y2 py
1630 ijkl_ind(24, 29) = 436
1631 ijkl_sym(436) = 361*(-1)
1632 ! dxy px - dx2-y2 dzy
1633 ijkl_ind(24, 41) = 437
1634 ijkl_sym(437) = 362*(-1)
1635 ! dxy px - dxy px
1636 ijkl_ind(24, 24) = 438
1637 ijkl_sym(438) = 359
1638 ! dxy px - dxy dzx
1639 ijkl_ind(24, 39) = 439
1640 ijkl_sym(439) = 360
1641 ! ################ dxy py #######################
1642 ! dxy py - px s
1643 ijkl_ind(30, 3) = 440
1644 ijkl_sym(440) = 353
1645 ! dxy py - px pz
1646 ijkl_ind(30, 11) = 441
1647 ijkl_sym(441) = 354
1648 ! dxy py - dz2 px
1649 ijkl_ind(30, 20) = 442
1650 ijkl_sym(442) = 355
1651 ! dxy py - dzx s
1652 ijkl_ind(30, 6) = 443
1653 ijkl_sym(443) = 356
1654 ! dxy py - dzx pz
1655 ijkl_ind(30, 14) = 444
1656 ijkl_sym(444) = 357
1657 ! dxy py - dzx dz2
1658 ijkl_ind(30, 32) = 445
1659 ijkl_sym(445) = 358
1660 ! dxy py - dx2-y2 px
1661 ijkl_ind(30, 23) = 446
1662 ijkl_sym(446) = 361
1663 ! dxy py - dx2-y2 dx2-y2
1664 ijkl_ind(30, 38) = 447
1665 ijkl_sym(447) = 362
1666 ! dxy py - dxy py
1667 ijkl_ind(30, 30) = 448
1668 ijkl_sym(448) = 359
1669 ! dxy py - dxy dzy
1670 ijkl_ind(30, 42) = 449
1671 ijkl_sym(449) = 360
1672 ! ################ dxy dz2 #######################
1673 ! dxy dz2 - px py
1674 ijkl_ind(35, 19) = 450
1675 ijkl_sym(450) = 373
1676 ! dxy dz2 - dzx py
1677 ijkl_ind(35, 27) = 451
1678 ijkl_sym(451) = 375
1679 ! dxy dz2 - dzy px
1680 ijkl_ind(35, 22) = 452
1681 ijkl_sym(452) = 375
1682 ! dxy dz2 - dzy dzx
1683 ijkl_ind(35, 37) = 453
1684 ijkl_sym(453) = 376
1685 ! dxy dz2 - dxy s
1686 ijkl_ind(35, 9) = 454
1687 ijkl_sym(454) = 379
1688 ! dxy dz2 - dxy pz
1689 ijkl_ind(35, 17) = 455
1690 ijkl_sym(455) = 375
1691 ! dxy dz2 - dxy dz2
1692 ijkl_ind(35, 35) = 456
1693 ijkl_sym(456) = 381
1694 ! ################ dxy dzx #######################
1695 ! dxy dzx - py s
1696 ijkl_ind(39, 4) = 457
1697 ijkl_sym(457) = 382
1698 ! dxy dzx - py pz
1699 ijkl_ind(39, 12) = 458
1700 ijkl_sym(458) = 383
1701 ! dxy dzx - dz2 py
1702 ijkl_ind(39, 26) = 459
1703 ijkl_sym(459) = 384
1704 ! dxy dzx - dzy s
1705 ijkl_ind(39, 7) = 460
1706 ijkl_sym(460) = 385
1707 ! dxy dzx - dzy pz
1708 ijkl_ind(39, 15) = 461
1709 ijkl_sym(461) = 386
1710 ! dxy dzx - dzy dz2
1711 ijkl_ind(39, 33) = 462
1712 ijkl_sym(462) = 387
1713 ! dxy dzx - dx2-y2 py
1714 ijkl_ind(39, 29) = 463
1715 ijkl_sym(463) = 390*(-1)
1716 ! dxy dzx - dx2-y2 dzy
1717 ijkl_ind(39, 41) = 464
1718 ijkl_sym(464) = 391*(-1)
1719 ! dxy dzx - dxy px
1720 ijkl_ind(39, 24) = 465
1721 ijkl_sym(465) = 388
1722 ! dxy dzx - dxy dzx
1723 ijkl_ind(39, 39) = 466
1724 ijkl_sym(466) = 389
1725 ! ################ dxy dzy #######################
1726 ! dxy dzy - px s
1727 ijkl_ind(42, 3) = 467
1728 ijkl_sym(467) = 382
1729 ! dxy dzy - px pz
1730 ijkl_ind(42, 11) = 468
1731 ijkl_sym(468) = 383
1732 ! dxy dzy - dz2 px
1733 ijkl_ind(42, 20) = 469
1734 ijkl_sym(469) = 384
1735 ! dxy dzy - dzx s
1736 ijkl_ind(42, 6) = 470
1737 ijkl_sym(470) = 385
1738 ! dxy dzy - dzx pz
1739 ijkl_ind(42, 14) = 471
1740 ijkl_sym(471) = 386
1741 ! dxy dzy - dzx dz2
1742 ijkl_ind(42, 32) = 472
1743 ijkl_sym(472) = 387
1744 ! dxy dzy - dx2-y2 px
1745 ijkl_ind(42, 23) = 473
1746 ijkl_sym(473) = 390
1747 ! dxy dzy - dx2-y2 dx2-y2
1748 ijkl_ind(42, 38) = 474
1749 ijkl_sym(474) = 391
1750 ! dxy dzy - dxy py
1751 ijkl_ind(42, 30) = 475
1752 ijkl_sym(475) = 388
1753 ! dxy dzy - dxy dzy
1754 ijkl_ind(42, 42) = 476
1755 ijkl_sym(476) = 389
1756 ! ################ dxy dx2-y2 #######################
1757 ! dxy dx2-y2 - dxy dx2-y2
1758 ijkl_ind(44, 44) = 477
1759 ! ################ dxy dxy #######################
1760 ! dxy dxy - s s
1761 ijkl_ind(45, 1) = 478
1762 ijkl_sym(478) = 402
1763 ! dxy dxy - pz s
1764 ijkl_ind(45, 2) = 479
1765 ijkl_sym(479) = 403
1766 ! dxy dxy - pz pz
1767 ijkl_ind(45, 10) = 480
1768 ijkl_sym(480) = 404
1769 ! dxy dxy - px px
1770 ijkl_ind(45, 18) = 481
1771 ijkl_sym(481) = 405
1772 ! dxy dxy - py py
1773 ijkl_ind(45, 25) = 482
1774 ijkl_sym(482) = 405
1775 ! dxy dxy - dz2 s
1776 ijkl_ind(45, 5) = 483
1777 ijkl_sym(483) = 407
1778 ! dxy dxy - dz2 pz
1779 ijkl_ind(45, 13) = 484
1780 ijkl_sym(484) = 408
1781 ! dxy dxy - dz2 dz2
1782 ijkl_ind(45, 31) = 485
1783 ijkl_sym(485) = 409
1784 ! dxy dxy - dzx px
1785 ijkl_ind(45, 21) = 486
1786 ijkl_sym(486) = 410
1787 ! dxy dxy - dzx dzx
1788 ijkl_ind(45, 36) = 487
1789 ijkl_sym(487) = 411
1790 ! dxy dxy - dzy py
1791 ijkl_ind(45, 28) = 488
1792 ijkl_sym(488) = 410
1793 ! dxy dxy - dzy dzy
1794 ijkl_ind(45, 40) = 489
1795 ijkl_sym(489) = 411
1796 ! dxy dxy - dx2-y2 dx2-y2
1797 ijkl_ind(45, 43) = 490
1798 ijkl_sym(490) = 415
1799 ! dxy dxy - dxy dxy
1800 ijkl_ind(45, 45) = 491
1801 ijkl_sym(491) = 414
1802 END SUBROUTINE setup_ijkl_array
1803
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Arrays of parameters used in the semi-empirical calculations \References Everywhere in this module TC...
integer, dimension(9), public se_map_alm
real(kind=dp), parameter, public rij_threshold
integer, dimension(9, 9), public indexb
integer, dimension(45), parameter, public int2c_type
integer, parameter, public clmz
integer, dimension(491), public ijkl_sym
integer, dimension(5, 3), public inddp
integer, dimension(45, 0:2, -2:2), public clm_sp
subroutine, public init_se_intd_array()
Initialize all arrays used for the evaluation of the integrals.
integer, dimension(3, 3), public indpp
integer, parameter, public clmzp
integer, dimension(9), public se_orbital_pointer
integer, parameter, public clmxy
integer, parameter, public clmzz
integer, parameter, public clmyy
integer, dimension(243), public int_kl
real(kind=dp), dimension(45, 0:2, -2:2), public clm_d
integer, parameter, public clmp
real(kind=dp), dimension(2, 9), parameter, public fac_x_to_z
integer, dimension(2, 9), parameter, public map_x_to_z
integer, dimension(243), public int_ij
integer, parameter, public clmxx
integer, dimension(243), public int_onec2el
integer, dimension(9), parameter, public l_index
real(kind=dp), dimension(45, 0:2, -2:2), public alm
integer, dimension(9, 9), public indexa
integer, dimension(5, 5), public inddd
integer, dimension(45, 45), public ijkl_ind