Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 15838)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 15839)
@@ -172,5 +172,4 @@
 					./shared/io/Print/PrintfFunction.cpp\
 					./shared/io/Print/Print.h\
-					./shared/io/Comm/Comm.h\
 					./shared/io/Comm/IssmComm.h\
 					./shared/io/Comm/IssmComm.cpp\
Index: /issm/trunk-jpl/src/c/analyses/EnvironmentInit.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/EnvironmentInit.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/analyses/EnvironmentInit.cpp	(revision 15839)
@@ -10,8 +10,8 @@
 #include "../toolkits/toolkits.h"
 
-COMM EnvironmentInit(int argc,char** argv){
+ISSM_MPI_Comm EnvironmentInit(int argc,char** argv){
 
 	/*Output*/
-	COMM comm = 0;
+	ISSM_MPI_Comm comm = 0;
 
 	/*Initialize MPI environment: */
Index: /issm/trunk-jpl/src/c/analyses/analyses.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/analyses/analyses.h	(revision 15839)
@@ -13,5 +13,5 @@
 template <class doubletype> class Vector;
 
-#include "../shared/io/Comm/Comm.h"
+#include "../shared/io/Comm/IssmComm.h"
 #include "../shared/Numerics/types.h"
 
@@ -46,5 +46,5 @@
 void WriteLockFile(char* filename);
 void ResetBoundaryConditions(FemModel* femmodel, int analysis_type);
-COMM EnvironmentInit(int argc,char** argv);
+ISSM_MPI_Comm EnvironmentInit(int argc,char** argv);
 void EnvironmentFinalize(void);
 void PrintBanner(void);
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 15839)
@@ -41,6 +41,6 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION FemModel::FemModel(int argc,char** argv,COMM incomm){{{*/
-FemModel::FemModel(int argc,char** argv,COMM incomm){
+/*FUNCTION FemModel::FemModel(int argc,char** argv,ISSM_MPI_Comm incomm){{{*/
+FemModel::FemModel(int argc,char** argv,ISSM_MPI_Comm incomm){
 
 	/*configuration: */
Index: /issm/trunk-jpl/src/c/classes/FemModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 15839)
@@ -43,8 +43,8 @@
 		Parameters  *parameters;           //one set of parameters, independent of the analysis_type
 		Results     *results;              //results that cannot be fit into the elements 
-		COMM        comm;                  //communicator for this particular model
+		ISSM_MPI_Comm        comm;                  //communicator for this particular model
 
 		/*constructors, destructors: */
-		FemModel(int argc,char** argv,COMM comm_init);
+		FemModel(int argc,char** argv,ISSM_MPI_Comm comm_init);
 		FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* petscfilename, char* lockfilename, const int solution_type,const int* analyses,const int nummodels);
 		~FemModel();
Index: /issm/trunk-jpl/src/c/main/globals.h
===================================================================
--- /issm/trunk-jpl/src/c/main/globals.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/main/globals.h	(revision 15839)
@@ -6,9 +6,9 @@
 #define _GLOBALS_H_
 
-#include "../shared/io/Comm/Comm.h"
+#include "../shared/io/Comm/IssmComm.h"
 #include "../toolkits/ToolkitOptions.h"
 
 /*Communicators: */
-COMM IssmComm::comm;
+ISSM_MPI_Comm IssmComm::comm;
 bool IssmComm::parallel;
 
Index: /issm/trunk-jpl/src/c/main/issm.cpp
===================================================================
--- /issm/trunk-jpl/src/c/main/issm.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/main/issm.cpp	(revision 15839)
@@ -11,5 +11,5 @@
 
 	/*Initialize environment (MPI, PETSC, MUMPS, etc ...)*/
-	COMM comm_init=EnvironmentInit(argc,argv);
+	ISSM_MPI_Comm comm_init=EnvironmentInit(argc,argv);
 
 	/*Initialize femmodel from arguments provided command line: */
Index: /issm/trunk-jpl/src/c/main/kriging.cpp
===================================================================
--- /issm/trunk-jpl/src/c/main/kriging.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/main/kriging.cpp	(revision 15839)
@@ -39,5 +39,5 @@
 
 	/*Initialize environment (MPI, PETSC, MUMPS, etc ...)*/
-	COMM comm=EnvironmentInit(argc,argv);
+	ISSM_MPI_Comm comm=EnvironmentInit(argc,argv);
 	IssmComm::SetComm(comm);
 
Index: /issm/trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp	(revision 15839)
@@ -11,5 +11,5 @@
 #include "./exceptions.h"
 #include "../io/Print/Print.h"
-#include "../io/Comm/Comm.h"
+#include "../io/Comm/IssmComm.h"
 
 ErrorException::ErrorException(const string &what_arg){/*{{{*/
Index: sm/trunk-jpl/src/c/shared/io/Comm/Comm.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Comm/Comm.h	(revision 15838)
+++ 	(revision )
@@ -1,11 +1,0 @@
-/*\file Comm.h
- *\brief: communicator information
- */
-
-#ifndef _IO_COMM_H_
-#define _IO_COMM_H_
-
-#include "../../../toolkits/mpi/issmmpi.h"
-#include "./IssmComm.h"
-
-#endif
Index: /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.cpp	(revision 15839)
@@ -13,5 +13,5 @@
 #include "../../Exceptions/exceptions.h"
 
-void IssmComm::SetComm(ISSM_MPI_COMM incomm){ /*{{{*/
+void IssmComm::SetComm(ISSM_MPI_Comm incomm){ /*{{{*/
 
 	/*A comm is provided, we are running in parallel (this is not a module)*/
@@ -28,5 +28,5 @@
 
 }/*}}}*/
-ISSM_MPI_COMM IssmComm::GetComm(){  /*{{{*/
+ISSM_MPI_Comm IssmComm::GetComm(){  /*{{{*/
 	if(!parallel) _error_("Cannot return comm in serial mode");
 	return comm;
Index: /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.h	(revision 15839)
@@ -14,5 +14,5 @@
 #endif
 
-#include "./CommDef.h"
+#include "../../../toolkits/mpi/issmmpi.h"
 
 /*}}}*/
@@ -25,7 +25,7 @@
 
 	public:
-		static void SetComm(ISSM_MPI_COMM incomm);
+		static void SetComm(ISSM_MPI_Comm incomm);
 		static void SetComm(void);
-		static ISSM_MPI_COMM GetComm(void);
+		static ISSM_MPI_Comm GetComm(void);
 		static int GetRank(void);
 		static int GetSize(void);
Index: /issm/trunk-jpl/src/c/shared/io/Disk/WriteLockFile.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Disk/WriteLockFile.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/shared/io/Disk/WriteLockFile.cpp	(revision 15839)
@@ -4,5 +4,5 @@
 #include <cstdio>
 #include "../../Exceptions/exceptions.h"
-#include "../Comm/Comm.h"
+#include "../Comm/IssmComm.h"
 #include "../Print/Print.h"
 #include <cstdio>
Index: /issm/trunk-jpl/src/c/shared/io/Disk/pfopen.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Disk/pfopen.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/shared/io/Disk/pfopen.cpp	(revision 15839)
@@ -11,5 +11,5 @@
 #include <stdio.h>
 #include "../Print/Print.h"
-#include "../Comm/Comm.h"
+#include "../Comm/IssmComm.h"
 #include "../../Exceptions/exceptions.h"
 
Index: /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 15839)
@@ -16,5 +16,5 @@
 #endif
 #include "./Print.h"
-#include "../Comm/Comm.h"
+#include "../Comm/IssmComm.h"
 #include "../../String/sharedstring.h"
 #include "../../MemOps/MemOps.h"
Index: /issm/trunk-jpl/src/c/shared/io/io.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/io.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/shared/io/io.h	(revision 15839)
@@ -14,5 +14,5 @@
 #include "./Disk/diskio.h"
 #include "./Print/Print.h"
-#include "./Comm/Comm.h"
+#include "./Comm/IssmComm.h"
 
 #endif	/* _IO_H_ */
Index: /issm/trunk-jpl/src/c/toolkits/issm/IssmToolkitUtils.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/issm/IssmToolkitUtils.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/issm/IssmToolkitUtils.cpp	(revision 15839)
@@ -12,5 +12,5 @@
 
 #include "../../shared/MemOps/MemOps.h"
-#include "../../shared/io/Comm/Comm.h"
+#include "../../shared/io/Comm/IssmComm.h"
 #include "../../shared/Enum/Enum.h"
 #include "../../shared/Exceptions/exceptions.h"
Index: /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineGlobalSize.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineGlobalSize.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineGlobalSize.cpp	(revision 15839)
@@ -8,5 +8,5 @@
 #include "../../../shared/Numerics/types.h"
 
-int DetermineGlobalSize(int local_size,COMM comm){
+int DetermineGlobalSize(int local_size,ISSM_MPI_Comm comm){
 
 	/*output: */
Index: /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineLocalSize.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineLocalSize.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineLocalSize.cpp	(revision 15839)
@@ -7,5 +7,5 @@
 #include "../../../shared/shared.h"
 
-int DetermineLocalSize(int global_size,COMM comm){
+int DetermineLocalSize(int global_size,ISSM_MPI_Comm comm){
 
 	/*output: */
Index: /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineRowRankFromLocalSize.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineRowRankFromLocalSize.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/mpi/commops/DetermineRowRankFromLocalSize.cpp	(revision 15839)
@@ -10,5 +10,5 @@
 #include "../../../shared/Numerics/types.h"
 
-int* DetermineRowRankFromLocalSize(int global_size,int localsize,COMM comm){
+int* DetermineRowRankFromLocalSize(int global_size,int localsize,ISSM_MPI_Comm comm){
 
 	/*intermediary: */
Index: /issm/trunk-jpl/src/c/toolkits/mpi/commops/GetOwnershipBoundariesFromRange.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/mpi/commops/GetOwnershipBoundariesFromRange.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/mpi/commops/GetOwnershipBoundariesFromRange.cpp	(revision 15839)
@@ -12,7 +12,7 @@
 #include <stdio.h>
 #include "../../../shared/MemOps/MemOps.h"
-#include "../../../shared/io/Comm/Comm.h"
+#include "../../../shared/io/Comm/IssmComm.h"
 
-void GetOwnershipBoundariesFromRange(int* plower_row,int* pupper_row,int range,COMM comm){
+void GetOwnershipBoundariesFromRange(int* plower_row,int* pupper_row,int range,ISSM_MPI_Comm comm){
 
 	/*externals :*/
Index: /issm/trunk-jpl/src/c/toolkits/mpi/commops/commops.h
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/mpi/commops/commops.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/mpi/commops/commops.h	(revision 15839)
@@ -7,10 +7,11 @@
 
 #include "../../../shared/Numerics/types.h" 
-#include "../../../shared/io/Comm/Comm.h"
+#include "../../../shared/io/Comm/IssmComm.h"
+#include "../../mpi/issmmpi.h"
 
-int DetermineLocalSize(int global_size,COMM comm);
-int* DetermineRowRankFromLocalSize(int global_size,int localsize,COMM comm);
-void GetOwnershipBoundariesFromRange(int* plower_row,int* pupper_row,int range,COMM comm);
-int DetermineGlobalSize(int local_size,COMM comm);
+int DetermineLocalSize(int global_size,ISSM_MPI_Comm comm);
+int* DetermineRowRankFromLocalSize(int global_size,int localsize,ISSM_MPI_Comm comm);
+void GetOwnershipBoundariesFromRange(int* plower_row,int* pupper_row,int range,ISSM_MPI_Comm comm);
+int DetermineGlobalSize(int local_size,ISSM_MPI_Comm comm);
 
 #endif
Index: /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.h
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 15839)
@@ -20,5 +20,4 @@
 		#include <mpi.h>
 	#endif
-	#include "./commops/commops.h"
 	/*}}}*/
 	/*MPI defines: *{{{*/
@@ -50,4 +49,7 @@
 	#define ISSM_MPI_ANY_TAG       MPI_ANY_TAG
 	#define ISSM_MPI_ANY_SOURCE    MPI_ANY_SOURCE
+	
+    /*other include files: */
+	#include "./commops/commops.h"
 	/*}}}*/
 #else  
Index: /issm/trunk-jpl/src/c/toolkits/mumps/MpiDenseMumpsSolve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/mumps/MpiDenseMumpsSolve.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/mumps/MpiDenseMumpsSolve.cpp	(revision 15839)
@@ -13,5 +13,5 @@
 #include "../../shared/MemOps/MemOps.h"
 #include "../../shared/Exceptions/exceptions.h"
-#include "../../shared/io/Comm/Comm.h"
+#include "../../shared/io/Comm/IssmComm.h"
 #include "../mpi/issmmpi.h"
 
Index: /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp	(revision 15839)
@@ -13,5 +13,5 @@
 #include "../../../shared/MemOps/MemOps.h"
 #include "../../../shared/Exceptions/exceptions.h"
-#include "../../../shared/io/Comm/Comm.h"
+#include "../../../shared/io/Comm/IssmComm.h"
 #include "../../../shared/Enum/Enum.h"
 
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp	(revision 15839)
@@ -18,8 +18,8 @@
 
 /*Function prototypes: */
-int MatMultCompatible(Mat A,Vec x,COMM comm);
-void VecRelocalize(Vec* outvector,Vec vector,int m,COMM comm);
+int MatMultCompatible(Mat A,Vec x,ISSM_MPI_Comm comm);
+void VecRelocalize(Vec* outvector,Vec vector,int m,ISSM_MPI_Comm comm);
 
-void MatMultPatch(Mat A,Vec X, Vec AX,COMM comm){ //same prototype as MatMult in Petsc
+void MatMultPatch(Mat A,Vec X, Vec AX,ISSM_MPI_Comm comm){ //same prototype as MatMult in Petsc
 
 	int m,n;
@@ -43,5 +43,5 @@
 }
 
-int MatMultCompatible(Mat A,Vec x,COMM comm){
+int MatMultCompatible(Mat A,Vec x,ISSM_MPI_Comm comm){
 
 	/*error management*/
@@ -73,5 +73,5 @@
 }
 
-void VecRelocalize(Vec* poutvector,Vec vector,int m,COMM comm){
+void VecRelocalize(Vec* poutvector,Vec vector,int m,ISSM_MPI_Comm comm){
 
 	/*vector index and vector values*/
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatToSerial.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatToSerial.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatToSerial.cpp	(revision 15839)
@@ -12,5 +12,5 @@
 #include "../../../shared/shared.h"
 
-void MatToSerial(double** poutmatrix,Mat matrix,COMM comm){
+void MatToSerial(double** poutmatrix,Mat matrix,ISSM_MPI_Comm comm){
 
 	int i;
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp	(revision 15839)
@@ -19,5 +19,5 @@
 
 /*NewMat(int M,int N){{{*/
-Mat NewMat(int M,int N,COMM comm){
+Mat NewMat(int M,int N,ISSM_MPI_Comm comm){
 
 	/*output:*/
@@ -46,6 +46,6 @@
 }
 /*}}}*/
-/*NewMat(int M,int N,double sparsity,COMM comm){{{*/
-Mat NewMat(int M,int N,double sparsity,COMM comm){
+/*NewMat(int M,int N,double sparsity,ISSM_MPI_Comm comm){{{*/
+Mat NewMat(int M,int N,double sparsity,ISSM_MPI_Comm comm){
 
 	/*output:*/
@@ -80,5 +80,5 @@
 /*}}}*/
 /*NewMat(int M,int N,int connectivity,int numberofdofspernode){{{*/
-Mat NewMat(int M,int N,int connectivity,int numberofdofspernode,COMM comm){
+Mat NewMat(int M,int N,int connectivity,int numberofdofspernode,ISSM_MPI_Comm comm){
 
 	/*output:*/
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewVec.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewVec.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewVec.cpp	(revision 15839)
@@ -17,5 +17,5 @@
 #include "../../mpi/issmmpi.h"
 
-Vec NewVec(int size,COMM comm,bool fromlocalsize){
+Vec NewVec(int size,ISSM_MPI_Comm comm,bool fromlocalsize){
 
 	int local_size;
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecToMPISerial.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecToMPISerial.cpp	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecToMPISerial.cpp	(revision 15839)
@@ -12,5 +12,5 @@
 #include "../../../shared/shared.h"
 
-int VecToMPISerial(double** pgathered_vector, Vec vector,COMM comm){
+int VecToMPISerial(double** pgathered_vector, Vec vector,ISSM_MPI_Comm comm){
 
 	int i;
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/petscpatches.h
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/petscpatches.h	(revision 15838)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/petscpatches.h	(revision 15839)
@@ -13,14 +13,14 @@
 #include "./SolverEnum.h"
 #include "../../toolkitsenums.h"
-#include "../../../shared/io/Comm/Comm.h"
+#include "../../../shared/io/Comm/IssmComm.h"
 
 class Parameters;
 
-Vec NewVec(int size,COMM comm,bool fromlocalsize=false);
-Mat NewMat(int M,int N,COMM comm);
-Mat NewMat(int M,int N,double sparsity,COMM comm);
-Mat NewMat(int M,int N,int connectivity,int numberofdofspernode, COMM comm);
+Vec NewVec(int size,ISSM_MPI_Comm comm,bool fromlocalsize=false);
+Mat NewMat(int M,int N,ISSM_MPI_Comm comm);
+Mat NewMat(int M,int N,double sparsity,ISSM_MPI_Comm comm);
+Mat NewMat(int M,int N,int connectivity,int numberofdofspernode, ISSM_MPI_Comm comm);
 
-int VecToMPISerial(double** pgathered_vector, Vec vector,COMM comm);
+int VecToMPISerial(double** pgathered_vector, Vec vector,ISSM_MPI_Comm comm);
 void MatFree(Mat* pmat);
 void ISFree(IS* pis);
@@ -32,6 +32,6 @@
 void PetscOptionsDetermineSolverType(int* psolver_type);
 void VecMerge(Vec A, Vec B, double* row_partition_vector,int row_partition_size);
-void MatMultPatch(Mat A,Vec X, Vec AX,COMM comm);
-void MatToSerial(double** poutmatrix,Mat matrix,COMM comm);
+void MatMultPatch(Mat A,Vec X, Vec AX,ISSM_MPI_Comm comm);
+void MatToSerial(double** poutmatrix,Mat matrix,ISSM_MPI_Comm comm);
 void VecDuplicatePatch(Vec* output, Vec input);
 Vec  SerialToVec(double* vector,int vector_size);
