Commit 1441d5dd authored by Gregor Michalicek's avatar Gregor Michalicek

Fix some bugs in eigen/hsmt_soc_offdiag.f90

...Fe_bct_SOCXML test is still not working
parent a525f7e6
...@@ -29,12 +29,11 @@ CONTAINS ...@@ -29,12 +29,11 @@ CONTAINS
! .. ! ..
! .. Local Scalars .. ! .. Local Scalars ..
REAL tnn(3),ski(3) REAL tnn(3),ski(3)
INTEGER kii,ki,kj,l,nn,s,j1,j2 INTEGER kii,ki,kj,l,nn,j1,j2
COMPLEX :: fct COMPLEX :: fct
! .. ! ..
! .. Local Arrays .. ! .. Local Arrays ..
REAL fleg1(0:atoms%lmaxd),fleg2(0:atoms%lmaxd),fl2p1(0:atoms%lmaxd) REAL fleg1(0:atoms%lmaxd),fleg2(0:atoms%lmaxd),fl2p1(0:atoms%lmaxd)
REAL fl2p1bt(0:atoms%lmaxd)
COMPLEX:: chi(2,2,2,2),angso(lapw%nv(1),2,2) COMPLEX:: chi(2,2,2,2),angso(lapw%nv(1),2,2)
REAL, ALLOCATABLE :: plegend(:,:),dplegend(:,:) REAL, ALLOCATABLE :: plegend(:,:),dplegend(:,:)
COMPLEX, ALLOCATABLE :: cph(:) COMPLEX, ALLOCATABLE :: cph(:)
...@@ -46,13 +45,12 @@ CONTAINS ...@@ -46,13 +45,12 @@ CONTAINS
fleg1(l) = REAL(l+l+1)/REAL(l+1) fleg1(l) = REAL(l+l+1)/REAL(l+1)
fleg2(l) = REAL(l)/REAL(l+1) fleg2(l) = REAL(l)/REAL(l+1)
fl2p1(l) = REAL(l+l+1)/fpi_const fl2p1(l) = REAL(l+l+1)/fpi_const
fl2p1bt(l) = fl2p1(l)*0.5
END DO END DO
!$OMP PARALLEL DEFAULT(SHARED)& !$OMP PARALLEL DEFAULT(NONE)&
!$OMP PRIVATE(kii,ki,ski,kj,plegend,l)& !$OMP SHARED(n,lapw,atoms,td,fj,gj,noco,fl2p1,fleg1,fleg2,hmat,mpi)&
!$OMP PRIVATE(cph,nn,tnn)& !$OMP PRIVATE(kii,ki,ski,kj,plegend,dplegend,l,j1,j2,angso,chi)&
!$OMP PRIVATE(fct,s) !$OMP PRIVATE(cph,nn,tnn,fct)
ALLOCATE(cph(MAXVAL(lapw%nv))) ALLOCATE(cph(MAXVAL(lapw%nv)))
ALLOCATE(plegend(MAXVAL(lapw%nv),0:atoms%lmaxd)) ALLOCATE(plegend(MAXVAL(lapw%nv),0:atoms%lmaxd))
ALLOCATE(dplegend(MAXVAL(lapw%nv),0:atoms%lmaxd)) ALLOCATE(dplegend(MAXVAL(lapw%nv),0:atoms%lmaxd))
...@@ -86,8 +84,7 @@ CONTAINS ...@@ -86,8 +84,7 @@ CONTAINS
CALL hsmt_spinor_soc(n,ki,noco,lapw,chi,angso) CALL hsmt_spinor_soc(n,ki,noco,lapw,chi,angso)
!---> update overlap and l-diagonal hamiltonian matrix !---> update overlap and l-diagonal hamiltonian matrix
s=atoms%lnonsph(n)+1 DO l = 1,atoms%lmax(n)
DO l = 1,atoms%lnonsph(n)
DO j1=1,2 DO j1=1,2
DO j2=1,2 DO j2=1,2
DO kj = 1,ki DO kj = 1,ki
......
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