diff --git a/src/determinants/spindeterminants.irp.f b/src/determinants/spindeterminants.irp.f index 01979c02..2f497bd7 100644 --- a/src/determinants/spindeterminants.irp.f +++ b/src/determinants/spindeterminants.irp.f @@ -197,7 +197,9 @@ integer function get_index_in_psi_det_alpha_unique(key,Nint) enddo i += 1 - ASSERT (i <= N_det_alpha_unique) + if (i> N_det_alpha_unique) then + call qp_bug(irp_here, i, 'i> N_det_alpha_unique') + endif !DIR$ FORCEINLINE do while (spin_det_search_key(psi_det_alpha_unique(1,i),Nint) == det_ref) @@ -219,12 +221,15 @@ integer function get_index_in_psi_det_alpha_unique(key,Nint) endif i += 1 if (i > N_det_alpha_unique) then - ASSERT (get_index_in_psi_det_alpha_unique > 0) - return + exit endif enddo + if (get_index_in_psi_det_alpha_unique <= 0) then + call qp_bug(irp_here, get_index_in_psi_det_alpha_unique, 'get_index_in_psi_det_alpha_unique <= 0') + endif + end integer function get_index_in_psi_det_beta_unique(key,Nint) @@ -277,7 +282,9 @@ integer function get_index_in_psi_det_beta_unique(key,Nint) enddo i += 1 - ASSERT (i <= N_det_beta_unique) + if (i > N_det_beta_unique) then + call qp_bug(irp_here, i, 'i> N_det_beta_unique') + endif !DIR$ FORCEINLINE do while (spin_det_search_key(psi_det_beta_unique(1,i),Nint) == det_ref) @@ -299,12 +306,15 @@ integer function get_index_in_psi_det_beta_unique(key,Nint) endif i += 1 if (i > N_det_beta_unique) then - ASSERT (get_index_in_psi_det_beta_unique > 0) - return + exit endif enddo + if (get_index_in_psi_det_beta_unique <= 0) then + call qp_bug(irp_here, i, 'get_index_in_psi_det_beta_unique <= 0') + endif + end diff --git a/src/utils/bug.irp.f b/src/utils/bug.irp.f new file mode 100644 index 00000000..0e2ad551 --- /dev/null +++ b/src/utils/bug.irp.f @@ -0,0 +1,23 @@ +subroutine qp_bug(from, code, message) + implicit none + BEGIN_DOC +! This routine prints a bug report + END_DOC + character*(*) :: from + integer :: code + character*(*) :: message + + print *, '' + print *, '=======================' + print *, 'Bug in Quantum Package!' + print *, '=======================' + print *, '' + print *, ' from: ', trim(from) + print *, ' code: ', code + print *, ' info: ', trim(message) + print *, '' + print *, 'Please report this bug at https://github.com/QuantumPackage/qp2/issues' + print *, 'with your output file attached.' + print *, '' + stop -1 +end subroutine qp_bug