CP2K 2.4 (Revision 12889)

semi_empirical_int_arrays.f90

Go to the documentation of this file.
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