diff --git a/src/bi_ortho_mos/overlap.irp.f b/src/bi_ortho_mos/overlap.irp.f index 3c279675..9a3e69a3 100644 --- a/src/bi_ortho_mos/overlap.irp.f +++ b/src/bi_ortho_mos/overlap.irp.f @@ -119,7 +119,8 @@ END_PROVIDER enddo END_PROVIDER -BEGIN_PROVIDER [ double precision, angle_left_right, (mo_num)] + BEGIN_PROVIDER [ double precision, angle_left_right, (mo_num)] +&BEGIN_PROVIDER [ double precision, max_angle_left_right] implicit none BEGIN_DOC ! angle_left_right(i) = angle between the left-eigenvector chi_i and the right-eigenvector phi_i @@ -133,6 +134,9 @@ BEGIN_PROVIDER [ double precision, angle_left_right, (mo_num)] arg = max(arg,-1.d0) angle_left_right(i) = dacos(arg) * 180.d0/dacos(-1.d0) enddo + double precision :: angle(mo_num) + angle(1:mo_num) = dabs(angle_left_right(i)) + max_angle_left_right = maxval(angle) END_PROVIDER diff --git a/src/tc_scf/routines_rotates.irp.f b/src/tc_scf/routines_rotates.irp.f index 94b6064f..c1cfba9f 100644 --- a/src/tc_scf/routines_rotates.irp.f +++ b/src/tc_scf/routines_rotates.irp.f @@ -239,6 +239,7 @@ subroutine print_energy_and_mos print*,'' print*,'TC energy = ', TC_HF_energy print*,'TC SCF energy gradient = ',grad_non_hermit + print*,'Max angle Left/right = ',max_angle_left_right print*,'Diag Fock elem, product of left/right norm, angle left/right ' do i = 1, mo_num write(*,'(I3,X,100(F16.10,X))')i,Fock_matrix_tc_mo_tot(i,i),overlap_mo_l(i,i)*overlap_mo_r(i,i),angle_left_right(i) diff --git a/src/tc_scf/tc_scf.irp.f b/src/tc_scf/tc_scf.irp.f index bd7284ee..0e8dfc3b 100644 --- a/src/tc_scf/tc_scf.irp.f +++ b/src/tc_scf/tc_scf.irp.f @@ -170,11 +170,7 @@ subroutine routine_scf() endif print*,'Energy converged !' - print*,'Final TC energy = ', TC_HF_energy - print*,'Diag Fock elem, product of left/right norm, angle left/right ' - do i = 1, mo_num - write(*,'(I3,X,100(F16.10,X))')i,Fock_matrix_tc_mo_tot(i,i),overlap_mo_l(i,i)*overlap_mo_r(i,i),angle_left_right(i) - enddo + call print_energy_and_mos deallocate(rho_old, rho_new)