13integer i1,j1,ist1,jst1
14integer iw,ioc,i,j,nthd
20real(8),
allocatable :: w(:)
21complex(8),
allocatable :: pmat(:,:,:),sigma(:,:,:),zv(:,:)
39open(140,file=
'EVBSE.OUT',form=
'UNFORMATTED',action=
'READ',status=
'OLD', &
43 write(*,
'("Error(dielectric_bse): error opening EVBSE.OUT")')
48if (
nmbse /= nmbse_)
then
50 write(*,
'("Error(dielectric_bse): differing nmbse")')
51 write(*,
'(" current : ",I6)')
nmbse
52 write(*,
'(" EVBSE.OUT : ",I6)') nmbse_
95 zv(1:3,a2)=zv(1:3,a2)+z1*pmat(ist1,jst1,1:3)
104 if (abs(e) > 1.d-8)
then
107 z1=zv(i,a2)*conjg(zv(j,a2))/e
108 sigma(i,j,:)=sigma(i,j,:)+z1/(w(:)-e+eta)+conjg(z1)/(w(:)+e+eta)
117sigma(:,:,:)=z1*sigma(:,:,:)
124 write(fname,
'("EPSILON_BSE_",2I1,".OUT")') i,j
125 open(50,file=trim(fname),form=
'FORMATTED')
127 t2=t1-
fourpi*aimag(sigma(i,j,iw)/(w(iw)+eta))
128 write(50,
'(2G18.10)') w(iw),t2
132 t2=
fourpi*dble(sigma(i,j,iw)/(w(iw)+eta))
133 write(50,
'(2G18.10)') w(iw),t2
138write(*,
'("Info(dielectric_bse):")')
139write(*,
'(" dielectric tensor written to EPSILON_BSE_ij.OUT")')
140write(*,
'(" for components")')
142 write(*,
'(" i = ",I1,", j = ",I1)')
optcomp(1:2,ioc)
145call writetest(187,
'BSE optical conductivity',nv=
nwplot,tol=1.d-2,zva=sigma)
146deallocate(w,pmat,sigma,zv)
subroutine dielectric_bse
subroutine getevalsv(fext, ikp, vpl, evalsv_)
subroutine getpmat(vpl, pmat)
integer, dimension(:,:), allocatable istbse
integer, dimension(3, 27) optcomp
integer, dimension(:,:), allocatable ivk
complex(8), dimension(:,:), allocatable hmlbse
real(8), parameter fourpi
real(8), dimension(2) wplot
integer, dimension(:,:,:), allocatable ijkbse
integer, dimension(:,:), allocatable jstbse
real(8), dimension(:), allocatable evalbse
real(8), dimension(:,:), allocatable vkl
integer, dimension(:,:,:), allocatable ivkik
real(8), dimension(:,:), allocatable evalsv
subroutine holdthd(nloop, nthd)
subroutine writetest(id, descr, nv, iv, iva, tol, rv, rva, zv, zva)