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