Consider the following code:

    ierr = ISSorted(iscol[i], &sorted); CHKERRQ(ierr);
    if (!sorted) SETERRQ1(((PetscObject)iscol[i])->comm, PETSC_ERR_SUP, "Column 
index set %D not sorted", i);

   ISSorted() is not a collective operation and just determines if the local 
part of the IS is sorted.

   Hence some processes in comm may return true and some may return false. 

   In this situation you CANNOT call SETERRQ() with that collective comm. You 
must call it with PETSC_COMM_SELF

   You can ONLY CALL SETERRQ with a collective comm if you know with absolute 
certainty that all processes in the comm will be calling it. 


    Barry


Reply via email to