Commit 643a3f97 authored by Matthias Redies's avatar Matthias Redies

fix indentanion, so merges work

parent 2347d607
......@@ -9,72 +9,72 @@
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_vis_xc
USE m_juDFT
! ******************************************************
! subroutine generates the exchange-correlation potential
! in the interstitial region c.l.fu
! including gradient corrections. t.a. 1996.
! ******************************************************
USE m_juDFT
! ******************************************************
! subroutine generates the exchange-correlation potential
! in the interstitial region c.l.fu
! including gradient corrections. t.a. 1996.
! ******************************************************
CONTAINS
SUBROUTINE vis_xc(stars,sym,cell,den,xcpot,input,noco, vxc,vx,exc)
SUBROUTINE vis_xc(stars,sym,cell,den,xcpot,input,noco, vxc,vx,exc)
! ******************************************************
! instead of visxcor.f: the different exchange-correlation
! potentials defined through the key icorr are called through
! the driver subroutine vxcallg.f,for the energy density - excallg
! subroutines vectorized
! ** r.pentcheva 22.01.96
! *********************************************************
! in case of total = .true. calculates the ex-corr. energy
! density
! ** r.pentcheva 08.05.96
! ******************************************************************
USE m_pw_tofrom_grid
USE m_types
USE m_types_xcpot_libxc
USE m_libxc_postprocess_gga
IMPLICIT NONE
! ******************************************************
! instead of visxcor.f: the different exchange-correlation
! potentials defined through the key icorr are called through
! the driver subroutine vxcallg.f,for the energy density - excallg
! subroutines vectorized
! ** r.pentcheva 22.01.96
! *********************************************************
! in case of total = .true. calculates the ex-corr. energy
! density
! ** r.pentcheva 08.05.96
! ******************************************************************
USE m_pw_tofrom_grid
USE m_types
USE m_types_xcpot_libxc
USE m_libxc_postprocess_gga
IMPLICIT NONE
CLASS(t_xcpot),INTENT(IN) :: xcpot
TYPE(t_input),INTENT(IN) :: input
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_sym),INTENT(IN) :: sym
TYPE(t_stars),INTENT(IN) :: stars
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: den
TYPE(t_potden),INTENT(INOUT) :: vxc,vx,exc
TYPE(t_gradients) :: grad
REAL, ALLOCATABLE :: rho(:,:)
REAL, ALLOCATABLE :: v_x(:,:),v_xc(:,:),e_xc(:,:)
CALL init_pw_grid(xcpot,stars,sym,cell)
CLASS(t_xcpot),INTENT(IN) :: xcpot
TYPE(t_input),INTENT(IN) :: input
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_sym),INTENT(IN) :: sym
TYPE(t_stars),INTENT(IN) :: stars
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_potden),INTENT(IN) :: den
TYPE(t_potden),INTENT(INOUT) :: vxc,vx,exc
!Put the charge on the grid, in GGA case also calculate gradients
CALL pw_to_grid(xcpot,input%jspins,noco%l_noco,stars,cell,den%pw,grad,rho)
ALLOCATE(v_xc,mold=rho)
ALLOCATE(v_x,mold=rho)
TYPE(t_gradients) :: grad
REAL, ALLOCATABLE :: rho(:,:)
REAL, ALLOCATABLE :: v_x(:,:),v_xc(:,:),e_xc(:,:)
CALL xcpot%get_vxc(input%jspins,rho,v_xc,v_x,grad)
CALL init_pw_grid(xcpot,stars,sym,cell)
IF (xcpot%is_gga()) THEN
SELECT TYPE(xcpot)
TYPE IS (t_xcpot_libxc)
CALL libxc_postprocess_gga_pw(xcpot,stars,cell,v_xc,grad)
END SELECT
ENDIF
!Put the potentials in rez. space.
CALL pw_from_grid(xcpot,stars,input%total,v_xc,vxc%pw,vxc%pw_w)
CALL pw_from_grid(xcpot,stars,input%total,v_x,vx%pw,vx%pw_w)
!Put the charge on the grid, in GGA case also calculate gradients
CALL pw_to_grid(xcpot,input%jspins,noco%l_noco,stars,cell,den%pw,grad,rho)
ALLOCATE(v_xc,mold=rho)
ALLOCATE(v_x,mold=rho)
!calculate the ex.-cor energy density
IF (ALLOCATED(exc%pw_w)) THEN
ALLOCATE ( e_xc(SIZE(rho,1),1) );e_xc=0.0
CALL xcpot%get_exc(input%jspins,rho,e_xc(:,1),grad)
CALL pw_from_grid(xcpot,stars,.TRUE.,e_xc,exc%pw,exc%pw_w)
ENDIF
CALL xcpot%get_vxc(input%jspins,rho,v_xc,v_x,grad)
CALL finish_pw_grid()
END SUBROUTINE vis_xc
IF (xcpot%is_gga()) THEN
SELECT TYPE(xcpot)
TYPE IS (t_xcpot_libxc)
CALL libxc_postprocess_gga_pw(xcpot,stars,cell,v_xc,grad)
END SELECT
ENDIF
!Put the potentials in rez. space.
CALL pw_from_grid(xcpot,stars,input%total,v_xc,vxc%pw,vxc%pw_w)
CALL pw_from_grid(xcpot,stars,input%total,v_x,vx%pw,vx%pw_w)
!calculate the ex.-cor energy density
IF (ALLOCATED(exc%pw_w)) THEN
ALLOCATE ( e_xc(SIZE(rho,1),1) ); e_xc=0.0
CALL xcpot%get_exc(input%jspins,rho,e_xc(:,1),grad)
CALL pw_from_grid(xcpot,stars,.TRUE.,e_xc,exc%pw,exc%pw_w)
ENDIF
CALL finish_pw_grid()
END SUBROUTINE vis_xc
END MODULE m_vis_xc
This diff is collapsed.
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