mirror of https://gitlab.com/QEF/q-e.git
54 lines
1.5 KiB
Fortran
54 lines
1.5 KiB
Fortran
!
|
|
! Copyright (C) 2001-2008 Quantum ESPRESSO group
|
|
! This file is distributed under the terms of the
|
|
! GNU General Public License. See the file `License'
|
|
! in the root directory of the present distribution,
|
|
! or http://www.gnu.org/copyleft/gpl.txt .
|
|
!
|
|
!-----------------------------------------------------------------------
|
|
subroutine set_dvscf (dvscfs)
|
|
!-----------------------------------------------------------------------
|
|
!
|
|
! Read the variation of the charge and
|
|
! calculates the local part of the scf potential
|
|
!
|
|
|
|
use kinds, only : DP
|
|
USE gvect, ONLY : nrxx
|
|
USE gsmooth, ONLY : nrxxs, doublegrid
|
|
USE lsda_mod,ONLY : nspin
|
|
USE units_ph, ONLY : iudrho, lrdrho
|
|
USE output, ONLY : fildrho
|
|
implicit none
|
|
|
|
complex(DP) :: dvscfs (nrxxs,3)
|
|
complex(DP) , allocatable :: derho (:,:)
|
|
integer :: ipl
|
|
! counter on the polarizations
|
|
|
|
allocate (derho ( nrxx, nspin))
|
|
|
|
if ( fildrho.eq.' ') call errore ('set_dvscf','where is fildrho?',1)
|
|
!
|
|
do ipl = 1, 3
|
|
!
|
|
! read from file the variation of the charge
|
|
!
|
|
call davcio_drho (derho (1, 1), lrdrho, iudrho, ipl, -1)
|
|
!
|
|
! Calculates the local part of the scf potential
|
|
!
|
|
call dv_of_drho (0, derho (1, 1), .false.)
|
|
!
|
|
if (doublegrid) then
|
|
call cinterpolate (derho (1, 1), dvscfs (1, ipl), -1)
|
|
else
|
|
call zcopy (nrxx, derho (1, 1), 1, dvscfs (1, ipl), 1)
|
|
endif
|
|
end do
|
|
|
|
deallocate (derho)
|
|
|
|
return
|
|
end subroutine set_dvscf
|