## File: dpotcoul.f90

package info (click to toggle)
elkcode 5.4.24-2
 `12345678910111213141516171819202122232425262728293031323334353637383940` `````` ! Copyright (C) 2011 J. K. Dewhurst, S. Sharma and E. K. U. Gross. ! This file is distributed under the terms of the GNU General Public License. ! See the file COPYING for license details. subroutine dpotcoul use modmain use modphonon implicit none ! local variables integer nr,nri,ir,np,i ! allocatable arrays complex(8), allocatable :: zfmt(:),gzfmt(:,:) nr=nrmt(isph) nri=nrmti(isph) np=npmt(isph) ! solve the complex Poisson's equation in the muffin-tins call genzvclmt(nrmt,nrmti,nrspmax,rsp,npmtmax,drhomt,dvclmt) ! calculate the gradient of the monopole potential allocate(zfmt(npmtmax),gzfmt(npmtmax,3)) zfmt(1:np)=0.d0 i=1 do ir=1,nri zfmt(i)=vcln(ir,isph) i=i+lmmaxi end do do ir=nri+1,nr zfmt(i)=vcln(ir,isph) i=i+lmmaxo end do call gradzfmt(nr,nri,rsp(:,isph),zfmt,npmtmax,gzfmt) ! subtract gradient component corresponding to the phonon polarisation dvclmt(1:np,iasph)=dvclmt(1:np,iasph)-gzfmt(1:np,ipph) deallocate(zfmt,gzfmt) ! solve Poisson's equation in the entire unit cell call zpotcoul(nrmt,nrmti,npmt,npmti,nrspmax,rsp,ngridg,igfft,ngvec,gqc,gclgq, & ngvec,jlgqrmt,ylmgq,sfacgq,drhoir,npmtmax,dvclmt,dvclir) return end subroutine ``````