mirror of
https://gitlab.com/scemama/qp_plugins_scemama.git
synced 2024-12-23 04:43:38 +01:00
81 lines
1.9 KiB
FortranFixed
81 lines
1.9 KiB
FortranFixed
|
BEGIN_PROVIDER [real*8, Fipq, (mo_num,mo_num) ]
|
||
|
BEGIN_DOC
|
||
|
! the inactive Fock matrix, in molecular orbitals
|
||
|
END_DOC
|
||
|
implicit none
|
||
|
integer :: p,q,k,kk,t,tt,u,uu
|
||
|
|
||
|
do q=1,mo_num
|
||
|
do p=1,mo_num
|
||
|
Fipq(p,q)=one_ints_no(p,q)
|
||
|
end do
|
||
|
end do
|
||
|
|
||
|
! the inactive Fock matrix
|
||
|
do k=1,n_core_inact_orb
|
||
|
kk=list_core_inact(k)
|
||
|
do q=1,mo_num
|
||
|
do p=1,mo_num
|
||
|
Fipq(p,q)+=2.D0*bielec_pqxx_no(p,q,k,k) -bielec_pxxq_no(p,k,k,q)
|
||
|
end do
|
||
|
end do
|
||
|
end do
|
||
|
|
||
|
if (bavard) then
|
||
|
integer :: i
|
||
|
write(6,*)
|
||
|
write(6,*) ' the diagonal of the inactive effective Fock matrix '
|
||
|
write(6,'(5(i3,F12.5))') (i,Fipq(i,i),i=1,mo_num)
|
||
|
write(6,*)
|
||
|
end if
|
||
|
|
||
|
|
||
|
END_PROVIDER
|
||
|
|
||
|
|
||
|
BEGIN_PROVIDER [real*8, Fapq, (mo_num,mo_num) ]
|
||
|
BEGIN_DOC
|
||
|
! the active active Fock matrix, in molecular orbitals
|
||
|
! we create them in MOs, quite expensive
|
||
|
!
|
||
|
! for an implementation in AOs we need first the natural orbitals
|
||
|
! for forming an active density matrix in AOs
|
||
|
!
|
||
|
END_DOC
|
||
|
implicit none
|
||
|
integer :: p,q,k,kk,t,tt,u,uu
|
||
|
|
||
|
Fapq = 0.d0
|
||
|
|
||
|
! the active Fock matrix, D0tu is diagonal
|
||
|
do t=1,n_act_orb
|
||
|
tt=list_act(t)
|
||
|
do q=1,mo_num
|
||
|
do p=1,mo_num
|
||
|
Fapq(p,q)+=occnum(tt) &
|
||
|
*(bielec_pqxx_no(p,q,tt,tt)-0.5D0*bielec_pxxq_no(p,tt,tt,q))
|
||
|
end do
|
||
|
end do
|
||
|
end do
|
||
|
|
||
|
if (bavard) then
|
||
|
integer :: i
|
||
|
write(6,*)
|
||
|
write(6,*) ' the effective Fock matrix over MOs'
|
||
|
write(6,*)
|
||
|
|
||
|
write(6,*)
|
||
|
write(6,*) ' the diagonal of the inactive effective Fock matrix '
|
||
|
write(6,'(5(i3,F12.5))') (i,Fipq(i,i),i=1,mo_num)
|
||
|
write(6,*)
|
||
|
write(6,*)
|
||
|
write(6,*) ' the diagonal of the active Fock matrix '
|
||
|
write(6,'(5(i3,F12.5))') (i,Fapq(i,i),i=1,mo_num)
|
||
|
write(6,*)
|
||
|
end if
|
||
|
|
||
|
|
||
|
END_PROVIDER
|
||
|
|
||
|
|