4
1
mirror of https://github.com/pfloos/quack synced 2024-06-01 10:55:28 +02:00
quack/src/utils/spatial_to_spin_ERI.f90

36 lines
807 B
Fortran

subroutine spatial_to_spin_ERI(nBas,ERI,nBas2,sERI)
! Convert ERIs from spatial to spin orbitals
implicit none
! Input variables
integer,intent(in) :: nBas,nBas2
double precision,intent(in) :: ERI(nBas,nBas,nBas,nBas)
! Local variables
integer :: p,q,r,s
double precision,external :: Kronecker_delta
! Output variables
double precision,intent(out) :: sERI(nBas2,nBas2,nBas2,nBas2)
do p=1,nBas2
do q=1,nBas2
do r=1,nBas2
do s=1,nBas2
sERI(p,q,r,s) = Kronecker_delta(mod(p,2),mod(r,2)) &
* Kronecker_delta(mod(q,2),mod(s,2)) &
* ERI((p+1)/2,(q+1)/2,(r+1)/2,(s+1)/2)
enddo
enddo
enddo
enddo
end subroutine spatial_to_spin_ERI