13 integer i1,j1,ist1,jst1
14 integer iw,ioc,i,j,nthd
20 real(8),
allocatable :: w(:)
21 complex(8),
allocatable :: pmat(:,:,:),sigma(:,:,:),zv(:,:)
39 open(140,file=
'EVBSE.OUT',form=
'UNFORMATTED',action=
'READ',status=
'OLD', &
43 write(*,
'("Error(dielectric_bse): error opening EVBSE.OUT")')
48 if (
nmbse /= nmbse_)
then 50 write(*,
'("Error(dielectric_bse): differing nmbse")')
51 write(*,
'(" current : ",I6)')
nmbse 52 write(*,
'(" EVBSE.OUT : ",I6)') nmbse_
67 allocate(sigma(3,3,
nwplot))
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)
117 sigma(:,:,:)=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
138 write(*,
'("Info(dielectric_bse):")')
139 write(*,
'(" dielectric tensor written to EPSILON_BSE_ij.OUT")')
140 write(*,
'(" for components")')
142 write(*,
'(" i = ",I1,", j = ",I1)')
optcomp(1:2,ioc)
145 call writetest(187,
'BSE optical conductivity',nv=
nwplot,tol=1.d-2,zva=sigma)
146 deallocate(w,pmat,sigma,zv)
subroutine writetest(id, descr, nv, iv, iva, tol, rv, rva, zv, zva)
real(8), dimension(:,:), allocatable evalsv
subroutine getevalsv(fext, ikp, vpl, evalsv_)
subroutine getpmat(vpl, pmat)
integer, dimension(:,:,:), allocatable ijkbse
integer, dimension(:,:,:), allocatable ivkik
integer, dimension(:,:), allocatable jstbse
real(8), dimension(2) wplot
integer, dimension(3, 27) optcomp
real(8), dimension(:,:), allocatable vkl
subroutine dielectric_bse
subroutine holdthd(nloop, nthd)
complex(8), dimension(:,:), allocatable hmlbse
real(8), parameter fourpi
real(8), dimension(:), allocatable evalbse
integer, dimension(:,:), allocatable ivk
integer, dimension(:,:), allocatable istbse