13 complex(8),
intent(out) :: dyn(3,natmtot)
15 integer ik,is,ias,jas,ip
19 complex(8) dynibs(3,natmtot)
21 complex(8),
allocatable :: zrhomt(:,:),zrhoir(:)
22 complex(8),
allocatable :: grhomt(:,:,:),grhoir(:,:)
23 complex(8),
allocatable :: zvclmt(:,:),zvclir(:)
24 complex(8),
allocatable :: gvclmt(:,:,:),gvclir(:,:)
25 complex(8),
allocatable :: zfmt(:),gvcln(:,:),gzfmt(:,:)
27 complex(8),
external :: zfmtinp
40 call gradzf(zrhomt,zrhoir,grhomt,grhoir)
48 zvclmt(1:
npmtmax,1:natmtot)=0.d0
53 call zpotcoul(jas,
nrmt,
nrmti,
npmt,
nrmtmax,
rlmt,
ngridg,
igfft,
ngvec,
gqc,
gclgq, &
71 zvclmt(1:
npmtmax,1:natmtot)=0.d0
74 call zpotcoul(
iasph,
nrmt,
nrmti,
npmt,
nrmtmax,
rlmt,
ngridg,
igfft,
ngvec,
gc,
gclg, &
82 z1=z1+zfmtinp(
nrmt(is),
nrmti(is),
wr2mt(:,is),grhomt(:,ias,ip),zvclmt(:,ias))
90 jas=merge(natmtot+1,ias,ias ==
iasph)
91 call gradzfmt(
nrmt(is),
nrmti(is),
rlmt(:,-1,is),
wcrmt(:,:,is),zvclmt(:,jas),&
101 if (ias ==
iasph) cycle
106 call gradzfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),
dvclmt(:,ias),
npmtmax,gzfmt)
107 dyn(1:3,ias)=
spzn(is)*gzfmt(1,1:3)*
y00 128 call mpi_allreduce(mpi_in_place,dynibs,3*natmtot,mpi_double_complex,mpi_sum, &
137 z1=zfmtinp(nr,nri,
wr2mt(:,is),grhomt(:,ias,ip),
dvsmt(:,ias))
138 dynibs(ip,ias)=dynibs(ip,ias)-z1
141 jas=merge(natmtot+1,ias,ias ==
iasph)
142 call gradzfmt(nr,nri,
rlmt(:,-1,is),
wcrmt(:,:,is),
drhomt(:,jas),
npmtmax,gzfmt)
146 z1=zfmtinp(nr,nri,
wr2mt(:,is),zfmt,gzfmt(:,ip))
147 dynibs(ip,ias)=dynibs(ip,ias)-z1
151 dyn(:,:)=dyn(:,:)+dynibs(:,:)
152 deallocate(zrhomt,zrhoir,grhomt,grhoir)
153 deallocate(zvclmt,zvclir,gvclmt,gvclir,zfmt,gzfmt)
complex(8), dimension(:,:), allocatable sfacg
integer, dimension(3) ngridg
real(8), dimension(:,:,:), allocatable jlgqrmt
complex(8), dimension(:,:), pointer, contiguous drhomt
real(8), dimension(:), pointer, contiguous rhoir
complex(8), dimension(:,:), allocatable dvclmt
real(8), dimension(:,:,:), allocatable rlmt
integer, dimension(maxspecies) npmt
subroutine gradzfmt(nr, nri, ri, wcr, zfmt, ld, gzfmt)
real(8), dimension(:,:), pointer, contiguous rhomt
pure subroutine rtozfmt(nr, nri, rfmt, zfmt)
complex(8), dimension(:,:), allocatable ylmg
integer, dimension(:), allocatable igfft
subroutine gradzvcln(is, gzfmt)
complex(8), dimension(:,:), pointer, contiguous dvsmt
subroutine zpotcoul(iash, nrmt_, nrmti_, npmt_, ld1, rl, ngridg_, igfft_, ngp, gpc, gclgp, ld2, jlgprmt, ylmgp, sfacgp, ld3, zvclmt, zvclir)
real(8), dimension(:), allocatable cfunir
subroutine dforcek(ik, dynibs)
integer, dimension(maxatoms *maxspecies) idxis
subroutine gradzf(zfmt, zfir, gzfmt, gzfir)
real(8), dimension(:,:,:), allocatable jlgrmt
real(8), dimension(:), allocatable gclg
complex(8), dimension(:), pointer, contiguous drhoir
real(8), dimension(:), allocatable gc
complex(8), dimension(:,:), allocatable sfacgq
subroutine holdthd(nloop, nthd)
real(8), dimension(maxspecies) spzn
real(8), dimension(:,:,:), allocatable wcrmt
real(8), dimension(:), allocatable gqc
real(8), dimension(:,:), pointer, contiguous vsmt
integer, dimension(maxspecies) nrmti
real(8), dimension(:), allocatable gclgq
complex(8), dimension(:,:), allocatable ylmgq
real(8), dimension(:,:), allocatable wr2mt
integer, dimension(maxspecies) nrmt