Commit c24c1cf6 authored by Gregor Michalicek's avatar Gregor Michalicek

Eliminate loddop calls in Wannier subroutines

parent 364d7038
......@@ -581,7 +581,7 @@ CONTAINS
INQUIRE (file='wann_inp',exist=input%l_wann)
IF ((input%l_wann).AND.(.NOT.wann%l_bs_comf)) THEN
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)
END IF
IF (wann%l_gwf) CALL juDFT_error("provide wann_inp if l_gwf=T", calledby = "fleur")
......
......@@ -843,9 +843,9 @@ CONTAINS
ENDIF ! mpi%irank == 0
#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,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_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_potden(mpi,stars,sphhar,atoms,input,vacuum,oneD,noco,vx)
#endif
END SUBROUTINE vgen
......
......@@ -20,7 +20,7 @@ c*******************************************c
CONTAINS
SUBROUTINE wann_uHu(
> 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,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
> omtil,nlo,llo,lapw_l,invtab,mrot,ngopr,neq,lmax,
......@@ -43,7 +43,6 @@ c*******************************************c
use m_radfun
use m_radflo
use m_cdnread
use m_loddop
use m_constants, only : pimach
use m_wann_projmethod
use m_wann_abinv
......@@ -83,6 +82,7 @@ c*******************************************c
TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
TYPE(t_wann),INTENT(INOUT) :: wann
c ..scalar arguments..
......@@ -147,7 +147,7 @@ c ..allocatable arrays..
INTEGER, ALLOCATABLE :: innerEig_idList(:)
real, allocatable :: we(:),we_b(:),we_b2(:)
real, allocatable :: eigg(:)
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:)
real, allocatable :: vr(:,:,:),vz(:,:,:)
real, allocatable :: flo(:,:,:,:,:)
real, allocatable :: ff(:,:,:,:,:),gg(:,:,:,:,:)
real, allocatable :: us(:,:,:),uds(:,:,:),ulos(:,:,:)
......@@ -470,28 +470,26 @@ c*********************************************************
allocate ( vpw(n3d,4),vzxy(nmzxyd,odi%n2d-1,2,4) )
endif
allocate ( vz(nmzd,2,4) )
allocate ( vrf(jmtd,0:nlhd,ntypd,jspd) )
allocate ( vr(jmtd,ntypd,jspd) )
allocate (vz(nmzd,2,4))
allocate (vr(jmtd,ntypd,jspd))
open (8,file='pottot',form='unformatted',status='old')
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
vpw(:,1:SIZE(vTot%pw,2)) = vTot%pw(:,1:SIZE(vTot%pw,2))
IF(film) THEN
vz(:,:,1:SIZE(vTot%vacz,3)) =
& vTot%vacz(:,:,1:SIZE(vTot%vacz,3))
vzxy(:,:,:,1:SIZE(vTot%vacxy,4)) =
& vTot%vacxy(:,:,:,1:SIZE(vTot%vacxy,4))
END IF
do jspin = 1,jspins
do n = 1, ntype
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
if(.not. film) deallocate(vz,vzxy)
if(.not.film) deallocate(vz,vzxy)
if(l_noco)then
npotmatfile=25
......@@ -885,7 +883,7 @@ c na = na + neq(n)
> memd,nlhd,ntypsd,ntypd,jmtd,lmaxd,jspd,ntype,dx,
> rmsh,jri,lmax,ntypsy,natd,lnonsph,lmd,lmplmd,clnu,
> 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),
> gg(:,:,:,:,jspin),flo(:,:,:,:,jspin),
> ff(:,:,:,:,jspin_b),gg(:,:,:,:,jspin_b),
......@@ -1474,7 +1472,7 @@ c************************************************c
if(allocated(vpw)) deallocate(vpw)
if(allocated(vzxy)) deallocate(vzxy)
if(allocated(vz)) deallocate(vz)
deallocate(vrf,vr)
deallocate(vr)
deallocate(tdd,tdu,tud,tuu)
deallocate(tdulo,tuulo)
deallocate(tulou,tulod)
......
......@@ -20,7 +20,7 @@ c*******************************************c
CONTAINS
SUBROUTINE wann_uHu_dmi(
> 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,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
> omtil,nlo,llo,lapw_l,invtab,mrot,ngopr,neq,lmax,
......@@ -44,7 +44,6 @@ c*******************************************c
use m_radflo
use m_cdnread
use m_types
use m_loddop
use m_constants, only : pimach
use m_wann_projmethod
use m_wann_abinv
......@@ -84,6 +83,7 @@ c*******************************************c
TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
TYPE(t_wann),INTENT(INOUT) :: wann
c ..scalar arguments..
......@@ -148,7 +148,7 @@ c ..allocatable arrays..
INTEGER, ALLOCATABLE :: innerEig_idList(:)
real, allocatable :: we(:),we_b(:),we_b2(:)
real, allocatable :: eigg(:)
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:)
real, allocatable :: vr(:,:,:),vz(:,:,:)
real, allocatable :: flo(:,:,:,:,:)
real, allocatable :: ff(:,:,:,:,:),gg(:,:,:,:,:)
real, allocatable :: us(:,:,:),uds(:,:,:),ulos(:,:,:)
......@@ -474,28 +474,26 @@ c*********************************************************
allocate ( vpw(n3d,4),vzxy(nmzxyd,odi%n2d-1,2,4) )
endif
allocate ( vz(nmzd,2,4) )
allocate ( vrf(jmtd,0:nlhd,ntypd,jspd) )
allocate ( vr(jmtd,ntypd,jspd) )
allocate (vz(nmzd,2,4))
allocate (vr(jmtd,ntypd,jspd))
open (8,file='pottot',form='unformatted',status='old')
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
vpw(:,1:SIZE(vTot%pw,2)) = vTot%pw(:,1:SIZE(vTot%pw,2))
IF(film) THEN
vz(:,:,1:SIZE(vTot%vacz,3)) =
& vTot%vacz(:,:,1:SIZE(vTot%vacz,3))
vzxy(:,:,:,1:SIZE(vTot%vacxy,4)) =
& vTot%vacxy(:,:,:,1:SIZE(vTot%vacxy,4))
END IF
do jspin = 1,jspins
do n = 1, ntype
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
if(.not. film) deallocate(vz,vzxy)
if(.not.film) deallocate(vz,vzxy)
if(l_noco)then
npotmatfile=25
......@@ -850,7 +848,7 @@ c na = na + neq(n)
> memd,nlhd,ntypsd,ntypd,jmtd,lmaxd,jspd,ntype,dx,
> rmsh,jri,lmax,ntypsy,natd,lnonsph,lmd,lmplmd,clnu,
> 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),
> gg(:,:,:,:,jspin),flo(:,:,:,:,jspin),
> ff(:,:,:,:,jspin_b),gg(:,:,:,:,jspin_b),
......@@ -1448,7 +1446,7 @@ c************************************************c
if(allocated(vpw)) deallocate(vpw)
if(allocated(vzxy)) deallocate(vzxy)
if(allocated(vz)) deallocate(vz)
deallocate(vrf,vr)
deallocate(vr)
deallocate(tdd,tdu,tud,tuu)
deallocate(tdd_soc,tdu_soc,tud_soc,tuu_soc)
deallocate(tdulo,tuulo)
......
......@@ -14,7 +14,7 @@ c******************************************************************
CONTAINS
SUBROUTINE wann_plot_um_dat(
> 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,
> l_dulo,l_noco,l_ss,lmaxd,
> ntypd,
......@@ -37,7 +37,6 @@ c******************************************************************
use m_radflo
use m_cdnread, only : cdn_read0
use m_types
use m_loddop
use m_constants
use m_wann_real
use m_xsf_io
......@@ -70,6 +69,7 @@ c******************************************************************
TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco
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
logical, intent (in) :: l_soc,l_real
......@@ -132,9 +132,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc
!!! the parameters for the number of wfs
integer :: nwfs
!!! the potential in the spheres and the vacuum
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:)
!!! auxiliary potentials
complex, allocatable :: vpw(:,:),vzxy(:,:,:,:)
real, allocatable :: vr(:,:,:),vz(:,:,:)
!!! bkpts data
integer :: nntot,ikpt_help
integer, allocatable :: gb(:,:,:),bpt(:,:)
......@@ -310,28 +308,18 @@ c WRITE(20,*) " filename='plot1' /"
cccccccccccccccc initialize the potential cccccccccccc
allocate ( vpw(n3d,jspd),vzxy(nmzxyd,odi%n2d-1,2,jspd) )
allocate ( vz(nmzd,2,jspd),vrf(jmtd,0:nlhd,ntypd,jspd) )
allocate ( vr(jmtd,ntypd,jspd) )
allocate (vz(nmzd,2,jspd))
allocate (vr(jmtd,ntypd,jspd))
open (8,file='pottot',form='unformatted',status='old')
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
vz = vTot%vacz
do jspin = 1,jspins
do n = 1, ntype
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
deallocate ( vpw,vzxy,vrf )
cccccccccccccccc end of the potential part ccccccccccc
wannierspin=jspins
......
......@@ -8,7 +8,7 @@
contains
subroutine wann_postproc(
> 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,
> natd,pos,amat,bmat,ntype,neq,zatom,
> omtil,l_soc,l_noco,neigd,fullnkpts,
......@@ -78,6 +78,7 @@ c***********************************************
TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
type(t_wann), intent(in) :: wann
logical, intent(in) :: l_p0
......@@ -445,7 +446,7 @@ c > volint,symor,pos,ef,wann%l_bzsym,irecl)
if(wann%l_plot_umdat)then
call wann_plot_um_dat(
> 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,
> l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
......@@ -466,6 +467,7 @@ c > volint,symor,pos,ef,wann%l_bzsym,irecl)
call wannier_to_lapw(
> mpi_comm,eig_id,l_real,
> input,lapw,oneD,noco,sym,cell,atoms,stars,vacuum,sphhar,
> vTot,
> l_soc,wann%unigrid,i,wann%band_min,wann%band_max,
> l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
......
......@@ -8,7 +8,7 @@
use m_juDFT
CONTAINS
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,
> eig_id,l_real,mpi_comm,l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
......@@ -40,7 +40,6 @@ c****************************************************************************
use m_radfun
use m_radflo
use m_cdnread, only : cdn_read0, cdn_read
use m_loddop
use m_constants, only : pimach
! use m_wann_mmk0_od_vac
use m_wann_mmk0_vac
......@@ -83,6 +82,7 @@ c****************************************************************************
TYPE(t_oneD),INTENT(IN) :: oneD
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: vTot
TYPE(t_enpara),INTENT(IN) :: enpara
logical, intent (in) :: invs,invs2,film,slice,symor,l_real
......@@ -153,9 +153,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc
!!! the parameters for the number of wfs
integer :: nwfs
!!! the potential in the spheres and the vacuum
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:)
!!! auxiliary potentials
complex, allocatable :: vpw(:,:),vzxy(:,:,:,:)
real, allocatable :: vr(:,:,:),vz(:,:,:)
!!! bkpts data
integer nntot,ikpt_help
integer, allocatable :: gb(:,:,:),bpt(:,:)
......@@ -368,28 +366,18 @@ c*********************************************************
cccccccccccccccc initialize the potential cccccccccccc
c*********************************************************
allocate ( vpw(n3d,jspd),vzxy(nmzxyd,odi%n2d-1,2,jspd) )
allocate ( vz(nmzd,2,jspd),vrf(jmtd,0:nlhd,ntypd,jspd) )
allocate ( vr(jmtd,ntypd,jspd) )
allocate (vz(nmzd,2,jspd))
allocate (vr(jmtd,ntypd,jspd))
open (8,file='pottot',form='unformatted',status='old')
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
vz = vTot%vacz
do jspin = 1,jspins
do n = 1, ntype
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
deallocate ( vpw,vzxy )
cccccccccccccccc end of the potential part ccccccccccc
wannierspin=jspd
......@@ -881,7 +869,7 @@ c...for the lapws and local orbitals, summed by the basis functions
> llod,jmtd,jspd,nlhd,soc_opt,neq,
> ntype,theta,phi,jspins,irank,
> jri,lmax,dx,rmsh,epar,ello,nlo,llo,
> l_dulo,ulo_der,vrf,
> l_dulo,ulo_der,vTot%mt,
> acof,bcof,ccof,
< hsomtx(:,:,:,:,ikpt))
endif
......
......@@ -9,7 +9,7 @@
CONTAINS
SUBROUTINE 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,l_real,nkpt)
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c Makes necessary for the construction of the wannier functions
......@@ -64,7 +64,6 @@ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
use m_radfun
use m_radflo
use m_cdnread
use m_loddop
use m_constants
use m_wann_mmk0_od_vac
use m_wann_mmkb_od_vac
......@@ -130,6 +129,7 @@ ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
TYPE(t_enpara), INTENT(IN) :: enpara
TYPE(t_banddos), INTENT(IN) :: banddos
TYPE(t_sliceplot), INTENT(IN) :: sliceplot
TYPE(t_potden), INTENT(IN) :: vTot
TYPE(t_results), INTENT(IN) :: results
TYPE(t_wann), INTENT(INOUT) :: wann
......@@ -168,9 +168,9 @@ cccccccccccccccccc local variables cccccccccccccccccccc
!!! the parameters for the number of wfs
integer :: nwfs
!!! the potential in the spheres and the vacuum
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:)
real, allocatable :: vr(:,:,:),vz(:,:,:)
!!! auxiliary potentials
complex, allocatable :: vpw(:,:),vzxy(:,:,:,:)
complex, allocatable :: vpw(:,:)
!!! bkpts data
integer nntot,ikpt_help
integer, allocatable :: gb(:,:,:),bpt(:,:)
......@@ -402,7 +402,7 @@ c-----input file for orbital decomposition
if(wann%l_updown)then
call wann_updown(
> mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,noco,cell,
> mpi,input,sym,atoms,stars,vacuum,sphhar,oneD,noco,cell,vTot,
> enpara,eig_idList(1),l_real,
> mpi%mpi_comm,atoms%l_dulo,noco%l_noco,noco%l_ss,
> atoms%lmaxd,atoms%ntype,DIMENSION%neigd,atoms%nat,sym%nop,
......@@ -443,7 +443,7 @@ cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
wannTemp = wann
call wann_uHu(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,banddos,
> oneD,noco,cell,wannTemp,eig_idList,
> oneD,noco,cell,vTot,wannTemp,eig_idList,
> l_real,atoms%l_dulo,noco%l_noco,noco%l_ss,atoms%lmaxd,
> atoms%ntype,DIMENSION%neigd,atoms%nat,sym%nop,DIMENSION%nvd,
> DIMENSION%jspd,DIMENSION%nbasfcn,atoms%llod,atoms%nlod,
......@@ -486,7 +486,7 @@ cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
wannTemp = wann
call wann_uHu_dmi(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,banddos,
> oneD,noco,cell,wannTemp,eig_idList,
> oneD,noco,cell,vTot,wannTemp,eig_idList,
> l_real,atoms%l_dulo,noco%l_noco,noco%l_ss,atoms%lmaxd,
> atoms%ntype,DIMENSION%neigd,atoms%nat,sym%nop,DIMENSION%nvd,
> DIMENSION%jspd,DIMENSION%nbasfcn,atoms%llod,atoms%nlod,
......@@ -703,27 +703,16 @@ c*********************************************************
cccccccccccccccc initialize the potential cccccccccccc
c*********************************************************
allocate ( vpw(stars%ng3,DIMENSION%jspd) )
allocate ( vzxy(vacuum%nmzxyd,oneD%odi%n2d-1,2,DIMENSION%jspd) )
allocate ( vz(vacuum%nmzd,2,4) )
allocate ( vrf(atoms%jmtd,0:sphhar%nlhd,
+ atoms%ntype,DIMENSION%jspd) )
allocate ( vr(atoms%jmtd,atoms%ntype,DIMENSION%jspd) )
allocate ( vso(atoms%jmtd,atoms%nat,2) )
open (8,file='pottot',form='unformatted',status='old')
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
vz = vTot%vacz
do jspin = 1,input%jspins
do n = 1, atoms%ntype
do j = 1,atoms%jri(n)
vr(j,n,jspin) = vrf(j,0,n,jspin)
vr(j,n,jspin) = vTot%mt(j,0,n,jspin)
enddo
enddo
enddo
......@@ -732,9 +721,6 @@ c*********************************************************
CALL vsoc(input,atoms,vr,epar,.TRUE., vso)
endif
deallocate ( vpw,vzxy )
deallocate(vrf)
if(noco%l_noco.and.input%film)then
npotmatfile=25
allocate(vpw(stars%ng3,1))
......@@ -2844,7 +2830,7 @@ c************************************************c
call wann_postproc(
> DIMENSION,stars,vacuum,atoms,sphhar,input,sym,mpi,
> lapw,oneD,noco,cell,eig_id,l_real, !eig_id is used here after closing the files?!
> lapw,oneD,noco,cell,vTot,eig_id,l_real, !eig_id is used here after closing the files?!
> mpi%mpi_comm,wann,l_p0,input%film,input%jspins,stars%ng2,
> atoms%nat,atoms%pos,cell%amat,cell%bmat,atoms%ntype,
> atoms%neq,atoms%zatom,cell%omtil,noco%l_soc,noco%l_noco,
......
......@@ -18,6 +18,7 @@ c******************************************************************
subroutine wannier_to_lapw(
> mpi_comm,eig_id,l_real,
> input,lapw,oneD,noco,sym,cell,atoms,stars,vacuum,sphhar,
> vTot,
> l_soc,unigrid,sortrule,band_min,band_max,
> l_dulo,l_noco,l_ss,lmaxd,ntypd,
> neigd,natd,nop,nvd,jspd,nbasfcn,llod,nlod,ntype,
......@@ -36,7 +37,6 @@ c******************************************************************
use m_radflo
use m_cdnread, only : cdn_read0
use m_types
use m_loddop
use m_constants
use m_wann_real
use m_xsf_io
......@@ -57,6 +57,7 @@ c******************************************************************
TYPE(t_stars),INTENT(IN) :: stars
TYPE(t_vacuum),INTENT(IN) :: vacuum
TYPE(t_sphhar),INTENT(IN) :: sphhar
TYPE(t_potden),INTENT(IN) :: vTot
#ifdef CPP_MPI
include 'mpif.h'
......@@ -130,9 +131,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc
!!! the parameters for the number of wfs
integer :: nwfs
!!! the potential in the spheres and the vacuum
real, allocatable :: vr(:,:,:),vz(:,:,:),vrf(:,:,:,:)
!!! auxiliary potentials
complex, allocatable :: vpw(:,:),vzxy(:,:,:,:)
real, allocatable :: vr(:,:,:)
!!! bkpts data
integer nntot,ikpt_help
integer, allocatable :: gb(:,:,:),bpt(:,:)
......@@ -235,28 +234,15 @@ c specify number of unit-cells that are calculated
cccccccccccccccc initialize the potential cccccccccccc
allocate ( vpw(n3d,jspd),vzxy(nmzxyd,odi%n2d-1,2,jspd) )
allocate ( vz(nmzd,2,jspd),vrf(jmtd,0:nlhd,ntypd,jspd) )
allocate ( vr(jmtd,ntypd,jspd) )
open (8,file='pottot',form='unformatted',status='old')
rewind (8)
call loddop(stars,vacuum,atoms,sphhar,input,sym,
> 8,
< iter,vrf,vpw,vz,vzxy)
close (8)
allocate (vr(jmtd,ntypd,jspd))
do jspin = 1,jspins
do n = 1, ntype
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
deallocate ( vpw,vzxy,vrf )
cccccccccccccccc end of the potential part ccccccccccc
wannierspin=jspd
......@@ -718,7 +704,7 @@ c****************************************************************
110 continue ! end of cycle by spins
deallocate ( vr,vz,kveclo,nv,k1,k2,k3 )
deallocate ( vr,kveclo,nv,k1,k2,k3 )
deallocate ( ff,gg)
#ifdef CPP_MPI
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment