(git:0de0cc2)
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 
134 CONTAINS
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 ! **************************************************************************************************
141  SUBROUTINE init_se_intd_array()
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 
1804 END MODULE semi_empirical_int_arrays
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