diff --git a/src/HF/GHF.f90 b/src/HF/GHF.f90 index 5659a04..35387b8 100644 --- a/src/HF/GHF.f90 +++ b/src/HF/GHF.f90 @@ -1,5 +1,5 @@ subroutine GHF(dotest,maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNuc,rNuc,ENuc, & - nBas,nBas2,nO,Ov,T,V,Hc,ERI,dipole_int,Or,EGHF,eHF,c,P) + nBas,nBas2,nO,Ov,T,V,Hc,ERI,dipole_int,Or,EGHF,eHF,c,P,F) ! Perform unrestricted Hartree-Fock calculation @@ -51,7 +51,6 @@ subroutine GHF(dotest,maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNu double precision,allocatable :: Kaa(:,:),Kab(:,:),Kba(:,:),Kbb(:,:) double precision,allocatable :: Faa(:,:),Fab(:,:),Fba(:,:),Fbb(:,:) double precision,allocatable :: Paa(:,:),Pab(:,:),Pba(:,:),Pbb(:,:) - double precision,allocatable :: F(:,:) double precision,allocatable :: Fp(:,:) double precision,allocatable :: Cp(:,:) double precision,allocatable :: H(:,:) @@ -70,6 +69,7 @@ subroutine GHF(dotest,maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNu double precision,intent(out) :: eHF(nBas2) double precision,intent(inout):: C(nBas2,nBas2) double precision,intent(out) :: P(nBas2,nBas2) + double precision,intent(out) :: F(nBas2,nBas2) ! Hello world @@ -90,7 +90,7 @@ subroutine GHF(dotest,maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNu Kaa(nBas,nBas),Kab(nBas,nBas),Kba(nBas,nBas),Kbb(nBas,nBas), & Faa(nBas,nBas),Fab(nBas,nBas),Fba(nBas,nBas),Fbb(nBas,nBas), & Paa(nBas,nBas),Pab(nBas,nBas),Pba(nBas,nBas),Pbb(nBas,nBas), & - F(nBas2,nBas2),Fp(nBas2,nBas2),Cp(nBas2,nBas2),H(nBas2,nBas2), & + Fp(nBas2,nBas2),Cp(nBas2,nBas2),H(nBas2,nBas2), & S(nBas2,nBas2),X(nBas2,nBas2),err(nBas2,nBas2), & err_diis(nBas2Sq,max_diis),F_diis(nBas2Sq,max_diis)) diff --git a/src/HF/GHF_search.f90 b/src/HF/GHF_search.f90 index 5a3cdea..29bf58b 100644 --- a/src/HF/GHF_search.f90 +++ b/src/HF/GHF_search.f90 @@ -1,6 +1,6 @@ subroutine GHF_search(maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNuc,rNuc,ENuc, & nBas,nBas2,nC,nO,nV,nR,S,T,V,Hc,ERI_AO,ERI_MO,dipole_int_AO,dipole_int_MO, & - X,EGHF,e,c,P) + X,EGHF,e,c,P,F) ! Search for GHF solutions @@ -66,6 +66,7 @@ subroutine GHF_search(maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNu double precision,intent(out) :: e(nBas2) double precision,intent(inout):: c(nBas2,nBas2) double precision,intent(out) :: P(nBas2,nBas2) + double precision,intent(out) :: F(nBas2,nBas2) ! Memory allocation @@ -99,7 +100,7 @@ subroutine GHF_search(maxSCF,thresh,max_diis,guess_type,mix,level_shift,nNuc,ZNu call wall_time(start_HF) call GHF(.false.,maxSCF,thresh,max_diis,guess,mix,level_shift,nNuc,ZNuc,rNuc,ENuc, & - nBas,nBas2,nO,S,T,V,Hc,ERI_AO,dipole_int_AO,X,EGHF,e,c,P) + nBas,nBas2,nO,S,T,V,Hc,ERI_AO,dipole_int_AO,X,EGHF,e,c,P,F) call wall_time(end_HF) t_HF = end_HF - start_HF diff --git a/src/QuAcK/GQuAcK.f90 b/src/QuAcK/GQuAcK.f90 index 6060939..52ca828 100644 --- a/src/QuAcK/GQuAcK.f90 +++ b/src/QuAcK/GQuAcK.f90 @@ -78,7 +78,7 @@ subroutine GQuAcK(dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,do double precision :: start_GF ,end_GF ,t_GF double precision :: start_GW ,end_GW ,t_GW - double precision,allocatable :: cHF(:,:),eHF(:),PHF(:,:) + double precision,allocatable :: cHF(:,:),eHF(:),PHF(:,:),FHF(:,:) double precision :: EGHF double precision,allocatable :: dipole_int_MO(:,:,:) double precision,allocatable :: ERI_MO(:,:,:,:) @@ -101,7 +101,7 @@ subroutine GQuAcK(dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,do nBas2 = 2*nBas - allocate(cHF(nBas2,nBas2),eHF(nBas2),PHF(nBas2,nBas2), & + allocate(cHF(nBas2,nBas2),eHF(nBas2),PHF(nBas2,nBas2),FHF(nBas2,nBas2), & dipole_int_MO(nBas2,nBas2,ncart),ERI_MO(nBas2,nBas2,nBas2,nBas2)) !---------------------! @@ -112,7 +112,7 @@ subroutine GQuAcK(dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,do call wall_time(start_HF) call GHF(dotest,maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,nNuc,ZNuc,rNuc,ENuc, & - nBas,nBas2,nO,S,T,V,Hc,ERI_AO,dipole_int_AO,X,EGHF,eHF,cHF,PHF) + nBas,nBas2,nO,S,T,V,Hc,ERI_AO,dipole_int_AO,X,EGHF,eHF,cHF,PHF,FHF) call wall_time(end_HF) t_HF = end_HF - start_HF @@ -187,7 +187,7 @@ subroutine GQuAcK(dotest,doGHF,dostab,dosearch,doMP2,doMP3,doCCD,dopCCD,doDCD,do call wall_time(start_stab) call GHF_search(maxSCF_HF,thresh_HF,max_diis_HF,guess_type,mix,level_shift,nNuc,ZNuc,rNuc,ENuc, & nBas,nBas2,nC,nO,nV,nR,S,T,V,Hc,ERI_AO,ERI_MO,dipole_int_AO,dipole_int_MO, & - X,EGHF,eHF,cHF,PHF) + X,EGHF,eHF,cHF,PHF,FHF) call wall_time(end_stab) t_stab = end_stab - start_stab