Index: /issm/trunk-jpl/src/c/objects/Bamg/BamgGeom.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Bamg/BamgGeom.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Bamg/BamgGeom.cpp	(revision 11936)
@@ -23,12 +23,12 @@
 BamgGeom::BamgGeom(mxArray* matlab_struct){
 
-	FetchMatlabData(&this->Vertices,        &this->VerticesSize[0],        &this->VerticesSize[1],        mxGetAssignedField(matlab_struct,0,"Vertices"));
-	FetchMatlabData(&this->Edges,           &this->EdgesSize[0],           &this->EdgesSize[1],           mxGetAssignedField(matlab_struct,0,"Edges"));
+	FetchData(&this->Vertices,        &this->VerticesSize[0],        &this->VerticesSize[1],        mxGetAssignedField(matlab_struct,0,"Vertices"));
+	FetchData(&this->Edges,           &this->EdgesSize[0],           &this->EdgesSize[1],           mxGetAssignedField(matlab_struct,0,"Edges"));
 	this->TangentAtEdgesSize[0]=0,    this->TangentAtEdgesSize[1]=0;    this->TangentAtEdges=NULL;
-	FetchMatlabData(&this->Corners,         &this->CornersSize[0],         &this->CornersSize[1],         mxGetAssignedField(matlab_struct,0,"Corners"));
-	FetchMatlabData(&this->RequiredVertices,&this->RequiredVerticesSize[0],&this->RequiredVerticesSize[1],mxGetAssignedField(matlab_struct,0,"RequiredVertices"));
-	FetchMatlabData(&this->RequiredEdges,   &this->RequiredEdgesSize[0],   &this->RequiredEdgesSize[1],   mxGetAssignedField(matlab_struct,0,"RequiredEdges"));
-	FetchMatlabData(&this->CrackedEdges,    &this->CrackedEdgesSize[0],    &this->CrackedEdgesSize[1],    mxGetAssignedField(matlab_struct,0,"CrackedEdges"));
-	FetchMatlabData(&this->SubDomains,      &this->SubDomainsSize[0],      &this->SubDomainsSize[1],      mxGetAssignedField(matlab_struct,0,"SubDomains"));
+	FetchData(&this->Corners,         &this->CornersSize[0],         &this->CornersSize[1],         mxGetAssignedField(matlab_struct,0,"Corners"));
+	FetchData(&this->RequiredVertices,&this->RequiredVerticesSize[0],&this->RequiredVerticesSize[1],mxGetAssignedField(matlab_struct,0,"RequiredVertices"));
+	FetchData(&this->RequiredEdges,   &this->RequiredEdgesSize[0],   &this->RequiredEdgesSize[1],   mxGetAssignedField(matlab_struct,0,"RequiredEdges"));
+	FetchData(&this->CrackedEdges,    &this->CrackedEdgesSize[0],    &this->CrackedEdgesSize[1],    mxGetAssignedField(matlab_struct,0,"CrackedEdges"));
+	FetchData(&this->SubDomains,      &this->SubDomainsSize[0],      &this->SubDomainsSize[1],      mxGetAssignedField(matlab_struct,0,"SubDomains"));
 
 }
Index: /issm/trunk-jpl/src/c/objects/Bamg/BamgMesh.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Bamg/BamgMesh.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Bamg/BamgMesh.cpp	(revision 11936)
@@ -38,7 +38,7 @@
 	int lines,cols;
 
-	FetchMatlabData(&this->Vertices,            &this->VerticesSize[0],            &this->VerticesSize[1],            mxGetAssignedField(matlab_struct,0,"Vertices"));
-	FetchMatlabData(&this->Edges,               &this->EdgesSize[0],               &this->EdgesSize[1],               mxGetAssignedField(matlab_struct,0,"Edges"));
-	FetchMatlabData(&this->Triangles,           &this->TrianglesSize[0],           &this->TrianglesSize[1],           mxGetAssignedField(matlab_struct,0,"Triangles"));
+	FetchData(&this->Vertices,            &this->VerticesSize[0],            &this->VerticesSize[1],            mxGetAssignedField(matlab_struct,0,"Vertices"));
+	FetchData(&this->Edges,               &this->EdgesSize[0],               &this->EdgesSize[1],               mxGetAssignedField(matlab_struct,0,"Edges"));
+	FetchData(&this->Triangles,           &this->TrianglesSize[0],           &this->TrianglesSize[1],           mxGetAssignedField(matlab_struct,0,"Triangles"));
 	this->QuadrilateralsSize[0]=0,        this->QuadrilateralsSize[1]=0;     this->Quadrilaterals=NULL;
 
