4
1
mirror of https://github.com/pfloos/quack synced 2024-06-19 19:52:17 +02:00
quack/src/CC/CCSDT.f90

46 lines
1.1 KiB
Fortran
Raw Normal View History

2020-03-26 16:57:46 +01:00
subroutine CCSDT(nC,nO,nV,nR,eO,eV,OOVV,VVVO,VOOO,t1,t2,EcCCT)
2019-03-19 10:13:33 +01:00
! Compute the (T) correction of the CCSD(T) energy
implicit none
! Input variables
2020-03-26 16:57:46 +01:00
integer,intent(in) :: nC,nO,nV,nR
2019-03-19 10:13:33 +01:00
double precision,intent(in) :: eO(nO)
double precision,intent(in) :: eV(nV)
double precision,intent(in) :: OOVV(nO,nO,nV,nV)
double precision,intent(in) :: VVVO(nV,nV,nV,nO)
double precision,intent(in) :: VOOO(nV,nO,nO,nO)
double precision,intent(in) :: t1(nO,nV)
double precision,intent(in) :: t2(nO,nO,nV,nV)
! Local variables
double precision,allocatable :: delta_OOOVVV(:,:,:,:,:,:)
double precision,allocatable :: ub(:,:,:,:,:,:)
double precision,allocatable :: ubb(:,:,:,:,:,:)
! Output variables
double precision,intent(out) :: EcCCT
! Memory allocation
allocate(delta_OOOVVV(nO,nO,nO,nV,nV,nV),ub(nO,nO,nO,nV,nV,nV),ubb(nO,nO,nO,nV,nV,nV))
! Form CCSD(T) quantities
2020-03-26 16:57:46 +01:00
call form_delta_OOOVVV(nC,nO,nV,nR,eO,eV,delta_OOOVVV)
2019-03-19 10:13:33 +01:00
2020-03-26 16:57:46 +01:00
call form_ub(nC,nO,nV,nR,OOVV,t1,ub)
2019-03-19 10:13:33 +01:00
2020-03-26 16:57:46 +01:00
call form_ubb(nC,nO,nV,nR,VVVO,VOOO,t2,ubb)
2019-03-19 10:13:33 +01:00
2020-03-26 16:57:46 +01:00
call form_T(nC,nO,nV,nR,delta_OOOVVV,ub,ubb,EcCCT)
2019-03-19 10:13:33 +01:00
end subroutine CCSDT