4
1
mirror of https://github.com/pfloos/quack synced 2024-11-06 22:24:03 +01:00

4-state eDFT

This commit is contained in:
Pierre-Francois Loos 2021-10-25 12:20:25 +02:00
parent 494204113b
commit 20281b2c8d
42 changed files with 403 additions and 151 deletions

View File

@ -15,7 +15,7 @@
# Hybrid = 4: HF,B3LYP,PBE # Hybrid = 4: HF,B3LYP,PBE
1 VWN5 1 VWN5
# quadrature grid SG-n # quadrature grid SG-n
1 0
# Number of states in ensemble (nEns) # Number of states in ensemble (nEns)
4 4
# occupation numbers # occupation numbers
@ -31,7 +31,7 @@
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
# Ensemble weights: wEns(1),...,wEns(nEns-1) # Ensemble weights: wEns(1),...,wEns(nEns-1)
0.25 0.25 0.25 0.00 0.00 0.00
# N-centered? # N-centered?
T T
# Parameters for CC weight-dependent exchange functional # Parameters for CC weight-dependent exchange functional

View File

@ -1,5 +1,5 @@
# RHF UHF KS MOM # RHF UHF KS MOM
T F F F F F T F
# MP2* MP3 MP2-F12 # MP2* MP3 MP2-F12
F F F F F F
# CCD DCD CCSD CCSD(T) # CCD DCD CCSD CCSD(T)
@ -13,7 +13,7 @@
# G0F2* evGF2* qsGF2* G0F3 evGF3 # G0F2* evGF2* qsGF2* G0F3 evGF3
F F F F F F F F F F
# G0W0* evGW* qsGW* ufG0W0 ufGW # G0W0* evGW* qsGW* ufG0W0 ufGW
T F F F F F F F F F
# G0T0 evGT qsGT # G0T0 evGT qsGT
F F F F F F
# MCMP2 # MCMP2

View File

