Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
fleur
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
51
Issues
51
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
fleur
fleur
Commits
c24c1cf6
Commit
c24c1cf6
authored
Oct 19, 2017
by
Gregor Michalicek
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Eliminate loddop calls in Wannier subroutines
parent
364d7038
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
71 additions
and
125 deletions
+71
-125
main/fleur.F90
main/fleur.F90
+1
-1
main/vgen.F90
main/vgen.F90
+3
-3
wannier/uhu/wann_uHu.F
wannier/uhu/wann_uHu.F
+16
-18
wannier/uhu/wann_uHu_dmi.F
wannier/uhu/wann_uHu_dmi.F
+16
-18
wannier/wann_plot_um_dat.F
wannier/wann_plot_um_dat.F
+7
-19
wannier/wann_postproc.F
wannier/wann_postproc.F
+4
-2
wannier/wann_updown.F
wannier/wann_updown.F
+8
-20
wannier/wannier.F
wannier/wannier.F
+10
-24
wannier/wannier_to_lapw.F
wannier/wannier_to_lapw.F
+6
-20
No files found.
main/fleur.F90
View file @
c24c1cf6
...
...
@@ -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"
)
...
...
main/vgen.F90
View file @
c24c1cf6
wannier/uhu/wann_uHu.F
View file @
c24c1cf6
...
...
@@ -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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
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
,
>
v
rf
(:,:,:,
jspin3
),
nlod
,
llod
,
loplod
,
ello
(
1
,
1
,
jspin3
),
>
v
Tot
%
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
(
vr
f
,
vr
)
deallocate
(
vr
)
deallocate
(
tdd
,
tdu
,
tud
,
tuu
)
deallocate
(
tdulo
,
tuulo
)
deallocate
(
tulou
,
tulod
)
...
...
wannier/uhu/wann_uHu_dmi.F
View file @
c24c1cf6
...
...
@@ -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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
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
,
>
v
rf
(:,:,:,
jspin3
),
nlod
,
llod
,
loplod
,
ello
(
1
,
1
,
jspin3
),
>
v
Tot
%
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
(
vr
f
,
vr
)
deallocate
(
vr
)
deallocate
(
tdd
,
tdu
,
tud
,
tuu
)
deallocate
(
tdd_soc
,
tdu_soc
,
tud_soc
,
tuu_soc
)
deallocate
(
tdulo
,
tuulo
)
...
...
wannier/wann_plot_um_dat.F
View file @
c24c1cf6
...
...
@@ -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,29 +308,19 @@ 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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
mt
(
j
,
0
,
n
,
jspin
)
enddo
enddo
enddo
deallocate
(
vpw
,
vzxy
,
vrf
)
cccccccccccccccc
end
of
the
potential
part
ccccccccccc
wannierspin
=
jspins
if
(
l_soc
)
wannierspin
=
2
...
...
wannier/wann_postproc.F
View file @
c24c1cf6
...
...
@@ -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
,
...
...
wannier/wann_updown.F
View file @
c24c1cf6
...
...
@@ -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,29 +366,19 @@ 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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
mt
(
j
,
0
,
n
,
jspin
)
enddo
enddo
enddo
deallocate
(
vpw
,
vzxy
)
cccccccccccccccc
end
of
the
potential
part
ccccccccccc
wannierspin
=
jspd
if
(
l_soc
)
wannierspin
=
2
...
...
@@ -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
,
v
rf
,
>
l_dulo
,
ulo_der
,
v
Tot
%
mt
,
>
acof
,
bcof
,
ccof
,
<
hsomtx
(:,:,:,:,
ikpt
))
endif
...
...
wannier/wannier.F
View file @
c24c1cf6
...
...
@@ -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) = v
rf
(j,0,n,jspin)
vr(j,n,jspin) = v
Tot%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
,
...
...
wannier/wannier_to_lapw.F
View file @
c24c1cf6
...
...
@@ -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,29 +234,16 @@ 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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
mt
(
j
,
0
,
n
,
jspin
)
enddo
enddo
enddo
deallocate
(
vpw
,
vzxy
,
vrf
)
cccccccccccccccc
end
of
the
potential
part
ccccccccccc
wannierspin
=
jspd
if
(
l_soc
)
wannierspin
=
2
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment