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