@@ -46,12 +46,12 @@
 	this->SubDomainsFromGeomSize[0]=0,    this->SubDomainsFromGeomSize[1]=0; this->SubDomainsFromGeom=NULL;
 	this->CrackedVerticesSize[0]=0,       this->CrackedVerticesSize[1]=0;    this->CrackedVertices=NULL;
-	FetchMatlabData(&this->CrackedEdges,        &this->CrackedEdgesSize[0],        &this->CrackedEdgesSize[1],        mxGetAssignedField(matlab_struct,0,"CrackedEdges"));
+	FetchData(&this->CrackedEdges,        &this->CrackedEdgesSize[0],        &this->CrackedEdgesSize[1],        mxGetAssignedField(matlab_struct,0,"CrackedEdges"));
 
-	FetchMatlabData(&this->VerticesOnGeomEdge,  &this->VerticesOnGeomEdgeSize[0],  &this->VerticesOnGeomEdgeSize[1],  mxGetAssignedField(matlab_struct,0,"VerticesOnGeomEdge"));
-	FetchMatlabData(&this->VerticesOnGeomVertex,&this->VerticesOnGeomVertexSize[0],&this->VerticesOnGeomVertexSize[1],mxGetAssignedField(matlab_struct,0,"VerticesOnGeomVertex"));
-	FetchMatlabData(&this->EdgesOnGeomEdge,     &this->EdgesOnGeomEdgeSize[0],     &this->EdgesOnGeomEdgeSize[1],     mxGetAssignedField(matlab_struct,0,"EdgesOnGeomEdge"));
+	FetchData(&this->VerticesOnGeomEdge,  &this->VerticesOnGeomEdgeSize[0],  &this->VerticesOnGeomEdgeSize[1],  mxGetAssignedField(matlab_struct,0,"VerticesOnGeomEdge"));
+	FetchData(&this->VerticesOnGeomVertex,&this->VerticesOnGeomVertexSize[0],&this->VerticesOnGeomVertexSize[1],mxGetAssignedField(matlab_struct,0,"VerticesOnGeomVertex"));
+	FetchData(&this->EdgesOnGeomEdge,     &this->EdgesOnGeomEdgeSize[0],     &this->EdgesOnGeomEdgeSize[1],     mxGetAssignedField(matlab_struct,0,"EdgesOnGeomEdge"));
 
 	this->IssmEdgesSize[0]=0,             this->IssmEdgesSize[1]=0;          this->IssmEdges=NULL;
-	FetchMatlabData(&this->IssmSegments,        &this->IssmSegmentsSize[0],        &this->IssmSegmentsSize[1],        mxGetAssignedField(matlab_struct,0,"IssmSegments"));
+	FetchData(&this->IssmSegments,        &this->IssmSegmentsSize[0],        &this->IssmSegmentsSize[1],        mxGetAssignedField(matlab_struct,0,"IssmSegments"));
 
 	this->ElementConnectivitySize[0]=0,      this->ElementConnectivitySize[1]=0;      this->ElementConnectivity=NULL;
