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
Hide 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
...
@@ -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"
)
...
...
main/vgen.F90
View file @
c24c1cf6
...
@@ -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
...
...
wannier/uhu/wann_uHu.F
View file @
c24c1cf6
...
@@ -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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
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
,
>
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
),
>
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
(
vr
f
,
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
)
...
...
wannier/uhu/wann_uHu_dmi.F
View file @
c24c1cf6
...
@@ -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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
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
,
>
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
),
>
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
(
vr
f
,
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
)
...
...
wannier/wann_plot_um_dat.F
View file @
c24c1cf6
...
@@ -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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
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
...
...
wannier/wann_postproc.F
View file @
c24c1cf6
...
@@ -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
,
...
...
wannier/wann_updown.F
View file @
c24c1cf6
...
@@ -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
)
=
v
rf
(
j
,
0
,
n
,
jspin
)
vr
(
j
,
n
,
jspin
)
=
v
Tot
%
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
,
v
rf
,
>
l_dulo
,
ulo_der
,
v
Tot
%
mt
,
>
acof
,
bcof
,
ccof
,
>
acof
,
bcof
,
ccof
,
<
hsomtx
(:,:,:,:,
ikpt
))
<
hsomtx
(:,:,:,:,
ikpt
))
endif
endif
...
...
wannier/wannier.F
View file @
c24c1cf6
...
@@ -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