LCOV - code coverage report
Current view: top level - wannier - wann_orbcomp.f90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 174 0.0 %
Date: 2019-09-08 04:53:50 Functions: 0 1 0.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             :     !      Intrinsic Function
     119             :     INTRINSIC sqrt,conjg
     120             :     !
     121             :     DATA h/0.50/ g/0.0625/
     122             :     !**************************************************** 
     123           0 :     c5 = SQRT(5.0)
     124           0 :     c3 = SQRT(3.0)
     125             :     !
     126           0 :     mt=0
     127           0 :     DO  ityp = 1,atoms%ntype
     128           0 :        DO rep=1,atoms%neq(ityp)
     129           0 :           mt=mt+1 
     130             : 
     131           0 :           l_doit=.FALSE.
     132           0 :           DO l=1,num_orbs
     133           0 :              IF(orbs(l)==mt)THEN
     134           0 :                 l_doit=.TRUE.
     135           0 :                 orbi=l
     136             :              ENDIF
     137             :           ENDDO
     138           0 :           IF(.NOT.l_doit)CYCLE
     139             : 
     140           0 :           ddn0 = usdus%ddn(0,ityp,jspin)
     141           0 :           ddn1 = usdus%ddn(1,ityp,jspin)        
     142           0 :           ddn2 = usdus%ddn(2,ityp,jspin)        
     143           0 :           ddn3 = usdus%ddn(3,ityp,jspin) 
     144           0 :           DO n=1,SIZE(acof,1)
     145             :              !
     146             :              !acof
     147             :              !         s-states
     148           0 :              ca00(n)=acof(n,0,mt)
     149             :              !        p-states
     150           0 :              ca01(n) = acof(n,1,mt) - acof(n,3,mt)
     151           0 :              ca02(n) = acof(n,1,mt) + acof(n,3,mt)
     152           0 :              ca03(n) = acof(n,2,mt)
     153             :              !        d-states
     154           0 :              ca04(n) = acof(n,4,mt) - acof(n,8,mt)
     155           0 :              ca05(n) = acof(n,5,mt) + acof(n,7,mt)
     156           0 :              ca06(n) = acof(n,5,mt) - acof(n,7,mt)
     157           0 :              ca07(n) = acof(n,4,mt) + acof(n,8,mt)
     158           0 :              ca08(n) = acof(n,6,mt)
     159             :              !
     160             :              !        f-states: a cubic set (cub) 
     161             :              ! 
     162             :              ca09(n) = ( acof(n,9,mt)  - acof(n,15,mt) )*c5 -&
     163           0 :                   ( acof(n,11,mt) - acof(n,13,mt) )*c3
     164             :              ca10(n) = ( acof(n,9,mt)  + acof(n,15,mt) )*c5 +&
     165           0 :                   ( acof(n,11,mt) + acof(n,13,mt) )*c3 
     166           0 :              ca11(n) =   acof(n,12,mt)
     167             :              ca12(n) = ( acof(n,9,mt)  + acof(n,15,mt) )*c3 -&
     168           0 :                   ( acof(n,11,mt) + acof(n,13,mt) )*c5 
     169           0 :              ca13(n) =   acof(n,10,mt) + acof(n,14,mt)
     170             :              ca14(n) = ( acof(n,9,mt)  - acof(n,15,mt) )*c3 +&
     171           0 :                   ( acof(n,11,mt) - acof(n,13,mt) )*c5 
     172           0 :              ca15(n) =   acof(n,10,mt) - acof(n,14,mt) 
     173             : 
     174             :              !
     175             :              !bcof
     176             :              !       s-states
     177           0 :              cb00(n) =  bcof(n,0,mt)
     178             :              !       p-states
     179           0 :              cb01(n) =  bcof(n,1,mt) - bcof(n,3,mt) 
     180           0 :              cb02(n) =  bcof(n,1,mt) + bcof(n,3,mt) 
     181           0 :              cb03(n) =  bcof(n,2,mt)
     182             :              !        d-states
     183           0 :              cb04(n) =  bcof(n,4,mt) - bcof(n,8,mt) 
     184           0 :              cb05(n) =  bcof(n,5,mt) + bcof(n,7,mt) 
     185           0 :              cb06(n) =  bcof(n,5,mt) - bcof(n,7,mt) 
     186           0 :              cb07(n) =  bcof(n,4,mt) + bcof(n,8,mt) 
     187           0 :              cb08(n) =  bcof(n,6,mt)
     188             :              !
     189             :              !       f-states: a cubic set (cub)
     190             :              !
     191             :              cb09(n) = ( bcof(n,9,mt)  - bcof(n,15,mt) )*c5 -&
     192           0 :                   ( bcof(n,11,mt) - bcof(n,13,mt) )*c3
     193             :              cb10(n) = ( bcof(n,9,mt)  + bcof(n,15,mt) )*c5 +&
     194           0 :                   ( bcof(n,11,mt) + bcof(n,13,mt) )*c3 
     195           0 :              cb11(n) =   bcof(n,12,mt)
     196             :              cb12(n) = ( bcof(n,9,mt)  + bcof(n,15,mt) )*c3 -&
     197           0 :                   ( bcof(n,11,mt) + bcof(n,13,mt) )*c5 
     198           0 :              cb13(n) =   bcof(n,10,mt) + bcof(n,14,mt)
     199             :              cb14(n) = ( bcof(n,9,mt)  - bcof(n,15,mt) )*c3 +&
     200           0 :                   ( bcof(n,11,mt) - bcof(n,13,mt) )*c5
     201           0 :              cb15(n) =   bcof(n,10,mt) - bcof(n,14,mt) 
     202             :           ENDDO !n   
     203             : 
     204           0 :           DO n=1,SIZE(acof,1)
     205           0 :              DO m=1,SIZE(acof,1)
     206             :                 !  s
     207             :                 mmn(1,orbi,m,n)  =   ca00(n)*CONJG(ca00(m)) &
     208           0 :                      + cb00(n)*CONJG(cb00(m))*ddn0 
     209             :                 !  p
     210             :                 mmn(2,orbi,m,n)  = ( ca01(n)*CONJG(ca01(m)) &
     211           0 :                      + cb01(n)*CONJG(cb01(m))*ddn1 )*h
     212             :                 mmn(3,orbi,m,n)  = ( ca02(n)*CONJG(ca02(m)) &
     213           0 :                      + cb02(n)*CONJG(cb02(m))*ddn1 )*h
     214             :                 mmn(4,orbi,m,n)  =   ca03(n)*CONJG(ca03(m)) &
     215           0 :                      + cb03(n)*CONJG(cb03(m))*ddn1 
     216             :                 !  d
     217             :                 mmn(5,orbi,m,n)  = ( ca04(n)*CONJG(ca04(m)) &
     218           0 :                      + cb04(n)*CONJG(cb04(m))*ddn2 )*h
     219             :                 mmn(6,orbi,m,n)  = ( ca05(n)*CONJG(ca05(m)) &
     220           0 :                      + cb05(n)*CONJG(cb05(m))*ddn2 )*h
     221             :                 mmn(7,orbi,m,n)  = ( ca06(n)*CONJG(ca06(m)) &
     222           0 :                      + cb06(n)*CONJG(cb06(m))*ddn2 )*h
     223             :                 mmn(8,orbi,m,n)  = ( ca07(n)*CONJG(ca07(m)) &
     224           0 :                      + cb07(n)*CONJG(cb07(m))*ddn2 )*h
     225             :                 mmn(9,orbi,m,n)  =   ca08(n)*CONJG(ca08(m)) &
     226           0 :                      + cb08(n)*CONJG(cb08(m))*ddn2 
     227             :                 !  f: a cubic set
     228           0 :                 IF(l_oc_f)THEN
     229             :                    mmn(10,orbi,m,n) = ( ca09(n)*CONJG(ca09(m)) &
     230           0 :                         + cb09(n)*CONJG(cb09(m))*ddn3 )*g       
     231             :                    mmn(11,orbi,m,n) = ( ca10(n)*CONJG(ca10(m)) &
     232           0 :                         + cb10(n)*CONJG(cb10(m))*ddn3 )*g
     233             :                    mmn(12,orbi,m,n) =   ca11(n)*CONJG(ca11(m)) &
     234           0 :                         + cb11(n)*CONJG(cb11(m))*ddn3 
     235             :                    mmn(13,orbi,m,n) = ( ca12(n)*CONJG(ca12(m)) &
     236           0 :                         + cb12(n)*CONJG(cb12(m))*ddn3 )*g
     237             :                    mmn(14,orbi,m,n) = ( ca13(n)*CONJG(ca13(m)) &
     238           0 :                         + cb13(n)*CONJG(cb13(m))*ddn3 )*h
     239             :                    mmn(15,orbi,m,n) = ( ca14(n)*CONJG(ca14(m)) &
     240           0 :                         + cb14(n)*CONJG(cb14(m))*ddn3 )*g
     241             :                    mmn(16,orbi,m,n) = ( ca15(n)*CONJG(ca15(m)) &
     242           0 :                         + cb15(n)*CONJG(cb15(m))*ddn3 )*h
     243             :                 ENDIF !l_oc_f
     244             :              ENDDO !m
     245             :           ENDDO !n 
     246             : 
     247             :           !--------------------------------------------------------------------
     248             :           !ccof   ( contributions from local orbitals )
     249             :           !
     250           0 :           lo_loop:DO lo = 1,atoms%nlo(ityp)
     251           0 :              l = atoms%llo(lo,ityp)
     252             :              !lo-s
     253           0 :              IF ( l.EQ.0 )  THEN
     254           0 :                 DO n=1,SIZE(acof,1)
     255           0 :                    cc00(n) = ccof(0,n,lo,mt)
     256             :                 ENDDO
     257             :                 !     
     258           0 :                 DO n=1,SIZE(acof,1)
     259           0 :                    DO m=1,SIZE(acof,1)
     260             :                       mmn(1,orbi,m,n)=mmn(1,orbi,m,n)+&
     261             :                            ( ca00(n)*CONJG(cc00(m)) + &
     262             :                            cc00(n)*CONJG(ca00(m)) )*usdus%uulon(lo,ityp,jspin) + &
     263             :                            ( cb00(n)*CONJG(cc00(m)) + &
     264             :                            cc00(n)*CONJG(cb00(m)) )*usdus%dulon(lo,ityp,jspin) +&
     265           0 :                            cc00(n)*CONJG(cc00(m))*usdus%uloulopn(lo,lo,ityp,jspin) 
     266             :                    ENDDO !m
     267             :                 ENDDO !n
     268           0 :                 CYCLE lo_loop
     269             :              ENDIF
     270             :              !lo-p
     271           0 :              IF ( l.EQ.1 )  THEN
     272           0 :                 DO n=1,SIZE(acof,1)
     273           0 :                    cc01(n) = ccof(-1,n,lo,mt) - ccof(1,n,lo,mt)
     274           0 :                    cc02(n) = ccof(-1,n,lo,mt) + ccof(1,n,lo,mt)
     275           0 :                    cc03(n) = ccof( 0,n,lo,mt)
     276             :                 ENDDO
     277           0 :                 DO n=1,SIZE(acof,1)
     278           0 :                    DO m=1,SIZE(acof,1)
     279             :                       mmn(2,orbi,m,n) = mmn(2,orbi,m,n)  +&
     280             :                            (   ( ca01(n)*CONJG(cc01(m)) + &
     281             :                            cc01(n)*CONJG(ca01(m)) )*usdus%uulon(lo,ityp,jspin) +&
     282             :                            ( cb01(n)*CONJG(cc01(m)) + &
     283             :                            cc01(n)*CONJG(cb01(m)) )*usdus%dulon(lo,ityp,jspin) +&
     284           0 :                            cc01(n)*CONJG(cc01(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h       
     285             : 
     286             :                       mmn(3,orbi,m,n) = mmn(3,orbi,m,n)  +&
     287             :                            (   ( ca02(n)*CONJG(cc02(m)) + &
     288             :                            cc02(n)*CONJG(ca02(m)) )*usdus%uulon(lo,ityp,jspin) +&
     289             :                            ( cb02(n)*CONJG(cc02(m)) + &
     290             :                            cc02(n)*CONJG(cb02(m)) )*usdus%dulon(lo,ityp,jspin) +&
     291           0 :                            cc02(n)*CONJG(cc02(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h       
     292             : 
     293             :                       mmn(4,orbi,m,n) = mmn(4,orbi,m,n)  +&
     294             :                            ( ca03(n)*CONJG(cc03(m)) + &
     295             :                            cc03(n)*CONJG(ca03(m)) )*usdus%uulon(lo,ityp,jspin) +&
     296             :                            ( cb03(n)*CONJG(cc03(m)) + &
     297             :                            cc03(n)*CONJG(cb03(m)) )*usdus%dulon(lo,ityp,jspin) +&
     298           0 :                            cc03(n)*CONJG(cc03(m))*usdus%uloulopn(lo,lo,ityp,jspin) 
     299             : 
     300             : 
     301             :                    ENDDO !m
     302             :                 ENDDO !n 
     303           0 :                 CYCLE lo_loop
     304             :              ENDIF
     305             :              !lo-d
     306           0 :              IF ( l.EQ.2 )  THEN
     307           0 :                 DO n=1,SIZE(acof,1)
     308           0 :                    cc04(n) = ccof(-2,n,lo,mt) - ccof(2,n,lo,mt)
     309           0 :                    cc05(n) = ccof(-1,n,lo,mt) + ccof(1,n,lo,mt)
     310           0 :                    cc06(n) = ccof(-1,n,lo,mt) - ccof(1,n,lo,mt)
     311           0 :                    cc07(n) = ccof(-2,n,lo,mt) + ccof(2,n,lo,mt)
     312           0 :                    cc08(n) = ccof( 0,n,lo,mt)
     313             :                 ENDDO !n
     314             :                 !
     315           0 :                 DO n=1,SIZE(acof,1)
     316           0 :                    DO m=1,SIZE(acof,1)
     317             :                       mmn(5,orbi,m,n) = mmn(5,orbi,m,n)  +&
     318             :                            (( ca04(n)*CONJG(cc04(m)) + &
     319             :                            cc04(n)*CONJG(ca04(m)) )*usdus%uulon(lo,ityp,jspin) +&
     320             :                            ( cb04(n)*CONJG(cc04(m)) + &
     321             :                            cc04(n)*CONJG(cb04(m)) )*usdus%dulon(lo,ityp,jspin) +&
     322           0 :                            cc04(n)*CONJG(cc04(m))*usdus%uloulopn(lo,lo,ityp,jspin))*h 
     323             :                       mmn(6,orbi,m,n) = mmn(6,orbi,m,n)  +&
     324             :                            (( ca05(n)*CONJG(cc05(m)) + &
     325             :                            cc05(n)*CONJG(ca05(m)) )*usdus%uulon(lo,ityp,jspin) +&
     326             :                            ( cb05(n)*CONJG(cc05(m)) + &
     327             :                            cc05(n)*CONJG(cb05(m)) )*usdus%dulon(lo,ityp,jspin) +&
     328           0 :                            cc05(n)*CONJG(cc05(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h 
     329             :                       mmn(7,orbi,m,n) = mmn(7,orbi,m,n)  +&
     330             :                            (( ca06(n)*CONJG(cc06(m)) + &
     331             :                            cc06(n)*CONJG(ca06(m)) )*usdus%uulon(lo,ityp,jspin) +&
     332             :                            ( cb06(n)*CONJG(cc06(m)) + &
     333             :                            cc06(n)*CONJG(cb06(m)) )*usdus%dulon(lo,ityp,jspin) +&
     334           0 :                            cc06(n)*CONJG(cc06(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h
     335             :                       mmn(8,orbi,m,n) = mmn(8,orbi,m,n)  +&
     336             :                            (( ca07(n)*CONJG(cc07(m)) + &
     337             :                            cc07(n)*CONJG(ca07(m)) )*usdus%uulon(lo,ityp,jspin) +&
     338             :                            ( cb07(n)*CONJG(cc07(m)) + &
     339             :                            cc07(n)*CONJG(cb07(m)) )*usdus%dulon(lo,ityp,jspin) +&
     340           0 :                            cc07(n)*CONJG(cc07(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h       
     341             :                       mmn(9,orbi,m,n) = mmn(9,orbi,m,n)  +&
     342             :                            ( ca08(n)*CONJG(cc08(m)) + &
     343             :                            cc08(n)*CONJG(ca08(m)) )*usdus%uulon(lo,ityp,jspin) +&
     344             :                            ( cb08(n)*CONJG(cc08(m)) + &
     345             :                            cc08(n)*CONJG(cb08(m)) )*usdus%dulon(lo,ityp,jspin) +&
     346           0 :                            cc08(n)*CONJG(cc08(m))*usdus%uloulopn(lo,lo,ityp,jspin)  
     347             :                    ENDDO !m
     348             :                 ENDDO !n
     349           0 :                 CYCLE lo_loop                        
     350             :              ENDIF
     351             :              !lo-f
     352           0 :              IF ( l.EQ.3 .AND. l_oc_f)  THEN
     353             :                 !
     354             :                 !  a cubic set (cub)
     355             :                 !
     356           0 :                 DO n=1,SIZE(acof,1)
     357             :                    cc09(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             :                    cc10(n) = ( ccof(-3,n,lo,mt) + ccof(3,n,lo,mt) )*c5 +&
     360           0 :                         ( ccof(-1,n,lo,mt) + ccof(1,n,lo,mt) )*c3 
     361           0 :                    cc11(n) =   ccof( 0,n,lo,mt)
     362             :                    cc12(n) = ( ccof(-3,n,lo,mt) + ccof(3,n,lo,mt) )*c3 -&
     363           0 :                         ( ccof(-1,n,lo,mt) + ccof(1,n,lo,mt) )*c5 
     364           0 :                    cc13(n) =   ccof(-2,n,lo,mt) + ccof(2,n,lo,mt) 
     365             :                    cc14(n) = ( ccof(-3,n,lo,mt) - ccof(3,n,lo,mt) )*c3 +&
     366           0 :                         ( ccof(-1,n,lo,mt) - ccof(1,n,lo,mt) )*c5
     367           0 :                    cc15(n) =   ccof(-2,n,lo,mt) - ccof(2,n,lo,mt)
     368             :                 ENDDO !n    
     369           0 :                 DO n=1,SIZE(acof,1)
     370           0 :                    DO m=1,SIZE(acof,1)
     371             :                       mmn(10,orbi,m,n) = mmn(10,orbi,m,n)  +&
     372             :                            (( ca09(n)*CONJG(cc09(m)) + &
     373             :                            cc09(n)*CONJG(ca09(m)) )*usdus%uulon(lo,ityp,jspin) +&
     374             :                            ( cb09(n)*CONJG(cc09(m)) + &
     375             :                            cc09(n)*CONJG(cb09(m)) )*usdus%dulon(lo,ityp,jspin) +&
     376           0 :                            cc09(n)*CONJG(cc09(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g       
     377             :                       mmn(11,orbi,m,n) = mmn(11,orbi,m,n)  +&
     378             :                            (( ca10(n)*CONJG(cc10(m)) + &
     379             :                            cc10(n)*CONJG(ca10(m)) )*usdus%uulon(lo,ityp,jspin) +&
     380             :                            ( cb10(n)*CONJG(cc10(m)) + &
     381             :                            cc10(n)*CONJG(cb10(m)) )*usdus%dulon(lo,ityp,jspin) +&
     382           0 :                            cc10(n)*CONJG(cc10(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g 
     383             :                       mmn(12,orbi,m,n) = mmn(12,orbi,m,n)  +&
     384             :                            ( ca11(n)*CONJG(cc11(m)) + &
     385             :                            cc11(n)*CONJG(ca11(m)) )*usdus%uulon(lo,ityp,jspin) +&
     386             :                            ( cb11(n)*CONJG(cc11(m)) + &
     387             :                            cc11(n)*CONJG(cb11(m)) )*usdus%dulon(lo,ityp,jspin) +&
     388           0 :                            cc11(n)*CONJG(cc11(m))*usdus%uloulopn(lo,lo,ityp,jspin) 
     389             :                       mmn(13,orbi,m,n) = mmn(13,orbi,m,n)  +&
     390             :                            (( ca12(n)*CONJG(cc12(m)) + &
     391             :                            cc12(n)*CONJG(ca12(m)) )*usdus%uulon(lo,ityp,jspin) +&
     392             :                            ( cb12(n)*CONJG(cc12(m)) + &
     393             :                            cc12(n)*CONJG(cb12(m)) )*usdus%dulon(lo,ityp,jspin) +&
     394           0 :                            cc12(n)*CONJG(cc12(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g
     395             :                       mmn(14,orbi,m,n) = mmn(14,orbi,m,n)  +&
     396             :                            (( ca13(n)*CONJG(cc13(m)) + &
     397             :                            cc13(n)*CONJG(ca13(m)) )*usdus%uulon(lo,ityp,jspin) +&
     398             :                            ( cb13(n)*CONJG(cc13(m)) + &
     399             :                            cc13(n)*CONJG(cb13(m)) )*usdus%dulon(lo,ityp,jspin) +&
     400           0 :                            cc13(n)*CONJG(cc13(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h 
     401             :                       mmn(15,orbi,m,n) = mmn(15,orbi,m,n)  +&
     402             :                            (( ca14(n)*CONJG(cc14(m)) + &
     403             :                            cc14(n)*CONJG(ca14(m)) )*usdus%uulon(lo,ityp,jspin) +&
     404             :                            ( cb14(n)*CONJG(cc14(m)) + &
     405             :                            cc14(n)*CONJG(cb14(m)) )*usdus%dulon(lo,ityp,jspin) +&
     406           0 :                            cc14(n)*CONJG(cc14(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*g
     407             :                       mmn(16,orbi,m,n) = mmn(16,orbi,m,n)  +&
     408             :                            (( ca15(n)*CONJG(cc15(m)) + &
     409             :                            cc15(n)*CONJG(ca15(m)) )*usdus%uulon(lo,ityp,jspin) +&
     410             :                            ( cb15(n)*CONJG(cc15(m)) + &
     411             :                            cc15(n)*CONJG(cb15(m)) )*usdus%dulon(lo,ityp,jspin) +&
     412           0 :                            cc15(n)*CONJG(cc15(m))*usdus%uloulopn(lo,lo,ityp,jspin) )*h
     413             :                    ENDDO !m   
     414             :                 ENDDO !n    
     415             :              ENDIF
     416             :           ENDDO lo_loop
     417             : 
     418             : 
     419             :        ENDDO !rep   
     420             : 
     421             :     ENDDO     ! types (ityp)
     422             : 
     423           0 :   END SUBROUTINE wann_orbcomp
     424             : END MODULE m_wann_orbcomp

Generated by: LCOV version 1.13