Index: /issm/trunk-jpl/src/c/objects/Bamg/BamgOpts.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Bamg/BamgOpts.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Bamg/BamgOpts.cpp	(revision 11936)
@@ -45,33 +45,33 @@
 BamgOpts::BamgOpts(mxArray* matlab_struct){
 
-	FetchMatlabData(&this->anisomax,mxGetField(matlab_struct,0,"anisomax"));
-	FetchMatlabData(&this->cutoff,mxGetField(matlab_struct,0,"cutoff"));
-	FetchMatlabData(&this->coeff,mxGetField(matlab_struct,0,"coeff"));
-	FetchMatlabData(&this->errg,mxGetField(matlab_struct,0,"errg"));
-	FetchMatlabData(&this->gradation,mxGetField(matlab_struct,0,"gradation"));
-	FetchMatlabData(&this->Hessiantype,mxGetField(matlab_struct,0,"Hessiantype"));
-	FetchMatlabData(&this->MaxCornerAngle,mxGetField(matlab_struct,0,"MaxCornerAngle"));
-	FetchMatlabData(&this->maxnbv,mxGetField(matlab_struct,0,"maxnbv"));
-	FetchMatlabData(&this->maxsubdiv,mxGetField(matlab_struct,0,"maxsubdiv"));
-	FetchMatlabData(&this->Metrictype,mxGetField(matlab_struct,0,"Metrictype"));
-	FetchMatlabData(&this->nbjacobi,mxGetField(matlab_struct,0,"nbjacobi"));
-	FetchMatlabData(&this->nbsmooth,mxGetField(matlab_struct,0,"nbsmooth"));
-	FetchMatlabData(&this->omega,mxGetField(matlab_struct,0,"omega"));
-	FetchMatlabData(&this->power,mxGetField(matlab_struct,0,"power"));
-	FetchMatlabData(&this->verbose,mxGetField(matlab_struct,0,"verbose"));
+	FetchData(&this->anisomax,mxGetField(matlab_struct,0,"anisomax"));
+	FetchData(&this->cutoff,mxGetField(matlab_struct,0,"cutoff"));
+	FetchData(&this->coeff,mxGetField(matlab_struct,0,"coeff"));
+	FetchData(&this->errg,mxGetField(matlab_struct,0,"errg"));
+	FetchData(&this->gradation,mxGetField(matlab_struct,0,"gradation"));
+	FetchData(&this->Hessiantype,mxGetField(matlab_struct,0,"Hessiantype"));
+	FetchData(&this->MaxCornerAngle,mxGetField(matlab_struct,0,"MaxCornerAngle"));
+	FetchData(&this->maxnbv,mxGetField(matlab_struct,0,"maxnbv"));
+	FetchData(&this->maxsubdiv,mxGetField(matlab_struct,0,"maxsubdiv"));
+	FetchData(&this->Metrictype,mxGetField(matlab_struct,0,"Metrictype"));
+	FetchData(&this->nbjacobi,mxGetField(matlab_struct,0,"nbjacobi"));
+	FetchData(&this->nbsmooth,mxGetField(matlab_struct,0,"nbsmooth"));
+	FetchData(&this->omega,mxGetField(matlab_struct,0,"omega"));
+	FetchData(&this->power,mxGetField(matlab_struct,0,"power"));
+	FetchData(&this->verbose,mxGetField(matlab_struct,0,"verbose"));
 
-	FetchMatlabData(&this->Crack,mxGetField(matlab_struct,0,"Crack"));
-	FetchMatlabData(&this->geometricalmetric,mxGetField(matlab_struct,0,"geometricalmetric"));
-	FetchMatlabData(&this->KeepVertices,mxGetField(matlab_struct,0,"KeepVertices"));
-	FetchMatlabData(&this->splitcorners,mxGetField(matlab_struct,0,"splitcorners"));
+	FetchData(&this->Crack,mxGetField(matlab_struct,0,"Crack"));
+	FetchData(&this->geometricalmetric,mxGetField(matlab_struct,0,"geometricalmetric"));
+	FetchData(&this->KeepVertices,mxGetField(matlab_struct,0,"KeepVertices"));
+	FetchData(&this->splitcorners,mxGetField(matlab_struct,0,"splitcorners"));
 
-	FetchMatlabData(&this->hmin,mxGetField(matlab_struct,0,"hmin"));
-	FetchMatlabData(&this->hmax,mxGetField(matlab_struct,0,"hmax"));
-	FetchMatlabData(&this->hminVertices,&this->hminVerticesSize[0],&this->hminVerticesSize[1],mxGetField(matlab_struct,0,"hminVertices"));
-	FetchMatlabData(&this->hmaxVertices,&this->hmaxVerticesSize[0],&this->hmaxVerticesSize[1],mxGetField(matlab_struct,0,"hmaxVertices"));
-	FetchMatlabData(&this->hVertices,&this->hVerticesSize[0],&this->hVerticesSize[1],mxGetField(matlab_struct,0,"hVertices"));
-	FetchMatlabData(&this->metric,&this->metricSize[0],&this->metricSize[1],mxGetField(matlab_struct,0,"metric"));
-	FetchMatlabData(&this->field,&this->fieldSize[0],&this->fieldSize[1],mxGetField(matlab_struct,0,"field"));
-	FetchMatlabData(&this->err,&this->errSize[0],&this->errSize[1],mxGetField(matlab_struct,0,"err"));
+	FetchData(&this->hmin,mxGetField(matlab_struct,0,"hmin"));
+	FetchData(&this->hmax,mxGetField(matlab_struct,0,"hmax"));
+	FetchData(&this->hminVertices,&this->hminVerticesSize[0],&this->hminVerticesSize[1],mxGetField(matlab_struct,0,"hminVertices"));
+	FetchData(&this->hmaxVertices,&this->hmaxVerticesSize[0],&this->hmaxVerticesSize[1],mxGetField(matlab_struct,0,"hmaxVertices"));
+	FetchData(&this->hVertices,&this->hVerticesSize[0],&this->hVerticesSize[1],mxGetField(matlab_struct,0,"hVertices"));
+	FetchData(&this->metric,&this->metricSize[0],&this->metricSize[1],mxGetField(matlab_struct,0,"metric"));
+	FetchData(&this->field,&this->fieldSize[0],&this->fieldSize[1],mxGetField(matlab_struct,0,"field"));
+	FetchData(&this->err,&this->errSize[0],&this->errSize[1],mxGetField(matlab_struct,0,"err"));
 
 	/*Additional checks*/
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/BoolExternalResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/BoolExternalResult.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/BoolExternalResult.cpp	(revision 11936)
@@ -68,5 +68,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION BoolExternalResult::Marshall{{{1*/
 void  BoolExternalResult::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/BoolExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/BoolExternalResult.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/BoolExternalResult.h	(revision 11936)
@@ -47,5 +47,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleExternalResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleExternalResult.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleExternalResult.cpp	(revision 11936)
@@ -68,5 +68,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION DoubleExternalResult::Marshall{{{1*/
 void  DoubleExternalResult::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleExternalResult.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleExternalResult.h	(revision 11936)
@@ -48,5 +48,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp	(revision 11936)
@@ -96,5 +96,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION DoubleMatExternalResult::Marshall{{{1*/
 void  DoubleMatExternalResult::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleMatExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleMatExternalResult.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleMatExternalResult.h	(revision 11936)
@@ -49,5 +49,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp	(revision 11936)
@@ -87,5 +87,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION DoubleVecExternalResult::Marshall{{{1*/
 void  DoubleVecExternalResult::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleVecExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleVecExternalResult.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/DoubleVecExternalResult.h	(revision 11936)
@@ -48,5 +48,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/IntExternalResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/IntExternalResult.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/IntExternalResult.cpp	(revision 11936)
@@ -68,5 +68,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION IntExternalResult::Marshall{{{1*/
 void  IntExternalResult::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/IntExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/IntExternalResult.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/IntExternalResult.h	(revision 11936)
@@ -46,5 +46,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/PetscVecExternalResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/PetscVecExternalResult.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/PetscVecExternalResult.cpp	(revision 11936)
@@ -80,5 +80,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION PetscVecExternalResult::Marshall{{{1*/
 void  PetscVecExternalResult::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/PetscVecExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/PetscVecExternalResult.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/PetscVecExternalResult.h	(revision 11936)
@@ -48,5 +48,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/StringExternalResult.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/StringExternalResult.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/StringExternalResult.cpp	(revision 11936)
@@ -71,5 +71,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION StringExternalResult::Marshall{{{1*/
 void  StringExternalResult::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/ExternalResults/StringExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/ExternalResults/StringExternalResult.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/ExternalResults/StringExternalResult.h	(revision 11936)
@@ -48,7 +48,9 @@
 		int   Id(); 
 		int   MyRank();
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
 		void  Demarshall(char** pmarshalled_dataset);
+		#endif
 		int   ObjectEnum();
 		Object* copy();
Index: /issm/trunk-jpl/src/c/objects/Numerics/Matrix.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Numerics/Matrix.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Numerics/Matrix.cpp	(revision 11936)
@@ -68,4 +68,5 @@
 	int     i;
 
+
 	int* idxm=(int*)xmalloc(M*sizeof(int));
 	int* idxn=(int*)xmalloc(N*sizeof(int));
@@ -275,2 +276,12 @@
 }
 /*}}}*/
+/*FUNCTION Matrix::Convert{{{1*/
+void Matrix::Convert(MatrixType type){
+
+	#ifdef _HAVE_PETSC_
+		MatConvert(this->matrix,ISSMToPetscMatrixType(type),MAT_REUSE_MATRIX,&this->matrix);
+	#else
+		this->matrix->Convert(type);
+	#endif
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/objects/Numerics/Matrix.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Numerics/Matrix.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Numerics/Matrix.h	(revision 11936)
@@ -62,4 +62,5 @@
 		double* ToSerial(void);
 		void SetValues(int m,int* idxm,int n,int* idxn,double* values,InsMode mode);
+		void Convert(MatrixType type);
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/objects/Params/BoolParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/BoolParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/BoolParam.cpp	(revision 11936)
@@ -62,5 +62,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION BoolParam::Marshall{{{1*/
 void  BoolParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/BoolParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/BoolParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/BoolParam.h	(revision 11936)
@@ -41,5 +41,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.cpp	(revision 11936)
@@ -127,5 +127,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION DoubleMatArrayParam::Marshall{{{1*/
 void  DoubleMatArrayParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleMatArrayParam.h	(revision 11936)
@@ -44,5 +44,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.cpp	(revision 11936)
@@ -78,5 +78,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION DoubleMatParam::Marshall{{{1*/
 void  DoubleMatParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleMatParam.h	(revision 11936)
@@ -43,5 +43,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleParam.cpp	(revision 11936)
@@ -59,5 +59,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION DoubleParam::Marshall{{{1*/
 void  DoubleParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleParam.h	(revision 11936)
@@ -42,5 +42,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.cpp	(revision 11936)
@@ -75,5 +75,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION DoubleVecParam::Marshall{{{1*/
 void  DoubleVecParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/DoubleVecParam.h	(revision 11936)
@@ -42,5 +42,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/FileParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/FileParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/FileParam.cpp	(revision 11936)
@@ -62,5 +62,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION FileParam::Marshall{{{1*/
 void  FileParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/FileParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/FileParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/FileParam.h	(revision 11936)
@@ -41,5 +41,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp	(revision 11936)
@@ -78,5 +78,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION IntMatParam::Marshall{{{1*/
 void  IntMatParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/IntMatParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntMatParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/IntMatParam.h	(revision 11936)
@@ -43,5 +43,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/IntParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/IntParam.cpp	(revision 11936)
@@ -62,5 +62,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION IntParam::Marshall{{{1*/
 void  IntParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/IntParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/IntParam.h	(revision 11936)
@@ -42,5 +42,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/IntVecParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntVecParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/IntVecParam.cpp	(revision 11936)
@@ -91,5 +91,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION IntVecParam::Marshall{{{1*/
 void  IntVecParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/IntVecParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/IntVecParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/IntVecParam.h	(revision 11936)
@@ -43,5 +43,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/MatrixParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/MatrixParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/MatrixParam.cpp	(revision 11936)
@@ -70,5 +70,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION MatrixParam::Marshall{{{1*/
 void  MatrixParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/MatrixParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/MatrixParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/MatrixParam.h	(revision 11936)
@@ -42,5 +42,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.cpp	(revision 11936)
@@ -92,5 +92,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION StringArrayParam::Marshall{{{1*/
 void  StringArrayParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/StringArrayParam.h	(revision 11936)
@@ -44,5 +44,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/StringParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/StringParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/StringParam.cpp	(revision 11936)
@@ -64,5 +64,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION StringParam::Marshall{{{1*/
 void  StringParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/StringParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/StringParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/StringParam.h	(revision 11936)
@@ -42,5 +42,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
Index: /issm/trunk-jpl/src/c/objects/Params/VectorParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/VectorParam.cpp	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/VectorParam.cpp	(revision 11936)
@@ -72,5 +72,5 @@
 }
 /*}}}*/
-#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+#ifdef _SERIAL_
 /*FUNCTION VectorParam::Marshall{{{1*/
 void  VectorParam::Marshall(char** pmarshalled_dataset){
Index: /issm/trunk-jpl/src/c/objects/Params/VectorParam.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Params/VectorParam.h	(revision 11935)
+++ /issm/trunk-jpl/src/c/objects/Params/VectorParam.h	(revision 11936)
@@ -42,5 +42,5 @@
 		int   Id(); 
 		int   MyRank();
-		#if defined(_HAVE_MATLAB_) && defined(_SERIAL_)
+		#ifdef _SERIAL_
 		void  Marshall(char** pmarshalled_dataset);
 		int   MarshallSize();
