Index: /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 21553)
+++ /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 21554)
@@ -562,5 +562,68 @@
 
 	/*intermediary: */
-	int i,count;
+	int         i,j,count,elementnbv,numfacevertices;
+	IssmDouble  value;
+	IssmDouble *times            = NULL;
+	IssmDouble *values           = NULL;
+	bool        spcpresent       = false;
+
+	/*Higher-order finite elements*/
+	int   v1,v2;
+	bool *my_edges = NULL;
+	bool *my_faces = NULL;
+	bool *boundaryedge = NULL;
+
+	switch(finite_element){
+		case P1Enum: 
+			/*Nothing else to do*/
+			break;
+		case P1bubbleEnum:
+			switch(iomodel->meshelementtype){
+				case TriaEnum:  elementnbv = 3; break;
+				case TetraEnum: elementnbv = 4; break;
+				case PentaEnum: elementnbv = 6; break;
+				default: _error_("mesh type not supported yet");
+			}
+			break;
+		case P1bubblecondensedEnum: 
+			/*Nothing else to do*/
+			break;
+		case P1xP2Enum:
+			EdgesPartitioning(&my_edges,iomodel);
+			break;
+		case P1xP3Enum:
+			EdgesPartitioning(&my_edges,iomodel);
+			break;
+		case P2xP1Enum:
+			EdgesPartitioning(&my_edges,iomodel);
+			break;
+		case P2Enum:
+			EdgesPartitioning(&my_edges,iomodel);
+			if(iomodel->meshelementtype==PentaEnum){
+				FacesPartitioning(&my_faces,iomodel);
+			}
+			EdgeOnBoundaryFlags(&boundaryedge,iomodel);
+			break;
+		case P2bubbleEnum:
+			EdgesPartitioning(&my_edges,iomodel);
+			if(iomodel->meshelementtype==PentaEnum){
+				FacesPartitioning(&my_faces,iomodel);
+			}
+			EdgeOnBoundaryFlags(&boundaryedge,iomodel);
+			switch(iomodel->meshelementtype){
+				case TriaEnum:  elementnbv = 3; break;
+				case TetraEnum: elementnbv = 4; break;
+				case PentaEnum: elementnbv = 6; break;
+				default: _error_("mesh type not supported yet");
+			}
+			break;
+		case P2xP4Enum:
+			EdgesPartitioning(&my_edges,iomodel);
+			FacesPartitioning(&my_faces,iomodel);
+			break;
+		default:
+			_error_("Finite element "<<EnumToStringx(finite_element)<<" not supported yet");
+	}
+
 
 	switch(finite_element){
