mirror of https://gitlab.com/QEF/q-e.git
61 lines
2.0 KiB
Fortran
61 lines
2.0 KiB
Fortran
!
|
|
! Copyright (C) 2001-2013 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 .
|
|
!
|
|
!
|
|
|
|
!these subroutines allocate and deallocate what's needed for the wannier functions
|
|
|
|
|
|
subroutine allocate_wannier
|
|
|
|
|
|
USE wannier_gw, ONLY : wannier_centers, wannier_radii, u_trans, w_centers, w_radii, becp_gw, becp_gw_c, vg_q
|
|
USE wvfct, ONLY : nbnd, npw,npwx
|
|
USE uspp, ONLY : okvan,nkb
|
|
USE lsda_mod, ONLY : nspin
|
|
|
|
|
|
implicit none
|
|
|
|
|
|
allocate(wannier_centers(3,nbnd,nspin))
|
|
allocate(wannier_radii(nbnd,nspin))
|
|
allocate(u_trans(nbnd,nbnd,nspin))
|
|
allocate(w_centers(3,nbnd,nspin))
|
|
allocate(w_radii(nbnd,nspin))
|
|
if(okvan) then
|
|
allocate(becp_gw(nkb,nbnd,nspin))
|
|
allocate(becp_gw_c(nkb,nbnd,nspin))
|
|
endif
|
|
allocate(vg_q(npwx))
|
|
|
|
|
|
return
|
|
end subroutine allocate_wannier
|
|
|
|
subroutine deallocate_wannier
|
|
|
|
USE wannier_gw, ONLY : wannier_centers, wannier_radii, u_trans, w_centers, w_radii, becp_gw, &
|
|
& becp_gw_c, vg_q
|
|
|
|
implicit none
|
|
|
|
if(allocated(wannier_centers)) deallocate(wannier_centers)
|
|
if(allocated(wannier_radii)) deallocate(wannier_radii)
|
|
if(allocated(u_trans)) deallocate(u_trans)
|
|
if(allocated(w_centers)) deallocate(w_centers)
|
|
if(allocated(w_radii)) deallocate(w_radii)
|
|
if(allocated(becp_gw)) deallocate(becp_gw)
|
|
if(allocated(becp_gw_c)) deallocate(becp_gw_c)
|
|
if(allocated(vg_q)) deallocate(vg_q)
|
|
|
|
|
|
return
|
|
|
|
end subroutine deallocate_wannier
|
|
|