From 94828d8fb8f925994662dbb1224276175768c640 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Sat, 3 Jun 2017 01:23:59 +0200 Subject: [PATCH] Removed dsyevd --- plugins/Hartree_Fock/diagonalize_fock.irp.f | 44 +++++++++++++-------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/plugins/Hartree_Fock/diagonalize_fock.irp.f b/plugins/Hartree_Fock/diagonalize_fock.irp.f index 464ffb7c..3d5000b5 100644 --- a/plugins/Hartree_Fock/diagonalize_fock.irp.f +++ b/plugins/Hartree_Fock/diagonalize_fock.irp.f @@ -55,43 +55,55 @@ lwork = 1+6*n + 2*n*n liwork = 3 + 5*n - allocate(work(lwork), iwork(liwork) ) + allocate(work(lwork)) +! allocate(iwork(liwork) ) lwork = -1 liwork = -1 - call dsyevd( 'V', 'U', mo_tot_num, F, & +! call dsyevd( 'V', 'U', mo_tot_num, F, & +! size(F,1), diagonal_Fock_matrix_mo, & +! work, lwork, iwork, liwork, info) + + call dsyev( 'V', 'U', mo_tot_num, F, & size(F,1), diagonal_Fock_matrix_mo, & - work, lwork, iwork, liwork, info) + work, lwork, info) if (info /= 0) then print *, irp_here//' failed : ', info stop 1 endif lwork = int(work(1)) - liwork = iwork(1) - deallocate(work,iwork) - allocate(work(lwork), iwork(liwork) ) - - call dsyevd( 'V', 'U', mo_tot_num, F, & +! liwork = iwork(1) +! deallocate(iwork) + deallocate(work) + + allocate(work(lwork)) +! allocate(iwork(liwork) ) +! call dsyevd( 'V', 'U', mo_tot_num, F, & +! size(F,1), diagonal_Fock_matrix_mo, & +! work, lwork, iwork, liwork, info) +! deallocate(iwork) + + call dsyev( 'V', 'U', mo_tot_num, F, & size(F,1), diagonal_Fock_matrix_mo, & - work, lwork, iwork, liwork, info) + work, lwork, info) if (info /= 0) then - call dsyev( 'V', 'U', mo_tot_num, F, & - size(F,1), diagonal_Fock_matrix_mo, & - work, lwork, info) - - if (info /= 0) then +! call dsyev( 'V', 'U', mo_tot_num, F, & +! size(F,1), diagonal_Fock_matrix_mo, & +! work, lwork, info) +! +! if (info /= 0) then print *, irp_here//' failed : ', info stop 1 - endif +! endif endif call dgemm('N','N',ao_num,mo_tot_num,mo_tot_num, 1.d0, & mo_coef, size(mo_coef,1), F, size(F,1), & 0.d0, eigenvectors_Fock_matrix_mo, size(eigenvectors_Fock_matrix_mo,1)) - deallocate(work, iwork, F) + deallocate(work, F)