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