Index: /issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.h
===================================================================
--- /issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.h	(revision 16327)
+++ /issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.h	(revision 16328)
@@ -33,4 +33,29 @@
 	switch(meshtype){
 		case Mesh2DhorizontalEnum:
+			epart=xNew<int>(numberofelements);
+			npart=xNew<int>(numberofnodes);
+			index=xNew<int>(elements_width*numberofelements);
+			for (i=0;i<numberofelements;i++){
+				for (j=0;j<elements_width;j++){
+					*(index+elements_width*i+j)=(*(elements+elements_width*i+j))-1; //-1 for C indexing in Metis
+				}
+			}
+
+			/*Partition using Metis:*/
+			if (num_procs>1){
+#ifdef _HAVE_METIS_
+				METIS_PartMeshNodalPatch(&numberofelements,&numberofnodes, index, &etype, &numflag, &num_procs, &edgecut, epart, npart);
+#else
+				_error_("metis has not beed installed. Cannot run with more than 1 cpu");
+#endif
+			}
+			else if (num_procs==1){
+				/*METIS does not know how to deal with one cpu only!*/
+				for (i=0;i<numberofelements;i++) epart[i]=0;
+				for (i=0;i<numberofnodes;i++)    npart[i]=0;
+			}
+			else _error_("At least one processor is required");
+			break;
+		case Mesh2DverticalEnum:
 			epart=xNew<int>(numberofelements);
 			npart=xNew<int>(numberofnodes);
