diff --git a/src/ao_one_e_ints/ao_overlap.irp.f b/src/ao_one_e_ints/ao_overlap.irp.f index 9877f882..d972b869 100644 --- a/src/ao_one_e_ints/ao_overlap.irp.f +++ b/src/ao_one_e_ints/ao_overlap.irp.f @@ -481,7 +481,7 @@ BEGIN_PROVIDER [ complex*16, S_half_kpts, (ao_num_per_kpt,ao_num_per_kpt,kpt_num allocate(U(ao_num_per_kpt,ao_num_per_kpt),Vt(ao_num_per_kpt,ao_num_per_kpt),D(ao_num_per_kpt)) do kk=1,kpt_num - call svd_complex(ao_overlap_kpts(1,1,k),size(ao_overlap_kpts,1),U,size(U,1),D,Vt,size(Vt,1),ao_num_per_kpt,ao_num_per_kpt) + call svd_complex(ao_overlap_kpts(1,1,kk),size(ao_overlap_kpts,1),U,size(U,1),D,Vt,size(Vt,1),ao_num_per_kpt,ao_num_per_kpt) do i=1,ao_num_per_kpt D(i) = dsqrt(D(i)) diff --git a/src/davidson/diagonalization_hs2_dressed.irp.f b/src/davidson/diagonalization_hs2_dressed.irp.f index f710be14..a94bec2e 100644 --- a/src/davidson/diagonalization_hs2_dressed.irp.f +++ b/src/davidson/diagonalization_hs2_dressed.irp.f @@ -1040,6 +1040,15 @@ subroutine davidson_diag_hjj_sjj_complex(dets_in,u_in,H_jj,s2_out,energies,dim_i y = (0.d0,0.d0) s_ = (0.d0,0.d0) s_tmp = (0.d0,0.d0) + W = (0.d0,0.d0) + S = (0.e0,0.e0) + S_d = (0.d0,0.d0) + h_p = (0.d0,0.d0) + residual_norm = 0.d0 + s2 = 0.d0 + y_s = (0.e0,0.e0) + lambda = 0.d0 + ASSERT (N_st > 0) diff --git a/src/davidson/u0_h_u0.irp.f b/src/davidson/u0_h_u0.irp.f index 0f12a8df..27d16a1e 100644 --- a/src/davidson/u0_h_u0.irp.f +++ b/src/davidson/u0_h_u0.irp.f @@ -797,9 +797,9 @@ subroutine H_S2_u_0_nstates_openmp_complex(v_0,s_0,u_0,N_st,sze) ! istart, iend, ishift, istep are used in ZMQ parallelization. END_DOC integer, intent(in) :: N_st,sze - complex*16, intent(out) :: v_0(sze,N_st), s_0(sze,N_st) - complex*16, intent(inout) :: u_0(sze,N_st) - !complex*16, intent(inout) :: v_0(sze,N_st), s_0(sze,N_st), u_0(sze,N_st) + !complex*16, intent(out) :: v_0(sze,N_st), s_0(sze,N_st) + !complex*16, intent(inout) :: u_0(sze,N_st) + complex*16, intent(inout) :: v_0(sze,N_st), s_0(sze,N_st), u_0(sze,N_st) integer :: k complex*16, allocatable :: u_t(:,:), v_t(:,:), s_t(:,:) !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: u_t @@ -884,7 +884,8 @@ subroutine H_S2_u_0_nstates_openmp_work_complex_$N_int(v_t,s_t,u_t,N_st,sze,ista complex*16, intent(in) :: u_t(N_st,N_det) complex*16, intent(out) :: v_t(N_st,sze), s_t(N_st,sze) - complex*16 :: hij, sij + complex*16 :: hij + double precision :: sij integer :: i,j,k,l,kk integer :: k_a, k_b, l_a, l_b, m_a, m_b integer :: istate @@ -1389,7 +1390,7 @@ compute_singles=.True. double precision, external :: diag_H_mat_elem, diag_S_mat_elem hij = dcmplx(diag_H_mat_elem(tmp_det,$N_int),0.d0) - sij = dcmplx(diag_S_mat_elem(tmp_det,$N_int),0.d0) + sij = diag_s_mat_elem(tmp_det,$N_int) !DIR$ LOOP COUNT AVG(4) do l=1,N_st v_t(l,k_a) = v_t(l,k_a) + hij * u_t(l,k_a)