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
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Anoop Chandran
fleur
Commits
389afdb1
Commit
389afdb1
authored
Sep 21, 2018
by
Gustav Bihlmayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Further changes in hsoham.F90 to speed up parallel version.
parent
66a39e30
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
52 additions
and
43 deletions
+52
-43
eigen_soc/alineso.F90
eigen_soc/alineso.F90
+5
-4
eigen_soc/eigenso.F90
eigen_soc/eigenso.F90
+1
-1
eigen_soc/hsoham.F90
eigen_soc/hsoham.F90
+25
-25
eigen_soc/hsohelp.F90
eigen_soc/hsohelp.F90
+3
-5
wannier/wann_socmat.F
wannier/wann_socmat.F
+6
-6
wannier/wann_updown.F
wannier/wann_updown.F
+12
-2
No files found.
eigen_soc/alineso.F90
View file @
389afdb1
...
@@ -155,9 +155,9 @@ CONTAINS
...
@@ -155,9 +155,9 @@ CONTAINS
!
!
! set up A and B coefficients
! set up A and B coefficients
!
!
ALLOCATE
(
ahelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
DIMENSION
%
jspd
)
)
ALLOCATE
(
ahelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
input
%
jspins
)
)
ALLOCATE
(
bhelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
DIMENSION
%
jspd
)
)
ALLOCATE
(
bhelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
input
%
jspins
)
)
ALLOCATE
(
chelp
(
-
atoms
%
llod
:
atoms
%
llod
,
DIMENSION
%
neigd
,
atoms
%
nlod
,
nat_l
,
DIMENSION
%
jspd
)
)
ALLOCATE
(
chelp
(
-
atoms
%
llod
:
atoms
%
llod
,
DIMENSION
%
neigd
,
atoms
%
nlod
,
nat_l
,
input
%
jspins
)
)
CALL
timestart
(
"alineso SOC: -help"
)
CALL
timestart
(
"alineso SOC: -help"
)
write
(
*
,
*
)
nat_start
,
nat_stop
,
nat_l
write
(
*
,
*
)
nat_start
,
nat_stop
,
nat_l
CALL
hsohelp
(&
CALL
hsohelp
(&
...
@@ -177,9 +177,10 @@ CONTAINS
...
@@ -177,9 +177,10 @@ CONTAINS
CALL
MPI_BARRIER
(
mpi
%
MPI_COMM
,
ierr
)
CALL
MPI_BARRIER
(
mpi
%
MPI_COMM
,
ierr
)
#endif
#endif
ALLOCATE
(
hsomtx
(
DIMENSION
%
neigd
,
DIMENSION
%
neigd
,
2
,
2
)
)
ALLOCATE
(
hsomtx
(
DIMENSION
%
neigd
,
DIMENSION
%
neigd
,
2
,
2
)
)
CALL
hsoham
(
atoms
,
noco
,
input
,
nsz
,
chelp
,
rsoc
,
ahelp
,
bhelp
,&
CALL
hsoham
(
atoms
,
noco
,
input
,
nsz
,
dimension
%
neigd
,
chelp
,
rsoc
,
ahelp
,
bhelp
,&
nat_start
,
nat_stop
,
mpi
%
n_rank
,
mpi
%
n_size
,
mpi
%
SUB_COMM
,&
nat_start
,
nat_stop
,
mpi
%
n_rank
,
mpi
%
n_size
,
mpi
%
SUB_COMM
,&
hsomtx
)
hsomtx
)
write
(
*
,
*
)
'after hsoham'
DEALLOCATE
(
ahelp
,
bhelp
,
chelp
)
DEALLOCATE
(
ahelp
,
bhelp
,
chelp
)
CALL
timestop
(
"alineso SOC: -ham"
)
CALL
timestop
(
"alineso SOC: -ham"
)
IF
(
mpi
%
n_rank
==
0
)
THEN
IF
(
mpi
%
n_rank
==
0
)
THEN
...
...
eigen_soc/eigenso.F90
View file @
389afdb1
...
@@ -130,7 +130,7 @@ CONTAINS
...
@@ -130,7 +130,7 @@ CONTAINS
n_stride
=
1
n_stride
=
1
#endif
#endif
n_end
=
kpts
%
nkpt
n_end
=
kpts
%
nkpt
write
(
*
,
'(4i12)'
)
mpi
%
irank
,
mpi
%
n_groups
,
n_stride
,
mpi
%
n_start
!
write(*,'(4i12)') mpi%irank, mpi%n_groups, n_stride, mpi%n_start
!
!
!---> start loop k-pts
!---> start loop k-pts
!
!
...
...
eigen_soc/hsoham.F90
View file @
389afdb1
...
@@ -6,7 +6,7 @@ MODULE m_hsoham
...
@@ -6,7 +6,7 @@ MODULE m_hsoham
!
!
CONTAINS
CONTAINS
SUBROUTINE
hsoham
(&
SUBROUTINE
hsoham
(&
atoms
,
noco
,
input
,
nsz
,
chelp
,
rsoc
,
ahelp
,
bhelp
,&
atoms
,
noco
,
input
,
nsz
,
neigd
,
chelp
,
rsoc
,
ahelp
,
bhelp
,&
nat_start
,
nat_stop
,
n_rank
,
n_size
,
SUB_COMM
,&
nat_start
,
nat_stop
,
n_rank
,
n_size
,
SUB_COMM
,&
hsomtx
)
hsomtx
)
...
@@ -25,20 +25,20 @@ CONTAINS
...
@@ -25,20 +25,20 @@ CONTAINS
! ..
! ..
! .. Scalar Arguments ..
! .. Scalar Arguments ..
! ..
! ..
INTEGER
,
INTENT
(
IN
)
::
nat_start
,
nat_stop
,
n_rank
,
n_size
,
SUB_COMM
INTEGER
,
INTENT
(
IN
)
::
nat_start
,
nat_stop
,
n_rank
,
n_size
,
SUB_COMM
,
neigd
! .. Array Arguments ..
! .. Array Arguments ..
INTEGER
,
INTENT
(
IN
)
::
nsz
(:)
!(dimension%jspd)
INTEGER
,
INTENT
(
IN
)
::
nsz
(:)
!(dimension%jspd)
COMPLEX
,
INTENT
(
IN
)
::
ahelp
(
:,:,:,:)
!(lmd,nat_l,dimension%neigd,dimension%jspd
)
COMPLEX
,
INTENT
(
IN
)
::
ahelp
(
(
atoms
%
lmaxd
+2
)
*
atoms
%
lmaxd
,
nat_stop
-
nat_start
+1
,
neigd
,
input
%
jspins
)
COMPLEX
,
INTENT
(
IN
)
::
bhelp
(
:,:,:,:)
!(lmd,nat_l,dimension%neigd,dimension%jspd
)
COMPLEX
,
INTENT
(
IN
)
::
bhelp
(
(
atoms
%
lmaxd
+2
)
*
atoms
%
lmaxd
,
nat_stop
-
nat_start
+1
,
neigd
,
input
%
jspins
)
COMPLEX
,
INTENT
(
IN
)
::
chelp
(
-
atoms
%
llod
:,:,:,:,:)
!(-llod:llod ,dimension%neigd,atoms%nlod,nat_l,dimension%jspd
)
COMPLEX
,
INTENT
(
IN
)
::
chelp
(
-
atoms
%
llod
:
atoms
%
llod
,
neigd
,
atoms
%
nlod
,
nat_stop
-
nat_start
+1
,
input
%
jspins
)
COMPLEX
,
INTENT
(
OUT
)::
hsomtx
(
:,:,:,:)
!(dimension%
neigd,neigd,2,2)
COMPLEX
,
INTENT
(
OUT
)::
hsomtx
(
neigd
,
neigd
,
2
,
2
)
! ..
! ..
! .. Local Scalars ..
! .. Local Scalars ..
COMPLEX
c_1
,
c_2
,
c_3
,
c_4
,
c_5
COMPLEX
c_1
,
c_2
,
c_3
,
c_4
,
c_5
INTEGER
i
,
j
,
jsp
,
jsp1
,
l
,
lwn
,
m1
,
n
,
na
,
nn
,
i1
,
j1
,
ilo
,
ilop
,
m
,
nat_l
,
na_g
,
lm
,
ll
1
INTEGER
i
,
j
,
jsp
,
jsp1
,
l
,
lwn
,
m1
,
n
,
na
,
nn
,
i1
,
j1
,
ilo
,
ilop
,
m
,
nat_l
,
na_g
,
lm
,
ll1
,
lm
1
! ..
! ..
! .. Local Arrays ..
! .. Local Arrays ..
COMPLEX
,
ALLOCATABLE
::
c_b
(:,:
,:),
c_a
(:,
:,:),
c_c
(:,:,:),
c_buf
(:)
COMPLEX
,
ALLOCATABLE
::
c_b
(:,:
),
c_a
(
:,:),
c_c
(:,:,:),
c_buf
(:)
! ..
! ..
!
!
!---------------------------------------------------------------------
!---------------------------------------------------------------------
...
@@ -54,6 +54,10 @@ CONTAINS
...
@@ -54,6 +54,10 @@ CONTAINS
!
!
!---> update hamiltonian matrices: upper triangle
!---> update hamiltonian matrices: upper triangle
!
!
ALLOCATE
(
c_b
((
atoms
%
lmaxd
+2
)
*
atoms
%
lmaxd
,
nat_l
),&
c_a
((
atoms
%
lmaxd
+2
)
*
atoms
%
lmaxd
,
nat_l
),&
c_c
(
-
atoms
%
llod
:
atoms
%
llod
,
atoms
%
nlod
,
nat_l
)
)
DO
i1
=
1
,
2
DO
i1
=
1
,
2
jsp
=
i1
jsp
=
i1
IF
(
input
%
jspins
.EQ.
1
)
jsp
=
1
IF
(
input
%
jspins
.EQ.
1
)
jsp
=
1
...
@@ -66,11 +70,6 @@ CONTAINS
...
@@ -66,11 +70,6 @@ CONTAINS
!!$OMP SHARED(hsomtx,i1,jsp,j1,jsp1,nsz,atoms)&
!!$OMP SHARED(hsomtx,i1,jsp,j1,jsp1,nsz,atoms)&
!!$OMP SHARED(ahelp,bhelp,chelp,noco,nat_start,nat_stop,nat_l)&
!!$OMP SHARED(ahelp,bhelp,chelp,noco,nat_start,nat_stop,nat_l)&
!!$OMP SHARED(rsoc)
!!$OMP SHARED(rsoc)
ALLOCATE
(
c_b
(
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
atoms
%
lmaxd
,
nat_l
),&
c_a
(
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
atoms
%
lmaxd
,
nat_l
),&
c_c
(
-
atoms
%
llod
:
atoms
%
llod
,
atoms
%
nlod
,
nat_l
)
)
!!$OMP DO
!!$OMP DO
DO
j
=
1
,
nsz
(
jsp1
)
DO
j
=
1
,
nsz
(
jsp1
)
...
@@ -87,14 +86,15 @@ CONTAINS
...
@@ -87,14 +86,15 @@ CONTAINS
DO
l
=
1
,
atoms
%
lmax
(
n
)
DO
l
=
1
,
atoms
%
lmax
(
n
)
ll1
=
l
*
(
l
+1
)
ll1
=
l
*
(
l
+1
)
DO
m
=
-
l
,
l
DO
m
=
-
l
,
l
c_a
(
m
,
l
,
na
)
=
CMPLX
(
0.
,
0.
)
lm
=
ll1
+
m
c_b
(
m
,
l
,
na
)
=
CMPLX
(
0.
,
0.
)
c_a
(
lm
,
na
)
=
CMPLX
(
0.
,
0.
)
c_b
(
lm
,
na
)
=
CMPLX
(
0.
,
0.
)
DO
m1
=
-
l
,
l
DO
m1
=
-
l
,
l
lm
=
ll1
+
m1
lm
1
=
ll1
+
m1
c_a
(
m
,
l
,
na
)
=
c_a
(
m
,
l
,
na
)
+
rsoc
%
soangl
(
l
,
m
,
i1
,
l
,
m1
,
j1
)&
c_a
(
lm
,
na
)
=
c_a
(
lm
,
na
)
+
rsoc
%
soangl
(
l
,
m
,
i1
,
l
,
m1
,
j1
)&
*
CONJG
(
ahelp
(
lm
,
na
,
j
,
jsp1
))
*
CONJG
(
ahelp
(
lm1
,
na
,
j
,
jsp1
))
c_b
(
m
,
l
,
na
)
=
c_b
(
m
,
l
,
na
)
+
rsoc
%
soangl
(
l
,
m
,
i1
,
l
,
m1
,
j1
)&
c_b
(
lm
,
na
)
=
c_b
(
lm
,
na
)
+
rsoc
%
soangl
(
l
,
m
,
i1
,
l
,
m1
,
j1
)&
*
CONJG
(
bhelp
(
lm
,
na
,
j
,
jsp1
))
*
CONJG
(
bhelp
(
lm1
,
na
,
j
,
jsp1
))
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
ENDDO
...
@@ -142,7 +142,7 @@ CONTAINS
...
@@ -142,7 +142,7 @@ CONTAINS
c_2
=
rsoc
%
rsoppd
(
n
,
l
,
i1
,
j1
)
*
ahelp
(
lm
,
na
,
i
,
jsp
)
+
&
c_2
=
rsoc
%
rsoppd
(
n
,
l
,
i1
,
j1
)
*
ahelp
(
lm
,
na
,
i
,
jsp
)
+
&
rsoc
%
rsopdpd
(
n
,
l
,
i1
,
j1
)
*
bhelp
(
lm
,
na
,
i
,
jsp
)
rsoc
%
rsopdpd
(
n
,
l
,
i1
,
j1
)
*
bhelp
(
lm
,
na
,
i
,
jsp
)
hsomtx
(
i
,
j
,
i1
,
j1
)
=
hsomtx
(
i
,
j
,
i1
,
j1
)
+
&
hsomtx
(
i
,
j
,
i1
,
j1
)
=
hsomtx
(
i
,
j
,
i1
,
j1
)
+
&
c_1
*
c_a
(
m
,
l
,
na
)
+
c_2
*
c_b
(
m
,
l
,
na
)
c_1
*
c_a
(
lm
,
na
)
+
c_2
*
c_b
(
lm
,
na
)
ENDDO
ENDDO
!
!
ENDDO
ENDDO
...
@@ -158,7 +158,7 @@ CONTAINS
...
@@ -158,7 +158,7 @@ CONTAINS
c_4
=
rsoc
%
rsoplop
(
n
,
ilo
,
i1
,
j1
)
*
chelp
(
m
,
i
,
ilo
,
na
,
jsp
)
c_4
=
rsoc
%
rsoplop
(
n
,
ilo
,
i1
,
j1
)
*
chelp
(
m
,
i
,
ilo
,
na
,
jsp
)
c_5
=
rsoc
%
rsoplopd
(
n
,
ilo
,
i1
,
j1
)
*
chelp
(
m
,
i
,
ilo
,
na
,
jsp
)
c_5
=
rsoc
%
rsoplopd
(
n
,
ilo
,
i1
,
j1
)
*
chelp
(
m
,
i
,
ilo
,
na
,
jsp
)
hsomtx
(
i
,
j
,
i1
,
j1
)
=
hsomtx
(
i
,
j
,
i1
,
j1
)
+
&
hsomtx
(
i
,
j
,
i1
,
j1
)
=
hsomtx
(
i
,
j
,
i1
,
j1
)
+
&
c_4
*
c_a
(
m
,
l
,
na
)
+
c_5
*
c_b
(
m
,
l
,
na
)
+
&
c_4
*
c_a
(
lm
,
na
)
+
c_5
*
c_b
(
lm
,
na
)
+
&
c_3
*
c_c
(
m
,
ilo
,
na
)
c_3
*
c_c
(
m
,
ilo
,
na
)
ENDDO
ENDDO
DO
ilop
=
1
,
atoms
%
nlo
(
n
)
DO
ilop
=
1
,
atoms
%
nlo
(
n
)
...
@@ -181,12 +181,12 @@ CONTAINS
...
@@ -181,12 +181,12 @@ CONTAINS
ENDDO
ENDDO
!!j
!!j
!!$OMP END DO
!!$OMP END DO
DEALLOCATE
(
c_a
,
c_b
,
c_c
)
!!$OMP END PARALLEL
!!$OMP END PARALLEL
ENDDO
ENDDO
!!jsp1
!!jsp1
ENDDO
ENDDO
!!jsp
!!jsp
DEALLOCATE
(
c_a
,
c_b
,
c_c
)
!
!
!---> update hamiltonian matrices: lower triangle
!---> update hamiltonian matrices: lower triangle
!
!
...
@@ -200,9 +200,9 @@ CONTAINS
...
@@ -200,9 +200,9 @@ CONTAINS
CALL
MPI_BARRIER
(
SUB_COMM
,
ierr
)
CALL
MPI_BARRIER
(
SUB_COMM
,
ierr
)
n
=
4
*
nsz
(
1
)
*
nsz
(
input
%
jspins
)
n
=
4
*
nsz
(
1
)
*
nsz
(
input
%
jspins
)
ALLOCATE
(
c_buf
(
n
))
ALLOCATE
(
c_buf
(
n
))
CALL
MPI_REDUCE
(
hsomtx
(
1
,
1
,
1
,
1
)
,
c_buf
,
n
,
CPP_MPI_COMPLEX
,
MPI_SUM
,
0
,
SUB_COMM
,
ierr
)
CALL
MPI_REDUCE
(
hsomtx
,
c_buf
,
n
,
CPP_MPI_COMPLEX
,
MPI_SUM
,
0
,
SUB_COMM
,
ierr
)
IF
(
n_rank
.EQ.
0
)
THEN
IF
(
n_rank
.EQ.
0
)
THEN
CALL
CPP_BLAS_ccopy
(
n
,
c_buf
,
1
,
hsomtx
(
1
,
1
,
1
,
1
),
1
)
CALL
CPP_BLAS_ccopy
(
n
,
c_buf
,
1
,
hsomtx
,
1
)
ENDIF
ENDIF
DEALLOCATE
(
c_buf
)
DEALLOCATE
(
c_buf
)
#endif
#endif
...
...
eigen_soc/hsohelp.F90
View file @
389afdb1
...
@@ -43,11 +43,9 @@ CONTAINS
...
@@ -43,11 +43,9 @@ CONTAINS
! .. Array Arguments ..
! .. Array Arguments ..
INTEGER
,
INTENT
(
IN
)
::
nsz
(
DIMENSION
%
jspd
)
INTEGER
,
INTENT
(
IN
)
::
nsz
(
DIMENSION
%
jspd
)
COMPLEX
,
INTENT
(
INOUT
)
::
zso
(:,:,:)
!DIMENSION%nbasfcn,2*DIMENSION%neigd,DIMENSION%jspd)
COMPLEX
,
INTENT
(
INOUT
)
::
zso
(:,:,:)
!DIMENSION%nbasfcn,2*DIMENSION%neigd,DIMENSION%jspd)
! COMPLEX, INTENT (OUT):: ahelp(-atoms%lmaxd:atoms%lmaxd,atoms%lmaxd,nat_l,DIMENSION%neigd,DIMENSION%jspd)
COMPLEX
,
INTENT
(
OUT
)::
ahelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
input
%
jspins
)
! COMPLEX, INTENT (OUT):: bhelp(-atoms%lmaxd:atoms%lmaxd,atoms%lmaxd,nat_l,DIMENSION%neigd,DIMENSION%jspd)
COMPLEX
,
INTENT
(
OUT
)::
bhelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
input
%
jspins
)
COMPLEX
,
INTENT
(
OUT
)::
ahelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
DIMENSION
%
jspd
)
COMPLEX
,
INTENT
(
OUT
)::
chelp
(
-
atoms
%
llod
:
atoms
%
llod
,
DIMENSION
%
neigd
,
atoms
%
nlod
,
nat_l
,
input
%
jspins
)
COMPLEX
,
INTENT
(
OUT
)::
bhelp
(
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+2
),
nat_l
,
DIMENSION
%
neigd
,
DIMENSION
%
jspd
)
COMPLEX
,
INTENT
(
OUT
)::
chelp
(
-
atoms
%
llod
:
atoms
%
llod
,
DIMENSION
%
neigd
,
atoms
%
nlod
,
nat_l
,
DIMENSION
%
jspd
)
TYPE
(
t_mat
),
INTENT
(
IN
)
::
zmat
(:)
! (DIMENSION%nbasfcn,DIMENSION%neigd,DIMENSION%jspd)
TYPE
(
t_mat
),
INTENT
(
IN
)
::
zmat
(:)
! (DIMENSION%nbasfcn,DIMENSION%neigd,DIMENSION%jspd)
!-odim
!-odim
!+odim
!+odim
...
...
wannier/wann_socmat.F
View file @
389afdb1
...
@@ -70,7 +70,7 @@ c***********************************************************************
...
@@ -70,7 +70,7 @@ c***********************************************************************
complex
,
intent
(
in
)
::
bcof
(:,
0
:,:,:)
!bcof(noccbd,0:lmd,natd,jspd)
complex
,
intent
(
in
)
::
bcof
(:,
0
:,:,:)
!bcof(noccbd,0:lmd,natd,jspd)
complex
,
intent
(
in
)
::
chelp
(
-
llod
:,:,:,:,:)
!chelp(-llod:llod,neigd,nlod,natd,jspd)
complex
,
intent
(
in
)
::
chelp
(
-
llod
:,:,:,:,:)
!chelp(-llod:llod,neigd,nlod,natd,jspd)
complex
,
intent
(
out
)::
hsomtx
(:,:,:,:)
!(2,2,neigd,neigd
)
complex
,
allocatable
,
intent
(
out
)::
hsomtx
(:,:,:,:)
!(neigd,neigd,2,2
)
integer
::
n
,
l
,
nwdd
,
nw
,
ispin
,
ie
,
na
,
ll1
,
m
,
lm
,
i
,
nsz
(
2
)
integer
::
n
,
l
,
nwdd
,
nw
,
ispin
,
ie
,
na
,
ll1
,
m
,
lm
,
i
,
nsz
(
2
)
real
::
s
(
3
),
r2
real
::
s
(
3
),
r2
...
@@ -110,10 +110,10 @@ c***********************************************************************
...
@@ -110,10 +110,10 @@ c***********************************************************************
! is equivalent to the def in the noco-routines
! is equivalent to the def in the noco-routines
ENDIF
ENDIF
ALLOCATE
(
ahelp
(
lmaxd
*
(
lmaxd
+2
),
natd
,
neigd
,
jspd
)
)
ALLOCATE
(
ahelp
(
lmaxd
*
(
lmaxd
+2
),
natd
,
neigd
,
input
%
jspins
)
)
ALLOCATE
(
bhelp
(
lmaxd
*
(
lmaxd
+2
),
natd
,
neigd
,
jspd
)
)
ALLOCATE
(
bhelp
(
lmaxd
*
(
lmaxd
+2
),
natd
,
neigd
,
input
%
jspins
)
)
do
ispin
=
1
,
jspd
do
ispin
=
1
,
input
%
jspins
DO
ie
=
1
,
neigd
DO
ie
=
1
,
neigd
DO
na
=
1
,
natd
DO
na
=
1
,
natd
DO
l
=
1
,
lmaxd
DO
l
=
1
,
lmaxd
...
@@ -150,8 +150,8 @@ c***********************************************************************
...
@@ -150,8 +150,8 @@ c***********************************************************************
rsoc
%
soangl
=
conjg
(
rsoc
%
soangl
)
rsoc
%
soangl
=
conjg
(
rsoc
%
soangl
)
CALL
hsoham
(
atoms
,
noco
,
input
,
nsz
,
chelp
,
rsoc
,
ahelp
,
b
help
,
CALL
hsoham
(
atoms
,
noco
,
input
,
nsz
,
neigd
,
chelp
,
rsoc
,
a
help
,
>
1
,
natd
,
mpi
%
n_rank
,
mpi
%
n_size
,
mpi
%
SUB_COMM
,
>
bhelp
,
1
,
natd
,
mpi
%
n_rank
,
mpi
%
n_size
,
mpi
%
SUB_COMM
,
<
hsomtx
)
<
hsomtx
)
end
subroutine
wann_socmat
end
subroutine
wann_socmat
...
...
wannier/wann_updown.F
View file @
389afdb1
...
@@ -167,7 +167,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc
...
@@ -167,7 +167,7 @@ cccccccccccccccccc local variables cccccccccccccccccccc
real
::
epar
(
0
:
lmaxd
,
ntypd
,
max
(
2
,
jspd
)),
evdu
(
2
,
max
(
jspd
,
2
))
real
::
epar
(
0
:
lmaxd
,
ntypd
,
max
(
2
,
jspd
)),
evdu
(
2
,
max
(
jspd
,
2
))
!!! the Mmn matrices
!!! the Mmn matrices
complex
,
allocatable
::
surfcurr
(:,:,:,:)
complex
,
allocatable
::
surfcurr
(:,:,:,:)
complex
,
allocatable
::
hsomtx
(:,:,:,:,:)
complex
,
allocatable
::
hsomtx
(:,:,:,:,:)
,
hsomtx_l
(:,:,:,:)
complex
,
allocatable
::
mmnk
(:,:,:,:),
mmn
(:,:,:)
complex
,
allocatable
::
mmnk
(:,:,:,:),
mmn
(:,:,:)
complex
,
allocatable
::
perpmag
(:,:,:)
complex
,
allocatable
::
perpmag
(:,:,:)
complex
,
allocatable
::
amn
(:,:,:),
nablamat
(:,:,:,:)
complex
,
allocatable
::
amn
(:,:,:),
nablamat
(:,:,:,:)
...
@@ -496,6 +496,7 @@ c##################################################################
...
@@ -496,6 +496,7 @@ c##################################################################
if
(
wann
%
l_socmat
)
then
if
(
wann
%
l_socmat
)
then
allocate
(
hsomtx
(
2
,
2
,
nbnd
,
nbnd
,
fullnkpts
)
)
allocate
(
hsomtx
(
2
,
2
,
nbnd
,
nbnd
,
fullnkpts
)
)
allocate
(
hsomtx_l
(
nbnd
,
nbnd
,
2
,
2
)
)
endif
endif
write
(
*
,
*
)
'nwfs='
,
nwfs
write
(
*
,
*
)
'nwfs='
,
nwfs
...
@@ -871,7 +872,16 @@ c...for the lapws and local orbitals, summed by the basis functions
...
@@ -871,7 +872,16 @@ c...for the lapws and local orbitals, summed by the basis functions
>
jri
,
lmax
,
dx
,
rmsh
,
epar
,
ello
,
nlo
,
llo
,
>
jri
,
lmax
,
dx
,
rmsh
,
epar
,
ello
,
nlo
,
llo
,
>
l_dulo
,
ulo_der
,
vTot
%
mt
,
>
l_dulo
,
ulo_der
,
vTot
%
mt
,
>
acof
,
bcof
,
ccof
,
>
acof
,
bcof
,
ccof
,
<
hsomtx
(:,:,:,:,
ikpt
))
<
hsomtx_l
)
do
i1
=
1
,
2
do
i2
=
1
,
2
do
i
=
1
,
nbnd
do
j
=
1
,
nbnd
hsomtx
(
i1
,
i2
,
i
,
j
,
ikpt
)
=
hsomtx_l
(
i
,
j
,
i1
,
i2
)
enddo
enddo
enddo
enddo
endif
endif
#ifdef CPP_TOPO
#ifdef CPP_TOPO
...
...
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