Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp	(revision 13597)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp	(revision 13598)
@@ -18,5 +18,5 @@
 /*Function prototypes: */
 int MatMultCompatible(Mat A,Vec x,COMM comm);
-void VecRelocalize(Vec* outvector,Vec vector,int m);
+void VecRelocalize(Vec* outvector,Vec vector,int m,COMM comm);
 
 void MatMultPatch(Mat A,Vec X, Vec AX,COMM comm){ //same prototype as MatMult in Petsc
@@ -32,5 +32,5 @@
 	else{
 		MatGetLocalSize(A,&m,&n);;
-		VecRelocalize(&X_rel,X,n);
+		VecRelocalize(&X_rel,X,n,comm);
 		MatMult(A,X_rel,AX); ;
 		#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
@@ -69,5 +69,5 @@
 }
 
-void VecRelocalize(Vec* poutvector,Vec vector,int m){
+void VecRelocalize(Vec* poutvector,Vec vector,int m,COMM comm){
 
 	/*vector index and vector values*/
@@ -80,5 +80,5 @@
 	
 	/*Create outvector with local size m*/
-	VecCreate(PETSC_COMM_WORLD,&outvector); ; 
+	VecCreate(comm,&outvector); ; 
 	VecSetSizes(outvector,m,PETSC_DECIDE); ; 
 	VecSetFromOptions(outvector); ; 
Index: /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackInvertMatrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackInvertMatrix.cpp	(revision 13597)
+++ /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackInvertMatrix.cpp	(revision 13598)
@@ -15,5 +15,5 @@
 void PlapackInvertMatrixLocalCleanup(PLA_Obj* pa,PLA_Template* ptempl,double** parrayA,int** pidxnA,MPI_Comm* pcomm_2d);
 	
-int PlapackInvertMatrix(Mat* A,Mat* inv_A,int status,int con){ 
+int PlapackInvertMatrix(Mat* A,Mat* inv_A,int status,int con,COMM comm){ 
 	/*inv_A does not yet exist, inv_A was just allocated, that's all*/
 
@@ -76,5 +76,5 @@
 	if(PLA_Initialized(NULL)==TRUE)PLA_Finalize();
 	/* Create a 2D communicator */
-	PLA_Comm_1D_to_2D(MPI_COMM_WORLD,nprows,npcols,&comm_2d); 
+	PLA_Comm_1D_to_2D(comm,nprows,npcols,&comm_2d); 
 
 	/*Initlialize plapack: */
Index: /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackToPetsc.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackToPetsc.cpp	(revision 13597)
+++ /issm/trunk-jpl/src/c/toolkits/plapack/patches/PlapackToPetsc.cpp	(revision 13598)
@@ -6,5 +6,5 @@
 #include "../plapackincludes.h"
 
-int PlapackToPetsc(Mat* A,int local_mA,int local_nA,int mA,int nA,MatType type,PLA_Obj a,PLA_Template templ,int nprows,int npcols,int nb){
+int PlapackToPetsc(Mat* A,int local_mA,int local_nA,int mA,int nA,MatType type,PLA_Obj a,PLA_Template templ,int nprows,int npcols,int nb,COMM comm){
 
 	
@@ -28,8 +28,8 @@
 		d_nz=nA/2;
 		o_nz=nA/2;
-		MatCreateMPIAIJ(MPI_COMM_WORLD,local_mA,local_nA, mA,nA,d_nz,PETSC_NULL,o_nz,PETSC_NULL,A);
+		MatCreateMPIAIJ(comm,local_mA,local_nA, mA,nA,d_nz,PETSC_NULL,o_nz,PETSC_NULL,A);
 	}
 	else if(strcasecmp_eq(type,MATMPIDENSE)){
-		MatCreateMPIDense(MPI_COMM_WORLD,local_mA,local_nA, mA,nA,PETSC_NULL,A); 
+		MatCreateMPIDense(comm,local_mA,local_nA, mA,nA,PETSC_NULL,A); 
 	}
 	
Index: /issm/trunk-jpl/src/c/toolkits/plapack/patches/plapackpatches.h
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/plapack/patches/plapackpatches.h	(revision 13597)
+++ /issm/trunk-jpl/src/c/toolkits/plapack/patches/plapackpatches.h	(revision 13598)
@@ -6,6 +6,6 @@
 #define _PLAPACK_PATCHES_H_
 
-int PlapackInvertMatrix(Mat* A,Mat* inv_A,int status,int con);
-int PlapackToPetsc(Mat* A,int local_mA,int local_nA,int mA,int nA,MatType type,PLA_Obj a,PLA_Template templ,int nprows,int npcols,int nb);
+int PlapackInvertMatrix(Mat* A,Mat* inv_A,int status,int con,COMM comm);
+int PlapackToPetsc(Mat* A,int local_mA,int local_nA,int mA,int nA,MatType type,PLA_Obj a,PLA_Template templ,int nprows,int npcols,int nb,COMM comm);
 int CyclicalFactorization(int* pnprows,int* pnpcols,int num_procs);
 
