The Elk Code
getephmkq.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2020 J. K. Dewhurst, S. Sharma and E. K. U. Gross.
3 ! This file is distributed under the terms of the GNU General Public License.
4 ! See the file COPYING for license details.
5 
6 subroutine getephmkq(iqp,ikp,ephmat)
7 use modmain
8 use modphonon
9 implicit none
10 ! arguments
11 integer, intent(in) :: iqp,ikp
12 complex(4), intent(out) :: ephmat(nstsv,nstsv,nbph)
13 ! local variables
14 integer isym,lspl,iq,ik,iv(3)
15 if (iqp <= nqpt) then
16 ! q-point is in the reduced set
17  iq=iqp
18  ik=ikp
19 else
20 ! q-point is not in the reduced set
21  call findqpt(vql(:,iqp),isym,iq)
22  lspl=lsplsymc(isym)
23  call i3mtv(symlat(:,:,lspl),ivk(:,ikp),iv)
24  iv(:)=modulo(iv(:),ngridk(:))
25  ik=ivkiknr(iv(1),iv(2),iv(3))
26 end if
27 ephmat(:,:,:)=ephmkq(:,:,:,ik,iq)
28 end subroutine
29 
integer nqpt
Definition: modmain.f90:525
integer, dimension(3, 3, 48) symlat
Definition: modmain.f90:344
pure subroutine i3mtv(a, x, y)
Definition: i3mtv.f90:10
integer, dimension(maxsymcrys) lsplsymc
Definition: modmain.f90:364
subroutine findqpt(vpl, isym, iq)
Definition: findqpt.f90:7
integer, dimension(3) ngridk
Definition: modmain.f90:448
real(8), dimension(:,:), allocatable vql
Definition: modmain.f90:545
subroutine getephmkq(iqp, ikp, ephmat)
Definition: getephmkq.f90:7
integer, dimension(:,:), allocatable ivk
Definition: modmain.f90:465
complex(4), dimension(:,:,:,:,:), allocatable ephmkq
Definition: modphonon.f90:157
integer, dimension(:,:,:), allocatable ivkiknr
Definition: modmain.f90:469