14integer ist,jst,isym,ip
15integer is,ia,ias,js,jas
16integer nr,nri,np,i,n,nthd
20real(8),
allocatable :: gq(:,:),y(:)
21complex(8),
allocatable :: ev(:,:),a(:,:)
22complex(8),
allocatable :: dvmt(:,:,:),dvir(:,:)
23complex(8),
allocatable :: zfmt(:),gzfmt(:,:,:)
24complex(8),
allocatable :: ephmat(:,:,:)
26real(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")')
183deallocate(gq,y,ev,a,dvmt,dvir,zfmt,gzfmt)
subroutine dynev(dq, wq, ev)
subroutine findkpt(vpl, isym, ik)
subroutine genephmat(iq, ik, de, a, dvmt, dvir, ephmat)
pure subroutine genmcph(wq, ev, a)
subroutine gradzfmt(nr, nri, ri, wcr, zfmt, ld, gzfmt)
integer, dimension(maxspecies) nrmti
real(8), dimension(:,:,:), allocatable wcrmt
integer, dimension(maxspecies) nrmt
integer, dimension(maxspecies) natoms
integer, dimension(maxatoms, maxspecies) idxas
integer, dimension(maxspecies) nrcmt
integer, dimension(:,:), allocatable ivk
integer, dimension(maxatoms *maxspecies) idxis
real(8), dimension(:,:), allocatable wr2cmt
real(8), dimension(:,:), allocatable vql
real(8), dimension(:,:), pointer, contiguous vsmt
integer, dimension(maxspecies) npmt
real(8), dimension(:,:), allocatable vkl
integer, dimension(:,:,:), allocatable ivkik
integer, dimension(maxspecies) nrcmti
real(8), dimension(:,:,:), allocatable rlmt
real(8), dimension(:,:), allocatable evalsv
subroutine holdthd(nloop, nthd)
complex(8), dimension(:), allocatable dvsir
complex(8), dimension(:,:), pointer, contiguous dvsmt
complex(8), dimension(:,:,:), allocatable dynq
complex(8), dimension(:), allocatable, target dvsbs
real(8), dimension(:,:), allocatable wphq
subroutine putephmat(iq, ik, ephmat)
subroutine readdvs(iq, is, ia, ip, dvsmt, dvsir)
pure subroutine rtozfmt(nr, nri, rfmt, zfmt)
real(8) function sdelta(stype, x)
subroutine writegamma(gq)
subroutine writelambda(gq)
subroutine zfirftoc(zfir, zfirc)
pure subroutine zfmtftoc(nrc, nrci, zfmt, zfcmt)
pure subroutine zfmtwr(nr, nri, wr, zfmt)