LCOV - code coverage report
Current view: top level - wannier - wann_plot_symm.f (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 0 37 0.0 %
Date: 2024-05-01 04:44:11 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_plot_symm
       8             :          use m_juDFT
       9             :       CONTAINS
      10           0 :       SUBROUTINE wann_plot_symm(jspin,mrot,ikpt,kplot,l_conjugate)
      11             : 
      12             :       implicit none
      13             :       integer,intent(in)::jspin,ikpt,kplot
      14             :       logical,intent(in)::l_conjugate
      15             :       integer,intent(in)::mrot(3,3)
      16             :       character(len=10)::vandernameold
      17             :       character(len=10)::vandernamenew
      18             :       integer::grid(3),nslibd,ikpt_copy,nbnd
      19             :       integer::ix,iy,iz,ixx,iyy,izz
      20             :       complex::xdnout
      21           0 :       real,allocatable::xdnreal(:,:,:,:),xdnimag(:,:,:,:)
      22             :       real::point(3)
      23             :       real::rotpoint(3)
      24             :       integer::opoint1,opoint2,opoint3
      25             : 
      26           0 :       call timestart("wann_plot_symm")
      27           0 :       WRITE (vandernameold,201) ikpt,jspin
      28           0 :       write (vandernamenew,201) kplot,jspin
      29             :  201  FORMAT ('UNK',i5.5,'.',i1)      
      30           0 :       open(55,file=vandernameold)
      31           0 :       read(55,*)grid(1),grid(2),grid(3),ikpt_copy,nslibd
      32           0 :       allocate(xdnreal(0:grid(1)-1,0:grid(2)-1,0:grid(3)-1,nslibd))
      33           0 :       allocate(xdnimag(0:grid(1)-1,0:grid(2)-1,0:grid(3)-1,nslibd))
      34           0 :       do nbnd=1,nslibd
      35           0 :        do iz=0,grid(3)-1
      36           0 :         do iy=0,grid(2)-1
      37           0 :          do ix=0,grid(1)-1
      38           0 :             read(55,*)xdnreal(ix,iy,iz,nbnd),xdnimag(ix,iy,iz,nbnd)
      39             :          enddo
      40             :         enddo
      41             :        enddo
      42             :       enddo
      43           0 :       close(55)
      44           0 :       open(666,file=vandernamenew,form='formatted')
      45           0 :       write(666,'(5i4)')grid(1),grid(2),grid(3),kplot,nslibd
      46           0 :       do nbnd=1,nslibd
      47           0 :        do iz=0,grid(3)-1
      48           0 :         do iy=0,grid(2)-1
      49           0 :          do ix=0,grid(1)-1
      50           0 :           point(1)=real(ix)/grid(1)
      51           0 :           point(2)=real(iy)/grid(2)
      52           0 :           point(3)=real(iz)/grid(3)
      53           0 :           rotpoint(:)=matmul(point(1:3),1.0*mrot(1:3,1:3))
      54           0 :           where(rotpoint.lt.0)
      55             :              rotpoint=rotpoint+1.0
      56             :           endwhere
      57           0 :           opoint1=int(grid(1)*rotpoint(1)+0.01)
      58           0 :           opoint2=int(grid(2)*rotpoint(2)+0.01)
      59           0 :           opoint3=int(grid(3)*rotpoint(3)+0.01)
      60           0 :           if(l_conjugate)then
      61           0 :             write(666,*)xdnreal(opoint1,opoint2,opoint3,nbnd),
      62           0 :      &               -xdnimag(opoint1,opoint2,opoint3,nbnd)
      63             :           else
      64           0 :             write(666,*)xdnreal(opoint1,opoint2,opoint3,nbnd),
      65           0 :      &               xdnimag(opoint1,opoint2,opoint3,nbnd)
      66             :           endif
      67             :          enddo
      68             :         enddo
      69             :        enddo
      70             :       enddo
      71           0 :       close(666)
      72             : 
      73           0 :       call timestop("wann_plot_symm")
      74           0 :       END SUBROUTINE wann_plot_symm
      75             :       END MODULE m_wann_plot_symm

Generated by: LCOV version 1.14