@ -52,7 +52,7 @@ subroutine eDFT(maxSCF,thresh,max_diis,guess_type,mix,nNuc,ZNuc,rNuc,ENuc,nBas,n
character(len=8) :: method character(len=8) :: method
integer :: x_rung,c_rung integer :: x_rung,c_rung
character(len=12) :: x_DFA ,c_DFA integer :: x_DFA,c_DFA
logical :: LDA_centered = .true. logical :: LDA_centered = .true.
integer :: SGn integer :: SGn
@ -80,6 +80,7 @@ subroutine eDFT(maxSCF,thresh,max_diis,guess_type,mix,nNuc,ZNuc,rNuc,ENuc,nBas,n
integer :: i,vmajor,vminor,vmicro integer :: i,vmajor,vminor,vmicro
integer :: iBas,iEns,ispin integer :: iBas,iEns,ispin
integer :: icart,iGrid
! Output variables ! Output variables
@ -118,14 +119,32 @@ subroutine eDFT(maxSCF,thresh,max_diis,guess_type,mix,nNuc,ZNuc,rNuc,ENuc,nBas,n
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Construct quadrature grid ! Construct quadrature grid
!------------------------------------------------------------------------ !------------------------------------------------------------------------
call read_grid(SGn,radial_precision,nRad,nAng,nGrid) if(SGn == -1) then
write(*,*) '*** Quadrature grid on atomic sites ! ***'
write(*,*)
nGrid = nNuc
allocate(root(ncart,nGrid),weight(nGrid))
call allocate_grid(nNuc,ZNuc,max_ang_mom,min_exponent,max_exponent,radial_precision,nAng,nGrid) do icart=1,ncart
do iGrid=1,nGrid
root(icart,iGrid) = rNuc(iGrid,icart)
end do
end do
weight(:) = 1d0
allocate(root(ncart,nGrid),weight(nGrid)) else
call build_grid(nNuc,ZNuc,rNuc,max_ang_mom,min_exponent,max_exponent, & call read_grid(SGn,radial_precision,nRad,nAng,nGrid)
radial_precision,nRad,nAng,nGrid,weight,root)
call allocate_grid(nNuc,ZNuc,max_ang_mom,min_exponent,max_exponent,radial_precision,nAng,nGrid)
allocate(root(ncart,nGrid),weight(nGrid))
call build_grid(nNuc,ZNuc,rNuc,max_ang_mom,min_exponent,max_exponent, &
radial_precision,nRad,nAng,nGrid,weight,root)
end if
!------------------------------------------------------------------------ !------------------------------------------------------------------------
! Calculate AO values at grid points ! Calculate AO values at grid points

View File

@ -9,7 +9,7 @@ subroutine eDFT_UKS(x_rung,x_DFA,c_rung,c_DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weig
! Input variables ! Input variables
integer,intent(in) :: x_rung,c_rung integer,intent(in) :: x_rung,c_rung
character(len=12),intent(in) :: x_DFA,c_DFA integer,intent(in) :: x_DFA,c_DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
double precision,intent(in) :: aCC_w1(3) double precision,intent(in) :: aCC_w1(3)
@ -108,21 +108,21 @@ subroutine eDFT_UKS(x_rung,x_DFA,c_rung,c_DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weig
! Select rung for exchange ! Select rung for exchange
write(*,*) ! write(*,*)
write(*,*) '*******************************************************************' ! write(*,*) '*******************************************************************'
write(*,*) '* Exchange rung *' ! write(*,*) '* Exchange rung *'
write(*,*) '*******************************************************************' ! write(*,*) '*******************************************************************'
call select_rung(x_rung,x_DFA) ! call select_rung(x_rung,x_DFA)
! Select rung for correlation ! Select rung for correlation
write(*,*) ! write(*,*)
write(*,*) '*******************************************************************' ! write(*,*) '*******************************************************************'
write(*,*) '* Correlation rung *' ! write(*,*) '* Correlation rung *'
write(*,*) '*******************************************************************' ! write(*,*) '*******************************************************************'
call select_rung(c_rung,c_DFA) ! call select_rung(c_rung,c_DFA)
! Overall rung ! Overall rung

View File

@ -17,12 +17,13 @@ subroutine read_options_dft(nBas,method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,
integer :: iParam integer :: iParam
character(len=1) :: answer character(len=1) :: answer
double precision,allocatable :: nEl(:) double precision,allocatable :: nEl(:)
character(len=12) :: x_func,c_func
! Output variables ! Output variables
character(len=8),intent(out) :: method character(len=8),intent(out) :: method
integer,intent(out) :: x_rung,c_rung integer,intent(out) :: x_rung,c_rung
character(len=12),intent(out) :: x_DFA,c_DFA integer,intent(out) :: x_DFA,c_DFA
integer,intent(out) :: SGn integer,intent(out) :: SGn
integer,intent(out) :: nEns integer,intent(out) :: nEns
logical,intent(out) :: doNcentered logical,intent(out) :: doNcentered
@ -42,8 +43,8 @@ subroutine read_options_dft(nBas,method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,
method = 'eDFT-UKS' method = 'eDFT-UKS'
x_rung = 1 x_rung = 1
c_rung = 1 c_rung = 1
x_DFA = 'S51' x_DFA = 1
c_DFA = 'VWN5' c_DFA = 1
SGn = 0 SGn = 0
wEns(:) = 0d0 wEns(:) = 0d0
@ -52,7 +53,9 @@ subroutine read_options_dft(nBas,method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,
read(1,*) read(1,*)
read(1,*) method read(1,*) method
! EXCHANGE: read rung of Jacob's ladder !---------------------------------------!
! EXCHANGE: read rung of Jacob's ladder !
!---------------------------------------!
read(1,*) read(1,*)
read(1,*) read(1,*)
@ -60,9 +63,124 @@ subroutine read_options_dft(nBas,method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,
read(1,*) read(1,*)
read(1,*) read(1,*)
read(1,*) read(1,*)
read(1,*) x_rung,x_DFA read(1,*) x_rung,x_func
! CORRELATION: read rung of Jacob's ladder select case (x_rung) ! exchange functionals
case (0) ! Hartree
select case (x_func)
case ('H')
x_DFA = 1
case default
call print_warning('!!! Hartree exchange functional not available !!!')
stop
end select
case (1) ! LDA
select case (x_func)
case ('S51')
x_DFA = 1
case ('CC-S51')
x_DFA = 2
case default
call print_warning('!!! LDA exchange functional not available !!!')
stop
end select
case (2) ! GGA
select case (x_func)
case ('G96')
x_DFA = 1
case ('B88')
x_DFA = 2
case ('PBE')
x_DFA = 3
case default
call print_warning('!!! GGA exchange functional not available !!!')
stop
end select
case (3) ! MGGA
select case (x_func)
case default
call print_warning('!!! MGGA exchange functional not available !!!')
stop
end select
case (4) ! Hybrid
select case (x_func)
case ('HF')
x_DFA = 1
case ('B3LYP')
x_DFA = 2
case ('BHHLYP')
x_DFA = 3
case ('PBE')
x_DFA = 4
case default
call print_warning('!!! Hybrid exchange functional not available !!!')
stop
end select
case default
call print_warning('!!! Exchange rung not available !!!')
stop
end select
! Select rung for exchange
write(*,*)
write(*,*) '*******************************************************************'
write(*,*) '* Exchange rung *'
write(*,*) '*******************************************************************'
call select_rung(x_rung,x_func)
!------------------------------------------!
! CORRELATION: read rung of Jacob's ladder !
!------------------------------------------!
read(1,*) read(1,*)
read(1,*) read(1,*)
@ -70,7 +188,128 @@ subroutine read_options_dft(nBas,method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,
read(1,*) read(1,*)
read(1,*) read(1,*)
read(1,*) read(1,*)
read(1,*) c_rung,c_DFA read(1,*) c_rung,c_func
select case (c_rung) ! correlation functionals
case (0) ! Hartree
select case (c_func)
case ('H')
c_DFA = 1
case default
call print_warning('!!! Hartree correlation functional not available !!!')
stop
end select
case (1) ! LDA
select case (c_func)
case ('W38')
c_DFA = 1
case ('PW92')
c_DFA = 2
case ('VWN3')
c_DFA = 3
case ('VWN5')
c_DFA = 4
case ('eVWN5')
c_DFA = 5
case default
call print_warning('!!! LDA correlation functional not available !!!')
stop
end select
case (2) ! GGA
select case (c_func)
case ('LYP')
c_DFA = 1
case ('PBE')
c_DFA = 2
case default
call print_warning('!!! GGA correlation functional not available !!!')
stop
end select
case (3) ! MGGA
select case (c_func)
case default
call print_warning('!!! MGGA correlation functional not available !!!')
stop
end select
case (4) ! Hybrid
select case (c_func)
case ('HF')
c_DFA = 1
case ('B3LYP')
c_DFA = 2
case ('BHHLYP')
c_DFA = 3
case ('PBE')
c_DFA = 4
case default
call print_warning('!!! Hybrid correlation functional not available !!!')
stop
end select
case default
call print_warning('!!! Correlation rung not available !!!')
stop
end select
! Select rung for correlation
write(*,*)
write(*,*) '*******************************************************************'
write(*,*) '* Correlation rung *'
write(*,*) '*******************************************************************'
call select_rung(c_rung,c_func)
! Read SG-n grid ! Read SG-n grid

View File

@ -8,7 +8,7 @@ subroutine unrestricted_correlation_derivative_discontinuity(rung,DFA,nEns,wEns,
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -8,7 +8,7 @@ subroutine unrestricted_correlation_energy(rung,DFA,nEns,wEns,nGrid,weight,rho,d
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -9,7 +9,7 @@ subroutine unrestricted_correlation_individual_energy(rung,DFA,LDA_centered,nEns
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)

View File

@ -8,7 +8,7 @@ subroutine unrestricted_correlation_potential(rung,DFA,nEns,wEns,nGrid,weight,nB
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -9,7 +9,7 @@ subroutine unrestricted_exchange_derivative_discontinuity(rung,DFA,nEns,wEns,aCC
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
double precision,intent(in) :: aCC_w1(3) double precision,intent(in) :: aCC_w1(3)

View File

@ -9,7 +9,7 @@ subroutine unrestricted_exchange_energy(rung,DFA,LDA_centered,nEns,wEns,aCC_w1,a
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)

View File

@ -9,7 +9,7 @@ subroutine unrestricted_exchange_individual_energy(rung,DFA,LDA_centered,nEns,wE
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)

View File

@ -9,7 +9,7 @@ subroutine unrestricted_exchange_potential(rung,DFA,LDA_centered,nEns,wEns,aCC_w
! Input variables ! Input variables
integer,intent(in) :: rung integer,intent(in) :: rung
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)

View File

@ -7,7 +7,7 @@ subroutine unrestricted_gga_correlation_derivative_discontinuity(DFA,nEns,wEns,n
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -26,11 +26,11 @@ subroutine unrestricted_gga_correlation_derivative_discontinuity(DFA,nEns,wEns,n
select case (DFA) select case (DFA)
case ('LYP') case (1)
Ec(:,:) = 0d0 Ec(:,:) = 0d0
case ('PBE') case (2)
Ec(:,:) = 0d0 Ec(:,:) = 0d0

View File

@ -7,7 +7,7 @@ subroutine unrestricted_gga_correlation_energy(DFA,nEns,wEns,nGrid,weight,rho,dr
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -26,11 +26,11 @@ subroutine unrestricted_gga_correlation_energy(DFA,nEns,wEns,nGrid,weight,rho,dr
select case (DFA) select case (DFA)
case ('LYP') case (1)
call ULYP_gga_correlation_energy(nGrid,weight,rho,drho,Ec) call ULYP_gga_correlation_energy(nGrid,weight,rho,drho,Ec)
case ('PBE') case (2)
call UPBE_gga_correlation_energy(nGrid,weight,rho,drho,Ec) call UPBE_gga_correlation_energy(nGrid,weight,rho,drho,Ec)

View File

@ -7,7 +7,7 @@ subroutine unrestricted_gga_correlation_potential(DFA,nEns,wEns,nGrid,weight,nBa
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -28,11 +28,11 @@ subroutine unrestricted_gga_correlation_potential(DFA,nEns,wEns,nGrid,weight,nBa
select case (DFA) select case (DFA)
case ('LYP') case (1)
call ULYP_gga_correlation_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fc) call ULYP_gga_correlation_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fc)
case ('PBE') case (2)
call UPBE_gga_correlation_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fc) call UPBE_gga_correlation_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fc)

View File

@ -7,7 +7,7 @@ subroutine unrestricted_gga_exchange_derivative_discontinuity(DFA,nEns,wEns,nGri
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -26,15 +26,15 @@ subroutine unrestricted_gga_exchange_derivative_discontinuity(DFA,nEns,wEns,nGri
select case (DFA) select case (DFA)
case ('G96') case (1)
ExDD(:) = 0d0 ExDD(:) = 0d0
case ('B88') case (2)
ExDD(:) = 0d0 ExDD(:) = 0d0
case ('PBE') case (3)
ExDD(:) = 0d0 ExDD(:) = 0d0

View File

@ -8,13 +8,13 @@ subroutine unrestricted_gga_exchange_energy(DFA,nEns,wEns,nGrid,weight,rho,drho,
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
double precision,intent(in) :: weight(nGrid) double precision,intent(in) :: weight(nGrid)
double precision,intent(in) :: rho(nGrid) double precision,intent(in) :: rho(nGrid)
double precision,intent(in) :: drho(3,nGrid) double precision,intent(in) :: drho(ncart,nGrid)
! Output variables ! Output variables
@ -22,15 +22,15 @@ subroutine unrestricted_gga_exchange_energy(DFA,nEns,wEns,nGrid,weight,rho,drho,
select case (DFA) select case (DFA)
case ('G96') case (1)
call UG96_gga_exchange_energy(nGrid,weight,rho,drho,Ex) call UG96_gga_exchange_energy(nGrid,weight,rho,drho,Ex)
case ('B88') case (2)
call UB88_gga_exchange_energy(nGrid,weight,rho,drho,Ex) call UB88_gga_exchange_energy(nGrid,weight,rho,drho,Ex)
case ('PBE') case (3)
call UPBE_gga_exchange_energy(nGrid,weight,rho,drho,Ex) call UPBE_gga_exchange_energy(nGrid,weight,rho,drho,Ex)

View File

@ -7,7 +7,7 @@ subroutine unrestricted_gga_exchange_individual_energy(DFA,nEns,wEns,nGrid,weigh
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -7,7 +7,7 @@ subroutine unrestricted_gga_exchange_potential(DFA,nEns,wEns,nGrid,weight,nBas,A
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -26,15 +26,15 @@ subroutine unrestricted_gga_exchange_potential(DFA,nEns,wEns,nGrid,weight,nBas,A
select case (DFA) select case (DFA)
case ('G96') case (1)
call UG96_gga_exchange_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fx) call UG96_gga_exchange_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fx)
case ('B88') case (2)
call UB88_gga_exchange_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fx) call UB88_gga_exchange_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fx)
case ('PBE') case (3)
call UPBE_gga_exchange_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fx) call UPBE_gga_exchange_potential(nGrid,weight,nBas,AO,dAO,rho,drho,Fx)

View File

@ -7,7 +7,7 @@ subroutine unrestricted_hybrid_correlation_derivative_discontinuity(DFA,nEns,wEn
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -26,15 +26,15 @@ subroutine unrestricted_hybrid_correlation_derivative_discontinuity(DFA,nEns,wEn
select case (DFA) select case (DFA)
case ('HF') case (1)
Ec(:,:) = 0d0 Ec(:,:) = 0d0
case ('LYP') case (2)
Ec(:,:) = 0d0 Ec(:,:) = 0d0
case ('PBE') case (3)
Ec(:,:) = 0d0 Ec(:,:) = 0d0

View File

@ -7,7 +7,7 @@ subroutine unrestricted_hybrid_correlation_energy(DFA,nEns,wEns,nGrid,weight,rho
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -27,26 +27,26 @@ subroutine unrestricted_hybrid_correlation_energy(DFA,nEns,wEns,nGrid,weight,rho
select case (DFA) select case (DFA)
case('HF') case(1)
Ec(:) = 0d0 Ec(:) = 0d0
case('B3LYP') case(2)
aC = 0.81d0 aC = 0.81d0
call unrestricted_lda_correlation_energy('VWN3 ',nEns,wEns,nGrid,weight,rho,EcLDA) call unrestricted_lda_correlation_energy(3,nEns,wEns,nGrid,weight,rho,EcLDA)
call unrestricted_gga_correlation_energy('LYP ',nEns,wEns,nGrid,weight,rho,drho,EcGGA) call unrestricted_gga_correlation_energy(1,nEns,wEns,nGrid,weight,rho,drho,EcGGA)
Ec(:) = EcLDA(:) + aC*(EcGGA(:) - EcLDA(:)) Ec(:) = EcLDA(:) + aC*(EcGGA(:) - EcLDA(:))
case('BHHLYP') case(3)
call unrestricted_gga_correlation_energy('LYP ',nEns,wEns,nGrid,weight,rho,drho,Ec) call unrestricted_gga_correlation_energy(1,nEns,wEns,nGrid,weight,rho,drho,Ec)
case('PBE') case(4)
call unrestricted_gga_correlation_energy('PBE ',nEns,wEns,nGrid,weight,rho,drho,Ec) call unrestricted_gga_correlation_energy(2,nEns,wEns,nGrid,weight,rho,drho,Ec)
case default case default

View File

@ -7,7 +7,7 @@ subroutine unrestricted_hybrid_correlation_potential(DFA,nEns,wEns,nGrid,weight,
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -32,32 +32,32 @@ subroutine unrestricted_hybrid_correlation_potential(DFA,nEns,wEns,nGrid,weight,
select case (DFA) select case (DFA)
case('HF') case(1)
Fc(:,:,:) = 0d0 Fc(:,:,:) = 0d0
case('B3LYP') case(2)
allocate(FcLDA(nBas,nBas,nspin),FcGGA(nBas,nBas,nspin)) allocate(FcLDA(nBas,nBas,nspin),FcGGA(nBas,nBas,nspin))
aC = 0.81d0 aC = 0.81d0
call unrestricted_lda_correlation_potential('VWN3 ',nEns,wEns,nGrid,weight,nBas,AO,rho,FcLDA) call unrestricted_lda_correlation_potential(3,nEns,wEns,nGrid,weight,nBas,AO,rho,FcLDA)
call unrestricted_gga_correlation_potential('LYP ',nEns,wEns,nGrid,weight,nBas,AO,dAO,rho,drho,FcGGA) call unrestricted_gga_correlation_potential(1,nEns,wEns,nGrid,weight,nBas,AO,dAO,rho,drho,FcGGA)
Fc(:,:,:) = FcLDA(:,:,:) + aC*(FcGGA(:,:,:) - FcLDA(:,:,:)) Fc(:,:,:) = FcLDA(:,:,:) + aC*(FcGGA(:,:,:) - FcLDA(:,:,:))
case('BHHLYP') case(3)
allocate(FcGGA(nBas,nBas,nspin)) allocate(FcGGA(nBas,nBas,nspin))
call unrestricted_gga_correlation_potential('LYP ',nEns,wEns,nGrid,weight,nBas,AO,dAO,rho,drho,Fc) call unrestricted_gga_correlation_potential(1,nEns,wEns,nGrid,weight,nBas,AO,dAO,rho,drho,Fc)
case('PBE') case(4)
allocate(FcGGA(nBas,nBas,nspin)) allocate(FcGGA(nBas,nBas,nspin))
call unrestricted_gga_correlation_potential('PBE ',nEns,wEns,nGrid,weight,nBas,AO,dAO,rho,drho,Fc) call unrestricted_gga_correlation_potential(2,nEns,wEns,nGrid,weight,nBas,AO,dAO,rho,drho,Fc)
case default case default

View File

@ -8,7 +8,7 @@ subroutine unrestricted_hybrid_exchange_derivative_discontinuity(DFA,nEns,wEns,a
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
double precision,intent(in) :: aCC_w1(3) double precision,intent(in) :: aCC_w1(3)
@ -32,15 +32,15 @@ subroutine unrestricted_hybrid_exchange_derivative_discontinuity(DFA,nEns,wEns,a
select case (DFA) select case (DFA)
case ('HF') case (1)
ExDD(:) = 0d0 ExDD(:) = 0d0
case ('B3') case (2)
ExDD(:) = 0d0 ExDD(:) = 0d0
case ('PBE') case (3)
ExDD(:) = 0d0 ExDD(:) = 0d0

View File

@ -8,7 +8,7 @@ subroutine unrestricted_hybrid_exchange_energy(DFA,LDA_centered,nEns,wEns,aCC_w1
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
@ -34,34 +34,34 @@ subroutine unrestricted_hybrid_exchange_energy(DFA,LDA_centered,nEns,wEns,aCC_w1
select case (DFA) select case (DFA)
case ('HF') case (1)
call unrestricted_fock_exchange_energy(nBas,P,FxHF,Ex) call unrestricted_fock_exchange_energy(nBas,P,FxHF,Ex)
case ('B3LYP') case (2)
a0 = 0.20d0 a0 = 0.20d0
aX = 0.72d0 aX = 0.72d0
call unrestricted_lda_exchange_energy('S51 ',LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,& call unrestricted_lda_exchange_energy(1,LDA_centered,nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,&
rho,ExLDA,Cx_choice) rho,ExLDA,Cx_choice)
call unrestricted_gga_exchange_energy('B88 ',nEns,wEns,nGrid,weight,rho,drho,ExGGA) call unrestricted_gga_exchange_energy(2,nEns,wEns,nGrid,weight,rho,drho,ExGGA)
call unrestricted_fock_exchange_energy(nBas,P,FxHF,ExHF) call unrestricted_fock_exchange_energy(nBas,P,FxHF,ExHF)
Ex = ExLDA & Ex = ExLDA &
+ a0*(ExHF - ExLDA) & + a0*(ExHF - ExLDA) &
+ aX*(ExGGA - ExLDA) + aX*(ExGGA - ExLDA)
case ('BHHLYP') case (3)
call unrestricted_gga_exchange_energy('B88 ',nEns,wEns,nGrid,weight,rho,drho,ExGGA) call unrestricted_gga_exchange_energy(2,nEns,wEns,nGrid,weight,rho,drho,ExGGA)
call unrestricted_fock_exchange_energy(nBas,P,FxHF,ExHF) call unrestricted_fock_exchange_energy(nBas,P,FxHF,ExHF)
Ex = 0.5d0*ExHF + 0.5d0*ExGGA Ex = 0.5d0*ExHF + 0.5d0*ExGGA
case ('PBE') case (4)
call unrestricted_gga_exchange_energy('PBE ',nEns,wEns,nGrid,weight,rho,drho,ExGGA) call unrestricted_gga_exchange_energy(3,nEns,wEns,nGrid,weight,rho,drho,ExGGA)
call unrestricted_fock_exchange_energy(nBas,P,FxHF,ExHF) call unrestricted_fock_exchange_energy(nBas,P,FxHF,ExHF)
Ex = 0.25d0*ExHF + 0.75d0*ExGGA Ex = 0.25d0*ExHF + 0.75d0*ExGGA

View File

@ -8,7 +8,7 @@ subroutine unrestricted_hybrid_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
@ -38,12 +38,12 @@ subroutine unrestricted_hybrid_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC
select case (DFA) select case (DFA)
case('HF') case(1)
call unrestricted_fock_exchange_potential(nBas,P,ERI,FxHF) call unrestricted_fock_exchange_potential(nBas,P,ERI,FxHF)
Fx(:,:) = FxHF(:,:) Fx(:,:) = FxHF(:,:)
case('B3LYP') case(2)
allocate(FxLDA(nBas,nBas),FxGGA(nBas,nBas)) allocate(FxLDA(nBas,nBas),FxGGA(nBas,nBas))
@ -59,7 +59,7 @@ subroutine unrestricted_hybrid_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC
+ a0*(FxHF(:,:) - FxLDA(:,:)) & + a0*(FxHF(:,:) - FxLDA(:,:)) &
+ aX*(FxGGA(:,:) - FxLDA(:,:)) + aX*(FxGGA(:,:) - FxLDA(:,:))
case('BHHLYP') case(3)
allocate(FxGGA(nBas,nBas)) allocate(FxGGA(nBas,nBas))
@ -68,7 +68,7 @@ subroutine unrestricted_hybrid_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC
Fx(:,:) = 0.5d0*FxHF(:,:) + 0.5d0*FxGGA(:,:) Fx(:,:) = 0.5d0*FxHF(:,:) + 0.5d0*FxGGA(:,:)
case('PBE') case(4)
allocate(FxGGA(nBas,nBas)) allocate(FxGGA(nBas,nBas))

View File

@ -10,7 +10,7 @@ subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered
! Input variables ! Input variables
integer,intent(in) :: x_rung,c_rung integer,intent(in) :: x_rung,c_rung
character(len=12),intent(in) :: x_DFA,c_DFA integer,intent(in) :: x_DFA,c_DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
@ -212,7 +212,7 @@ subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered
do iEns=1,nEns do iEns=1,nEns
call unrestricted_correlation_individual_energy(c_rung,c_DFA,LDA_centered,nEns,wEns,nGrid,weight, & call unrestricted_correlation_individual_energy(c_rung,c_DFA,LDA_centered,nEns,wEns,nGrid,weight, &
rhow,drhow,rho(:,:,iEns),drho(:,:,:,iEns),kappa(iEns),Ec(:,iEns)) rhow,drhow,rho(:,:,iEns),drho(:,:,:,iEns),doNcentered,kappa(iEns),Ec(:,iEns))
end do end do
!------------------------------------------------------------------------ !------------------------------------------------------------------------

View File

@ -7,7 +7,7 @@ subroutine unrestricted_lda_correlation_derivative_discontinuity(DFA,nEns,wEns,n
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -26,15 +26,19 @@ subroutine unrestricted_lda_correlation_derivative_discontinuity(DFA,nEns,wEns,n
select case (DFA) select case (DFA)
! Wigner's LDA correlation functional: Wigner, Trans. Faraday Soc. 34 (1938) 678 case (1)
case ('W38')
Ec(:,:) = 0d0 Ec(:,:) = 0d0
! Vosko, Wilk and Nusair's functional V: Can. J. Phys. 58 (1980) 1200 case (2)
case ('VWN5') Ec(:,:) = 0d0
case (3)
Ec(:,:) = 0d0
case (4)
Ec(:,:) = 0d0 Ec(:,:) = 0d0

View File

@ -7,7 +7,7 @@ subroutine unrestricted_lda_correlation_energy(DFA,nEns,wEns,nGrid,weight,rho,Ec
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -24,27 +24,23 @@ subroutine unrestricted_lda_correlation_energy(DFA,nEns,wEns,nGrid,weight,rho,Ec
! Hartree-Fock ! Hartree-Fock
case ('HF') case (1)
Ec(:) = 0d0
case ('W38')
call UW38_lda_correlation_energy(nGrid,weight,rho,Ec) call UW38_lda_correlation_energy(nGrid,weight,rho,Ec)
case ('PW92') case (2)
call UPW92_lda_correlation_energy(nGrid,weight,rho,Ec) call UPW92_lda_correlation_energy(nGrid,weight,rho,Ec)
case ('VWN3') case (3)
call UVWN3_lda_correlation_energy(nGrid,weight,rho,Ec) call UVWN3_lda_correlation_energy(nGrid,weight,rho,Ec)
case ('VWN5') case (4)
call UVWN5_lda_correlation_energy(nGrid,weight,rho,Ec) call UVWN5_lda_correlation_energy(nGrid,weight,rho,Ec)
case ('C16') case (5)
call UC16_lda_correlation_energy(nGrid,weight,rho,Ec) call UC16_lda_correlation_energy(nGrid,weight,rho,Ec)

View File

@ -9,7 +9,7 @@ subroutine unrestricted_lda_correlation_individual_energy(DFA,LDA_centered,nEns,
! Input variables ! Input variables
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -27,13 +27,11 @@ subroutine unrestricted_lda_correlation_individual_energy(DFA,LDA_centered,nEns,
select case (DFA) select case (DFA)
! Vosko, Wilk and Nusair's functional V: Can. J. Phys. 58 (1980) 1200 case (3)
case ('VWN3')
call UVWN3_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcentered,kappa,Ec) call UVWN3_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcentered,kappa,Ec)
case ('VWN5') case (4)
call UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcentered,kappa,Ec) call UVWN5_lda_correlation_individual_energy(nGrid,weight,rhow,rho,doNcentered,kappa,Ec)

View File

@ -7,7 +7,7 @@ include 'parameters.h'
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid
@ -26,27 +26,23 @@ include 'parameters.h'
! Hartree-Fock ! Hartree-Fock
case ('HF') case (1)
Fc(:,:,:) = 0d0
case ('W38')
call UW38_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:)) call UW38_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:))
case ('PW92') case (2)
call UPW92_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:)) call UPW92_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:))
case ('VWN3') case (3)
call UVWN3_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:)) call UVWN3_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:))
case ('VWN5') case (4)
call UVWN5_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:)) call UVWN5_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:))
case ('C16') case (5)
call UC16_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:)) call UC16_lda_correlation_potential(nGrid,weight(:),nBas,AO(:,:),rho(:,:),Fc(:,:,:))

View File

@ -8,7 +8,7 @@ subroutine unrestricted_lda_exchange_derivative_discontinuity(DFA,nEns,wEns,aCC_
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
double precision,intent(in) :: aCC_w1(3) double precision,intent(in) :: aCC_w1(3)
@ -32,11 +32,11 @@ subroutine unrestricted_lda_exchange_derivative_discontinuity(DFA,nEns,wEns,aCC_
select case (DFA) select case (DFA)
case ('S51') case (1)
ExDD(:) = 0d0 ExDD(:) = 0d0
case ('CC') case (2)
call UCC_lda_exchange_derivative_discontinuity(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight(:),rhow(:),& call UCC_lda_exchange_derivative_discontinuity(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight(:),rhow(:),&
Cx_choice,doNcentered,kappa,ExDD(:)) Cx_choice,doNcentered,kappa,ExDD(:))

View File

@ -7,7 +7,7 @@ subroutine unrestricted_lda_exchange_energy(DFA,LDA_centered,nEns,wEns,aCC_w1,aC
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
@ -26,11 +26,11 @@ subroutine unrestricted_lda_exchange_energy(DFA,LDA_centered,nEns,wEns,aCC_w1,aC
select case (DFA) select case (DFA)
case ('S51') case (1)
call US51_lda_exchange_energy(nGrid,weight,rho,Ex) call US51_lda_exchange_energy(nGrid,weight,rho,Ex)
case ('CC') case (2)
call UCC_lda_exchange_energy(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rho,Ex,Cx_choice) call UCC_lda_exchange_energy(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rho,Ex,Cx_choice)

View File

@ -9,7 +9,7 @@ subroutine unrestricted_lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEn
! Input variables ! Input variables
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
double precision,intent(in) :: aCC_w1(3) double precision,intent(in) :: aCC_w1(3)
@ -31,11 +31,11 @@ subroutine unrestricted_lda_exchange_individual_energy(DFA,LDA_centered,nEns,wEn
select case (DFA) select case (DFA)
case ('S51') case (1)
call US51_lda_exchange_individual_energy(nGrid,weight,rhow,rho,doNcentered,kappa,Ex) call US51_lda_exchange_individual_energy(nGrid,weight,rhow,rho,doNcentered,kappa,Ex)
case ('CC') case (2)
call UCC_lda_exchange_individual_energy(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,rho,& call UCC_lda_exchange_individual_energy(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,rhow,rho,&
Cx_choice,doNcentered,kappa,Ex) Cx_choice,doNcentered,kappa,Ex)

View File

@ -9,7 +9,7 @@ subroutine unrestricted_lda_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC_w1
! Input variables ! Input variables
logical,intent(in) :: LDA_centered logical,intent(in) :: LDA_centered
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
double precision,intent(in) :: aCC_w1(3) double precision,intent(in) :: aCC_w1(3)
@ -29,11 +29,11 @@ subroutine unrestricted_lda_exchange_potential(DFA,LDA_centered,nEns,wEns,aCC_w1
select case (DFA) select case (DFA)
case ('S51') case (1)
call US51_lda_exchange_potential(nGrid,weight,nBas,AO,rho,Fx) call US51_lda_exchange_potential(nGrid,weight,nBas,AO,rho,Fx)
case ('CC') case (2)
call UCC_lda_exchange_potential(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,rho,Fx,Cx_choice) call UCC_lda_exchange_potential(nEns,wEns,aCC_w1,aCC_w2,nGrid,weight,nBas,AO,rho,Fx,Cx_choice)

View File

@ -7,7 +7,7 @@ subroutine unrestricted_mgga_correlation_derivative_discontinuity(DFA,nEns,wEns,
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -7,7 +7,7 @@ subroutine unrestricted_mgga_correlation_energy(DFA,nEns,wEns,nGrid,weight,rho,d
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -7,7 +7,7 @@ subroutine unrestricted_mgga_correlation_potential(DFA,nEns,wEns,nGrid,weight,nB
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -7,7 +7,7 @@ subroutine unrestricted_mgga_exchange_derivative_discontinuity(DFA,nEns,wEns,nGr
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -8,7 +8,7 @@ subroutine unrestricted_mgga_exchange_energy(DFA,nEns,wEns,nGrid,weight,rho,drho
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -7,7 +7,7 @@ subroutine unrestricted_mgga_exchange_individual_energy(DFA,nEns,wEns,nGrid,weig
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid

View File

@ -7,7 +7,7 @@ subroutine unrestricted_mgga_exchange_potential(DFA,nEns,wEns,nGrid,weight,nBas,
! Input variables ! Input variables
character(len=12),intent(in) :: DFA integer,intent(in) :: DFA
integer,intent(in) :: nEns integer,intent(in) :: nEns
double precision,intent(in) :: wEns(nEns) double precision,intent(in) :: wEns(nEns)
integer,intent(in) :: nGrid integer,intent(in) :: nGrid