Index: /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 18253)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 18254)
@@ -42,5 +42,6 @@
 	MatSetSizes(this->matrix,m,n,M,N);
 	MatSetFromOptions(this->matrix);
-	MatMPIAIJSetPreallocation(this->matrix,0,d_nnz,0,o_nnz);
+	PetscErrorCode ierr = MatMPIAIJSetPreallocation(this->matrix,0,d_nnz,0,o_nnz);
+	if(ierr) _error_("PETSc could not allocate matrix (probably not enough memory)");
 //	MatSetOption(this->matrix,MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_FALSE);
 
@@ -160,7 +161,6 @@
 void PetscMat::SetValues(int m,int* idxm,int n,int* idxn,IssmDouble* values,InsMode mode){/*{{{*/
 
-	PetscErrorCode ierr;
-	ierr = MatSetValues(this->matrix,m,idxm,n,idxn,values,ISSMToPetscInsertMode(mode));
-	if(ierr) _error_("PETSC's MatSetValues reported an error");
+	PetscErrorCode ierr = MatSetValues(this->matrix,m,idxm,n,idxn,values,ISSMToPetscInsertMode(mode));
+	if(ierr) _error_("PETSc's MatSetValues reported an error");
 
 }
