10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-06-30 00:44:37 +02:00
QuantumPackage/src/mo_one_e_ints/pot_mo_pseudo_ints.irp.f

68 lines
2.7 KiB
FortranFixed
Raw Normal View History

BEGIN_PROVIDER [double precision, mo_pseudo_integrals, (mo_num,mo_num)]
&BEGIN_PROVIDER [double precision, mo_pseudo_integrals_imag, (mo_num,mo_num)]
&BEGIN_PROVIDER [complex*16, mo_pseudo_integrals_complex, (mo_num,mo_num)]
2019-01-25 11:39:31 +01:00
implicit none
BEGIN_DOC
! Pseudopotential integrals in |MO| basis
END_DOC
if (is_periodic) then
integer :: i,j
if (read_mo_integrals_pseudo) then
call ezfio_get_mo_one_e_ints_mo_integrals_pseudo(mo_pseudo_integrals)
call ezfio_get_mo_one_e_ints_mo_integrals_pseudo_imag(mo_pseudo_integrals_imag)
print *, 'MO pseudopotential integrals read from disk'
do i=1,mo_num
do j=1,mo_num
mo_pseudo_integrals_complex(j,i) = dcmplx(mo_pseudo_integrals(j,i), &
mo_pseudo_integrals_imag(j,i))
enddo
enddo
else if (do_pseudo) then
call ao_to_mo_complex( &
ao_pseudo_integrals_complex, &
size(ao_pseudo_integrals_complex,1), &
mo_pseudo_integrals_complex, &
size(mo_pseudo_integrals_complex,1) &
)
do i=1,mo_num
do j=1,mo_num
mo_pseudo_integrals(j,i)=dble(mo_pseudo_integrals_complex(j,i))
mo_pseudo_integrals_imag(j,i)=dimag(mo_pseudo_integrals_complex(j,i))
enddo
enddo
else
2019-01-25 11:39:31 +01:00
mo_pseudo_integrals = 0.d0
mo_pseudo_integrals_imag = 0.d0
mo_pseudo_integrals_complex = (0.d0,0.d0)
endif
if (write_mo_integrals_pseudo) then
call ezfio_set_mo_one_e_ints_mo_integrals_pseudo(mo_pseudo_integrals)
call ezfio_set_mo_one_e_ints_mo_integrals_pseudo_imag(mo_pseudo_integrals_imag)
print *, 'MO pseudopotential integrals written to disk'
endif
else
if (read_mo_integrals_pseudo) then
call ezfio_get_mo_one_e_ints_mo_integrals_pseudo(mo_pseudo_integrals)
print *, 'MO pseudopotential integrals read from disk'
else if (do_pseudo) then
call ao_to_mo( &
ao_pseudo_integrals, &
size(ao_pseudo_integrals,1), &
mo_pseudo_integrals, &
size(mo_pseudo_integrals,1) &
)
else
mo_pseudo_integrals = 0.d0
endif
2019-01-25 11:39:31 +01:00
if (write_mo_integrals_pseudo) then
call ezfio_set_mo_one_e_ints_mo_integrals_pseudo(mo_pseudo_integrals)
print *, 'MO pseudopotential integrals written to disk'
endif
2019-01-25 11:39:31 +01:00
endif
END_PROVIDER