|
CP2K 2.4 (Revision 12889)
|
00001 !-----------------------------------------------------------------------------! 00002 ! CP2K: A general program to perform molecular dynamics simulations ! 00003 ! Copyright (C) 2000 - 2013 CP2K developers group ! 00004 !-----------------------------------------------------------------------------! 00005 00006 ! ***************************************************************************** 00015 MODULE semi_empirical_int_arrays 00016 00017 USE f77_blas 00018 USE kinds, ONLY: dp 00019 #include "cp_common_uses.h" 00020 00021 IMPLICIT NONE 00022 00023 PRIVATE 00024 00025 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'semi_empirical_int_arrays' 00026 REAL(KINd=dp), PARAMETER, PUBLIC :: rij_threshold = 0.00002_dp 00027 00028 ! Mapping index for orbital ordering 00029 INTEGER, DIMENSION(9), PUBLIC :: se_orbital_pointer=(/1,4,2,3,9,8,7,6,5/) 00030 INTEGER, DIMENSION(9), PUBLIC :: se_map_alm =(/1,3,4,2,8,6,5,7,9/) 00031 00032 ! Arrays to treat the invertion of the reference frame for the integrals 00033 ! Using the same indexing convention of the integrals 00034 INTEGER, PARAMETER, DIMENSION(2,9), PUBLIC :: map_x_to_z = RESHAPE((/ 00035 1,0, ! s <-> s 00036 4,0, ! px <-> pz 00037 3,0, ! py <-> py 00038 2,0, ! pz <-> px 00039 7,5, ! dx2 <-> SQR3/2*dz2 + 0.5*dx2 00040 6,0, ! dzx <-> dzx 00041 7,5, ! dz2 <-> -0.5*dz2 + SQR3/2*dx2 00042 9,0, ! dzy <-> dxy 00043 8,0 ! dxy <-> dzy 00044 /),(/2,9/)) 00045 REAL(KIND=dp), PARAMETER, DIMENSION(2,9), PUBLIC :: fac_x_to_z = RESHAPE((/ 00046 1.0_dp,0.0_dp, 00047 1.0_dp,0.0_dp, 00048 1.0_dp,0.0_dp, 00049 1.0_dp,0.0_dp, 00050 0.8660254037844386_dp,0.5_dp, 00051 1.0_dp,0.0_dp, 00052 -0.5_dp,0.8660254037844386_dp, 00053 1.0_dp,0.0_dp, 00054 1.0_dp,0.0_dp 00055 /),(/2,9/)) 00056 00057 ! Clm coefficients for d-orbitals: see Table [1] and [2] of TCA 00058 REAL(KIND=dp), DIMENSION (45,0:2,-2:2), PUBLIC :: clm_d 00059 ! Clm coefficients for sp-orbitals: see original paper TCA77 00060 INTEGER, DIMENSION (45,0:2,-2:2), PUBLIC :: clm_sp 00061 ! alm coefficients: see Laino and Hutter (periodic SE) 00062 REAL(KIND=dp), DIMENSION (45,0:2,-2:2), PUBLIC :: alm 00063 00064 ! These values are absolutely arbitrary and are used only for a proper 00065 ! tag of the integrals 00066 INTEGER, PARAMETER, PUBLIC :: 00067 CLMz=10, CLMp=11, CLMzz=12, CLMzp=13, CLMyy=14, CLMxy=15, CLMxx=16 00068 00069 ! Indexes for diagonal storage of ij and kl multipoles 00070 INTEGER, DIMENSION(9,9), PUBLIC :: indexa, indexb 00071 00072 ! Type of integral for 2electron 2centers integrals 00073 INTEGER, DIMENSION(45), PARAMETER, PUBLIC :: int2c_type =(/ 00074 1, 2, 3, 2, 3, 3, 2, 3, 3, 3, 4, 5, 5, 5, 6, 4, 5, 5, 5, 00075 6, 6, 4, 5, 5, 5, 6, 6, 6, 4, 5, 5, 5, 6, 6, 6, 6, 4, 5, 00076 5, 5, 6, 6, 6, 6, 6/) 00077 00078 ! Mappinf of shell index 00079 INTEGER, DIMENSION(9), PARAMETER, PUBLIC :: l_index=(/ 00080 0, 1, 1, 1, 2, 2, 2, 2, 2/) 00081 00082 ! Index for <ij|kl> 00083 INTEGER, DIMENSION (45, 45), PUBLIC :: ijkl_ind 00084 00085 ! Symmetry index for <ij|kl> 00086 INTEGER, DIMENSION (491), PUBLIC :: ijkl_sym 00087 00088 ! Index for integral rotations 00089 INTEGER, DIMENSION (3, 3), PUBLIC :: indpp 00090 INTEGER, DIMENSION (5, 3), PUBLIC :: inddp 00091 INTEGER, DIMENSION (5, 5), PUBLIC :: inddd 00092 00093 ! Indexes use for the construction of the one-center two-electron integrals 00094 INTEGER, DIMENSION (243), PUBLIC :: int_ij = (/ 00095 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 00096 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, 00097 10,10,10,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,14,14,14,15, 00098 15,15,15,15,15,15,15,15,15,16,16,16,16,16,17,17,17,17,17,18,18,18,19, 00099 19,19,19,19,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,22,22, 00100 22,22,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,25,25,25,25,26,26, 00101 26,26,26,26,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,29,29,29,29, 00102 29,30,30,30,31,31,31,31,31,32,32,32,32,32,33,33,33,33,33,34,34,34,34, 00103 35,35,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,38,38, 00104 38,38,38,39,39,39,39,39,40,40,40,41,42,42,42,42,42,43,43,43,43,44,44, 00105 44,44,44,45,45,45,45,45,45,45,45,45,45 /) 00106 INTEGER, DIMENSION (243), PUBLIC :: int_kl = (/ 00107 15,21,28,36,45,12,19,23,39,11,15,21,22,26,28,36,45,13,24,32,38,34,37, 00108 43,11,15,21,22,26,28,36,45,17,25,31,16,20,27,44,29,33,35,42,15,21,22, 00109 28,36,45, 3, 6,11,21,26,36, 2,12,19,23,39, 4,13,24,32,38,14,17,31, 1, 00110 3, 6,10,15,21,22,28,36,45, 8,16,20,27,44, 7,14,17,25,31,18,30,40, 2, 00111 12,19,23,39, 8,16,20,27,44, 1, 3, 6,10,11,15,21,22,26,28,36,45, 3, 6, 00112 10,15,21,22,28,36,45, 2,12,19,23,39, 4,13,24,32,38, 7,17,25,31, 3, 6, 00113 11,21,26,36, 8,16,20,27,44, 1, 3, 6,10,15,21,22,28,36,45, 9,29,33,35, 00114 42,18,30,40, 7,14,17,25,31, 4,13,24,32,38, 9,29,33,35,42, 5,34,37,43, 00115 9,29,33,35,42, 1, 3, 6,10,11,15,21,22,26,28,36,45, 5,34,37,43, 4,13, 00116 24,32,38, 2,12,19,23,39,18,30,40,41, 9,29,33,35,42, 5,34,37,43, 8,16, 00117 20,27,44, 1, 3, 6,10,15,21,22,28,36,45 /) 00118 INTEGER, DIMENSION (243), PUBLIC :: int_onec2el = (/ 00119 1, 1, 1, 1, 1, 3, 3, 8, 3, 9, 6, 6,12,14,13, 7, 6,15, 8, 3, 3,11, 9, 00120 14,17, 6, 7,12,18,13, 6, 6, 3, 2, 3, 9,11,10,11, 9,16,10,11, 7, 6, 4, 00121 5, 6, 7, 9,17,19,32,22,40, 3,33,34,27,46,15,33,28,41,47,35,35,42, 1, 00122 6, 6, 7,29,38,22,31,38,51, 9,19,32,21,32, 3,35,33,24,34,35,35,35, 3, 00123 34,33,26,34,11,32,44,37,49, 1, 6, 7, 6,32,38,29,21,39,30,38,38,12,12, 00124 4,22,21,19,20,21,22, 8,27,26,25,27, 8,28,25,26,27, 2,24,23,24,14,18, 00125 22,39,48,45,10,21,37,36,37, 1,13,13, 5,31,30,20,29,30,31, 9,19,40,21, 00126 32,35,35,35, 3,42,34,24,33, 3,41,26,33,34,16,40,44,43,50,11,44,32,39, 00127 10,21,43,36,37, 1, 7, 6, 6,40,38,38,21,45,30,29,38, 9,32,19,22, 3,47, 00128 27,34,33, 3,46,34,27,33,35,35,35,52,11,32,50,37,44,14,39,22,48,11,32, 00129 49,37,44, 1, 6, 6, 7,51,38,22,31,38,29 /) 00130 00131 00132 PUBLIC :: init_se_intd_array 00133 00134 CONTAINS 00135 ! ***************************************************************************** 00141 SUBROUTINE init_se_intd_array(error) 00142 TYPE(cp_error_type), INTENT(inout) :: error 00143 00144 CHARACTER(len=*), PARAMETER :: routineN = 'init_se_intd_array', 00145 routineP = moduleN//':'//routineN 00146 00147 CALL setup_index_array(error) 00148 CALL setup_indrot_array(error) 00149 CALL setup_clm_array(error) 00150 CALL setup_ijkl_array(error) 00151 00152 END SUBROUTINE init_se_intd_array 00153 00154 ! ***************************************************************************** 00160 SUBROUTINE setup_index_array(error) 00161 TYPE(cp_error_type), INTENT(inout) :: error 00162 00163 CHARACTER(len=*), PARAMETER :: routineN = 'setup_index_array', 00164 routineP = moduleN//':'//routineN 00165 00166 INTEGER :: i, j 00167 LOGICAL :: failure 00168 00169 failure = .FALSE. 00170 DO i = 1, 9 00171 DO j = 1, i 00172 ! indexa: 00173 ! s pz px py dz2 dzx dzy dx2-y2 dxy 00174 ! s 1 2 3 4 5 6 7 8 9 00175 ! pz 2 10 11 12 13 14 15 16 17 00176 ! px 3 11 18 19 20 21 22 23 24 00177 ! py 4 12 19 25 26 27 28 29 30 00178 ! dz2 5 13 20 26 31 32 33 34 35 00179 ! dzx 6 14 21 27 32 36 37 38 39 00180 ! dzy 7 15 22 28 33 37 40 41 42 00181 ! dx2-y2 8 16 23 29 34 38 41 43 44 00182 ! dxy 9 17 24 30 35 39 42 44 45 00183 indexa(i,j) = (9*(j-1))-(j*(j-1))/2+i 00184 indexa(j,i) = indexa(i,j) 00185 ! indexb: 00186 ! s pz px py dz2 dzx dzy dx2-y2 dxy 00187 ! s 1 2 4 7 11 16 22 29 37 00188 ! pz 2 3 5 8 12 17 23 30 38 00189 ! px 4 5 6 9 13 18 24 31 39 00190 ! py 7 8 9 10 14 19 25 32 40 00191 ! dz2 11 12 13 14 15 20 26 33 41 00192 ! dzx 16 17 18 19 20 21 27 34 42 00193 ! dzy 22 23 24 25 26 27 28 35 43 00194 ! dx2-y2 29 30 31 32 33 34 35 36 44 00195 ! dxy 37 38 39 40 41 42 43 44 45 00196 indexb(i,j) = (i*(i-1))/2+j 00197 indexb(j,i) = indexb(i,j) 00198 END DO 00199 END DO 00200 END SUBROUTINE setup_index_array 00201 00202 ! ***************************************************************************** 00208 SUBROUTINE setup_indrot_array(error) 00209 TYPE(cp_error_type), INTENT(inout) :: error 00210 00211 CHARACTER(len=*), PARAMETER :: routineN = 'setup_indrot_array', 00212 routineP = moduleN//':'//routineN 00213 00214 LOGICAL :: failure 00215 00216 failure = .FALSE. 00217 ! Setup indexes for integral rotations 00218 ! INDPP 00219 indpp(1, 1) = 1 00220 indpp(2, 1) = 4 00221 indpp(3, 1) = 5 00222 indpp(1, 2) = 4 00223 indpp(2, 2) = 2 00224 indpp(3, 2) = 6 00225 indpp(1, 3) = 5 00226 indpp(2, 3) = 6 00227 indpp(3, 3) = 3 00228 ! INDDP 00229 inddp(1, 1) = 1 00230 inddp(2, 1) = 4 00231 inddp(3, 1) = 7 00232 inddp(4, 1) = 10 00233 inddp(5, 1) = 13 00234 inddp(1, 2) = 2 00235 inddp(2, 2) = 5 00236 inddp(3, 2) = 8 00237 inddp(4, 2) = 11 00238 inddp(5, 2) = 14 00239 inddp(1, 3) = 3 00240 inddp(2, 3) = 6 00241 inddp(3, 3) = 9 00242 inddp(4, 3) = 12 00243 inddp(5, 3) = 15 00244 ! INDDD 00245 inddd(1, 1) = 1 00246 inddd(2, 1) = 6 00247 inddd(3, 1) = 7 00248 inddd(4, 1) = 9 00249 inddd(5, 1) = 12 00250 inddd(1, 2) = 6 00251 inddd(2, 2) = 2 00252 inddd(3, 2) = 8 00253 inddd(4, 2) = 10 00254 inddd(5, 2) = 13 00255 inddd(1, 3) = 7 00256 inddd(2, 3) = 8 00257 inddd(3, 3) = 3 00258 inddd(4, 3) = 11 00259 inddd(5, 3) = 14 00260 inddd(1, 4) = 9 00261 inddd(2, 4) = 10 00262 inddd(3, 4) = 11 00263 inddd(4, 4) = 4 00264 inddd(5, 4) = 15 00265 inddd(1, 5) = 12 00266 inddd(2, 5) = 13 00267 inddd(3, 5) = 14 00268 inddd(4, 5) = 15 00269 inddd(5, 5) = 5 00270 END SUBROUTINE setup_indrot_array 00271 00272 ! ***************************************************************************** 00278 SUBROUTINE setup_clm_array(error) 00279 TYPE(cp_error_type), INTENT(inout) :: error 00280 00281 CHARACTER(len=*), PARAMETER :: routineN = 'setup_clm_array', 00282 routineP = moduleN//':'//routineN 00283 00284 LOGICAL :: failure 00285 REAL(KIND=dp) :: ALM1, ALMs15_49, ALMs15_49m, ALMs15m, ALMs20_49, 00286 ALMs20_49m, ALMs35, ALMs35m, ALMs45, ALMs5_49, ALMs5_49m, CLM1, CLM1m, 00287 CLM23, CLM23m, CLM43, CLM43m, CLMs13, CLMs13m, CLMs43, CLMs43m 00288 00289 failure = .FALSE. 00290 CLM1 = 1.0_dp 00291 CLM1m = -1.0_dp 00292 CLMs13 = SQRT(1.0_dp/3.0_dp) 00293 CLMs13m = -SQRT(1.0_dp/3.0_dp) 00294 CLM23 = 2.0_dp/3.0_dp 00295 CLM23m = -2.0_dp/3.0_dp 00296 CLM43 = 4.0_dp/3.0_dp 00297 CLM43m = -4.0_dp/3.0_dp 00298 CLMs43 = SQRT(4.0_dp/3.0_dp) 00299 CLMs43m = -SQRT(4.0_dp/3.0_dp) 00300 ALM1 = 1.0_dp 00301 ALMs45 = SQRT(4.0_dp/5.0_dp) 00302 ALMs35 = SQRT(3.0_dp/5.0_dp) 00303 ALMs35m = -ALMs35 00304 ALMs15m = -SQRT(1.0_dp/5.0_dp) 00305 ALMs20_49 = SQRT(20.0_dp/49.0_dp) 00306 ALMs20_49m = -ALMs20_49 00307 ALMs5_49 = SQRT(5.0_dp/49.0_dp) 00308 ALMs5_49m = -ALMs5_49 00309 ALMs15_49 = SQRT(15.0_dp/49.0_dp) 00310 ALMs15_49m = -ALMs15_49 00311 00312 ! Notation (1) s 00313 ! (2) pz = p_sigma (5) d_sigma = dz2 (8) d_delta = dx2-y2 00314 ! (3) px = p_pi (6) d_pi = dzx (9) d_{\overline{delta}} = dxy 00315 ! (4) py = pi_{\overline{pi}} (7) d_{\overline{pi}} = dzy 00316 00317 clm_d = 0.0_dp 00318 clm_sp= 0.0_dp 00319 alm = 0.0_dp 00320 ! Let's fill all element of table 1 with resulting multipole lesser than 2 00321 ! Important Note: the value of the clm_sp does not reflect any phyisical 00322 ! rule for decomposing/summing multipoles. It's just a 00323 ! computational trick to put some order where conceptual mess 00324 ! has been created.. 00325 ! s s 00326 clm_d ( 1, 0, 0) = CLM1 00327 clm_sp( 1, 0, 0) = CLM1 00328 alm ( 1, 0, 0) = ALM1 00329 ! s pz 00330 clm_d ( 2, 1, 0) = CLM1 00331 clm_sp( 2, 1, 0) = CLMz 00332 alm ( 2, 1, 0) = ALM1 00333 ! s px 00334 clm_d ( 3, 1, 1) = CLM1 00335 clm_sp( 3, 1, 1) = CLMp 00336 alm ( 3, 1, 1) = ALM1 00337 ! s py 00338 clm_d ( 4, 1,-1) = CLM1 00339 clm_sp( 4, 1,-1) = CLMp 00340 alm ( 4, 1,-1) = ALM1 00341 ! s dz2 00342 clm_d ( 5, 2, 0) = CLMs43 00343 alm ( 5, 2, 0) = ALM1 00344 ! s dzx 00345 clm_d ( 6, 2, 1) = CLM1 00346 alm ( 6, 2, 1) = ALM1 00347 ! s dzy 00348 clm_d ( 7, 2,-1) = CLM1 00349 alm ( 7, 2,-1) = ALM1 00350 ! s dx2-y2 00351 clm_d ( 8, 2, 2) = CLM1 00352 alm ( 8, 2, 2) = ALM1 00353 ! s dxy 00354 clm_d ( 9, 2,-2) = CLM1 00355 alm ( 9, 2,-2) = ALM1 00356 ! pz pz 00357 clm_d (10, 0, 0) = CLM1 00358 clm_d (10, 2, 0) = CLM43 00359 clm_sp(10, 0, 0) = CLM1 00360 clm_sp(10, 2, 0) = CLMzz 00361 alm (10, 0, 0) = ALM1 00362 alm (10, 2, 0) = ALMs45 00363 ! pz px 00364 clm_d (11, 2, 1) = CLM1 00365 clm_sp(11, 2, 1) = CLMzp 00366 alm (11, 2, 1) = ALMs35 00367 ! pz py 00368 clm_d (12, 2,-1) = CLM1 00369 clm_sp(12, 2,-1) = CLMzp 00370 alm (12, 2,-1) = ALMs35 00371 ! pz dz2 00372 clm_d (13, 1, 0) = CLMs43 00373 alm (13, 1, 0) = ALMs45 00374 ! pz dzx 00375 clm_d (14, 1, 1) = CLM1 00376 alm (14, 1, 1) = ALMs35 00377 ! pz dzy 00378 clm_d (15, 1,-1) = CLM1 00379 alm (15, 1,-1) = ALMs35 00380 ! px px 00381 clm_d (18, 0, 0) = CLM1 00382 clm_d (18, 2, 0) = CLM23m 00383 clm_d (18, 2, 2) = CLM1 00384 clm_sp(18, 0, 0) = CLM1 00385 clm_sp(18, 2, 0) = CLMyy 00386 alm (18, 0, 0) = ALM1 00387 alm (18, 2, 0) = ALMs15m 00388 alm (18, 2, 2) = ALMs35 00389 ! px py 00390 clm_d (19, 2,-2) = CLM1 00391 clm_sp(19, 2,-2) = CLMxy 00392 alm (19, 2,-2) = ALMs35 00393 ! px dz2 00394 clm_d (20, 1, 1) = CLMs13m 00395 alm (20, 1, 1) = ALMs15m 00396 ! px dzx 00397 clm_d (21, 1, 0) = CLM1 00398 alm (21, 1, 0) = ALMs35 00399 ! px dx2-y2 00400 clm_d (23, 1, 1) = CLM1 00401 alm (23, 1, 1) = ALMs35 00402 ! px dxy 00403 clm_d (24, 1,-1) = CLM1 00404 alm (24, 1,-1) = ALMs35 00405 ! py py 00406 clm_d (25, 0, 0) = CLM1 00407 clm_d (25, 2, 0) = CLM23m 00408 clm_d (25, 2, 2) = CLM1m 00409 clm_sp(25, 0, 0) = CLM1 00410 clm_sp(25, 2, 0) = CLMxx 00411 alm (25, 0, 0) = ALM1 00412 alm (25, 2, 0) = ALMs15m 00413 alm (25, 2, 2) = ALMs35m 00414 ! py dz2 00415 clm_d (26, 1,-1) = CLMs13m 00416 alm (26, 1,-1) = ALMs15m 00417 ! py dzy 00418 clm_d (28, 1, 0) = CLM1 00419 alm (28, 1, 0) = ALMs35 00420 ! py dx2-y2 00421 clm_d (29, 1,-1) = CLM1m 00422 alm (29, 1,-1) = ALMs35m 00423 ! py dxy 00424 clm_d (30, 1, 1) = CLM1 00425 alm (30, 1, 1) = ALMs35 00426 ! dz2 dz2 00427 clm_d (31, 0, 0) = CLM1 00428 clm_d (31, 2, 0) = CLM43 00429 alm (31, 0, 0) = ALM1 00430 alm (31, 2, 0) = ALMs20_49 00431 ! dz2 dzx 00432 clm_d (32, 2, 1) = CLMs13 00433 alm (32, 2, 1) = ALMs5_49 00434 ! dz2 dzy 00435 clm_d (33, 2,-1) = CLMs13 00436 alm (33, 2,-1) = ALMs5_49 00437 ! dz2 dx2-y2 00438 clm_d (34, 2, 2) = CLMs43m 00439 alm (34, 2, 2) = ALMs20_49m 00440 ! dz2 dxy 00441 clm_d (35, 2,-2) = CLMs43m 00442 alm (35, 2,-2) = ALMs20_49m 00443 ! dzx dzx 00444 clm_d (36, 0, 0) = CLM1 00445 clm_d (36, 2, 0) = CLM23 00446 clm_d (36, 2, 2) = CLM1 00447 alm (36, 0, 0) = ALM1 00448 alm (36, 2, 0) = ALMs5_49 00449 alm (36, 2, 2) = ALMs15_49 00450 ! dzx dzy 00451 clm_d (37, 2,-2) = CLM1 00452 alm (37, 2,-2) = ALMs15_49m 00453 ! dzx dxy-y2 00454 clm_d (38, 2, 1) = CLM1 00455 alm (38, 2, 1) = ALMs15_49 00456 ! dzx dxy 00457 clm_d (39, 2,-1) = CLM1 00458 alm (38, 2,-1) = ALMs15_49 00459 ! dzy dzy 00460 clm_d (40, 0, 0) = CLM1 00461 clm_d (40, 2, 0) = CLM23 00462 clm_d (40, 2, 2) = CLM1m 00463 alm (40, 0, 0) = ALM1 00464 alm (40, 2, 0) = ALMs5_49 00465 alm (40, 2, 2) = ALMs5_49m 00466 ! dzy dx2-y2 00467 clm_d (41, 2,-1) = CLM1m 00468 alm (41, 2,-1) = ALMs15_49m 00469 ! dzy dxy 00470 clm_d (42, 2, 1) = CLM1 00471 alm (42, 2, 1) = ALMs15_49 00472 ! dx2-y2 dx2-y2 00473 clm_d (43, 0, 0) = CLM1 00474 clm_d (43, 2, 0) = CLM43m 00475 alm (43, 0, 0) = ALM1 00476 alm (43, 2, 0) = ALMs20_49m 00477 ! dxy dxy 00478 clm_d (45, 0, 0) = CLM1 00479 clm_d (45, 2, 0) = CLM43m 00480 alm (45, 0, 0) = ALM1 00481 alm (45, 2, 0) = ALMs20_49m 00482 END SUBROUTINE setup_clm_array 00483 00484 ! ***************************************************************************** 00491 SUBROUTINE setup_ijkl_array(error) 00492 TYPE(cp_error_type), INTENT(inout) :: error 00493 00494 CHARACTER(len=*), PARAMETER :: routineN = 'setup_ijkl_array', 00495 routineP = moduleN//':'//routineN 00496 00497 LOGICAL :: failure 00498 00499 failure = .FALSE. 00500 ! Address unique indexes (excluding those related by rotations) 00501 ! Indexes according: 00502 ! s pz px py dz2 dzx dzy dx2-y2 dxy 00503 ! s 1 2 3 4 5 6 7 8 9 00504 ! pz 2 10 11 12 13 14 15 16 17 00505 ! px 3 11 18 19 20 21 22 23 24 00506 ! py 4 12 19 25 26 27 28 29 30 00507 ! dz2 5 13 20 26 31 32 33 34 35 00508 ! dzx 6 14 21 27 32 36 37 38 39 00509 ! dzy 7 15 22 28 33 37 40 41 42 00510 ! dx2-y2 8 16 23 29 34 38 41 43 44 00511 ! dxy 9 17 24 30 35 39 42 44 45 00512 ! ################ Zero the Arrays ####################### 00513 ijkl_ind = 0 00514 ijkl_sym = 0 00515 ! ################ s s ####################### 00516 ! s s - s s 00517 ijkl_ind( 1, 1) = 1 00518 ! s s - pz s 00519 ijkl_ind( 1, 2) = 2 00520 ! s s - pz pz 00521 ijkl_ind( 1, 10) = 3 00522 ! s s - px px 00523 ijkl_ind( 1, 18) = 4 00524 ! s s - py py 00525 ijkl_ind( 1, 25) = 5 00526 ijkl_sym( 5) = 4 00527 ! s s - dz2 s 00528 ijkl_ind( 1, 5) = 35 00529 ! s s - dz2 pz 00530 ijkl_ind( 1, 13) = 36 00531 ! s s - dz2 dz2 00532 ijkl_ind( 1, 31) = 37 00533 ! s s - dzx px 00534 ijkl_ind( 1, 21) = 38 00535 ! s s - dzx dzx 00536 ijkl_ind( 1, 36) = 39 00537 ! s s - dzy py 00538 ijkl_ind( 1, 28) = 40 00539 ijkl_sym(40) = 38 00540 ! s s - dzy dzy 00541 ijkl_ind( 1, 40) = 41 00542 ijkl_sym(41) = 39 00543 ! s s - dx2-y2 dx2-y2 00544 ijkl_ind( 1, 43) = 42 00545 ! s s - dxy dxy 00546 ijkl_ind( 1, 45) = 43 00547 ijkl_sym(43) = 42 00548 ! ################ pz s ####################### 00549 ! pz s - s s 00550 ijkl_ind( 2, 1) = 6 00551 ! pz s - pz s 00552 ijkl_ind( 2, 2) = 7 00553 ! pz s - pz pz 00554 ijkl_ind( 2, 10) = 8 00555 ! pz s - px px 00556 ijkl_ind( 2, 18) = 9 00557 ! pz s - py py 00558 ijkl_ind( 2, 25) = 10 00559 ijkl_sym(10) = 9 00560 ! pz s - dz2 s 00561 ijkl_ind( 2, 5) = 44 00562 ! pz s - dz2 pz 00563 ijkl_ind( 2, 13) = 45 00564 ! pz s - dz2 dz2 00565 ijkl_ind( 2, 31) = 46 00566 ! pz s - dzx px 00567 ijkl_ind( 2, 21) = 47 00568 ! pz s - dzx dzx 00569 ijkl_ind( 2, 36) = 48 00570 ! pz s - dzy py 00571 ijkl_ind( 2, 28) = 49 00572 ijkl_sym(49) = 47 00573 ! pz s - dzy dzy 00574 ijkl_ind( 2, 40) = 50 00575 ijkl_sym(50) = 48 00576 ! pz s - dx2-y2 dx2-y2 00577 ijkl_ind( 2, 43) = 51 00578 ! pz s - dxy dxy 00579 ijkl_ind( 2, 45) = 52 00580 ijkl_sym(52) = 51 00581 ! ################ pz pz ####################### 00582 ! pz pz - s s 00583 ijkl_ind(10, 1) = 11 00584 ! pz pz - pz s 00585 ijkl_ind(10, 2) = 12 00586 ! pz pz - pz pz 00587 ijkl_ind(10, 10) = 13 00588 ! pz pz - px px 00589 ijkl_ind(10, 18) = 14 00590 ! pz pz - py py 00591 ijkl_ind(10, 25) = 15 00592 ijkl_sym(15) = 14 00593 ! pz pz - dz2 s 00594 ijkl_ind(10, 5) = 53 00595 ! pz pz - dz2 pz 00596 ijkl_ind(10, 13) = 54 00597 ! pz pz - dz2 dz2 00598 ijkl_ind(10, 31) = 55 00599 ! pz pz - dzx px 00600 ijkl_ind(10, 21) = 56 00601 ! pz pz - dzx dzx 00602 ijkl_ind(10, 36) = 57 00603 ! pz pz - dzy py 00604 ijkl_ind(10, 28) = 58 00605 ijkl_sym(58) = 56 00606 ! pz pz - dzy dzy 00607 ijkl_ind(10, 40) = 59 00608 ijkl_sym(59) = 57 00609 ! pz pz - dx2-y2 dx2-y2 00610 ijkl_ind(10, 43) = 60 00611 ! pz pz - dxy dxy 00612 ijkl_ind(10, 45) = 61 00613 ijkl_sym(61) = 60 00614 ! ################ px s ####################### 00615 ! px s - px s 00616 ijkl_ind( 3, 3) = 16 00617 ! px s - px pz 00618 ijkl_ind( 3, 11) = 17 00619 ! px s - dz2 px 00620 ijkl_ind( 3, 20) = 62 00621 ! px s - dzx s 00622 ijkl_ind( 3, 6) = 63 00623 ! px s - dzx pz 00624 ijkl_ind( 3, 14) = 64 00625 ! px s - dzx dz2 00626 ijkl_ind( 3, 32) = 65 00627 ! px s - dx2-y2 px 00628 ijkl_ind( 3, 23) = 66 00629 ! px s - dx2-y2 dzx 00630 ijkl_ind( 3, 38) = 67 00631 ! px s - dxy py 00632 ijkl_ind( 3, 30) = 68 00633 ijkl_sym(68) = 66 00634 ! px s - dxy dzy 00635 ijkl_ind( 3, 42) = 69 00636 ijkl_sym(69) = 67 00637 ! ################ px pz ####################### 00638 ! px pz - px s 00639 ijkl_ind(11, 3) = 18 00640 ! px pz - px pz 00641 ijkl_ind(11, 11) = 19 00642 ! px pz - dz2 px 00643 ijkl_ind(11, 20) = 70 00644 ! px pz - dzx s 00645 ijkl_ind(11, 6) = 71 00646 ! px pz - dzx pz 00647 ijkl_ind(11, 14) = 72 00648 ! px pz - dzx dz2 00649 ijkl_ind(11, 32) = 73 00650 ! px pz - dx2-y2 px 00651 ijkl_ind(11, 23) = 74 00652 ! px pz - dx2-y2 dzx 00653 ijkl_ind(11, 38) = 75 00654 ! px pz - dxy py 00655 ijkl_ind(11, 30) = 76 00656 ijkl_sym(76) = 74 00657 ! px pz - dxy dzy 00658 ijkl_ind(11, 42) = 77 00659 ijkl_sym(77) = 75 00660 ! ################ px px ####################### 00661 ! px px - s s 00662 ijkl_ind(18, 1) = 20 00663 ! px px - pz s 00664 ijkl_ind(18, 2) = 21 00665 ! px px - pz pz 00666 ijkl_ind(18, 10) = 22 00667 ! px px - px px 00668 ijkl_ind(18, 18) = 23 00669 ! px px - py py 00670 ijkl_ind(18, 25) = 24 00671 ! px px - dz2 s 00672 ijkl_ind(18, 5) = 78 00673 ! px px - dz2 pz 00674 ijkl_ind(18, 13) = 79 00675 ! px px - dz2 dz2 00676 ijkl_ind(18, 31) = 80 00677 ! px px - dzx px 00678 ijkl_ind(18, 21) = 81 00679 ! px px - dzx dzx 00680 ijkl_ind(18, 36) = 82 00681 ! px px - dzy py 00682 ijkl_ind(18, 28) = 83 00683 ! px px - dzy dzy 00684 ijkl_ind(18, 40) = 84 00685 ! px px - dx2-y2 s 00686 ijkl_ind(18, 8) = 85 00687 ! px px - dx2-y2 pz 00688 ijkl_ind(18, 16) = 86 00689 ! px px - dx2-y2 dz2 00690 ijkl_ind(18, 34) = 87 00691 ! px px - dx2-y2 dx2-y2 00692 ijkl_ind(18, 43) = 88 00693 ! px px - dxy dxy 00694 ijkl_ind(18, 45) = 89 00695 ijkl_sym(89) = 88 00696 ! ################ py s ####################### 00697 ! py s - py s 00698 ijkl_ind( 4, 4) = 25 00699 ijkl_sym(25) = 16 00700 ! py s - py pz 00701 ijkl_ind( 4, 12) = 26 00702 ijkl_sym(26) = 17 00703 ! py s - dz2 py 00704 ijkl_ind( 4, 26) = 90 00705 ijkl_sym(90) = 62 00706 ! py s - dzy s 00707 ijkl_ind( 4, 7) = 91 00708 ijkl_sym(91) = 63 00709 ! py s - dzy pz 00710 ijkl_ind( 4, 15) = 92 00711 ijkl_sym(92) = 64 00712 ! py s - dzy dz2 00713 ijkl_ind( 4, 33) = 93 00714 ijkl_sym(93) = 65 00715 ! py s - dx2-y2 py 00716 ijkl_ind( 4, 29) = 94 00717 ijkl_sym(94) = 66*(-1) 00718 ! py s - dx2-y2 dzy 00719 ijkl_ind( 4, 41) = 95 00720 ijkl_sym(95) = 67*(-1) 00721 ! py s - dxy px 00722 ijkl_ind( 4, 24) = 96 00723 ijkl_sym(96) = 66 00724 ! py s - dxy dzx 00725 ijkl_ind( 4, 39) = 97 00726 ijkl_sym(97) = 67 00727 ! ################ py pz ####################### 00728 ! py pz - py s 00729 ijkl_ind(12, 4) = 27 00730 ijkl_sym(27) = 18 00731 ! py pz - py pz 00732 ijkl_ind(12, 12) = 28 00733 ijkl_sym(28) = 19 00734 ! py pz - dzy s 00735 ijkl_ind(12, 26) = 98 00736 ijkl_sym(98) = 70 00737 ! py pz - dzy pz 00738 ijkl_ind(12, 7) = 99 00739 ijkl_sym(99) = 71 00740 ! py pz - dzy dz2 00741 ijkl_ind(12, 15) = 100 00742 ijkl_sym(100) = 72 00743 ! py pz - dzy dz2 00744 ijkl_ind(12, 33) = 101 00745 ijkl_sym(101) = 73 00746 ! py pz - dx2-y2 py 00747 ijkl_ind(12, 29) = 102 00748 ijkl_sym(102) = 74*(-1) 00749 ! py pz - dx2-y2 dzy 00750 ijkl_ind(12, 41) = 103 00751 ijkl_sym(103) = 75*(-1) 00752 ! py pz - dxy px 00753 ijkl_ind(12, 24) = 104 00754 ijkl_sym(104) = 74 00755 ! py pz - dxy dzx 00756 ijkl_ind(12, 39) = 105 00757 ijkl_sym(105) = 75 00758 ! ################ py px ####################### 00759 ! py px - py px 00760 ijkl_ind(19, 19) = 29 00761 ! py px - dzx py 00762 ijkl_ind(19, 27) = 106 00763 ijkl_sym(106) = 86 00764 ! py px - dzy px 00765 ijkl_ind(19, 22) = 107 00766 ijkl_sym(107) = 86 00767 ! py px - dzy dzx 00768 ijkl_ind(19, 37) = 108 00769 ! py px - dxy s 00770 ijkl_ind(19, 9) = 109 00771 ijkl_sym(109) = 85 00772 ! py px - dxy pz 00773 ijkl_ind(19, 17) = 110 00774 ijkl_sym(110) = 86 00775 ! py px - dxy dz2 00776 ijkl_ind(19, 35) = 111 00777 ijkl_sym(111) = 87 00778 ! ################ py py ####################### 00779 ! py py - s s 00780 ijkl_ind(25, 1) = 30 00781 ijkl_sym(30) = 20 00782 ! py py - pz s 00783 ijkl_ind(25, 2) = 31 00784 ijkl_sym(31) = 21 00785 ! py py - pz pz 00786 ijkl_ind(25, 10) = 32 00787 ijkl_sym(32) = 22 00788 ! py py - px px 00789 ijkl_ind(25, 18) = 33 00790 ijkl_sym(33) = 24 00791 ! py py - py py 00792 ijkl_ind(25, 25) = 34 00793 ijkl_sym(34) = 23 00794 ! py py - dz2 s 00795 ijkl_ind(25, 5) = 112 00796 ijkl_sym(112) = 78 00797 ! py py - dz2 pz 00798 ijkl_ind(25, 13) = 113 00799 ijkl_sym(113) = 79 00800 ! py py - dz2 dz2 00801 ijkl_ind(25, 31) = 114 00802 ijkl_sym(114) = 80 00803 ! py py - dzx px 00804 ijkl_ind(25, 21) = 115 00805 ijkl_sym(115) = 83 00806 ! py py - dzx dzx 00807 ijkl_ind(25, 36) = 116 00808 ijkl_sym(116) = 84 00809 ! py py - dzy py 00810 ijkl_ind(25, 28) = 117 00811 ijkl_sym(117) = 81 00812 ! py py - dzy dzy 00813 ijkl_ind(25, 40) = 118 00814 ijkl_sym(118) = 82 00815 ! py py - dx2-y2 s 00816 ijkl_ind(25, 8) = 119 00817 ijkl_sym(119) = 85*(-1) 00818 ! py py - dx2-y2 pz 00819 ijkl_ind(25, 16) = 120 00820 ijkl_sym(120) = 86*(-1) 00821 ! py py - dx2-y2 dz2 00822 ijkl_ind(25, 34) = 121 00823 ijkl_sym(121) = 87*(-1) 00824 ! py py - dx2-y2 dx2-y2 00825 ijkl_ind(25, 43) = 122 00826 ijkl_sym(122) = 88 00827 ! py py - dxy dxy 00828 ijkl_ind(25, 45) = 123 00829 ijkl_sym(123) = 88 00830 ! ################ dz2 dz2 ####################### 00831 ! dz2 s - s s 00832 ijkl_ind( 5, 1) = 124 00833 ! dz2 s - pz s 00834 ijkl_ind( 5, 2) = 125 00835 ! dz2 s - pz pz 00836 ijkl_ind( 5, 10) = 126 00837 ! dz2 s - px px 00838 ijkl_ind( 5, 18) = 127 00839 ! dz2 s - py py 00840 ijkl_ind( 5, 25) = 128 00841 ijkl_sym(128) = 127 00842 ! dz2 s - dz2 s 00843 ijkl_ind( 5, 5) = 129 00844 ! dz2 s - dz2 pz 00845 ijkl_ind( 5, 13) = 130 00846 ! dz2 s - dz2 dz2 00847 ijkl_ind( 5, 31) = 131 00848 ! dz2 s - dzx px 00849 ijkl_ind( 5, 21) = 132 00850 ! dz2 s - dzx dzx 00851 ijkl_ind( 5, 36) = 133 00852 ! dz2 s - dzy py 00853 ijkl_ind( 5, 28) = 134 00854 ijkl_sym(134) = 132 00855 ! dz2 s - dzy dzy 00856 ijkl_ind( 5, 40) = 135 00857 ijkl_sym(135) = 133 00858 ! dz2 s - dx2-y2 dx2-y2 00859 ijkl_ind( 5, 43) = 136 00860 ! dz2 s - dxy dxy 00861 ijkl_ind( 5, 45) = 137 00862 ijkl_sym(137) = 136 00863 ! ################ dz2 pz ####################### 00864 ! dz2 pz - s s 00865 ijkl_ind(13, 1) = 138 00866 ! dz2 pz - pz s 00867 ijkl_ind(13, 2) = 139 00868 ! dz2 pz - pz pz 00869 ijkl_ind(13, 10) = 140 00870 ! dz2 pz - px px 00871 ijkl_ind(13, 18) = 141 00872 ! dz2 pz - py py 00873 ijkl_ind(13, 25) = 142 00874 ijkl_sym(142) = 141 00875 ! dz2 pz - dz2 s 00876 ijkl_ind(13, 5) = 143 00877 ! dz2 pz - dz2 pz 00878 ijkl_ind(13, 13) = 144 00879 ! dz2 pz - dz2 dz2 00880 ijkl_ind(13, 31) = 145 00881 ! dz2 pz - dzx px 00882 ijkl_ind(13, 21) = 146 00883 ! dz2 pz - dzx dzx 00884 ijkl_ind(13, 36) = 147 00885 ! dz2 pz - dzy py 00886 ijkl_ind(13, 28) = 148 00887 ijkl_sym(148) = 146 00888 ! dz2 pz - dzy dzy 00889 ijkl_ind(13, 40) = 149 00890 ijkl_sym(149) = 147 00891 ! dz2 pz - dx2-y2 dx2-y2 00892 ijkl_ind(13, 43) = 150 00893 ! dz2 pz - dxy dxy 00894 ijkl_ind(13, 45) = 151 00895 ijkl_sym(151) = 150 00896 ! ################ dz2 px ####################### 00897 ! dz2 px - px s 00898 ijkl_ind(20, 3) = 152 00899 ! dz2 px - px pz 00900 ijkl_ind(20, 11) = 153 00901 ! dz2 px - dz2 px 00902 ijkl_ind(20, 20) = 154 00903 ! dz2 px - dzx s 00904 ijkl_ind(20, 6) = 155 00905 ! dz2 px - dzx pz 00906 ijkl_ind(20, 14) = 156 00907 ! dz2 px - dzx dz2 00908 ijkl_ind(20, 32) = 157 00909 ! dz2 px - dx2-y2 px 00910 ijkl_ind(20, 23) = 158 00911 ! dz2 px - dx2-y2 dzx 00912 ijkl_ind(20, 38) = 159 00913 ! dz2 px - dxy py 00914 ijkl_ind(20, 30) = 160 00915 ijkl_sym(160) = 158 00916 ! dz2 px - dxy dxy 00917 ijkl_ind(20, 42) = 161 00918 ijkl_sym(161) = 159 00919 ! ################ dz2 py ####################### 00920 ! dz2 py - py s 00921 ijkl_ind(26, 4) = 162 00922 ijkl_sym(162) = 152 00923 ! dz2 py - py pz 00924 ijkl_ind(26, 12) = 163 00925 ijkl_sym(163) = 153 00926 ! dz2 py - dz2 py 00927 ijkl_ind(26, 26) = 164 00928 ijkl_sym(164) = 154 00929 ! dz2 py - dzy s 00930 ijkl_ind(26, 7) = 165 00931 ijkl_sym(165) = 155 00932 ! dz2 py - dzy pz 00933 ijkl_ind(26, 15) = 166 00934 ijkl_sym(166) = 156 00935 ! dz2 py - dzy dz2 00936 ijkl_ind(26, 33) = 167 00937 ijkl_sym(167) = 157 00938 ! dz2 py - dx2-y2 py 00939 ijkl_ind(26, 29) = 168 00940 ijkl_sym(168) = 158*(-1) 00941 ! dz2 py - dx2-y2 dzy 00942 ijkl_ind(26, 41) = 169 00943 ijkl_sym(169) = 159*(-1) 00944 ! dz2 py - dxy px 00945 ijkl_ind(26, 24) = 170 00946 ijkl_sym(170) = 158 00947 ! dz2 py - dxy dzx 00948 ijkl_ind(26, 39) = 171 00949 ijkl_sym(171) = 159 00950 ! ################ dz2 dz2 ####################### 00951 ! dz2 dz2 - s s 00952 ijkl_ind(31, 1) = 172 00953 ! dz2 dz2 - pz s 00954 ijkl_ind(31, 2) = 173 00955 ! dz2 dz2 - pz pz 00956 ijkl_ind(31, 10) = 174 00957 ! dz2 dz2 - px px 00958 ijkl_ind(31, 18) = 175 00959 ! dz2 dz2 - py py 00960 ijkl_ind(31, 25) = 176 00961 ijkl_sym(176) = 175 00962 ! dz2 dz2 - dz2 s 00963 ijkl_ind(31, 5) = 177 00964 ! dz2 dz2 - dz2 pz 00965 ijkl_ind(31, 13) = 178 00966 ! dz2 dz2 - dz2 dz2 00967 ijkl_ind(31, 31) = 179 00968 ! dz2 dz2 - dzx px 00969 ijkl_ind(31, 21) = 180 00970 ! dz2 dz2 - dzx dzx 00971 ijkl_ind(31, 36) = 181 00972 ! dz2 dz2 - dzy py 00973 ijkl_ind(31, 28) = 182 00974 ijkl_sym(182) = 180 00975 ! dz2 dz2 - dzy dzy 00976 ijkl_ind(31, 40) = 183 00977 ijkl_sym(183) = 181 00978 ! dz2 dz2 - dx2-y2 dx2-y2 00979 ijkl_ind(31, 43) = 184 00980 ! dz2 dz2 - dxy dxy 00981 ijkl_ind(31, 45) = 185 00982 ijkl_sym(185) = 184 00983 ! ################ dzx s ####################### 00984 ! dzx s - px s 00985 ijkl_ind( 6, 3) = 186 00986 ! dzx s - px pz 00987 ijkl_ind( 6, 11) = 187 00988 ! dzx s - dz2 px 00989 ijkl_ind( 6, 20) = 188 00990 ! dzx s - dzx s 00991 ijkl_ind( 6, 6) = 189 00992 ! dzx s - dzx pz 00993 ijkl_ind( 6, 14) = 190 00994 ! dzx s - dzx dz2 00995 ijkl_ind( 6, 32) = 191 00996 ! dzx s - dx2-y2 px 00997 ijkl_ind( 6, 23) = 192 00998 ! dzx s - dx2-y2 dx2-y2 00999 ijkl_ind( 6, 38) = 193 01000 ! dzx s - dxy py 01001 ijkl_ind( 6, 30) = 194 01002 ijkl_sym(194) = 192 01003 ! dzx s - dxy dzy 01004 ijkl_ind( 6, 42) = 195 01005 ijkl_sym(195) = 193 01006 ! ################ dzx pz ####################### 01007 ! dzx pz - px s 01008 ijkl_ind(14, 3) = 196 01009 ! dzx pz - px pz 01010 ijkl_ind(14, 11) = 197 01011 ! dzx pz - dz2 px 01012 ijkl_ind(14, 20) = 198 01013 ! dzx pz - dzx s 01014 ijkl_ind(14, 6) = 199 01015 ! dzx pz - dzx pz 01016 ijkl_ind(14, 14) = 200 01017 ! dzx pz - dzx dz2 01018 ijkl_ind(14, 32) = 201 01019 ! dzx pz - dx2-y2 px 01020 ijkl_ind(14, 23) = 202 01021 ! dzx pz - dx2-y2 dx2-y2 01022 ijkl_ind(14, 38) = 203 01023 ! dzx pz - dxy py 01024 ijkl_ind(14, 30) = 204 01025 ijkl_sym(204) = 202 01026 ! dzx pz - dxy dzy 01027 ijkl_ind(14, 42) = 205 01028 ijkl_sym(205) = 203 01029 ! ################ dzx px ####################### 01030 ! dzx px - s s 01031 ijkl_ind(21, 1) = 206 01032 ! dzx px - pz s 01033 ijkl_ind(21, 2) = 207 01034 ! dzx px - pz pz 01035 ijkl_ind(21, 10) = 208 01036 ! dzx px - px px 01037 ijkl_ind(21, 18) = 209 01038 ! dzx px - py py 01039 ijkl_ind(21, 25) = 210 01040 ! dzx px - dz2 s 01041 ijkl_ind(21, 5) = 211 01042 ! dzx px - dz2 pz 01043 ijkl_ind(21, 13) = 212 01044 ! dzx px - dz2 dz2 01045 ijkl_ind(21, 31) = 213 01046 ! dzx px - dzx px 01047 ijkl_ind(21, 21) = 214 01048 ! dzx px - dzx dzx 01049 ijkl_ind(21, 36) = 215 01050 ! dzx px - dzy py 01051 ijkl_ind(21, 28) = 216 01052 ! dzx px - dzy dzy 01053 ijkl_ind(21, 40) = 217 01054 ! dzx px - dx2-y2 s 01055 ijkl_ind(21, 8) = 218 01056 ! dzx px - dx2-y2 pz 01057 ijkl_ind(21, 16) = 219 01058 ! dzx px - dx2-y2 dz2 01059 ijkl_ind(21, 34) = 220 01060 ! dzx px - dx2-y2 dx2-y2 01061 ijkl_ind(21, 43) = 221 01062 ! dzx px - dxy dxy 01063 ijkl_ind(21, 45) = 222 01064 ijkl_sym(222) = 221 01065 ! ################ dzx py ####################### 01066 ! dzx py - px py 01067 ijkl_ind(27, 19) = 223 01068 ! dzx py - dzx py 01069 ijkl_ind(27, 27) = 224 01070 ijkl_sym(224) = 219 01071 ! dzx py - dzy px 01072 ijkl_ind(27, 22) = 225 01073 ijkl_sym(225) = 219 01074 ! dzx py - dzy dzx 01075 ijkl_ind(27, 37) = 226 01076 ! dzx py - dxy s 01077 ijkl_ind(27, 9) = 227 01078 ijkl_sym(227) = 218 01079 ! dzx py - dxy pz 01080 ijkl_ind(27, 17) = 228 01081 ijkl_sym(228) = 219 01082 ! dzx py - dxy dz2 01083 ijkl_ind(27, 35) = 229 01084 ijkl_sym(229) = 220 01085 ! ################ dzx dz2 ####################### 01086 ! dzx dz2 - px s 01087 ijkl_ind(32, 3) = 230 01088 ! dzx dz2 - px pz 01089 ijkl_ind(32, 11) = 231 01090 ! dzx dz2 - dz2 px 01091 ijkl_ind(32, 20) = 232 01092 ! dzx dz2 - dzx s 01093 ijkl_ind(32, 6) = 233 01094 ! dzx dz2 - dzx pz 01095 ijkl_ind(32, 14) = 234 01096 ! dzx dz2 - dzx dz2 01097 ijkl_ind(32, 32) = 235 01098 ! dzx dz2 - dx2-y2 px 01099 ijkl_ind(32, 23) = 236 01100 ! dzx dz2 - dx2-y2 dx2-y2 01101 ijkl_ind(32, 38) = 237 01102 ! dzx dz2 - dxy py 01103 ijkl_ind(32, 30) = 238 01104 ijkl_sym(238) = 236 01105 ! dzx dz2 - dxy dzy 01106 ijkl_ind(32, 42) = 239 01107 ijkl_sym(239) = 237 01108 ! ################ dzx dzx ####################### 01109 ! dzx dzx - s s 01110 ijkl_ind(36, 1) = 240 01111 ! dzx dzx - pz s 01112 ijkl_ind(36, 2) = 241 01113 ! dzx dzx - pz pz 01114 ijkl_ind(36, 10) = 242 01115 ! dzx dzx - px px 01116 ijkl_ind(36, 18) = 243 01117 ! dzx dzx - py py 01118 ijkl_ind(36, 25) = 244 01119 ! dzx dzx - dz2 s 01120 ijkl_ind(36, 5) = 245 01121 ! dzx dzx - dz2 pz 01122 ijkl_ind(36, 13) = 246 01123 ! dzx dzx - dz2 dz2 01124 ijkl_ind(36, 31) = 247 01125 ! dzx dzx - dzx px 01126 ijkl_ind(36, 21) = 248 01127 ! dzx dzx - dzx dzx 01128 ijkl_ind(36, 36) = 249 01129 ! dzx dzx - dzy py 01130 ijkl_ind(36, 28) = 250 01131 ! dzx dzx - dzy dzy 01132 ijkl_ind(36, 40) = 251 01133 ! dzx dzx - dx2-y2 s 01134 ijkl_ind(36, 8) = 252 01135 ! dzx dzx - dx2-y2 pz 01136 ijkl_ind(36, 16) = 253 01137 ! dzx dzx - dx2-y2 dz2 01138 ijkl_ind(36, 34) = 254 01139 ! dzx dzx - dx2-y2 dx2-y2 01140 ijkl_ind(36, 43) = 255 01141 ! dzx dzx - dxy dxy 01142 ijkl_ind(36, 45) = 256 01143 ijkl_sym(256) = 255 01144 ! ################ dzy s ####################### 01145 ! dzy s - py s 01146 ijkl_ind( 7, 4) = 257 01147 ijkl_sym(257) = 186 01148 ! dzy s - py pz 01149 ijkl_ind( 7, 12) = 258 01150 ijkl_sym(258) = 187 01151 ! dzy s - dz2 py 01152 ijkl_ind( 7, 26) = 259 01153 ijkl_sym(259) = 188 01154 ! dzy s - dzy s 01155 ijkl_ind( 7, 7) = 260 01156 ijkl_sym(260) = 189 01157 ! dzy s - dzy pz 01158 ijkl_ind( 7, 15) = 261 01159 ijkl_sym(261) = 190 01160 ! dzy s - dzy dz2 01161 ijkl_ind( 7, 33) = 262 01162 ijkl_sym(262) = 191 01163 ! dzy s - dx2-y2 py 01164 ijkl_ind( 7, 29) = 263 01165 ijkl_sym(263) = 192*(-1) 01166 ! dzy s - dx2-y2 dzy 01167 ijkl_ind( 7, 41) = 264 01168 ijkl_sym(264) = 193*(-1) 01169 ! dzy s - dxy px 01170 ijkl_ind( 7, 24) = 265 01171 ijkl_sym(265) = 192 01172 ! dzy s - dxy dzx 01173 ijkl_ind( 7, 39) = 266 01174 ijkl_sym(266) = 193 01175 ! ################ dzy pz ####################### 01176 ! dzy pz - py s 01177 ijkl_ind(15, 4) = 267 01178 ijkl_sym(267) = 196 01179 ! dzy pz - py pz 01180 ijkl_ind(15, 12) = 268 01181 ijkl_sym(268) = 197 01182 ! dzy pz - dz2 py 01183 ijkl_ind(15, 26) = 269 01184 ijkl_sym(269) = 198 01185 ! dzy pz - dzy s 01186 ijkl_ind(15, 7) = 270 01187 ijkl_sym(270) = 199 01188 ! dzy pz - dzy pz 01189 ijkl_ind(15, 15) = 271 01190 ijkl_sym(271) = 200 01191 ! dzy pz - dzy dz2 01192 ijkl_ind(15, 33) = 272 01193 ijkl_sym(272) = 201 01194 ! dzy pz - dx2-y2 py 01195 ijkl_ind(15, 29) = 273 01196 ijkl_sym(273) = 202*(-1) 01197 ! dzy pz - dx2-y2 dzy 01198 ijkl_ind(15, 41) = 274 01199 ijkl_sym(274) = 203*(-1) 01200 ! dzy pz - dxy px 01201 ijkl_ind(15, 24) = 275 01202 ijkl_sym(275) = 202 01203 ! dzy pz - dxy dzx 01204 ijkl_ind(15, 39) = 276 01205 ijkl_sym(276) = 203 01206 ! ################ dzy px ####################### 01207 ! dzy px - px py 01208 ijkl_ind(22, 19) = 277 01209 ijkl_sym(277) = 223 01210 ! dzy px - dzx py 01211 ijkl_ind(22, 27) = 278 01212 ijkl_sym(278) = 219 01213 ! dzy px - dzy px 01214 ijkl_ind(22, 22) = 279 01215 ijkl_sym(279) = 219 01216 ! dzy px - dzy dzx 01217 ijkl_ind(22, 37) = 280 01218 ijkl_sym(280) = 226 01219 ! dzy px - dxy s 01220 ijkl_ind(22, 9) = 281 01221 ijkl_sym(281) = 218 01222 ! dzy px - dxy pz 01223 ijkl_ind(22, 17) = 282 01224 ijkl_sym(282) = 219 01225 ! dzy px - dxy dz2 01226 ijkl_ind(22, 35) = 283 01227 ijkl_sym(283) = 220 01228 ! ################ dzy py ####################### 01229 ! dzy py - s s 01230 ijkl_ind(28, 1) = 284 01231 ijkl_sym(284) = 206 01232 ! dzy py - pz s 01233 ijkl_ind(28, 2) = 285 01234 ijkl_sym(285) = 207 01235 ! dzy py - pz pz 01236 ijkl_ind(28, 10) = 286 01237 ijkl_sym(286) = 208 01238 ! dzy py - px px 01239 ijkl_ind(28, 18) = 287 01240 ijkl_sym(287) = 210 01241 ! dzy py - py py 01242 ijkl_ind(28, 25) = 288 01243 ijkl_sym(288) = 209 01244 ! dzy py - dz2 s 01245 ijkl_ind(28, 5) = 289 01246 ijkl_sym(289) = 211 01247 ! dzy py - dz2 pz 01248 ijkl_ind(28, 13) = 290 01249 ijkl_sym(290) = 212 01250 ! dzy py - dz2 dz2 01251 ijkl_ind(28, 31) = 291 01252 ijkl_sym(291) = 213 01253 ! dzy py - dzx px 01254 ijkl_ind(28, 21) = 292 01255 ijkl_sym(292) = 216 01256 ! dzy py - dzx dzx 01257 ijkl_ind(28, 36) = 293 01258 ijkl_sym(293) = 217 01259 ! dzy py - dzy py 01260 ijkl_ind(28, 28) = 294 01261 ijkl_sym(294) = 214 01262 ! dzy py - dzy dzy 01263 ijkl_ind(28, 40) = 295 01264 ijkl_sym(295) = 215 01265 ! dzy py - dx2-y2 s 01266 ijkl_ind(28, 8) = 296 01267 ijkl_sym(296) = 218*(-1) 01268 ! dzy py - dx2-y2 pz 01269 ijkl_ind(28, 16) = 297 01270 ijkl_sym(297) = 219*(-1) 01271 ! dzy py - dx2-y2 dz2 01272 ijkl_ind(28, 34) = 298 01273 ijkl_sym(298) = 220*(-1) 01274 ! dzy py - dx2-y2 dx2-y2 01275 ijkl_ind(28, 43) = 299 01276 ijkl_sym(299) = 221 01277 ! dzy py - dxy dxy 01278 ijkl_ind(28, 45) = 300 01279 ijkl_sym(300) = 221 01280 ! ################ dzy dz2 ####################### 01281 ! dzy dz2 - py s 01282 ijkl_ind(33, 4) = 301 01283 ijkl_sym(301) = 230 01284 ! dzy dz2 - py pz 01285 ijkl_ind(33, 12) = 302 01286 ijkl_sym(302) = 231 01287 ! dzy dz2 - dz2 py 01288 ijkl_ind(33, 26) = 303 01289 ijkl_sym(303) = 232 01290 ! dzy dz2 - dzy s 01291 ijkl_ind(33, 7) = 304 01292 ijkl_sym(304) = 233 01293 ! dzy dz2 - dzy pz 01294 ijkl_ind(33, 15) = 305 01295 ijkl_sym(305) = 234 01296 ! dzy dz2 - dzy dz2 01297 ijkl_ind(33, 33) = 306 01298 ijkl_sym(306) = 235 01299 ! dzy dz2 - dx2-y2 py 01300 ijkl_ind(33, 29) = 307 01301 ijkl_sym(307) = 236*(-1) 01302 ! dzy dz2 - dx2-y2 dzy 01303 ijkl_ind(33, 41) = 308 01304 ijkl_sym(308) = 237*(-1) 01305 ! dzy dz2 - dxy px 01306 ijkl_ind(33, 24) = 309 01307 ijkl_sym(309) = 236 01308 ! dzy dz2 - dxy dzx 01309 ijkl_ind(33, 39) = 310 01310 ijkl_sym(310) = 237 01311 ! ################ dzy dzx ####################### 01312 ! dzy dzx - px py 01313 ijkl_ind(37, 19) = 311 01314 ! dzy dzx - dzx py 01315 ijkl_ind(37, 27) = 312 01316 ijkl_sym(312) = 253 01317 ! dzy dzx - dzy px 01318 ijkl_ind(37, 22) = 313 01319 ijkl_sym(313) = 253 01320 ! dzy dzx - dzy dzx 01321 ijkl_ind(37, 37) = 314 01322 ! dzy dzx - dxy s 01323 ijkl_ind(37, 9) = 315 01324 ijkl_sym(315) = 252 01325 ! dzy dzx - dxy pz 01326 ijkl_ind(37, 17) = 316 01327 ijkl_sym(316) = 253 01328 ! dzy dzx - dxy dz2 01329 ijkl_ind(37, 35) = 317 01330 ijkl_sym(317) = 254 01331 ! ################ dzy dzy ####################### 01332 ! dzy dzy - s s 01333 ijkl_ind(40, 1) = 318 01334 ijkl_sym(318) = 240 01335 ! dzy dzy - pz s 01336 ijkl_ind(40, 2) = 319 01337 ijkl_sym(319) = 241 01338 ! dzy dzy - pz pz 01339 ijkl_ind(40, 10) = 320 01340 ijkl_sym(320) = 242 01341 ! dzy dzy - px px 01342 ijkl_ind(40, 18) = 321 01343 ijkl_sym(321) = 244 01344 ! dzy dzy - py py 01345 ijkl_ind(40, 25) = 322 01346 ijkl_sym(322) = 243 01347 ! dzy dzy - dz2 s 01348 ijkl_ind(40, 5) = 323 01349 ijkl_sym(323) = 245 01350 ! dzy dzy - dz2 pz 01351 ijkl_ind(40, 13) = 324 01352 ijkl_sym(324) = 246 01353 ! dzy dzy - dz2 dz2 01354 ijkl_ind(40, 31) = 325 01355 ijkl_sym(325) = 247 01356 ! dzy dzy - dzx px 01357 ijkl_ind(40, 21) = 326 01358 ijkl_sym(326) = 250 01359 ! dzy dzy - dzx dzx 01360 ijkl_ind(40, 36) = 327 01361 ijkl_sym(327) = 251 01362 ! dzy dzy - dzy py 01363 ijkl_ind(40, 28) = 328 01364 ijkl_sym(328) = 248 01365 ! dzy dzy - dzy dzy 01366 ijkl_ind(40, 40) = 329 01367 ijkl_sym(329) = 249 01368 ! dzy dzy - dx2-y2 s 01369 ijkl_ind(40, 8) = 330 01370 ijkl_sym(330) = 252*(-1) 01371 ! dzy dzy - dx2-y2 pz 01372 ijkl_ind(40, 16) = 331 01373 ijkl_sym(331) = 253*(-1) 01374 ! dzy dzy - dx2-y2 dz2 01375 ijkl_ind(40, 34) = 332 01376 ijkl_sym(332) = 254*(-1) 01377 ! dzy dzy - dx2-y2 dx2-y2 01378 ijkl_ind(40, 43) = 333 01379 ijkl_sym(333) = 255 01380 ! dzy dzy - dxy dxy 01381 ijkl_ind(40, 45) = 334 01382 ijkl_sym(334) = 255 01383 ! ################ dx2-y2 s ####################### 01384 ! dx2-y2 s - px px 01385 ijkl_ind( 8, 18) = 335 01386 ! dx2-y2 s - py py 01387 ijkl_ind( 8, 25) = 336 01388 ijkl_sym(336) = 335*(-1) 01389 ! dx2-y2 s - dzx px 01390 ijkl_ind( 8, 21) = 337 01391 ! dx2-y2 s - dzx dzx 01392 ijkl_ind( 8, 36) = 338 01393 ! dx2-y2 s - dzy py 01394 ijkl_ind( 8, 28) = 339 01395 ijkl_sym(339) = 337*(-1) 01396 ! dx2-y2 s - dzy dzy 01397 ijkl_ind( 8, 40) = 340 01398 ijkl_sym(340) = 338*(-1) 01399 ! dx2-y2 s - dx2-y2 s 01400 ijkl_ind( 8, 8) = 341 01401 ! dx2-y2 s - dx2-y2 pz 01402 ijkl_ind( 8, 16) = 342 01403 ijkl_sym(342) = 337 01404 ! dx2-y2 s - dx2-y2 dz2 01405 ijkl_ind( 8, 34) = 343 01406 ! ################ dx2-y2 pz ####################### 01407 ! dx2-y2 pz - px px 01408 ijkl_ind(16, 18) = 344 01409 ijkl_sym(344) = 223 01410 ! dx2-y2 pz - py py 01411 ijkl_ind(16, 25) = 345 01412 ijkl_sym(345) = 223*(-1) 01413 ! dx2-y2 pz - dzx px 01414 ijkl_ind(16, 21) = 346 01415 ijkl_sym(346) = 219 01416 ! dx2-y2 pz - dzx dzx 01417 ijkl_ind(16, 36) = 347 01418 ijkl_sym(347) = 226 01419 ! dx2-y2 pz - dzy py 01420 ijkl_ind(16, 28) = 348 01421 ijkl_sym(348) = 219*(-1) 01422 ! dx2-y2 pz - dzy dzy 01423 ijkl_ind(16, 40) = 349 01424 ijkl_sym(349) = 226*(-1) 01425 ! dx2-y2 pz - dx2-y2 s 01426 ijkl_ind(16, 8) = 350 01427 ijkl_sym(350) = 218 01428 ! dx2-y2 pz - dx2-y2 pz 01429 ijkl_ind(16, 16) = 351 01430 ijkl_sym(351) = 219 01431 ! dx2-y2 pz - dx2-y2 dz2 01432 ijkl_ind(16, 34) = 352 01433 ijkl_sym(352) = 220 01434 ! ################ dx2-y2 px ####################### 01435 ! dx2-y2 px - px s 01436 ijkl_ind(23, 3) = 353 01437 ! dx2-y2 px - px pz 01438 ijkl_ind(23, 11) = 354 01439 ! dx2-y2 px - dz2 px 01440 ijkl_ind(23, 20) = 355 01441 ! dx2-y2 px - dzx s 01442 ijkl_ind(23, 6) = 356 01443 ! dx2-y2 px - dzx pz 01444 ijkl_ind(23, 14) = 357 01445 ! dx2-y2 px - dzx dz2 01446 ijkl_ind(23, 32) = 358 01447 ! dx2-y2 px - dx2-y2 px 01448 ijkl_ind(23, 23) = 359 01449 ! dx2-y2 px - dx2-y2 dx2-y2 01450 ijkl_ind(23, 38) = 360 01451 ! dx2-y2 px - dxy py 01452 ijkl_ind(23, 30) = 361 01453 ! dx2-y2 px - dxy dzy 01454 ijkl_ind(23, 42) = 362 01455 ! ################ dx2-y2 py ####################### 01456 ! dx2-y2 py - py s 01457 ijkl_ind(29, 4) = 363 01458 ijkl_sym(363) = 353*(-1) 01459 ! dx2-y2 py - py pz 01460 ijkl_ind(29, 12) = 364 01461 ijkl_sym(364) = 354*(-1) 01462 ! dx2-y2 py - dz2 py 01463 ijkl_ind(29, 26) = 365 01464 ijkl_sym(365) = 355*(-1) 01465 ! dx2-y2 py - dzy s 01466 ijkl_ind(29, 7) = 366 01467 ijkl_sym(366) = 356*(-1) 01468 ! dx2-y2 py - dzy pz 01469 ijkl_ind(29, 15) = 367 01470 ijkl_sym(367) = 357*(-1) 01471 ! dx2-y2 py - dzy dz2 01472 ijkl_ind(29, 33) = 368 01473 ijkl_sym(368) = 358*(-1) 01474 ! dx2-y2 py - dx2-y2 py 01475 ijkl_ind(29, 29) = 369 01476 ijkl_sym(369) = 359 01477 ! dx2-y2 py - dx2-y2 dzy 01478 ijkl_ind(29, 41) = 370 01479 ijkl_sym(370) = 360 01480 ! dx2-y2 py - dxy px 01481 ijkl_ind(29, 24) = 371 01482 ijkl_sym(371) = 361*(-1) 01483 ! dx2-y2 py - dxy dzx 01484 ijkl_ind(29, 39) = 372 01485 ijkl_sym(372) = 362*(-1) 01486 ! ################ dx2-y2 dz2 ####################### 01487 ! dx2-y2 dz2 - px px 01488 ijkl_ind(34, 18) = 373 01489 ! dx2-y2 dz2 - py py 01490 ijkl_ind(34, 25) = 374 01491 ijkl_sym(374) = 373*(-1) 01492 ! dx2-y2 dz2 - dzx px 01493 ijkl_ind(34, 21) = 375 01494 ! dx2-y2 dz2 - dzx dzx 01495 ijkl_ind(34, 36) = 376 01496 ! dx2-y2 dz2 - dzy py 01497 ijkl_ind(34, 28) = 377 01498 ijkl_sym(377) = 375*(-1) 01499 ! dx2-y2 dz2 - dzy dzy 01500 ijkl_ind(34, 40) = 378 01501 ijkl_sym(378) = 376*(-1) 01502 ! dx2-y2 dz2 - dx2-y2 s 01503 ijkl_ind(34, 8) = 379 01504 ! dx2-y2 dz2 - dx2-y2 pz 01505 ijkl_ind(34, 16) = 380 01506 ijkl_sym(380) = 375 01507 ! dx2-y2 dz2 - dx2-y2 dz2 01508 ijkl_ind(34, 34) = 381 01509 ! ################ dx2-y2 dzx ####################### 01510 ! dx2-y2 dzx - px s 01511 ijkl_ind(38, 3) = 382 01512 ! dx2-y2 dzx - px pz 01513 ijkl_ind(38, 11) = 383 01514 ! dx2-y2 dzx - dz2 px 01515 ijkl_ind(38, 20) = 384 01516 ! dx2-y2 dzx - dzx s 01517 ijkl_ind(38, 6) = 385 01518 ! dx2-y2 dzx - dzx pz 01519 ijkl_ind(38, 14) = 386 01520 ! dx2-y2 dzx - dzx dz2 01521 ijkl_ind(38, 32) = 387 01522 ! dx2-y2 dzx - dx2-y2 px 01523 ijkl_ind(38, 23) = 388 01524 ! dx2-y2 dzx - dx2-y2 dx2-y2 01525 ijkl_ind(38, 38) = 389 01526 ! dx2-y2 dzx - dxy py 01527 ijkl_ind(38, 30) = 390 01528 ! dx2-y2 dzx - dxy dzy 01529 ijkl_ind(38, 42) = 391 01530 ! ################ dx2-y2 dzy ####################### 01531 ! dx2-y2 dzy - py s 01532 ijkl_ind(41, 4) = 392 01533 ijkl_sym(392) = 382*(-1) 01534 ! dx2-y2 dzy - py pz 01535 ijkl_ind(41, 12) = 393 01536 ijkl_sym(393) = 383*(-1) 01537 ! dx2-y2 dzy - dz2 py 01538 ijkl_ind(41, 26) = 394 01539 ijkl_sym(394) = 384*(-1) 01540 ! dx2-y2 dzy - dzy s 01541 ijkl_ind(41, 7) = 395 01542 ijkl_sym(395) = 385*(-1) 01543 ! dx2-y2 dzy - dzy pz 01544 ijkl_ind(41, 15) = 396 01545 ijkl_sym(396) = 386*(-1) 01546 ! dx2-y2 dzy - dzy dz2 01547 ijkl_ind(41, 33) = 397 01548 ijkl_sym(397) = 387*(-1) 01549 ! dx2-y2 dzy - dx2-y2 py 01550 ijkl_ind(41, 29) = 398 01551 ijkl_sym(398) = 388 01552 ! dx2-y2 dzy - dx2-y2 dzy 01553 ijkl_ind(41, 41) = 399 01554 ijkl_sym(399) = 389 01555 ! dx2-y2 dzy - dxy px 01556 ijkl_ind(41, 24) = 400 01557 ijkl_sym(400) = 390*(-1) 01558 ! dx2-y2 dzy - dxy dzx 01559 ijkl_ind(41, 39) = 401 01560 ijkl_sym(401) = 391*(-1) 01561 ! ################ dx2-y2 dx2-y2 ####################### 01562 ! dx2-y2 dx2-y2 - s s 01563 ijkl_ind(43, 1) = 402 01564 ! dx2-y2 dx2-y2 - pz s 01565 ijkl_ind(43, 2) = 403 01566 ! dx2-y2 dx2-y2 - pz pz 01567 ijkl_ind(43, 10) = 404 01568 ! dx2-y2 dx2-y2 - px px 01569 ijkl_ind(43, 18) = 405 01570 ! dx2-y2 dx2-y2 - py py 01571 ijkl_ind(43, 25) = 406 01572 ijkl_sym(406) = 405 01573 ! dx2-y2 dx2-y2 - dz2 s 01574 ijkl_ind(43, 5) = 407 01575 ! dx2-y2 dx2-y2 - dz2 pz 01576 ijkl_ind(43, 13) = 408 01577 ! dx2-y2 dx2-y2 - dz2 dz2 01578 ijkl_ind(43, 31) = 409 01579 ! dx2-y2 dx2-y2 - dzx px 01580 ijkl_ind(43, 21) = 410 01581 ! dx2-y2 dx2-y2 - dzx dzx 01582 ijkl_ind(43, 36) = 411 01583 ! dx2-y2 dx2-y2 - dzy py 01584 ijkl_ind(43, 28) = 412 01585 ijkl_sym(412) = 410 01586 ! dx2-y2 dx2-y2 - dzy dzy 01587 ijkl_ind(43, 40) = 413 01588 ijkl_sym(413) = 411 01589 ! dx2-y2 dx2-y2 - dx2-y2 dx2-y2 01590 ijkl_ind(43, 43) = 414 01591 ! dx2-y2 dx2-y2 - dxy dxy 01592 ijkl_ind(43, 45) = 415 01593 ! ################ dxy s ####################### 01594 ! dxy s - px py 01595 ijkl_ind( 9, 19) = 416 01596 ijkl_sym(416) = 335 01597 ! dxy s - dzx py 01598 ijkl_ind( 9, 27) = 417 01599 ijkl_sym(417) = 337 01600 ! dxy s - dzy px 01601 ijkl_ind( 9, 22) = 418 01602 ijkl_sym(418) = 337 01603 ! dxy s - dzy dzx 01604 ijkl_ind( 9, 37) = 419 01605 ijkl_sym(419) = 338 01606 ! dxy s - dxy s 01607 ijkl_ind( 9, 9) = 420 01608 ijkl_sym(420) = 341 01609 ! dxy s - dxy pz 01610 ijkl_ind( 9, 17) = 421 01611 ijkl_sym(421) = 337 01612 ! dxy s - dxy dz2 01613 ijkl_ind( 9, 35) = 422 01614 ijkl_sym(422) = 343 01615 ! ################ dxy pz ####################### 01616 ! dxy pz - px py 01617 ijkl_ind(17, 19) = 423 01618 ijkl_sym(423) = 223 01619 ! dxy pz - dzx py 01620 ijkl_ind(17, 27) = 424 01621 ijkl_sym(424) = 219 01622 ! dxy pz - dzy px 01623 ijkl_ind(17, 22) = 425 01624 ijkl_sym(425) = 219 01625 ! dxy pz - dzy dzx 01626 ijkl_ind(17, 37) = 426 01627 ijkl_sym(426) = 226 01628 ! dxy pz - dxy s 01629 ijkl_ind(17, 9) = 427 01630 ijkl_sym(427) = 218 01631 ! dxy pz - dxy pz 01632 ijkl_ind(17, 17) = 428 01633 ijkl_sym(428) = 219 01634 ! dxy pz - dxy dz2 01635 ijkl_ind(17, 35) = 429 01636 ijkl_sym(429) = 220 01637 ! ################ dxy px ####################### 01638 ! dxy px - py s 01639 ijkl_ind(24, 4) = 430 01640 ijkl_sym(430) = 353 01641 ! dxy px - py pz 01642 ijkl_ind(24, 12) = 431 01643 ijkl_sym(431) = 354 01644 ! dxy px - dz2 py 01645 ijkl_ind(24, 26) = 432 01646 ijkl_sym(432) = 355 01647 ! dxy px - dzy s 01648 ijkl_ind(24, 7) = 433 01649 ijkl_sym(433) = 356 01650 ! dxy px - dzy pz 01651 ijkl_ind(24, 15) = 434 01652 ijkl_sym(434) = 357 01653 ! dxy px - dzy dz2 01654 ijkl_ind(24, 33) = 435 01655 ijkl_sym(435) = 358 01656 ! dxy px - dx2-y2 py 01657 ijkl_ind(24, 29) = 436 01658 ijkl_sym(436) = 361*(-1) 01659 ! dxy px - dx2-y2 dzy 01660 ijkl_ind(24, 41) = 437 01661 ijkl_sym(437) = 362*(-1) 01662 ! dxy px - dxy px 01663 ijkl_ind(24, 24) = 438 01664 ijkl_sym(438) = 359 01665 ! dxy px - dxy dzx 01666 ijkl_ind(24, 39) = 439 01667 ijkl_sym(439) = 360 01668 ! ################ dxy py ####################### 01669 ! dxy py - px s 01670 ijkl_ind(30, 3) = 440 01671 ijkl_sym(440) = 353 01672 ! dxy py - px pz 01673 ijkl_ind(30, 11) = 441 01674 ijkl_sym(441) = 354 01675 ! dxy py - dz2 px 01676 ijkl_ind(30, 20) = 442 01677 ijkl_sym(442) = 355 01678 ! dxy py - dzx s 01679 ijkl_ind(30, 6) = 443 01680 ijkl_sym(443) = 356 01681 ! dxy py - dzx pz 01682 ijkl_ind(30, 14) = 444 01683 ijkl_sym(444) = 357 01684 ! dxy py - dzx dz2 01685 ijkl_ind(30, 32) = 445 01686 ijkl_sym(445) = 358 01687 ! dxy py - dx2-y2 px 01688 ijkl_ind(30, 23) = 446 01689 ijkl_sym(446) = 361 01690 ! dxy py - dx2-y2 dx2-y2 01691 ijkl_ind(30, 38) = 447 01692 ijkl_sym(447) = 362 01693 ! dxy py - dxy py 01694 ijkl_ind(30, 30) = 448 01695 ijkl_sym(448) = 359 01696 ! dxy py - dxy dzy 01697 ijkl_ind(30, 42) = 449 01698 ijkl_sym(449) = 360 01699 ! ################ dxy dz2 ####################### 01700 ! dxy dz2 - px py 01701 ijkl_ind(35, 19) = 450 01702 ijkl_sym(450) = 373 01703 ! dxy dz2 - dzx py 01704 ijkl_ind(35, 27) = 451 01705 ijkl_sym(451) = 375 01706 ! dxy dz2 - dzy px 01707 ijkl_ind(35, 22) = 452 01708 ijkl_sym(452) = 375 01709 ! dxy dz2 - dzy dzx 01710 ijkl_ind(35, 37) = 453 01711 ijkl_sym(453) = 376 01712 ! dxy dz2 - dxy s 01713 ijkl_ind(35, 9) = 454 01714 ijkl_sym(454) = 379 01715 ! dxy dz2 - dxy pz 01716 ijkl_ind(35, 17) = 455 01717 ijkl_sym(455) = 375 01718 ! dxy dz2 - dxy dz2 01719 ijkl_ind(35, 35) = 456 01720 ijkl_sym(456) = 381 01721 ! ################ dxy dzx ####################### 01722 ! dxy dzx - py s 01723 ijkl_ind(39, 4) = 457 01724 ijkl_sym(457) = 382 01725 ! dxy dzx - py pz 01726 ijkl_ind(39, 12) = 458 01727 ijkl_sym(458) = 383 01728 ! dxy dzx - dz2 py 01729 ijkl_ind(39, 26) = 459 01730 ijkl_sym(459) = 384 01731 ! dxy dzx - dzy s 01732 ijkl_ind(39, 7) = 460 01733 ijkl_sym(460) = 385 01734 ! dxy dzx - dzy pz 01735 ijkl_ind(39, 15) = 461 01736 ijkl_sym(461) = 386 01737 ! dxy dzx - dzy dz2 01738 ijkl_ind(39, 33) = 462 01739 ijkl_sym(462) = 387 01740 ! dxy dzx - dx2-y2 py 01741 ijkl_ind(39, 29) = 463 01742 ijkl_sym(463) = 390*(-1) 01743 ! dxy dzx - dx2-y2 dzy 01744 ijkl_ind(39, 41) = 464 01745 ijkl_sym(464) = 391*(-1) 01746 ! dxy dzx - dxy px 01747 ijkl_ind(39, 24) = 465 01748 ijkl_sym(465) = 388 01749 ! dxy dzx - dxy dzx 01750 ijkl_ind(39, 39) = 466 01751 ijkl_sym(466) = 389 01752 ! ################ dxy dzy ####################### 01753 ! dxy dzy - px s 01754 ijkl_ind(42, 3) = 467 01755 ijkl_sym(467) = 382 01756 ! dxy dzy - px pz 01757 ijkl_ind(42, 11) = 468 01758 ijkl_sym(468) = 383 01759 ! dxy dzy - dz2 px 01760 ijkl_ind(42, 20) = 469 01761 ijkl_sym(469) = 384 01762 ! dxy dzy - dzx s 01763 ijkl_ind(42, 6) = 470 01764 ijkl_sym(470) = 385 01765 ! dxy dzy - dzx pz 01766 ijkl_ind(42, 14) = 471 01767 ijkl_sym(471) = 386 01768 ! dxy dzy - dzx dz2 01769 ijkl_ind(42, 32) = 472 01770 ijkl_sym(472) = 387 01771 ! dxy dzy - dx2-y2 px 01772 ijkl_ind(42, 23) = 473 01773 ijkl_sym(473) = 390 01774 ! dxy dzy - dx2-y2 dx2-y2 01775 ijkl_ind(42, 38) = 474 01776 ijkl_sym(474) = 391 01777 ! dxy dzy - dxy py 01778 ijkl_ind(42, 30) = 475 01779 ijkl_sym(475) = 388 01780 ! dxy dzy - dxy dzy 01781 ijkl_ind(42, 42) = 476 01782 ijkl_sym(476) = 389 01783 ! ################ dxy dx2-y2 ####################### 01784 ! dxy dx2-y2 - dxy dx2-y2 01785 ijkl_ind(44, 44) = 477 01786 ! ################ dxy dxy ####################### 01787 ! dxy dxy - s s 01788 ijkl_ind(45, 1) = 478 01789 ijkl_sym(478) = 402 01790 ! dxy dxy - pz s 01791 ijkl_ind(45, 2) = 479 01792 ijkl_sym(479) = 403 01793 ! dxy dxy - pz pz 01794 ijkl_ind(45, 10) = 480 01795 ijkl_sym(480) = 404 01796 ! dxy dxy - px px 01797 ijkl_ind(45, 18) = 481 01798 ijkl_sym(481) = 405 01799 ! dxy dxy - py py 01800 ijkl_ind(45, 25) = 482 01801 ijkl_sym(482) = 405 01802 ! dxy dxy - dz2 s 01803 ijkl_ind(45, 5) = 483 01804 ijkl_sym(483) = 407 01805 ! dxy dxy - dz2 pz 01806 ijkl_ind(45, 13) = 484 01807 ijkl_sym(484) = 408 01808 ! dxy dxy - dz2 dz2 01809 ijkl_ind(45, 31) = 485 01810 ijkl_sym(485) = 409 01811 ! dxy dxy - dzx px 01812 ijkl_ind(45, 21) = 486 01813 ijkl_sym(486) = 410 01814 ! dxy dxy - dzx dzx 01815 ijkl_ind(45, 36) = 487 01816 ijkl_sym(487) = 411 01817 ! dxy dxy - dzy py 01818 ijkl_ind(45, 28) = 488 01819 ijkl_sym(488) = 410 01820 ! dxy dxy - dzy dzy 01821 ijkl_ind(45, 40) = 489 01822 ijkl_sym(489) = 411 01823 ! dxy dxy - dx2-y2 dx2-y2 01824 ijkl_ind(45, 43) = 490 01825 ijkl_sym(490) = 415 01826 ! dxy dxy - dxy dxy 01827 ijkl_ind(45, 45) = 491 01828 ijkl_sym(491) = 414 01829 END SUBROUTINE setup_ijkl_array 01830 01831 END MODULE semi_empirical_int_arrays
1.7.3