Merge branch 'fix_paw_spinorb' into 'develop'

fix PAW spinorb

See merge request QEF/q-e!545
This commit is contained in:
Pietro Delugas 2019-07-29 12:25:06 +00:00
commit 70d8fb3515
1 changed files with 9 additions and 12 deletions

View File

@ -430,17 +430,16 @@ SUBROUTINE PAW_xc_potential(i, rho_lm, rho_core, v_lm, energy)
!
INTEGER :: ix,k ! counters on directions and radial grid
INTEGER :: lsd ! switch for local spin density
REAL(DP) :: vs !, zeta, amag, vx(2), vc(2), ex, ec !^^^
REAL(DP) :: vs, amag
INTEGER :: kpol
INTEGER :: mytid, ntids
!
!^^^****************************************** !^^^
REAL(DP), ALLOCATABLE :: arho(:,:), zeta(:), amag(:)
!^^^
REAL(DP), ALLOCATABLE :: arho(:,:)
REAL(DP), ALLOCATABLE :: ex(:), ec(:)
REAL(DP), ALLOCATABLE :: vx(:,:), vc(:,:)
REAL(DP), PARAMETER :: eps = 1.e-30_dp
!
!^^^*************************************
!^^^
!
#if defined(_OPENMP)
INTEGER, EXTERNAL :: omp_get_thread_num, omp_get_num_threads
@ -472,8 +471,6 @@ SUBROUTINE PAW_xc_potential(i, rho_lm, rho_core, v_lm, energy)
ALLOCATE( rho_rad(i%m,nspin_mag) )
!
ALLOCATE( arho(i%m,2) ) !^^^
ALLOCATE( zeta(i%m) )
ALLOCATE( amag(i%m) )
ALLOCATE( ex(i%m) )
ALLOCATE( ec(i%m) )
ALLOCATE( vx(i%m,2) )
@ -515,10 +512,12 @@ SUBROUTINE PAW_xc_potential(i, rho_lm, rho_core, v_lm, energy)
e_rad(k) = e2*(ex(k)+ec(k))*(rho_rad(k,1)+rho_core(k)*g(i%t)%r2(k))
vs = e2*0.5D0*( vx(k,1) + vc(k,1) - vx(k,2) - vc(k,2) )
v_rad(k,ix,1) = e2*(0.5D0*( vx(k,1) + vc(k,1) + vx(k,2) + vc(k,2)))
IF ( amag(k) > eps12 ) THEN
v_rad(k,ix,2:4) = vs * rho_loc(k,2:4) / amag(k)
amag = SQRT(rho_loc(k,2)**2+rho_loc(k,3)**2+rho_loc(k,4)**2)
IF ( amag > eps12 ) THEN
v_rad(k,ix,2:4) = vs * rho_loc(k,2:4) / amag
ELSE
v_rad(k,ix,2:4)=0.0_DP
IF (present(energy)) e_rad(k)=0.0_DP
ENDIF
ENDDO
!
@ -584,9 +583,7 @@ SUBROUTINE PAW_xc_potential(i, rho_lm, rho_core, v_lm, energy)
DEALLOCATE( rho_rad )
DEALLOCATE( rho_loc )
!
DEALLOCATE( arho ) !^^^
DEALLOCATE( zeta )
DEALLOCATE( amag )
DEALLOCATE( arho )
DEALLOCATE( ex )
DEALLOCATE( ec )
DEALLOCATE( vx )