diff --git a/input/dft b/input/dft index 7ea834b..8e8e1f6 100644 --- a/input/dft +++ b/input/dft @@ -19,7 +19,7 @@ # Number of states in ensemble (nEns) 3 # Ensemble weights: wEns(1),...,wEns(nEns-1) - 0.00 1.00 + 1.00 0.00 # Ncentered ? 0 for NO 0 # Parameters for CC weight-dependent exchange functional diff --git a/src/eDFT/GOK_RKS.f90 b/src/eDFT/GOK_RKS.f90 index 17b3758..7186320 100644 --- a/src/eDFT/GOK_RKS.f90 +++ b/src/eDFT/GOK_RKS.f90 @@ -37,7 +37,7 @@ subroutine GOK_RKS(restart,x_rung,x_DFA,c_rung,c_DFA,LDA_centered,nEns,wEns,aCC_ double precision,intent(in) :: ENuc double precision,intent(inout):: c(nBas,nBas) - double precision,intent(in):: occnum(2,2,32,2,32,2,3) + double precision,intent(in):: occnum(nspin,2,nEns) integer,intent(in) :: Cx_choice ! Local variables diff --git a/src/eDFT/GOK_UKS.f90 b/src/eDFT/GOK_UKS.f90 index 74d91da..1b01a96 100644 --- a/src/eDFT/GOK_UKS.f90 +++ b/src/eDFT/GOK_UKS.f90 @@ -30,7 +30,7 @@ subroutine GOK_UKS(x_rung,x_DFA,c_rung,c_DFA,nEns,wEns,nGrid,weight,aCC_w1,aCC_w double precision,intent(in) :: X(nBas,nBas) double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas) double precision,intent(in) :: ENuc - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) integer,intent(in) :: Cx_choice ! Local variables diff --git a/src/eDFT/LIM_RKS.f90 b/src/eDFT/LIM_RKS.f90 index cbaed5b..6893023 100644 --- a/src/eDFT/LIM_RKS.f90 +++ b/src/eDFT/LIM_RKS.f90 @@ -31,7 +31,7 @@ subroutine LIM_RKS(x_rung,x_DFA,c_rung,c_DFA,LDA_centered,nEns,aCC_w1,aCC_w2,nGr double precision,intent(in) :: X(nBas,nBas) double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas) double precision,intent(in) :: ENuc - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) integer,intent(in) :: Cx_choice diff --git a/src/eDFT/MOM_RKS.f90 b/src/eDFT/MOM_RKS.f90 index 1f6ec10..3f54884 100644 --- a/src/eDFT/MOM_RKS.f90 +++ b/src/eDFT/MOM_RKS.f90 @@ -31,7 +31,7 @@ subroutine MOM_RKS(x_rung,x_DFA,c_rung,c_DFA,LDA_centered,nEns,nGrid,weight, & double precision,intent(in) :: X(nBas,nBas) double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas) double precision,intent(in) :: ENuc - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) integer,intent(in) :: Cx_choice diff --git a/src/eDFT/eDFT.f90 b/src/eDFT/eDFT.f90 index bc2fbfc..10d6465 100644 --- a/src/eDFT/eDFT.f90 +++ b/src/eDFT/eDFT.f90 @@ -59,8 +59,7 @@ program eDFT integer :: guess_type integer :: ortho_type - ! double precision,allocatable,dimension(:,:,:) :: occnum - double precision,dimension(2,2,3) :: occnum + double precision,allocatable :: occnum(:,:,:) integer :: Cx_choice ! Hello World @@ -112,7 +111,7 @@ program eDFT ! Allocate ensemble weights - + allocate(occnum(nspin,2,maxEns)) allocate(wEns(maxEns)) call read_options(method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,aCC_w1,aCC_w2, & maxSCF,thresh,DIIS,max_diis,guess_type,ortho_type,doNcentered,ncent,occnum,Cx_choice) diff --git a/src/eDFT/eDFT_UKS.f90 b/src/eDFT/eDFT_UKS.f90 index 8ba1589..fddf900 100644 --- a/src/eDFT/eDFT_UKS.f90 +++ b/src/eDFT/eDFT_UKS.f90 @@ -30,7 +30,7 @@ subroutine eDFT_UKS(x_rung,x_DFA,c_rung,c_DFA,nEns,wEns,aCC_w1,aCC_w2,nGrid,weig double precision,intent(in) :: X(nBas,nBas) double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas) double precision,intent(in) :: ENuc - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) integer,intent(in) :: Cx_choice ! Local variables diff --git a/src/eDFT/read_options.f90 b/src/eDFT/read_options.f90 index 884ac4b..7e6b036 100644 --- a/src/eDFT/read_options.f90 +++ b/src/eDFT/read_options.f90 @@ -21,7 +21,7 @@ subroutine read_options(method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,aCC_w1,aC double precision,intent(out) :: wEns(maxEns) double precision,intent(out) :: aCC_w1(3) double precision,intent(out) :: aCC_w2(3) - double precision,intent(inout) :: occnum(2,2,3) + double precision,intent(inout):: occnum(nspin,2,maxEns) integer,intent(out) :: maxSCF double precision,intent(out) :: thresh @@ -141,10 +141,9 @@ subroutine read_options(method,x_rung,x_DFA,c_rung,c_DFA,SGn,nEns,wEns,aCC_w1,aC call matout(3,1,aCC_w2) write(*,*) - !allocate(occnum(nspin,2,nEns)) ! Read occupation numbers for orbitals nO and nO+1 read(1,*) - do J=1,3 + do J=1,nEns read(1,*) (occnum(1,I,J),I=1,2) read(1,*) (occnum(2,I,J),I=1,2) end do diff --git a/src/eDFT/restricted_auxiliary_energy.f90 b/src/eDFT/restricted_auxiliary_energy.f90 index 7bbe751..cb5d4fd 100644 --- a/src/eDFT/restricted_auxiliary_energy.f90 +++ b/src/eDFT/restricted_auxiliary_energy.f90 @@ -12,7 +12,7 @@ subroutine restricted_auxiliary_energy(nBas,nEns,nO,eps,Eaux,occnum) integer,intent(in) :: nEns integer,intent(in) :: nO double precision,intent(in) :: eps(nBas) - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) ! Local variables diff --git a/src/eDFT/restricted_density_matrix.f90 b/src/eDFT/restricted_density_matrix.f90 index d96f7e6..1911ab7 100644 --- a/src/eDFT/restricted_density_matrix.f90 +++ b/src/eDFT/restricted_density_matrix.f90 @@ -12,7 +12,7 @@ subroutine restricted_density_matrix(nBas,nEns,nO,c,P,occnum) integer,intent(in) :: nEns integer,intent(in) :: nO double precision,intent(in) :: c(nBas,nBas) - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) ! Local variables diff --git a/src/eDFT/restricted_individual_energy.f90 b/src/eDFT/restricted_individual_energy.f90 index 1d4cd92..7cda48b 100644 --- a/src/eDFT/restricted_individual_energy.f90 +++ b/src/eDFT/restricted_individual_energy.f90 @@ -38,7 +38,7 @@ subroutine restricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered,n double precision,intent(in) :: J(nBas,nBas) double precision :: Ew - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) integer,intent(in) :: Cx_choice diff --git a/src/eDFT/unrestricted_auxiliary_energy.f90 b/src/eDFT/unrestricted_auxiliary_energy.f90 index cb6e680..8d69e97 100644 --- a/src/eDFT/unrestricted_auxiliary_energy.f90 +++ b/src/eDFT/unrestricted_auxiliary_energy.f90 @@ -12,7 +12,7 @@ subroutine unrestricted_auxiliary_energy(nBas,nEns,nO,eps,Eaux,occnum) integer,intent(in) :: nEns integer,intent(in) :: nO(nspin) double precision,intent(in) :: eps(nBas,nspin) - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) ! Local variables diff --git a/src/eDFT/unrestricted_density_matrix.f90 b/src/eDFT/unrestricted_density_matrix.f90 index 41b73d1..ab6c1bf 100644 --- a/src/eDFT/unrestricted_density_matrix.f90 +++ b/src/eDFT/unrestricted_density_matrix.f90 @@ -12,7 +12,7 @@ subroutine unrestricted_density_matrix(nBas,nEns,nO,c,P,occnum) integer,intent(in) :: nEns integer,intent(in) :: nO(nspin) double precision,intent(in) :: c(nBas,nBas,nspin) - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) ! Local variables diff --git a/src/eDFT/unrestricted_individual_energy.f90 b/src/eDFT/unrestricted_individual_energy.f90 index 1b4dd22..f710040 100644 --- a/src/eDFT/unrestricted_individual_energy.f90 +++ b/src/eDFT/unrestricted_individual_energy.f90 @@ -41,7 +41,7 @@ subroutine unrestricted_individual_energy(x_rung,x_DFA,c_rung,c_DFA,LDA_centered double precision,intent(in) :: FxHF(nBas,nBas,nspin) double precision,intent(in) :: Fc(nBas,nBas,nspin) double precision :: Ew - double precision,intent(in) :: occnum(2,2,3) + double precision,intent(in) :: occnum(nspin,2,nEns) integer,intent(in) :: Cx_choice