program diag_and_save
 implicit none
 read_wf = .True.
 touch read_wf
 call routine
end

subroutine routine
 implicit none
 print*,'N_det = ',N_det
 call diagonalize_CI
 integer :: igood_state
 igood_state=1
 double precision, allocatable :: psi_coef_tmp(:)
 allocate(psi_coef_tmp(n_det))
 integer :: i
 do i = 1, N_det
  psi_coef_tmp(i) = psi_coef(i,igood_state)
 enddo
 call save_wavefunction_general(N_det,1,psi_det,n_det,psi_coef_tmp)
 deallocate(psi_coef_tmp)



end
