LCOV - code coverage report
Current view: top level - wannier - wann_maxbnd.F (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 24 0.0 %
Date: 2019-09-08 04:53:50 Functions: 0 1 0.0 %

          Line data    Source code
       1             :       MODULE m_wann_maxbnd
       2             : 
       3             : c****************************************************************
       4             : c    determine maximum of number of bands
       5             : c****************************************************************
       6             :       CONTAINS
       7           0 :       SUBROUTINE wann_maxbnd(
       8             :      >              eig_id,l_real,
       9             :      >              lmaxd,ntypd,nlod,neigd,nvd,jspd,
      10             :      >              isize,jspin,nbasfcn,nlotot,
      11             :      >              l_ss,l_noco,nrec,fullnkpts,
      12             :      >              l_bzsym,l_byindex,l_bynumber,l_byenergy,
      13           0 :      >              irreduc,odi,band_min,band_max,numbands,
      14             :      >              e1s,e2s,ef,nkpt,nbnd,l_gwf,iqpt)
      15             : 
      16             :       use m_cdnread, only:cdn_read
      17             :       use m_types
      18             :       use m_wann_rw_eig
      19             : 
      20             :       IMPLICIT NONE
      21             :       integer,intent(in) :: lmaxd,ntypd,nlod,neigd,nvd,jspd,eig_id
      22             :       integer,intent(in) :: isize,jspin,nbasfcn,nlotot,iqpt
      23             :       logical,intent(in) :: l_ss,l_noco,l_gwf,l_real
      24             :       integer,intent(in) :: nrec,fullnkpts
      25             :       logical,intent(in) :: l_byindex,l_bynumber,l_byenergy
      26             :       integer,intent(in) :: irreduc(fullnkpts)
      27             :       type (od_inp),intent(in) :: odi
      28             :       integer,intent(in) :: band_min,band_max,numbands
      29             :       logical,intent(in) :: l_bzsym
      30             :       real,intent(in)    :: e1s,e2s,ef
      31             :       integer,intent(in) :: nkpt
      32             : 
      33             :       integer,intent(out):: nbnd
      34             : 
      35             :       integer          :: ikpt,kptibz
      36             :       integer          :: nmat,nbands,nv(jspd)
      37           0 :       real             :: wk, bkpt(3),eig(neigd),cp_time(9)
      38             :       integer          :: k1(nvd,jspd),k2(nvd,jspd),k3(nvd,jspd)
      39             :       integer          :: nkbnd,i
      40             :       REAL             :: ello(nlod,ntypd,jspd),evdu(2,jspd)
      41             :       REAL             :: epar(0:lmaxd,ntypd,jspd)
      42             :       integer          :: n_start,n_end,co
      43             :       integer          :: num_bands
      44             : 
      45           0 :       TYPE(t_mat)      :: zMat
      46             : 
      47           0 :       zMat%l_real = l_real
      48           0 :       zMat%matsize1 = nbasfcn
      49           0 :       zMat%matsize2 = neigd
      50           0 :       IF(l_real) THEN
      51           0 :          ALLOCATE (zMat%data_r(zMat%matsize1,zMat%matsize2))
      52             :       ELSE
      53           0 :          ALLOCATE (zMat%data_c(zMat%matsize1,zMat%matsize2))
      54             :       END IF
      55             : 
      56           0 :       n_start=1
      57           0 :       n_end=neigd
      58             : 
      59           0 :       nbnd=0
      60           0 :       do ikpt = 1,fullnkpts
      61             : 
      62           0 :         kptibz=ikpt 
      63           0 :         if(l_bzsym) kptibz=irreduc(ikpt)
      64             :             call wann_read_eig(
      65             :      >              eig_id,
      66             :      >              lmaxd,ntypd,nlod,neigd,nvd,jspd,
      67             :      >              0,isize,kptibz,jspin,nbasfcn,nlotot,
      68             :      >              l_ss,l_noco,nrec,
      69             :      <              nmat,nbands,eig,zMat,
      70           0 :      >              l_gwf,iqpt)
      71             : 
      72           0 :         nkbnd = 0
      73           0 :         do i = 1,nbands
      74             :          if((eig(i).ge.e1s .and. nkbnd.lt.numbands.and.l_bynumber).or.
      75           0 :      &      (eig(i).ge.e1s.and.eig(i).le.e2s.and.l_byenergy ).or.
      76           0 :      &      (i.ge.band_min.and.i.le.band_max.and.l_byindex))  then
      77           0 :            nkbnd = nkbnd + 1
      78             :          endif 
      79             :         enddo
      80           0 :         if (nkbnd.ge.nbnd) nbnd = nkbnd
      81             : 
      82             :       enddo !ikpt
      83             : 
      84           0 :       end subroutine wann_maxbnd
      85             :       END MODULE m_wann_maxbnd

Generated by: LCOV version 1.13