Index: /issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp	(revision 16328)
+++ /issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp	(revision 16329)
@@ -19,9 +19,9 @@
 
 	/* required input: */
-	int     dim;
-	int     numberofelements;
-	int     numberofvertices;
-	int    *elements         = NULL;
-	int     elements_width;
+	int  meshtype;
+	int  numberofelements;
+	int  numberofvertices;
+	int *elements         = NULL;
+	int  elements_width;
 
 	int numberofelements2d;
@@ -45,20 +45,31 @@
 
 	/*Fetch data: */
-	FetchData(&dim,mxGetAssignedField(MODEL,0,"dimension"));
-	FetchData(&numberofelements,mxGetAssignedField(MODEL,0,"numberofelements"));
-	FetchData(&numberofvertices,mxGetAssignedField(MODEL,0,"numberofvertices"));
-	FetchData(&elements,NULL,&elements_width,mxGetAssignedField(MODEL,0,"elements"));
+	FetchData(&numberofelements,mxGetAssignedField(MESH,0,"numberofelements"));
+	FetchData(&numberofvertices,mxGetAssignedField(MESH,0,"numberofvertices"));
+	FetchData(&elements,NULL,&elements_width,mxGetAssignedField(MESH,0,"elements"));
 
-	if (dim==3){
-		FetchData(&numberofelements2d,mxGetAssignedField(MODEL,0,"numberofelements2d"));
-		FetchData(&numberofvertices2d,mxGetAssignedField(MODEL,0,"numberofvertices2d"));
-		FetchData(&elements2d,NULL,NULL,mxGetAssignedField(MODEL,0,"elements2d"));
+	if(strcmp(mxGetClassName(MESH),"mesh3d")==0){
+		meshtype = Mesh3DEnum;
+		FetchData(&numberofelements2d,mxGetAssignedField(MESH,0,"numberofelements2d"));
+		FetchData(&numberofvertices2d,mxGetAssignedField(MESH,0,"numberofvertices2d"));
+		FetchData(&elements2d,NULL,NULL,mxGetAssignedField(MESH,0,"elements2d"));
+		FetchData(&numberoflayers,mxGetAssignedField(MESH,0,"numberoflayers"));
 	}
-	FetchData(&numberoflayers,mxGetAssignedField(MODEL,0,"numberoflayers"));
+	else if(strcmp(mxGetClassName(MESH),"mesh2dhorizontal")==0){
+		meshtype = Mesh2DhorizontalEnum;
+		numberoflayers=1;
+	}
+	else if(strcmp(mxGetClassName(MESH),"mesh2dvertical")==0){
+		meshtype = Mesh2DverticalEnum;
+		numberoflayers=1;
+	}
+	else{
+		_error_("Mesh type "<<mxGetClassName(MESH)<<" not supported yet");
+	}
 	FetchData(&numareas,NUMAREAS);
 
 	/*Run partitioning algorithm based on a "clever" use of the Metis partitioner: */
 	MeshPartitionx(&int_element_partitioning,&int_node_partitioning,numberofelements,numberofvertices,elements,
-		numberofelements2d,numberofvertices2d,elements2d,numberoflayers,elements_width,dim,numareas);
+		numberofelements2d,numberofvertices2d,elements2d,numberoflayers,elements_width,meshtype,numareas);
 
 	/*Post process node_partitioning and element_partitioning to be in double format. Metis needed them in int* format: */
Index: /issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.h	(revision 16328)
+++ /issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.h	(revision 16329)
@@ -27,5 +27,5 @@
 #ifdef _HAVE_MATLAB_MODULES_
 /* serial input macros: */
-#define MODEL    prhs[0]
+#define MESH    prhs[0]
 #define NUMAREAS prhs[1]
 /* serial output macros: */
@@ -36,5 +36,5 @@
 #ifdef _HAVE_PYTHON_MODULES_
 /* serial input macros: */
-#define MODEL    PyTuple_GetItem(args,0)
+#define MESH     PyTuple_GetItem(args,0)
 #define NUMAREAS PyTuple_GetItem(args,1)
 /* serial output macros: */
