Commit c24c1cf6 authored by Gregor Michalicek's avatar Gregor Michalicek

Eliminate loddop calls in Wannier subroutines

parent 364d7038
...@@ -581,7 +581,7 @@ CONTAINS ...@@ -581,7 +581,7 @@ CONTAINS
INQUIRE (file='wann_inp',exist=input%l_wann) INQUIRE (file='wann_inp',exist=input%l_wann)
IF ((input%l_wann).AND.(.NOT.wann%l_bs_comf)) THEN IF ((input%l_wann).AND.(.NOT.wann%l_bs_comf)) THEN
CALL wannier(DIMENSION,mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,& CALL wannier(DIMENSION,mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,&
wann,noco,cell,enpara,banddos,sliceplot,results,& wann,noco,cell,enpara,banddos,sliceplot,vTot,results,&
eig_idList,(sym%invs).AND.(.NOT.noco%l_noco),kpts%nkpt) eig_idList,(sym%invs).AND.(.NOT.noco%l_noco),kpts%nkpt)
END IF END IF
IF (wann%l_gwf) CALL juDFT_error("provide wann_inp if l_gwf=T", calledby = "fleur") IF (wann%l_gwf) CALL juDFT_error("provide wann_inp if l_gwf=T", calledby = "fleur")
......
...@@ -843,9 +843,9 @@ CONTAINS ...@@ -843,9 +843,9 @@ CONTAINS
ENDIF ! mpi%irank == 0 ENDIF ! mpi%irank == 0
#ifdef CPP_MPI #ifdef CPP_MPI
CALL mpi_bc_pot(mpi,stars,sphhar,atoms,input,vacuum,vTot%iter,vTot%mt,vTot%pw,vTot%vacz,vTot%vacxy) CALL mpi_bc_pot(mpi,stars,sphhar,atoms,input,vacuum,vTot%iter,vTot%mt,vTot%pw,vTot%vacz,vTot%vacxy)
CALL mpi_bc_pot(mpi,stars,sphhar,atoms,input,vacuum,vCoul%iter,vCoul%mt,vCoul%pw,vCoul%vacz,vCoul%vacxy) CALL mpi_bc_pot(mpi,stars,sphhar,atoms,input,vacuum,vCoul%iter,vCoul%mt,vCoul%pw,vCoul%vacz,vCoul%vacxy)
CALL mpi_bc_potden(mpi,stars,sphhar,atoms,input,vacuum,oneD,noco,vx) CALL mpi_bc_potden(mpi,stars,sphhar,atoms,input,vacuum,oneD,noco,vx)
#endif #endif
END SUBROUTINE vgen END SUBROUTINE vgen
......
...@@ -20,7 +20,7 @@ c*******************************************c ...@@ -20,7 +20,7 @@ c*******************************************c
CONTAINS CONTAINS
SUBROUTINE wann_uHu( SUBROUTINE wann_uHu(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,banddos, > DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,banddos,
> oneD,noco,cell,wann, > oneD,noco,cell,vTot,wann,
> eig_idList,l_real,l_dulo,l_noco,l_ss,lmaxd,ntypd, > eig_idList,l_real,l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype, > neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
> omtil,nlo,llo,lapw_l,invtab,mrot,ngopr,neq,lmax, > omtil,nlo,llo,lapw_l,invtab,mrot,ngopr,neq,lmax,
...@@ -43,7 +43,6 @@ c*******************************************c ...@@ -43,7 +43,6 @@ c*******************************************c
use m_radfun use m_radfun
use m_radflo use m_radflo
use m_cdnread use m_cdnread
use m_loddop
use m_constants, only : pimach use m_constants, only : pimach
use m_wann_projmethod use m_wann_projmethod
use m_wann_abinv use m_wann_abinv
...@@ -83,6 +82,7 @@ c*******************************************c ...@@ -83,6 +82,7 @@ c*******************************************c
TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
TYPE(t_wann),INTENT(INOUT) :: wann TYPE(t_wann),INTENT(INOUT) :: wann
c ..scalar arguments.. c ..scalar arguments..
...@@ -147,7 +147,7 @@ c ..allocatable arrays.. ...@@ -147,7 +147,7 @@ c ..allocatable arrays..
INTEGER, ALLOCATABLE :: innerEig_idList(:) INTEGER, ALLOCATABLE :: innerEig_idList(:)
real, allocatable :: we(:),we_b(:),we_b2(:) real, allocatable :: we(:),we_b(:),we_b2(:)
real, allocatable :: eigg(:) real, allocatable :: eigg(:)
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:) real, allocatable :: vr(:,:,:),vz(:,:,:)
real, allocatable :: flo(:,:,:,:,:) real, allocatable :: flo(:,:,:,:,:)
real, allocatable :: ff(:,:,:,:,:),gg(:,:,:,:,:) real, allocatable :: ff(:,:,:,:,:),gg(:,:,:,:,:)
real, allocatable :: us(:,:,:),uds(:,:,:),ulos(:,:,:) real, allocatable :: us(:,:,:),uds(:,:,:),ulos(:,:,:)
...@@ -470,28 +470,26 @@ c********************************************************* ...@@ -470,28 +470,26 @@ c*********************************************************
allocate ( vpw(n3d,4),vzxy(nmzxyd,odi%n2d-1,2,4) ) allocate ( vpw(n3d,4),vzxy(nmzxyd,odi%n2d-1,2,4) )
endif endif
allocate ( vz(nmzd,2,4) ) allocate (vz(nmzd,2,4))
allocate ( vrf(jmtd,0:nlhd,ntypd,jspd) ) allocate (vr(jmtd,ntypd,jspd))
allocate ( vr(jmtd,ntypd,jspd) )
open (8,file='pottot',form='unformatted',status='old') vpw(:,1:SIZE(vTot%pw,2)) = vTot%pw(:,1:SIZE(vTot%pw,2))
rewind (8) IF(film) THEN
vz(:,:,1:SIZE(vTot%vacz,3)) =
call loddop(stars,vacuum,atoms,sphhar,input,sym, & vTot%vacz(:,:,1:SIZE(vTot%vacz,3))
> 8, vzxy(:,:,:,1:SIZE(vTot%vacxy,4)) =
< iter,vrf,vpw,vz,vzxy) & vTot%vacxy(:,:,:,1:SIZE(vTot%vacxy,4))
END IF
close (8)
do jspin = 1,jspins do jspin = 1,jspins
do n = 1, ntype do n = 1, ntype
do j = 1,jri(n) do j = 1,jri(n)
vr(j,n,jspin) = vrf(j,0,n,jspin) vr(j,n,jspin) = vTot%mt(j,0,n,jspin)
enddo enddo
enddo enddo
enddo enddo
if(.not. film) deallocate(vz,vzxy) if(.not.film) deallocate(vz,vzxy)
if(l_noco)then if(l_noco)then
npotmatfile=25 npotmatfile=25
...@@ -885,7 +883,7 @@ c na = na + neq(n) ...@@ -885,7 +883,7 @@ c na = na + neq(n)
> memd,nlhd,ntypsd,ntypd,jmtd,lmaxd,jspd,ntype,dx, > memd,nlhd,ntypsd,ntypd,jmtd,lmaxd,jspd,ntype,dx,
> rmsh,jri,lmax,ntypsy,natd,lnonsph,lmd,lmplmd,clnu, > rmsh,jri,lmax,ntypsy,natd,lnonsph,lmd,lmplmd,clnu,
> mlh,nmem,llh,nlh,neq,irank,mlotot,mlolotot, > mlh,nmem,llh,nlh,neq,irank,mlotot,mlolotot,
> vrf(:,:,:,jspin3),nlod,llod,loplod,ello(1,1,jspin3), > vTot%mt(:,:,:,jspin3),nlod,llod,loplod,ello(1,1,jspin3),
> llo,nlo,lo1l,l_dulo,ulo_der,ff(:,:,:,:,jspin), > llo,nlo,lo1l,l_dulo,ulo_der,ff(:,:,:,:,jspin),
> gg(:,:,:,:,jspin),flo(:,:,:,:,jspin), > gg(:,:,:,:,jspin),flo(:,:,:,:,jspin),
> ff(:,:,:,:,jspin_b),gg(:,:,:,:,jspin_b), > ff(:,:,:,:,jspin_b),gg(:,:,:,:,jspin_b),
...@@ -1474,7 +1472,7 @@ c************************************************c ...@@ -1474,7 +1472,7 @@ c************************************************c
if(allocated(vpw)) deallocate(vpw) if(allocated(vpw)) deallocate(vpw)
if(allocated(vzxy)) deallocate(vzxy) if(allocated(vzxy)) deallocate(vzxy)
if(allocated(vz)) deallocate(vz) if(allocated(vz)) deallocate(vz)
deallocate(vrf,vr) deallocate(vr)
deallocate(tdd,tdu,tud,tuu) deallocate(tdd,tdu,tud,tuu)
deallocate(tdulo,tuulo) deallocate(tdulo,tuulo)
deallocate(tulou,tulod) deallocate(tulou,tulod)
......
...@@ -20,7 +20,7 @@ c*******************************************c ...@@ -20,7 +20,7 @@ c*******************************************c
CONTAINS CONTAINS
SUBROUTINE wann_uHu_dmi( SUBROUTINE wann_uHu_dmi(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,banddos, > DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,banddos,
> oneD,noco,cell,wann, > oneD,noco,cell,vTot,wann,
> eig_idList,l_real,l_dulo,l_noco,l_ss,lmaxd,ntypd, > eig_idList,l_real,l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype, > neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
> omtil,nlo,llo,lapw_l,invtab,mrot,ngopr,neq,lmax, > omtil,nlo,llo,lapw_l,invtab,mrot,ngopr,neq,lmax,
...@@ -44,7 +44,6 @@ c*******************************************c ...@@ -44,7 +44,6 @@ c*******************************************c
use m_radflo use m_radflo
use m_cdnread use m_cdnread
use m_types use m_types
use m_loddop
use m_constants, only : pimach use m_constants, only : pimach
use m_wann_projmethod use m_wann_projmethod
use m_wann_abinv use m_wann_abinv
...@@ -84,6 +83,7 @@ c*******************************************c ...@@ -84,6 +83,7 @@ c*******************************************c
TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
TYPE(t_wann),INTENT(INOUT) :: wann TYPE(t_wann),INTENT(INOUT) :: wann
c ..scalar arguments.. c ..scalar arguments..
...@@ -148,7 +148,7 @@ c ..allocatable arrays.. ...@@ -148,7 +148,7 @@ c ..allocatable arrays..
INTEGER, ALLOCATABLE :: innerEig_idList(:) INTEGER, ALLOCATABLE :: innerEig_idList(:)
real, allocatable :: we(:),we_b(:),we_b2(:) real, allocatable :: we(:),we_b(:),we_b2(:)
real, allocatable :: eigg(:) real, allocatable :: eigg(:)
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:) real, allocatable :: vr(:,:,:),vz(:,:,:)
real, allocatable :: flo(:,:,:,:,:) real, allocatable :: flo(:,:,:,:,:)
real, allocatable :: ff(:,:,:,:,:),gg(:,:,:,:,:) real, allocatable :: ff(:,:,:,:,:),gg(:,:,:,:,:)
real, allocatable :: us(:,:,:),uds(:,:,:),ulos(:,:,:) real, allocatable :: us(:,:,:),uds(:,:,:),ulos(:,:,:)
...@@ -474,28 +474,26 @@ c********************************************************* ...@@ -474,28 +474,26 @@ c*********************************************************
allocate ( vpw(n3d,4),vzxy(nmzxyd,odi%n2d-1,2,4) ) allocate ( vpw(n3d,4),vzxy(nmzxyd,odi%n2d-1,2,4) )
endif endif
allocate ( vz(nmzd,2,4) ) allocate (vz(nmzd,2,4))
allocate ( vrf(jmtd,0:nlhd,ntypd,jspd) ) allocate (vr(jmtd,ntypd,jspd))
allocate ( vr(jmtd,ntypd,jspd) )
open (8,file='pottot',form='unformatted',status='old') vpw(:,1:SIZE(vTot%pw,2)) = vTot%pw(:,1:SIZE(vTot%pw,2))
rewind (8) IF(film) THEN
vz(:,:,1:SIZE(vTot%vacz,3)) =
call loddop(stars,vacuum,atoms,sphhar,input,sym, & vTot%vacz(:,:,1:SIZE(vTot%vacz,3))
> 8, vzxy(:,:,:,1:SIZE(vTot%vacxy,4)) =
< iter,vrf,vpw,vz,vzxy) & vTot%vacxy(:,:,:,1:SIZE(vTot%vacxy,4))
END IF
close (8)
do jspin = 1,jspins do jspin = 1,jspins
do n = 1, ntype do n = 1, ntype
do j = 1,jri(n) do j = 1,jri(n)
vr(j,n,jspin) = vrf(j,0,n,jspin) vr(j,n,jspin) = vTot%mt(j,0,n,jspin)
enddo enddo
enddo enddo
enddo enddo
if(.not. film) deallocate(vz,vzxy) if(.not.film) deallocate(vz,vzxy)
if(l_noco)then if(l_noco)then
npotmatfile=25 npotmatfile=25
...@@ -850,7 +848,7 @@ c na = na + neq(n) ...@@ -850,7 +848,7 @@ c na = na + neq(n)
> memd,nlhd,ntypsd,ntypd,jmtd,lmaxd,jspd,ntype,dx, > memd,nlhd,ntypsd,ntypd,jmtd,lmaxd,jspd,ntype,dx,
> rmsh,jri,lmax,ntypsy,natd,lnonsph,lmd,lmplmd,clnu, > rmsh,jri,lmax,ntypsy,natd,lnonsph,lmd,lmplmd,clnu,
> mlh,nmem,llh,nlh,neq,irank,mlotot,mlolotot, > mlh,nmem,llh,nlh,neq,irank,mlotot,mlolotot,
> vrf(:,:,:,jspin3),nlod,llod,loplod,ello(1,1,jspin3), > vTot%mt(:,:,:,jspin3),nlod,llod,loplod,ello(1,1,jspin3),
> llo,nlo,lo1l,l_dulo,ulo_der,ff(:,:,:,:,jspin), > llo,nlo,lo1l,l_dulo,ulo_der,ff(:,:,:,:,jspin),
> gg(:,:,:,:,jspin),flo(:,:,:,:,jspin), > gg(:,:,:,:,jspin),flo(:,:,:,:,jspin),
> ff(:,:,:,:,jspin_b),gg(:,:,:,:,jspin_b), > ff(:,:,:,:,jspin_b),gg(:,:,:,:,jspin_b),
...@@ -1448,7 +1446,7 @@ c************************************************c ...@@ -1448,7 +1446,7 @@ c************************************************c
if(allocated(vpw)) deallocate(vpw) if(allocated(vpw)) deallocate(vpw)
if(allocated(vzxy)) deallocate(vzxy) if(allocated(vzxy)) deallocate(vzxy)
if(allocated(vz)) deallocate(vz) if(allocated(vz)) deallocate(vz)
deallocate(vrf,vr) deallocate(vr)
deallocate(tdd,tdu,tud,tuu) deallocate(tdd,tdu,tud,tuu)
deallocate(tdd_soc,tdu_soc,tud_soc,tuu_soc) deallocate(tdd_soc,tdu_soc,tud_soc,tuu_soc)
deallocate(tdulo,tuulo) deallocate(tdulo,tuulo)
......
...@@ -14,7 +14,7 @@ c****************************************************************** ...@@ -14,7 +14,7 @@ c******************************************************************
CONTAINS CONTAINS
SUBROUTINE wann_plot_um_dat( SUBROUTINE wann_plot_um_dat(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi, > DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,
> lapw,oneD,noco,cell,eig_id,l_real, > lapw,oneD,noco,cell,vTot,eig_id,l_real,
> mpi_comm,sortrule,band_min,band_max,l_soc, > mpi_comm,sortrule,band_min,band_max,l_soc,
> l_dulo,l_noco,l_ss,lmaxd, > l_dulo,l_noco,l_ss,lmaxd,
> ntypd, > ntypd,
...@@ -37,7 +37,6 @@ c****************************************************************** ...@@ -37,7 +37,6 @@ c******************************************************************
use m_radflo use m_radflo
use m_cdnread, only : cdn_read0 use m_cdnread, only : cdn_read0
use m_types use m_types
use m_loddop
use m_constants use m_constants
use m_wann_real use m_wann_real
use m_xsf_io use m_xsf_io
...@@ -70,6 +69,7 @@ c****************************************************************** ...@@ -70,6 +69,7 @@ c******************************************************************
TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
integer, intent (in) :: band_min(2),band_max(2),mpi_comm,eig_id integer, intent (in) :: band_min(2),band_max(2),mpi_comm,eig_id
logical, intent (in) :: l_soc,l_real logical, intent (in) :: l_soc,l_real
...@@ -132,9 +132,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc ...@@ -132,9 +132,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc
!!! the parameters for the number of wfs !!! the parameters for the number of wfs
integer :: nwfs integer :: nwfs
!!! the potential in the spheres and the vacuum !!! the potential in the spheres and the vacuum
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:) real, allocatable :: vr(:,:,:),vz(:,:,:)
!!! auxiliary potentials
complex, allocatable :: vpw(:,:),vzxy(:,:,:,:)
!!! bkpts data !!! bkpts data
integer :: nntot,ikpt_help integer :: nntot,ikpt_help
integer, allocatable :: gb(:,:,:),bpt(:,:) integer, allocatable :: gb(:,:,:),bpt(:,:)
...@@ -310,28 +308,18 @@ c WRITE(20,*) " filename='plot1' /" ...@@ -310,28 +308,18 @@ c WRITE(20,*) " filename='plot1' /"
cccccccccccccccc initialize the potential cccccccccccc cccccccccccccccc initialize the potential cccccccccccc
allocate ( vpw(n3d,jspd),vzxy(nmzxyd,odi%n2d-1,2,jspd) ) allocate (vz(nmzd,2,jspd))
allocate ( vz(nmzd,2,jspd),vrf(jmtd,0:nlhd,ntypd,jspd) ) allocate (vr(jmtd,ntypd,jspd))
allocate ( vr(jmtd,ntypd,jspd) )
open (8,file='pottot',form='unformatted',status='old') vz = vTot%vacz
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
do jspin = 1,jspins do jspin = 1,jspins
do n = 1, ntype do n = 1, ntype
do j = 1,jri(n) do j = 1,jri(n)
vr(j,n,jspin) = vrf(j,0,n,jspin) vr(j,n,jspin) = vTot%mt(j,0,n,jspin)
enddo enddo
enddo enddo
enddo enddo
deallocate ( vpw,vzxy,vrf )
cccccccccccccccc end of the potential part ccccccccccc cccccccccccccccc end of the potential part ccccccccccc
wannierspin=jspins wannierspin=jspins
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
contains contains
subroutine wann_postproc( subroutine wann_postproc(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi, > DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,
> lapw,oneD,noco,cell,eig_id,l_real, > lapw,oneD,noco,cell,vTot,eig_id,l_real,
> mpi_comm,wann,l_p0,film,jspins,n2d, > mpi_comm,wann,l_p0,film,jspins,n2d,
> natd,pos,amat,bmat,ntype,neq,zatom, > natd,pos,amat,bmat,ntype,neq,zatom,
> omtil,l_soc,l_noco,neigd,fullnkpts, > omtil,l_soc,l_noco,neigd,fullnkpts,
...@@ -78,6 +78,7 @@ c*********************************************** ...@@ -78,6 +78,7 @@ c***********************************************
TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
type(t_wann), intent(in) :: wann type(t_wann), intent(in) :: wann
logical, intent(in) :: l_p0 logical, intent(in) :: l_p0
...@@ -445,7 +446,7 @@ c > volint,symor,pos,ef,wann%l_bzsym,irecl) ...@@ -445,7 +446,7 @@ c > volint,symor,pos,ef,wann%l_bzsym,irecl)
if(wann%l_plot_umdat)then if(wann%l_plot_umdat)then
call wann_plot_um_dat( call wann_plot_um_dat(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi, > DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,
> lapw,oneD,noco,cell,eig_id,l_real, > lapw,oneD,noco,cell,vTot,eig_id,l_real,
> mpi_comm,i,wann%band_min,wann%band_max,l_soc, > mpi_comm,i,wann%band_min,wann%band_max,l_soc,
> l_dulo,l_noco,l_ss,lmaxd,ntypd, > l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype, > neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
...@@ -466,6 +467,7 @@ c > volint,symor,pos,ef,wann%l_bzsym,irecl) ...@@ -466,6 +467,7 @@ c > volint,symor,pos,ef,wann%l_bzsym,irecl)
call wannier_to_lapw( call wannier_to_lapw(
> mpi_comm,eig_id,l_real, > mpi_comm,eig_id,l_real,
> input,lapw,oneD,noco,sym,cell,atoms,stars,vacuum,sphhar, > input,lapw,oneD,noco,sym,cell,atoms,stars,vacuum,sphhar,
> vTot,
> l_soc,wann%unigrid,i,wann%band_min,wann%band_max, > l_soc,wann%unigrid,i,wann%band_min,wann%band_max,
> l_dulo,l_noco,l_ss,lmaxd,ntypd, > l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype, > neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
use m_juDFT use m_juDFT
CONTAINS CONTAINS
SUBROUTINE wann_updown( SUBROUTINE wann_updown(
> mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,noco,cell, > mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,noco,cell,vTot,
> enpara, > enpara,
> eig_id,l_real,mpi_comm,l_dulo,l_noco,l_ss,lmaxd,ntypd, > eig_id,l_real,mpi_comm,l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype, > neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
...@@ -40,7 +40,6 @@ c**************************************************************************** ...@@ -40,7 +40,6 @@ c****************************************************************************
use m_radfun use m_radfun
use m_radflo use m_radflo
use m_cdnread, only : cdn_read0, cdn_read use m_cdnread, only : cdn_read0, cdn_read
use m_loddop
use m_constants, only : pimach use m_constants, only : pimach
! use m_wann_mmk0_od_vac ! use m_wann_mmk0_od_vac
use m_wann_mmk0_vac use m_wann_mmk0_vac
...@@ -83,6 +82,7 @@ c**************************************************************************** ...@@ -83,6 +82,7 @@ c****************************************************************************
TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
TYPE(t_enpara),INTENT(IN) :: enpara TYPE(t_enpara),INTENT(IN) :: enpara
logical, intent (in) :: invs,invs2,film,slice,symor,l_real logical, intent (in) :: invs,invs2,film,slice,symor,l_real
...@@ -153,9 +153,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc ...@@ -153,9 +153,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc
!!! the parameters for the number of wfs !!! the parameters for the number of wfs
integer :: nwfs integer :: nwfs
!!! the potential in the spheres and the vacuum !!! the potential in the spheres and the vacuum
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:) real, allocatable :: vr(:,:,:),vz(:,:,:)
!!! auxiliary potentials
complex, allocatable :: vpw(:,:),vzxy(:,:,:,:)
!!! bkpts data !!! bkpts data
integer nntot,ikpt_help integer nntot,ikpt_help
integer, allocatable :: gb(:,:,:),bpt(:,:) integer, allocatable :: gb(:,:,:),bpt(:,:)
...@@ -368,28 +366,18 @@ c********************************************************* ...@@ -368,28 +366,18 @@ c*********************************************************
cccccccccccccccc initialize the potential cccccccccccc cccccccccccccccc initialize the potential cccccccccccc
c********************************************************* c*********************************************************
allocate ( vpw(n3d,jspd),vzxy(nmzxyd,odi%n2d-1,2,jspd) ) allocate (vz(nmzd,2,jspd))
allocate ( vz(nmzd,2,jspd),vrf(jmtd,0:nlhd,ntypd,jspd) ) allocate (vr(jmtd,ntypd,jspd))
allocate ( vr(jmtd,ntypd,jspd) )
open (8,file='pottot',form='unformatted',status='old') vz = vTot%vacz
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
do jspin = 1,jspins do jspin = 1,jspins
do n = 1, ntype do n = 1, ntype
do j = 1,jri(n) do j = 1,jri(n)
vr(j,n,jspin) = vrf(j,0,n,jspin) vr(j,n,jspin) = vTot%mt(j,0,n,jspin)
enddo enddo
enddo enddo
enddo enddo
deallocate ( vpw,vzxy )
cccccccccccccccc end of the potential part ccccccccccc cccccccccccccccc end of the potential part ccccccccccc
wannierspin=jspd wannierspin=jspd
...@@ -881,7 +869,7 @@ c...for the lapws and local orbitals, summed by the basis functions ...@@ -881,7 +869,7 @@ c...for the lapws and local orbitals, summed by the basis functions
> llod,jmtd,jspd,nlhd,soc_opt,neq, > llod,jmtd,jspd,nlhd,soc_opt,neq,
> ntype,theta,phi,jspins,irank, > ntype,theta,phi,jspins,irank,
> jri,lmax,dx,rmsh,epar,ello,nlo,llo, > jri,lmax,dx,rmsh,epar,ello,nlo,llo,
> l_dulo,ulo_der,vrf, > l_dulo,ulo_der,vTot%mt,
> acof,bcof,ccof, > acof,bcof,ccof,
< hsomtx(:,:,:,:,ikpt)) < hsomtx(:,:,:,:,ikpt))
endif endif
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
CONTAINS CONTAINS
SUBROUTINE wannier( SUBROUTINE wannier(
> DIMENSION,mpi,input,sym,atoms,stars,vacuum,sphhar,oneD, > DIMENSION,mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,
> wann,noco,cell,enpara,banddos,sliceplot,results, > wann,noco,cell,enpara,banddos,sliceplot,vTot,results,
> eig_idList,l_real,nkpt) > eig_idList,l_real,nkpt)
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c Makes necessary for the construction of the wannier functions c Makes necessary for the construction of the wannier functions
...@@ -64,7 +64,6 @@ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ...@@ -64,7 +64,6 @@ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
use m_radfun use m_radfun
use m_radflo use m_radflo
use m_cdnread use m_cdnread
use m_loddop
use m_constants use m_constants
use m_wann_mmk0_od_vac use m_wann_mmk0_od_vac
use m_wann_mmkb_od_vac use m_wann_mmkb_od_vac
...@@ -130,6 +129,7 @@ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc ...@@ -130,6 +129,7 @@ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
TYPE(t_enpara), INTENT(IN) :: enpara TYPE(t_enpara), INTENT(IN) :: enpara
TYPE(t_banddos), INTENT(IN) :: banddos TYPE(t_banddos), INTENT(IN) :: banddos
TYPE(t_sliceplot), INTENT(IN) :: sliceplot TYPE(t_sliceplot), INTENT(IN) :: sliceplot
TYPE(t_potden), INTENT(IN) :: vTot
TYPE(t_results), INTENT(IN) :: results TYPE(t_results), INTENT(IN) :: results
TYPE(t_wann), INTENT(INOUT) :: wann TYPE(t_wann), INTENT(INOUT) :: wann
...@@ -168,9 +168,9 @@ cccccccccccccccccc local variables cccccccccccccccccccc ...@@ -168,9 +168,9 @@ cccccccccccccccccc local variables cccccccccccccccccccc
!!! the parameters for the number of wfs !!! the parameters for the number of wfs
integer :: nwfs integer :: nwfs
!!! the potential in the spheres and the vacuum !!! the potential in the spheres and the vacuum