2019-03-19 10:13:33 +01:00
|
|
|
subroutine antisymmetrize_ERI(ispin,nBas,ERI,db_ERI)
|
|
|
|
|
|
|
|
! Antisymmetrize ERIs
|
|
|
|
|
|
|
|
implicit none
|
|
|
|
|
|
|
|
! Input variables
|
|
|
|
|
|
|
|
integer,intent(in) :: ispin,nBas
|
|
|
|
double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas)
|
|
|
|
|
|
|
|
! Local variables
|
|
|
|
|
|
|
|
integer :: i,j,k,l
|
|
|
|
|
|
|
|
! Output variables
|
|
|
|
|
|
|
|
double precision,intent(out) :: db_ERI(nBas,nBas,nBas,nBas)
|
|
|
|
|
|
|
|
if(ispin == 1) then
|
|
|
|
|
|
|
|
do i=1,nBas
|
|
|
|
do j=1,nBas
|
|
|
|
do k=1,nBas
|
|
|
|
do l=1,nBas
|
|
|
|
db_ERI(i,j,k,l) = 2d0*ERI(i,j,k,l) - ERI(i,j,l,k)
|
2023-12-03 18:47:30 +01:00
|
|
|
end do
|
|
|
|
end do
|
|
|
|
end do
|
|
|
|
end do
|
2019-03-19 10:13:33 +01:00
|
|
|
|
|
|
|
elseif(ispin == 2) then
|
|
|
|
|
|
|
|
do i=1,nBas
|
|
|
|
do j=1,nBas
|
|
|
|
do k=1,nBas
|
|
|
|
do l=1,nBas
|
|
|
|
db_ERI(i,j,k,l) = ERI(i,j,k,l) - ERI(i,j,l,k)
|
2023-12-03 18:47:30 +01:00
|
|
|
end do
|
|
|
|
end do
|
|
|
|
end do
|
|
|
|
end do
|
2019-03-19 10:13:33 +01:00
|
|
|
|
2023-12-03 18:47:30 +01:00
|
|
|
end if
|
2019-03-19 10:13:33 +01:00
|
|
|
|
2023-07-27 11:38:38 +02:00
|
|
|
end subroutine
|