mirror of
https://github.com/pfloos/quack
synced 2024-08-14 16:48:35 +02:00
41 lines
1.6 KiB
Fortran
41 lines
1.6 KiB
Fortran
|
recursive function HRRF12(AngMomA,AngMomB,AngMomC,AngMomD,fG,gP,gG,gQ,ExpPGQi, &
|
||
|
CenterPQSq,CenterRA,CenterRC,CenterAB,CenterCD) &
|
||
|
result(Gabcd)
|
||
|
|
||
|
! Compute two-electron integrals over Gaussian geminals
|
||
|
|
||
|
implicit none
|
||
|
|
||
|
! Input variables
|
||
|
integer,intent(in) :: AngMomA,AngMomB,AngMomC,AngMomD
|
||
|
double precision,intent(in) :: ExpPGQi
|
||
|
double precision,intent(in) :: fG,gP,gG,gQ
|
||
|
double precision,intent(in) :: CenterPQSq,CenterRA,CenterRC
|
||
|
double precision,intent(in) :: CenterAB,CenterCD
|
||
|
|
||
|
! Local variables
|
||
|
double precision :: VRRF12
|
||
|
double precision :: Gabcd
|
||
|
|
||
|
If(AngMomB < 0 .or. AngMomD < 0) then
|
||
|
Gabcd = 0d0
|
||
|
Else
|
||
|
If(AngMomB == 0 .and. AngMomD == 0) then
|
||
|
Gabcd = VRRF12(AngMomA,AngMomC,fG,gP,gG,gQ,ExpPGQi,CenterPQSq,CenterRA,CenterRC)
|
||
|
Else
|
||
|
If(AngMomD == 0) then
|
||
|
Gabcd = HRRF12(AngMomA+1,AngMomB-1,AngMomC,AngMomD,fG,gP,gG,gQ,ExpPGQi, &
|
||
|
CenterPQSq,CenterRA,CenterRC,CenterAB,CenterCD) &
|
||
|
+ CenterAB*HRRF12(AngMomA,AngMomB-1,AngMomC,AngMomD,fG,gP,gG,gQ, &
|
||
|
ExpPGQi,CenterPQSq,CenterRA,CenterRC,CenterAB,CenterCD)
|
||
|
Else
|
||
|
Gabcd = HRRF12(AngMomA,AngMomB,AngMomC+1,AngMomD-1,fG,gP,gG,gQ,ExpPGQi, &
|
||
|
CenterPQSq,CenterRA,CenterRC,CenterAB,CenterCD) &
|
||
|
+ CenterCD*HRRF12(AngMomA,AngMomB,AngMomC,AngMomD-1,fG,gP,gG,gQ, &
|
||
|
ExpPGQi,CenterPQSq,CenterRA,CenterRC,CenterAB,CenterCD)
|
||
|
EndIf
|
||
|
EndIf
|
||
|
EndIf
|
||
|
|
||
|
end function HRRF12
|