From 6ea05c8adcd79233587e525baf84a26f3b0bb05f Mon Sep 17 00:00:00 2001 From: eginer Date: Mon, 21 Nov 2022 15:33:02 +0100 Subject: [PATCH] minor modifs for complicated cases in tc_scf --- src/non_hermit_dav/biorthog.irp.f | 16 +++++++++------- src/tc_keywords/EZFIO.cfg | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/non_hermit_dav/biorthog.irp.f b/src/non_hermit_dav/biorthog.irp.f index 633eff0d..36d0120d 100644 --- a/src/non_hermit_dav/biorthog.irp.f +++ b/src/non_hermit_dav/biorthog.irp.f @@ -314,7 +314,7 @@ subroutine non_hrmt_bieig(n, A, leigvec, reigvec, n_real_eigv, eigval) ! write(*, '(1000(F16.10,X))') VL(:,i) !enddo - thr_diag = 1d-07 + thr_diag = 1d-06 thr_norm = 1d+10 call check_EIGVEC(n, n, A, WR, VL, VR, thr_diag, thr_norm, .false.) @@ -335,19 +335,21 @@ subroutine non_hrmt_bieig(n, A, leigvec, reigvec, n_real_eigv, eigval) else print*, 'Found an imaginary component to eigenvalue on i = ', i print*, 'Re(i) + Im(i)', WR(i), WI(i) - stop endif enddo + if(n_good.ne.n)then + print*,'there are some imaginary eigenvalues ' + thr_diag = 1d-03 + n_good = n + endif allocate(list_good(n_good), iorder(n_good)) n_good = 0 do i = 1, n - if( dabs(WI(i)).lt.thr ) then - n_good += 1 - list_good(n_good) = i - eigval(n_good) = WR(i) - endif + n_good += 1 + list_good(n_good) = i + eigval(n_good) = WR(i) enddo deallocate( WR, WI ) diff --git a/src/tc_keywords/EZFIO.cfg b/src/tc_keywords/EZFIO.cfg index 3cca5bb9..b3e8081b 100644 --- a/src/tc_keywords/EZFIO.cfg +++ b/src/tc_keywords/EZFIO.cfg @@ -92,7 +92,7 @@ default: 1.e-10 type: Strictly_positive_int doc: Maximum number of SCF iterations interface: ezfio,provider,ocaml -default: 500 +default: 100 [selection_tc] type: integer