diff --git a/src/mo_two_e_ints/map_integrals.irp.f b/src/mo_two_e_ints/map_integrals.irp.f index a1471a1c..76f169b4 100644 --- a/src/mo_two_e_ints/map_integrals.irp.f +++ b/src/mo_two_e_ints/map_integrals.irp.f @@ -177,10 +177,13 @@ double precision function get_two_e_integral(i,j,k,l,map) if (do_mo_cholesky) then - get_two_e_integral = 0.d0 - do kk=1,cholesky_mo_num - get_two_e_integral = get_two_e_integral + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) - enddo + double precision, external :: ddot + get_two_e_integral = ddot(cholesky_mo_num, cholesky_mo_transp(1,i,k), 1, cholesky_mo_transp(1,j,l), 1) + +! get_two_e_integral = 0.d0 +! do kk=1,cholesky_mo_num +! get_two_e_integral = get_two_e_integral + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) +! enddo else @@ -519,13 +522,16 @@ subroutine get_mo_two_e_integrals_exch_ii(k,l,sze,out_val,map) if ( (k>=mo_integrals_cache_min).and.(k<=mo_integrals_cache_max).and. & (l>=mo_integrals_cache_min).and.(l<=mo_integrals_cache_max) ) then + double precision, external :: ddot integer :: kk do i=1,mo_integrals_cache_min-1 - out_val(i) = 0.d0 - do kk=1,cholesky_mo_num - out_val(i) = out_val(i) + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) - enddo + out_val(i) = ddot(cholesky_mo_num, cholesky_mo_transp(1,i,k), 1, & + cholesky_mo_transp(1,i,l), 1) +! out_val(i) = 0.d0 +! do kk=1,cholesky_mo_num +! out_val(i) = out_val(i) + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) +! enddo enddo do i=mo_integrals_cache_min,mo_integrals_cache_max @@ -533,19 +539,23 @@ subroutine get_mo_two_e_integrals_exch_ii(k,l,sze,out_val,map) enddo do i=mo_integrals_cache_max, sze - out_val(i) = 0.d0 - do kk=1,cholesky_mo_num - out_val(i) = out_val(i) + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) - enddo + out_val(i) = ddot(cholesky_mo_num, cholesky_mo_transp(1,i,k), 1, & + cholesky_mo_transp(1,i,l), 1) +! out_val(i) = 0.d0 +! do kk=1,cholesky_mo_num +! out_val(i) = out_val(i) + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) +! enddo enddo else do i=1,sze - out_val(i) = 0.d0 - do kk=1,cholesky_mo_num - out_val(i) = out_val(i) + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) - enddo + out_val(i) = ddot(cholesky_mo_num, cholesky_mo_transp(1,i,k), 1, & + cholesky_mo_transp(1,i,l), 1) +! out_val(i) = 0.d0 +! do kk=1,cholesky_mo_num +! out_val(i) = out_val(i) + cholesky_mo_transp(kk,i,k)*cholesky_mo_transp(kk,i,l) +! enddo enddo endif