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