Index: /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 12858)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 12859)
@@ -37,6 +37,5 @@
 PetscMat::PetscMat(int M,int N, IssmDouble sparsity){
 
-	this->matrix=NULL;
-	if(M*N) this->matrix=NewMat(M,N,sparsity);
+	this->matrix=NewMat(M,N,sparsity);
 }
 /*}}}*/
@@ -44,23 +43,22 @@
 PetscMat::PetscMat(IssmDouble* serial_mat,int M,int N,IssmDouble sparsity){
 
-	this->matrix=NULL;
+	int     i;
+	int* idxm=NULL;
+	int* idxn=NULL;
 	
-	if(M*N){
-		int     i;
-		int* idxm=xNew<int>(M);
-		int* idxn=xNew<int>(N);
-	
-		for(i=0;i<M;i++)idxm[i]=i;
-		for(i=0;i<N;i++)idxn[i]=i;
+	if(M)idxm=xNew<int>(M);
+	if(N)idxn=xNew<int>(N);
+
+	for(i=0;i<M;i++)idxm[i]=i;
+	for(i=0;i<N;i++)idxn[i]=i;
 
 
-		this->matrix=NewMat(M,N,sparsity);
-		MatSetValues(this->matrix,M,idxm,N,idxn,serial_mat,INSERT_VALUES);
-		MatAssemblyBegin(this->matrix,MAT_FINAL_ASSEMBLY);
-		MatAssemblyEnd(this->matrix,MAT_FINAL_ASSEMBLY);
+	this->matrix=NewMat(M,N,sparsity);
+	MatSetValues(this->matrix,M,idxm,N,idxn,serial_mat,INSERT_VALUES);
+	MatAssemblyBegin(this->matrix,MAT_FINAL_ASSEMBLY);
+	MatAssemblyEnd(this->matrix,MAT_FINAL_ASSEMBLY);
 
-		xDelete<int>(idxm);
-		xDelete<int>(idxn);
-	}
+	xDelete<int>(idxm);
+	xDelete<int>(idxn);
 
 }
@@ -69,6 +67,5 @@
 PetscMat::PetscMat(int M,int N, int connectivity,int numberofdofspernode){
 	
-	this->matrix=NULL;
-	if(M*N) this->matrix=NewMat(M,N,connectivity,numberofdofspernode);
+	this->matrix=NewMat(M,N,connectivity,numberofdofspernode);
 
 }
Index: /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp	(revision 12858)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp	(revision 12859)
@@ -37,16 +37,14 @@
 PetscVec::PetscVec(IssmDouble* serial_vec,int M){
 
-	this->vector=NULL;
-	if(M){
-		int* idxm=xNew<int>(M);
-		for(int i=0;i<M;i++) idxm[i]=i;
-
-		this->vector=NewVec(M);
-		VecSetValues(this->vector,M,idxm,serial_vec,INSERT_VALUES);
-		VecAssemblyBegin(this->vector);
-		VecAssemblyEnd(this->vector);
-
-		xDelete<int>(idxm);
-	}
+	int* idxm=NULL;
+	if(M)idxm=xNew<int>(M);
+	for(int i=0;i<M;i++) idxm[i]=i;
+
+	this->vector=NewVec(M);
+	VecSetValues(this->vector,M,idxm,serial_vec,INSERT_VALUES);
+	VecAssemblyBegin(this->vector);
+	VecAssemblyEnd(this->vector);
+
+	xDelete<int>(idxm);
 }
 /*}}}*/
