diff --git a/el_nuc_el_blas.irp.f b/el_nuc_el_blas.irp.f index 88da0e4..ee124ad 100644 --- a/el_nuc_el_blas.irp.f +++ b/el_nuc_el_blas.irp.f @@ -10,29 +10,33 @@ ! dtmp_c: ! dr_{ij}^k . R_{ja}^l -> dtmp_c_{ia}^{kl} END_DOC - integer :: k, icount - integer*8 :: gemms(2*ncord) + integer :: k, l, m, icount + integer*8 :: gemms(6*ncord*(ncord+1)) icount = 0 ! r_{ij}^k . R_{ja}^l -> tmp_c_{ia}^{kl} do k=0,ncord-1 - icount += 1 - call qmckl_dgemm('N','N', nelec, nnuc*(ncord+1), nelec, 1.d0, & + do l=0,ncord + icount += 1 + call qmckl_dgemm('N','N', nelec, nnuc, nelec, 1.d0, & rescale_een_e(1,1,k), size(rescale_een_e,1), & - rescale_een_n(1,1,0), size(rescale_een_n,1), 0.d0, & - tmp_c(1,1,0,k), size(tmp_c,1), gemms(icount)) + rescale_een_n(1,1,l), size(rescale_een_n,1), 0.d0, & + tmp_c(1,1,l,k), size(tmp_c,1), gemms(icount)) + enddo enddo ! dr_{ij}^k . R_{ja}^l -> dtmp_c_{ia}^{kl} do k=0,ncord-1 - icount += 1 - call qmckl_dgemm('N','N', 4*nelec_8, nnuc*(ncord+1), nelec, 1.d0, & + do l=0,ncord + icount += 1 + call qmckl_dgemm('N','N', nelec_8*4, nnuc, nelec, 1.d0, & rescale_een_e_deriv_e(1,1,1,k), & size(rescale_een_e_deriv_e,1)*size(rescale_een_e_deriv_e,2), & - rescale_een_n(1,1,0), & + rescale_een_n(1,1,l), & size(rescale_een_n,1), 0.d0, & - dtmp_c(1,1,1,0,k), size(dtmp_c,1)*size(dtmp_c,2), & + dtmp_c(1,1,1,l,k), size(dtmp_c,1)*size(dtmp_c,2), & gemms(icount)) + enddo enddo call qmckl_tasks_run(gemms, icount)