<div class="gmail_quote">On Mon, Oct 24, 2011 at 15:29, Dominik Szczerba <span dir="ltr">&lt;<a href="mailto:dominik@itis.ethz.ch">dominik@itis.ethz.ch</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":19w">ierr = ISGetLocalSize(ix,&amp;nx);CHKERRQ(ierr);<br>
...<br>
ierr = ISGetLocalSize(iy,&amp;ny);CHKERRQ(ierr);<br>
...<br>
if (nx != ny) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_SIZ,&quot;Local scatter<br>
sizes don&#39;t match&quot;);<br>
<br>
<br>
<br>
which looks quite suspicious to me, i.e. 1) If iy is PETSC_NULL, how<br>
can its size be queried?</div></blockquote><div><br></div><div>Your confusion comes from not looking at the earlier part of the function where index sets are created if you passed in NULL. The only reason ix=NULL and iy=NULL is not allowed is that it&#39;s a rare case that more frequently represents misunderstanding. If it&#39;s really what you want, then just make the index set.</div>
</div>