LCOV - code coverage report
Current view: top level - wannier - wann_orbcomp.f90 (source / functions) Coverage Total Hit
Test: FLEUR test coverage Lines: 0.0 % 174 0
Test Date: 2025-06-14 04:34:23 Functions: 0.0 % 1 0

            Line data    Source code
       1              : !--------------------------------------------------------------------------------
       2              : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
       3              : ! This file is part of FLEUR and available as free software under the conditions
       4              : ! of the MIT license as expressed in the LICENSE file in more detail.
       5              : !--------------------------------------------------------------------------------
       6              : 
       7              : MODULE m_wann_orbcomp
       8              :   !*************************************************************************
       9              :   !     Compute matrix elements of the first 16 angular momentum projectors
      10              :   !     within the MT-spheres. This is done separately for each atom type.
      11              :   !
      12              :   !     These are:
      13              :   !     1: |s><s|
      14              :   !     2: |p_x><p_x|
      15              :   !     3: |p_y><p_y|
      16              :   !     4: |p_z><p_z|
      17              :   !     5: |d_xy><d_xy|
      18              :   !     6: |d_yz><d_yz|
      19              :   !     7: |d_zx><d_zx|
      20              :   !     8: |d_x2-y2><d_x2-y2|
      21              :   !     9: |d_z2><dz2|
      22              :   !     10: |f><f|
      23              :   !     11: |f><f|
      24              :   !     12: |f><f|
      25              :   !     13: |f><f|
      26              :   !     14: |f><f|
      27              :   !     15: |f><f|
      28              :   !     16: |f><f|
      29              :   !
      30              :   !     Based on code in orb_comp by Yury Koroteev
      31              :   !
      32              :   !     Frank Freimuth
      33              :   !***********************************************************************
      34              : CONTAINS
      35            0 :   SUBROUTINE wann_orbcomp(atoms,usdus,jspin,&
      36            0 :        acof,bcof,ccof,&
      37              :        num_orbs,&
      38            0 :        orbs,&
      39              :        l_oc_f,&
      40            0 :        mmn)
      41              :     USE m_types
      42              :     IMPLICIT NONE
      43              :     !     .. scalar arguments ..
      44              :     TYPE(t_atoms),INTENT(in) :: atoms
      45              :     TYPE(t_usdus),INTENT(IN) :: usdus
      46              :     INTEGER,INTENT(IN)       :: jspin
      47              :     !     .. array arguments ..
      48              :     COMPLEX, INTENT (in)  :: ccof(-atoms%llod:,:,:,:) !ccof(-llod:llod,noccbd,nlod,natd)
      49              :     COMPLEX, INTENT (in)  :: acof(:,0:,:)!acof(noccbd,0:lmd,natd)
      50              :     COMPLEX, INTENT (in)  :: bcof(:,0:,:)!bcof(noccbd,0:lmd,natd)
      51              :     COMPLEX, INTENT (inout) :: mmn(:,:,:,:)!mmn(16,noccbd,noccbd,ntype)
      52              : 
      53              :     INTEGER, INTENT (in)  :: num_orbs
      54              :     INTEGER, INTENT (in)  :: orbs(:)
      55              :     LOGICAL, INTENT (in)  :: l_oc_f
      56              : 
      57              :     !    ..Local Scalars 
      58              : 
      59            0 :     COMPLEX  ca00(SIZE(acof,1))
      60            0 :     COMPLEX  ca01(SIZE(acof,1))
      61            0 :     COMPLEX  ca02(SIZE(acof,1))
      62            0 :     COMPLEX  ca03(SIZE(acof,1))
      63            0 :     COMPLEX  ca04(SIZE(acof,1))
      64            0 :     COMPLEX  ca05(SIZE(acof,1))
      65            0 :     COMPLEX  ca06(SIZE(acof,1))
      66            0 :     COMPLEX  ca07(SIZE(acof,1))
      67            0 :     COMPLEX  ca08(SIZE(acof,1))
      68            0 :     COMPLEX  ca09(SIZE(acof,1))
      69            0 :     COMPLEX  ca10(SIZE(acof,1))
      70            0 :     COMPLEX  ca11(SIZE(acof,1))
      71            0 :     COMPLEX  ca12(SIZE(acof,1))
      72            0 :     COMPLEX  ca13(SIZE(acof,1))
      73            0 :     COMPLEX  ca14(SIZE(acof,1))
      74            0 :     COMPLEX  ca15(SIZE(acof,1))
      75              : 
      76            0 :     COMPLEX  cb00(SIZE(acof,1))
      77            0 :     COMPLEX  cb01(SIZE(acof,1))
      78            0 :     COMPLEX  cb02(SIZE(acof,1))
      79            0 :     COMPLEX  cb03(SIZE(acof,1))
      80            0 :     COMPLEX  cb04(SIZE(acof,1))
      81            0 :     COMPLEX  cb05(SIZE(acof,1))
      82            0 :     COMPLEX  cb06(SIZE(acof,1))
      83            0 :     COMPLEX  cb07(SIZE(acof,1))
      84            0 :     COMPLEX  cb08(SIZE(acof,1))
      85            0 :     COMPLEX  cb09(SIZE(acof,1))
      86            0 :     COMPLEX  cb10(SIZE(acof,1))
      87            0 :     COMPLEX  cb11(SIZE(acof,1))
      88            0 :     COMPLEX  cb12(SIZE(acof,1))
      89            0 :     COMPLEX  cb13(SIZE(acof,1))
      90            0 :     COMPLEX  cb14(SIZE(acof,1))
      91            0 :     COMPLEX  cb15(SIZE(acof,1))
      92              : 
      93            0 :     COMPLEX  cc00(SIZE(acof,1))
      94            0 :     COMPLEX  cc01(SIZE(acof,1))
      95            0 :     COMPLEX  cc02(SIZE(acof,1))
      96            0 :     COMPLEX  cc03(SIZE(acof,1))
      97            0 :     COMPLEX  cc04(SIZE(acof,1))
      98            0 :     COMPLEX  cc05(SIZE(acof,1))
      99            0 :     COMPLEX  cc06(SIZE(acof,1))
     100            0 :     COMPLEX  cc07(SIZE(acof,1))
     101            0 :     COMPLEX  cc08(SIZE(acof,1))
     102            0 :     COMPLEX  cc09(SIZE(acof,1))
     103            0 :     COMPLEX  cc10(SIZE(acof,1))
     104            0 :     COMPLEX  cc11(SIZE(acof,1))
     105            0 :     COMPLEX  cc12(SIZE(acof,1))
     106            0 :     COMPLEX  cc13(SIZE(acof,1))
     107            0 :     COMPLEX  cc14(SIZE(acof,1))
     108            0 :     COMPLEX  cc15(SIZE(acof,1))
     109              : 
     110              : 
     111              :     INTEGER ::  lo,orbi,rep
     112              :     REAL    :: ddn0,ddn1,ddn2,ddn3
     113              :     INTEGER :: mt,ityp,n,m,mt1,l
     114              :     REAL    :: h,g,c3,c5
     115              :     LOGICAL :: l_doit
     116              :     !      ..
     117              :     !      ..
     118              :     !
     119              :     DATA h/0.50/ g/0.0625/
     120              :     !**************************************************** 
     121            0 :     c5 = SQRT(5.0)
     122            0 :     c3 = SQRT(3.0)
     123              :     !
     124            0 :     mt=0
     125            0 :     DO  ityp = 1,atoms%ntype
     126            0 :        DO rep=1,atoms%neq(ityp)
     127            0 :           mt=mt+1 
     128              : 
     129            0 :           l_doit=.FALSE.
     130            0 :           DO l=1,num_orbs
     131            0 :              IF(orbs(l)==mt)THEN
     132            0 :                 l_doit=.TRUE.
     133            0 :                 orbi=l
     134              :              ENDIF
     135              :           ENDDO
     136            0 :           IF(.NOT.l_doit)CYCLE
     137              : 
     138            0 :           ddn0 = usdus%ddn(0,ityp,jspin)
     139            0 :           ddn1 = usdus%ddn(1,ityp,jspin)        
     140            0 :           ddn2 = usdus%ddn(2,ityp,jspin)        
     141            0 :           ddn3 = usdus%ddn(3,ityp,jspin) 
     142            0 :           DO n=1,SIZE(acof,1)
     143              :              !
     144              :              !acof
     145              :              !         s-states
     146            0 :              ca00(n)=acof(n,0,mt)
     147              :              !        p-states
     148            0 :              ca01(n) = acof(n,1,mt) - acof(n,3,mt)
     149            0 :              ca02(n) = acof(n,1,mt) + acof(n,3,mt)
     150            0 :              ca03(n) = acof(n,2,mt)
     151              :              !        d-states
     152            0 :              ca04(n) = acof(n,4,mt) - acof(n,8,mt)
     153            0 :              ca05(n) = acof(n,5,mt) + acof(n,7,mt)
     154            0 :              ca06(n) = acof(n,5,mt) - acof(n,7,mt)
     155            0 :              ca07(n) = acof(n,4,mt) + acof(n,8,mt)
     156            0 :              ca08(n) = acof(n,6,mt)
     157              :              !
     158              :              !        f-states: a cubic set (cub) 
     159              :              ! 
     160              :              ca09(n) = ( acof(n,9,mt)  - acof(n,15,mt) )*c5 -&
     161            0 :                   ( acof(n,11,mt) - acof(n,13,mt) )*c3
     162              :              ca10(n) = ( acof(n,9,mt)  + acof(n,15,mt) )*c5 +&
     163            0 :                   ( acof(n,11,mt) + acof(n,13,mt) )*c3 
     164            0 :              ca11(n) =   acof(n,12,mt)
     165              :              ca12(n) = ( acof(n,9,mt)  + acof(n,15,mt) )*c3 -&
     166            0 :                   ( acof(n,11,mt) + acof(n,13,mt) )*c5 
     167            0 :              ca13(n) =   acof(n,10,mt) + acof(n,14,mt)
     168              :              ca14(n) = ( acof(n,9,mt)  - acof(n,15,mt) )*c3 +&
     169            0 :                   ( acof(n,11,mt) - acof(n,13,mt) )*c5 
     170            0 :              ca15(n) =   acof(n,10,mt) - acof(n,14,mt) 
     171              : 
     172              :              !
     173              :              !bcof
     174              :              !       s-states
     175            0 :              cb00(n) =  bcof(n,0,mt)
     176              :              !       p-states
     177            0 :              cb01(n) =  bcof(n,1,mt) - bcof(n,3,mt) 
     178            0 :              cb02(n) =  bcof(n,1,mt) + bcof(n,3,mt) 
     179            0 :              cb03(n) =  bcof(n,2,mt)
     180              :              !        d-states
     181            0 :              cb04(n) =  bcof(n,4,mt) - bcof(n,8,mt) 
     182            0 :              cb05(n) =  bcof(n,5,mt) + bcof(n,7,mt) 
     183            0 :              cb06(n) =  bcof(n,5,mt) - bcof(n,7,mt) 
     184            0 :              cb07(n) =  bcof(n,4,mt) + bcof(n,8,mt) 
     185            0 :              cb08(n) =  bcof(n,6,mt)
     186              :              !
     187              :              !       f-states: a cubic set (cub)
     188              :              !
     189              :              cb09(n) = ( bcof(n,9,mt)  - bcof(n,15,mt) )*c5 -&
     190            0 :                   ( bcof(n,11,mt) - bcof(n,13,mt) )*c3
     191              :              cb10(n) = ( bcof(n,9,mt)  + bcof(n,15,mt) )*c5 +&
     192            0 :                   ( bcof(n,11,mt) + bcof(n,13,mt) )*c3 
     193            0 :              cb11(n) =   bcof(n,12,mt)
     194              :              cb12(n) = ( bcof(n,9,mt)  + bcof(n,15,mt) )*c3 -&
     195            0 :                   ( bcof(n,11,mt) + bcof(n,13,mt) )*c5 
     196            0 :              cb13(n) =   bcof(n,10,mt) + bcof(n,14,mt)
     197              :              cb14(n) = ( bcof(n,9,mt)  - bcof(n,15,mt) )*c3 +&
     198            0 :                   ( bcof(n,11,mt) - bcof(n,13,mt) )*c5
     199            0 :              cb15(n) =   bcof(n,10,mt) - bcof(n,14,mt) 
     200              :           ENDDO !n   
     201              : 
     202            0 :           DO n=1,SIZE(acof,1)
     203            0 :              DO m=1,SIZE(acof,1)
     204              :                 !  s
     205              :                 mmn(1,orbi,m,n)  =   ca00(n)*CONJG(ca00(m)) &
     206            0 :                      + cb00(n)*CONJG(cb00(m))*ddn0 
     207              :                 !  p
     208              :                 mmn(2,orbi,m,n)  = ( ca01(n)*CONJG(ca01(m)) &
     209            0 :                      + cb01(n)*CONJG(cb01(m))*ddn1 )*h
     210              :                 mmn(3,orbi,m,n)  = ( ca02(n)*CONJG(ca02(m)) &
     211            0 :                      + cb02(n)*CONJG(cb02(m))*ddn1 )*h
     212              :                 mmn(4,orbi,m,n)  =   ca03(n)*CONJG(ca03(m)) &
     213            0 :                      + cb03(n)*CONJG(cb03(m))*ddn1 
     214              :                 !  d
     215              :                 mmn(5,orbi,m,n)  = ( ca04(n)*CONJG(ca04(m)) &
     216            0 :                      + cb04(n)*CONJG(cb04(m))*ddn2 )*h
     217              :                 mmn(6,orbi,m,n)  = ( ca05(n)*CONJG(ca05(m)) &
     218            0 :                      + cb05(n)*CONJG(cb05(m))*ddn2 )*h
     219              :                 mmn(7,orbi,m,n)  = ( ca06(n)*CONJG(ca06(m)) &
     220            0 :                      + cb06(n)*CONJG(cb06(m))*ddn2 )*h
     221              :                 mmn(8,orbi,m,n)  = ( ca07(n)*CONJG(ca07(m)) &
     222            0 :                      + cb07(n)*CONJG(cb07(m))*ddn2 )*h
     223              :                 mmn(9,orbi,m,n)  =   ca08(n)*CONJG(ca08(m)) &
     224            0 :                      + cb08(n)*CONJG(cb08(m))*ddn2 
     225              :                 !  f: a cubic set
     226            0 :                 IF(l_oc_f)THEN
     227              :                    mmn(10,orbi,m,n) = ( ca09(n)*CONJG(ca09(m)) &
     228            0 :                         + cb09(n)*CONJG(cb09(m))*ddn3 )*g       
     229              :                    mmn(11,orbi,m,n) = ( ca10(n)*CONJG(ca10(m)) &
     230            0 :                         + cb10(n)*CONJG(cb10(m))*ddn3 )*g
     231              :                    mmn(12,orbi,m,n) =   ca11(n)*CONJG(ca11(m)) &
     232            0 :                         + cb11(n)*CONJG(cb11(m))*ddn3 
     233              :                    mmn(13,orbi,m,n) = ( ca12(n)*CONJG(ca12(m)) &
     234            0 :                         + cb12(n)*CONJG(cb12(m))*ddn3 )*g
     235              :                    mmn(14,orbi,m,n) = ( ca13(n)*CONJG(ca13(m)) &
     236            0 :                         + cb13(n)*CONJG(cb13(m))*ddn3 )*h
     237              :                    mmn(15,orbi,m,n) = ( ca14(n)*CONJG(ca14(m)) &
     238            0 :                         + cb14(n)*CONJG(cb14(m))*ddn3 )*g
     239              :                    mmn(16,orbi,m,n) = ( ca15(n)*CONJG(ca15(m)) &
     240            0 :                         + cb15(n)*CONJG(cb15(m))*ddn3 )*h
     241              :                 ENDIF !l_oc_f
     242              :              ENDDO !m
     243              :           ENDDO !n 
     244              : 
     245              :           !--------------------------------------------------------------------
     246              :           !ccof   ( contributions from local orbitals )
     247              :           !
     248            0 :           lo_loop:DO lo = 1,atoms%nlo(ityp)
     249            0 :              l = atoms%llo(lo,ityp)
     250              :              !lo-s
     251            0 :              IF ( l.EQ.0 )  THEN
     252            0 :                 DO n=1,SIZE(acof,1)
     253            0 :                    cc00(n) = ccof(0,n,lo,mt)
     254              :                 ENDDO
     255              :                 !     
     256            0 :                 DO n=1,SIZE(acof,1)
     257            0 :                    DO m=1,SIZE(acof,1)
     258              :                       mmn(1,orbi,m,n)=mmn(1,orbi,m,n)+&
     259              :                            ( ca00(n)*CONJG(cc00(m)) + &
     260              :                            cc00(n)*CONJG(ca00(m)) )*usdus%uulon(lo,ityp,jspin) + &
     261              :                            ( cb00(n)*CONJG(cc00(m)) + &
     262              :                            cc00(n)*CONJG(cb00(m)) )*usdus%dulon(lo,ityp,jspin) +&
     263            0 :                            cc00(n)*CONJG(cc00(m))*usdus%uloulopn(lo,lo,ityp,jspin) 
     264              :                    ENDDO !m
     265              :                 ENDDO !n
     266            0 :                 CYCLE lo_loop
     267              :              ENDIF
     268              :              !lo-p
     269            0 :              IF ( l.EQ.1 )  THEN
     270            0 :                 DO n=1,SIZE(acof,1)
     271            0 :                    cc01(n) = ccof(-1,n,lo,mt) - ccof(1,n,lo,mt)
     272            0 :                    cc02(n) = ccof(-1,n,lo,mt) + ccof(1,n,lo,mt)
     273            0 :                    cc03(n) = ccof( 0,n,lo,mt)
     274              :                 ENDDO
     275            0 :                 DO n=1,SIZE(acof,1)
     276            0 :                    DO m=1,SIZE(acof,1)
     277              :                       mmn(2,orbi,m,n) = mmn(2,orbi,m,n)  +&
     278              :                            (   ( ca01(n)*CONJG(cc01(m)) + &
     279              :                            cc01(n)*CONJG(ca01(m)) )*usdus%uulon(lo,ityp,jspin) +&
     280              :                            ( cb01(n)*CONJG(cc01(m)) + &
     281              :                            cc01(n)*CONJG(cb01(m)) )*usdus%dulon(lo,ityp,jspin) +&
     282            0 :                            cc01(n)*CONJG(cc01(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h       
     283              : 
     284              :                       mmn(3,orbi,m,n) = mmn(3,orbi,m,n)  +&
     285              :                            (   ( ca02(n)*CONJG(cc02(m)) + &
     286              :                            cc02(n)*CONJG(ca02(m)) )*usdus%uulon(lo,ityp,jspin) +&
     287              :                            ( cb02(n)*CONJG(cc02(m)) + &
     288              :                            cc02(n)*CONJG(cb02(m)) )*usdus%dulon(lo,ityp,jspin) +&
     289            0 :                            cc02(n)*CONJG(cc02(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h       
     290              : 
     291              :                       mmn(4,orbi,m,n) = mmn(4,orbi,m,n)  +&
     292              :                            ( ca03(n)*CONJG(cc03(m)) + &
     293              :                            cc03(n)*CONJG(ca03(m)) )*usdus%uulon(lo,ityp,jspin) +&
     294              :                            ( cb03(n)*CONJG(cc03(m)) + &
     295              :                            cc03(n)*CONJG(cb03(m)) )*usdus%dulon(lo,ityp,jspin) +&
     296            0 :                            cc03(n)*CONJG(cc03(m))*usdus%uloulopn(lo,lo,ityp,jspin) 
     297              : 
     298              : 
     299              :                    ENDDO !m
     300              :                 ENDDO !n 
     301            0 :                 CYCLE lo_loop
     302              :              ENDIF
     303              :              !lo-d
     304            0 :              IF ( l.EQ.2 )  THEN
     305            0 :                 DO n=1,SIZE(acof,1)
     306            0 :                    cc04(n) = ccof(-2,n,lo,mt) - ccof(2,n,lo,mt)
     307            0 :                    cc05(n) = ccof(-1,n,lo,mt) + ccof(1,n,lo,mt)
     308            0 :                    cc06(n) = ccof(-1,n,lo,mt) - ccof(1,n,lo,mt)
     309            0 :                    cc07(n) = ccof(-2,n,lo,mt) + ccof(2,n,lo,mt)
     310            0 :                    cc08(n) = ccof( 0,n,lo,mt)
     311              :                 ENDDO !n
     312              :                 !
     313            0 :                 DO n=1,SIZE(acof,1)
     314            0 :                    DO m=1,SIZE(acof,1)
     315              :                       mmn(5,orbi,m,n) = mmn(5,orbi,m,n)  +&
     316              :                            (( ca04(n)*CONJG(cc04(m)) + &
     317              :                            cc04(n)*CONJG(ca04(m)) )*usdus%uulon(lo,ityp,jspin) +&
     318              :                            ( cb04(n)*CONJG(cc04(m)) + &
     319              :                            cc04(n)*CONJG(cb04(m)) )*usdus%dulon(lo,ityp,jspin) +&
     320            0 :                            cc04(n)*CONJG(cc04(m))*usdus%uloulopn(lo,lo,ityp,jspin))*h 
     321              :                       mmn(6,orbi,m,n) = mmn(6,orbi,m,n)  +&
     322              :                            (( ca05(n)*CONJG(cc05(m)) + &
     323              :                            cc05(n)*CONJG(ca05(m)) )*usdus%uulon(lo,ityp,jspin) +&
     324              :                            ( cb05(n)*CONJG(cc05(m)) + &
     325              :                            cc05(n)*CONJG(cb05(m)) )*usdus%dulon(lo,ityp,jspin) +&
     326            0 :                            cc05(n)*CONJG(cc05(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h 
     327              :                       mmn(7,orbi,m,n) = mmn(7,orbi,m,n)  +&
     328              :                            (( ca06(n)*CONJG(cc06(m)) + &
     329              :                            cc06(n)*CONJG(ca06(m)) )*usdus%uulon(lo,ityp,jspin) +&
     330              :                            ( cb06(n)*CONJG(cc06(m)) + &
     331              :                            cc06(n)*CONJG(cb06(m)) )*usdus%dulon(lo,ityp,jspin) +&
     332            0 :                            cc06(n)*CONJG(cc06(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h
     333              :                       mmn(8,orbi,m,n) = mmn(8,orbi,m,n)  +&
     334              :                            (( ca07(n)*CONJG(cc07(m)) + &
     335              :                            cc07(n)*CONJG(ca07(m)) )*usdus%uulon(lo,ityp,jspin) +&
     336              :                            ( cb07(n)*CONJG(cc07(m)) + &
     337              :                            cc07(n)*CONJG(cb07(m)) )*usdus%dulon(lo,ityp,jspin) +&
     338            0 :                            cc07(n)*CONJG(cc07(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h       
     339              :                       mmn(9,orbi,m,n) = mmn(9,orbi,m,n)  +&
     340              :                            ( ca08(n)*CONJG(cc08(m)) + &
     341              :                            cc08(n)*CONJG(ca08(m)) )*usdus%uulon(lo,ityp,jspin) +&
     342              :                            ( cb08(n)*CONJG(cc08(m)) + &
     343              :                            cc08(n)*CONJG(cb08(m)) )*usdus%dulon(lo,ityp,jspin) +&
     344            0 :                            cc08(n)*CONJG(cc08(m))*usdus%uloulopn(lo,lo,ityp,jspin)  
     345              :                    ENDDO !m
     346              :                 ENDDO !n
     347            0 :                 CYCLE lo_loop                        
     348              :              ENDIF
     349              :              !lo-f
     350            0 :              IF ( l.EQ.3 .AND. l_oc_f)  THEN
     351              :                 !
     352              :                 !  a cubic set (cub)
     353              :                 !
     354            0 :                 DO n=1,SIZE(acof,1)
     355              :                    cc09(n) = ( ccof(-3,n,lo,mt) - ccof(3,n,lo,mt) )*c5 -&
     356            0 :                         ( ccof(-1,n,lo,mt) - ccof(1,n,lo,mt) )*c3 
     357              :                    cc10(n) = ( ccof(-3,n,lo,mt) + ccof(3,n,lo,mt) )*c5 +&
     358            0 :                         ( ccof(-1,n,lo,mt) + ccof(1,n,lo,mt) )*c3 
     359            0 :                    cc11(n) =   ccof( 0,n,lo,mt)
     360              :                    cc12(n) = ( ccof(-3,n,lo,mt) + ccof(3,n,lo,mt) )*c3 -&
     361            0 :                         ( ccof(-1,n,lo,mt) + ccof(1,n,lo,mt) )*c5 
     362            0 :                    cc13(n) =   ccof(-2,n,lo,mt) + ccof(2,n,lo,mt) 
     363              :                    cc14(n) = ( ccof(-3,n,lo,mt) - ccof(3,n,lo,mt) )*c3 +&
     364            0 :                         ( ccof(-1,n,lo,mt) - ccof(1,n,lo,mt) )*c5
     365            0 :                    cc15(n) =   ccof(-2,n,lo,mt) - ccof(2,n,lo,mt)
     366              :                 ENDDO !n    
     367            0 :                 DO n=1,SIZE(acof,1)
     368            0 :                    DO m=1,SIZE(acof,1)
     369              :                       mmn(10,orbi,m,n) = mmn(10,orbi,m,n)  +&
     370              :                            (( ca09(n)*CONJG(cc09(m)) + &
     371              :                            cc09(n)*CONJG(ca09(m)) )*usdus%uulon(lo,ityp,jspin) +&
     372              :                            ( cb09(n)*CONJG(cc09(m)) + &
     373              :                            cc09(n)*CONJG(cb09(m)) )*usdus%dulon(lo,ityp,jspin) +&
     374            0 :                            cc09(n)*CONJG(cc09(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g       
     375              :                       mmn(11,orbi,m,n) = mmn(11,orbi,m,n)  +&
     376              :                            (( ca10(n)*CONJG(cc10(m)) + &
     377              :                            cc10(n)*CONJG(ca10(m)) )*usdus%uulon(lo,ityp,jspin) +&
     378              :                            ( cb10(n)*CONJG(cc10(m)) + &
     379              :                            cc10(n)*CONJG(cb10(m)) )*usdus%dulon(lo,ityp,jspin) +&
     380            0 :                            cc10(n)*CONJG(cc10(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g 
     381              :                       mmn(12,orbi,m,n) = mmn(12,orbi,m,n)  +&
     382              :                            ( ca11(n)*CONJG(cc11(m)) + &
     383              :                            cc11(n)*CONJG(ca11(m)) )*usdus%uulon(lo,ityp,jspin) +&
     384              :                            ( cb11(n)*CONJG(cc11(m)) + &
     385              :                            cc11(n)*CONJG(cb11(m)) )*usdus%dulon(lo,ityp,jspin) +&
     386            0 :                            cc11(n)*CONJG(cc11(m))*usdus%uloulopn(lo,lo,ityp,jspin) 
     387              :                       mmn(13,orbi,m,n) = mmn(13,orbi,m,n)  +&
     388              :                            (( ca12(n)*CONJG(cc12(m)) + &
     389              :                            cc12(n)*CONJG(ca12(m)) )*usdus%uulon(lo,ityp,jspin) +&
     390              :                            ( cb12(n)*CONJG(cc12(m)) + &
     391              :                            cc12(n)*CONJG(cb12(m)) )*usdus%dulon(lo,ityp,jspin) +&
     392            0 :                            cc12(n)*CONJG(cc12(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g
     393              :                       mmn(14,orbi,m,n) = mmn(14,orbi,m,n)  +&
     394              :                            (( ca13(n)*CONJG(cc13(m)) + &
     395              :                            cc13(n)*CONJG(ca13(m)) )*usdus%uulon(lo,ityp,jspin) +&
     396              :                            ( cb13(n)*CONJG(cc13(m)) + &
     397              :                            cc13(n)*CONJG(cb13(m)) )*usdus%dulon(lo,ityp,jspin) +&
     398            0 :                            cc13(n)*CONJG(cc13(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h 
     399              :                       mmn(15,orbi,m,n) = mmn(15,orbi,m,n)  +&
     400              :                            (( ca14(n)*CONJG(cc14(m)) + &
     401              :                            cc14(n)*CONJG(ca14(m)) )*usdus%uulon(lo,ityp,jspin) +&
     402              :                            ( cb14(n)*CONJG(cc14(m)) + &
     403              :                            cc14(n)*CONJG(cb14(m)) )*usdus%dulon(lo,ityp,jspin) +&
     404            0 :                            cc14(n)*CONJG(cc14(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g
     405              :                       mmn(16,orbi,m,n) = mmn(16,orbi,m,n)  +&
     406              :                            (( ca15(n)*CONJG(cc15(m)) + &
     407              :                            cc15(n)*CONJG(ca15(m)) )*usdus%uulon(lo,ityp,jspin) +&
     408              :                            ( cb15(n)*CONJG(cc15(m)) + &
     409              :                            cc15(n)*CONJG(cb15(m)) )*usdus%dulon(lo,ityp,jspin) +&
     410            0 :                            cc15(n)*CONJG(cc15(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h
     411              :                    ENDDO !m   
     412              :                 ENDDO !n    
     413              :              ENDIF
     414              :           ENDDO lo_loop
     415              : 
     416              : 
     417              :        ENDDO !rep   
     418              : 
     419              :     ENDDO     ! types (ityp)
     420              : 
     421            0 :   END SUBROUTINE wann_orbcomp
     422              : END MODULE m_wann_orbcomp
        

Generated by: LCOV version 2.0-1