diff --git a/src/tools/print_hamiltonian.irp.f b/src/tools/print_hamiltonian.irp.f index 207161dd..183fd502 100644 --- a/src/tools/print_hamiltonian.irp.f +++ b/src/tools/print_hamiltonian.irp.f @@ -9,7 +9,11 @@ program print_hamiltonian ! psi_coef_sorted are the wave function stored in the |EZFIO| directory. read_wf = .True. touch read_wf - call run + if (is_complex) then + call run_complex + else + call run + endif end subroutine run @@ -27,3 +31,42 @@ subroutine run enddo end + +subroutine run_complex + implicit none + integer :: i, j + complex*16 :: hij + double precision :: s2 + + print*,'i,j,Hij' + do j=1,N_det + do i=1,N_det + call i_h_j_complex(psi_det(1,1,i), psi_det(1,1,j), N_int, hij) + if (cdabs(hij) > 1.d-20) then + print *, i, j, dble(hij), dimag(hij) + endif + enddo + enddo + print*,'i,j,S2ij' + do j=1,N_det + do i=1,N_det + call get_s2(psi_det(1,1,i), psi_det(1,1,j), N_int, s2) + if (dabs(s2) > 1.d-20) then + print *, i, j, s2 + endif + enddo + enddo +! use bitmasks + integer :: degree + + print*,'i,j,degij' + do j=1,N_det + do i=1,N_det + call get_excitation_degree(psi_det(1,1,i), psi_det(1,1,j), degree, N_int) + if (degree.le.2) then + print *, i, j, degree + endif + enddo + enddo + +end