compare_det Subroutine

public pure subroutine compare_det(coef_sign, only_left, only_left_spin, only_right, only_right_spin, left_occ, left_det, right_occ, right_det)

compares two determinants specified by determinant path left_det(1:Nopen) right_det(1:Nopen) and occupation left_occ(:) and right_occ(:), respectively. only_left(1:M) and only_right(1:M) returns the orbital indices of electrons that are only present in left and right determinant only_left_spin(1:M) and only_right_spin(1:M) the respective spin of the electrons coef_sign returns the sign produced by flips to bring the determinants into best congruence. The array length M can be arbitrarily. When the number of electrons only present in one determinant exceeds M comparison is quit and coef_sign=0 is returned

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: coef_sign
integer, intent(out) :: only_left(:)
integer, intent(out) :: only_left_spin(:)
integer, intent(out) :: only_right(:)
integer, intent(out) :: only_right_spin(:)
integer, intent(in) :: left_occ(:)
integer, intent(in) :: left_det(:)
integer, intent(in) :: right_occ(:)
integer, intent(in) :: right_det(:)