mirror of
https://github.com/pfloos/quack
synced 2024-10-15 04:21:57 +02:00
70 lines
1.9 KiB
Fortran
70 lines
1.9 KiB
Fortran
|
subroutine MP(doMP2,doMP3,unrestricted,regularize,nBas,nC,nO,nV,nR,ERI,ERI_aaaa,ERI_aabb,ERI_bbbb,ENuc,EHF,epsHF)
|
||
|
|
||
|
! Moller-Plesset module
|
||
|
|
||
|
implicit none
|
||
|
include 'parameters.h'
|
||
|
|
||
|
! Input variables
|
||
|
|
||
|
logical,intent(in) :: doMP2
|
||
|
logical,intent(in) :: doMP3
|
||
|
logical,intent(in) :: unrestricted
|
||
|
|
||
|
logical,intent(in) :: regularize
|
||
|
integer,intent(in) :: nBas
|
||
|
integer,intent(in) :: nC(nspin)
|
||
|
integer,intent(in) :: nO(nspin)
|
||
|
integer,intent(in) :: nV(nspin)
|
||
|
integer,intent(in) :: nR(nspin)
|
||
|
double precision,intent(in) :: ENuc
|
||
|
double precision,intent(in) :: EHF
|
||
|
double precision,intent(in) :: epsHF(nBas)
|
||
|
double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas)
|
||
|
double precision,intent(in) :: ERI_aaaa(nBas,nBas,nBas,nBas)
|
||
|
double precision,intent(in) :: ERI_aabb(nBas,nBas,nBas,nBas)
|
||
|
double precision,intent(in) :: ERI_bbbb(nBas,nBas,nBas,nBas)
|
||
|
|
||
|
! Local variables
|
||
|
|
||
|
! Output variables
|
||
|
|
||
|
!------------------------------------------------------------------------
|
||
|
! Compute MP3 energy
|
||
|
!------------------------------------------------------------------------
|
||
|
|
||
|
if(doMP2) then
|
||
|
|
||
|
if(unrestricted) then
|
||
|
|
||
|
call UMP2(nBas,nC,nO,nV,nR,ERI_aaaa,ERI_aabb,ERI_bbbb,ENuc,EHF,epsHF)
|
||
|
|
||
|
else
|
||
|
|
||
|
call MP2(regularize,nBas,nC,nO,nV,nR,ERI,ENuc,EHF,epsHF)
|
||
|
|
||
|
end if
|
||
|
|
||
|
end if
|
||
|
|
||
|
!------------------------------------------------------------------------
|
||
|
! Compute MP3 energy
|
||
|
!------------------------------------------------------------------------
|
||
|
|
||
|
if(doMP3) then
|
||
|
|
||
|
if(unrestricted) then
|
||
|
|
||
|
write(*,*) 'MP3 NYI for UHF reference'
|
||
|
stop
|
||
|
|
||
|
else
|
||
|
|
||
|
call MP3(nBas,nC,nO,nV,nR,ERI,ENuc,EHF,epsHF)
|
||
|
|
||
|
end if
|
||
|
|
||
|
end if
|
||
|
|
||
|
end subroutine
|