14 integer ist,jst,isym,ip
15 integer is,ia,ias,js,jas
16 integer nr,nri,np,i,n,nthd
20 real(8),
allocatable :: gq(:,:),y(:)
21 complex(8),
allocatable :: ev(:,:),a(:,:)
22 complex(8),
allocatable :: dvmt(:,:,:),dvir(:,:)
23 complex(8),
allocatable :: zfmt(:),gzfmt(:,:,:)
24 complex(8),
allocatable :: ephmat(:,:,:)
26 real(8),
external :: sdelta
73 call gradzfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),zfmt,
npmtmax,gzfmt(:,:,ias))
83 if (
mp_mpi)
write(*,
'("Info(ephcouple): ",I6," of ",I6," q-points")') iq,
nqpt 100 dvsmt(1:np,ias)=
dvsmt(1:np,ias)-gzfmt(1:np,ip,ias)
129 call genephmat(iq,ik,de,a,dvmt,dvir,ephmat)
133 vl(1:3)=
vkl(1:3,ik)+
vql(1:3,iq)
146 t4=dble(ephmat(ist,jst,i))**2+aimag(ephmat(ist,jst,i))**2
147 y(i)=y(i)+
wphq(i,iq)*t3*t4
164 call mpi_allreduce(mpi_in_place,gq,n,mpi_double_precision,mpi_sum,
mpicom, &
174 if (
task == 241)
then 176 write(*,
'("Info(ephcouple):")')
177 write(*,
'(" wrote electron-phonon matrix elements to EPHMAT.OUT")')
183 deallocate(gq,y,ev,a,dvmt,dvir,zfmt,gzfmt)
subroutine zfirftoc(zfir, zfirc)
real(8), dimension(:,:), allocatable evalsv
pure subroutine zfmtwr(nr, nri, wr, zfmt)
integer, dimension(maxatoms, maxspecies) idxas
complex(8), dimension(:), allocatable dvsir
real(8), dimension(:,:,:), allocatable rlmt
integer, dimension(maxspecies) npmt
subroutine writelambda(gq)
subroutine gradzfmt(nr, nri, ri, wcr, zfmt, ld, gzfmt)
integer, dimension(:,:,:), allocatable ivkik
subroutine genephmat(iq, ik, de, a, dvmt, dvir, ephmat)
pure subroutine rtozfmt(nr, nri, rfmt, zfmt)
subroutine writegamma(gq)
pure subroutine zfmtftoc(nrc, nrci, zfmt, zfcmt)
subroutine dynev(dq, wq, ev)
complex(8), dimension(:,:,:), allocatable dynq
complex(8), dimension(:,:), pointer, contiguous dvsmt
subroutine readdvs(iq, is, ia, ip, dvsmt, dvsir)
real(8), dimension(:,:), allocatable vql
real(8), dimension(:,:), allocatable vkl
integer, dimension(maxspecies) natoms
real(8), dimension(:,:), allocatable wr2cmt
integer, dimension(maxatoms *maxspecies) idxis
complex(8), dimension(:), allocatable, target dvsbs
pure subroutine genmcph(wq, ev, a)
subroutine holdthd(nloop, nthd)
subroutine putephmat(iq, ik, ephmat)
integer, dimension(maxspecies) nrcmt
integer, dimension(maxspecies) nrcmti
subroutine findkpt(vpl, isym, ik)
real(8), dimension(:,:,:), allocatable wcrmt
real(8), dimension(:,:), pointer, contiguous vsmt
integer, dimension(maxspecies) nrmti
real(8), dimension(:,:), allocatable wphq
integer, dimension(:,:), allocatable ivk
integer, dimension(maxspecies) nrmt