15 integer i1,i2,i3,i,lp,nthd
19 real(8) xrk(nkptnr),xmk(ndmag,nkptnr)
23 complex(8),
allocatable :: evecsv(:,:),evecsvt(:,:)
25 complex(8),
external :: zdotc
34 allocate(evecsv(nstsv,nstsv),evecsvt(nstsv,nstsv))
51 z1=zdotc(nstsv,evecsv(:,jst),1,evecsvt(:,ist),1)
52 zv(1:nstsv)=zv(1:nstsv)+z1*evecsv(1:nstsv,jst)
57 t1=dble(zdotc(
nstfv,zv,1,zv,1))
58 t2=dble(zdotc(
nstfv,zv(i),1,zv(i),1))
60 xmk(ndmag,ik)=xmk(ndmag,ik)+t1-t2
62 z1=zdotc(
nstfv,zv,1,zv(i),1)
63 xmk(1,ik)=xmk(1,ik)+2.d0*z1%re
64 xmk(2,ik)=xmk(2,ik)+2.d0*z1%im
67 xrk(ik)=xrk(ik)+
occmax*dble(zdotc(nstsv,zv,1,zv,1))
72 deallocate(evecsv,evecsvt)
79 call mpi_bcast(xrk(ik),1,mpi_double_precision,lp,
mpicom,
ierror)
80 call mpi_bcast(xmk(:,ik),3,mpi_double_precision,lp,
mpicom,
ierror)
84 xchg=sum(
wkpt(1:nkptnr)*xrk(1:nkptnr))
87 write(fext,
'("_TS",I8.8,".OUT")')
itimes 89 open(50,file=
'XRHOK'//trim(fext),form=
'FORMATTED',action=
'WRITE')
91 open(51,file=
'XMAGK'//trim(fext),form=
'FORMATTED',action=
'WRITE')
97 write(50,
'(I6,4G18.10)') ik,
vkl(:,ik),xrk(ik)
99 write(51,
'(I6,6G18.10)') ik,
vkl(:,ik),xmk(:,ik)
108 open(50,file=
'XCHARGE_TD.OUT',form=
'FORMATTED',position=
'APPEND')
subroutine getevecsv(fext, ikp, vpl, evecsv)
real(8), dimension(:,:), allocatable evalsv
integer, dimension(:,:,:), allocatable ivkik
real(8), dimension(:), allocatable wkpt
integer, dimension(3) ngridk
real(8), dimension(:,:), allocatable vkl
subroutine delfile(fname)
real(8), dimension(:), allocatable times
subroutine holdthd(nloop, nthd)
integer, dimension(:,:), allocatable ivk
integer, dimension(:,:,:), allocatable ivkiknr