10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-07-03 18:05:59 +02:00

Removed dsyevd

This commit is contained in:
Anthony Scemama 2017-06-03 01:23:59 +02:00
parent 2ce0e5d490
commit 94828d8fb8

View File

@ -55,43 +55,55 @@
lwork = 1+6*n + 2*n*n lwork = 1+6*n + 2*n*n
liwork = 3 + 5*n liwork = 3 + 5*n
allocate(work(lwork), iwork(liwork) ) allocate(work(lwork))
! allocate(iwork(liwork) )
lwork = -1 lwork = -1
liwork = -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, & size(F,1), diagonal_Fock_matrix_mo, &
work, lwork, iwork, liwork, info) work, lwork, info)
if (info /= 0) then if (info /= 0) then
print *, irp_here//' failed : ', info print *, irp_here//' failed : ', info
stop 1 stop 1
endif endif
lwork = int(work(1)) lwork = int(work(1))
liwork = iwork(1) ! liwork = iwork(1)
deallocate(work,iwork) ! deallocate(iwork)
allocate(work(lwork), iwork(liwork) ) deallocate(work)
call dsyevd( 'V', 'U', mo_tot_num, F, & 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, & size(F,1), diagonal_Fock_matrix_mo, &
work, lwork, iwork, liwork, info) work, lwork, info)
if (info /= 0) then if (info /= 0) then
call dsyev( 'V', 'U', mo_tot_num, F, & ! call dsyev( 'V', 'U', mo_tot_num, F, &
size(F,1), diagonal_Fock_matrix_mo, & ! size(F,1), diagonal_Fock_matrix_mo, &
work, lwork, info) ! work, lwork, info)
!
if (info /= 0) then ! if (info /= 0) then
print *, irp_here//' failed : ', info print *, irp_here//' failed : ', info
stop 1 stop 1
endif ! endif
endif endif
call dgemm('N','N',ao_num,mo_tot_num,mo_tot_num, 1.d0, & call dgemm('N','N',ao_num,mo_tot_num,mo_tot_num, 1.d0, &
mo_coef, size(mo_coef,1), F, size(F,1), & mo_coef, size(mo_coef,1), F, size(F,1), &
0.d0, eigenvectors_Fock_matrix_mo, size(eigenvectors_Fock_matrix_mo,1)) 0.d0, eigenvectors_Fock_matrix_mo, size(eigenvectors_Fock_matrix_mo,1))
deallocate(work, iwork, F) deallocate(work, F)