Index: /issm/trunk/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp	(revision 5254)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp	(revision 5255)
@@ -7,5 +7,5 @@
 #include "../../EnumDefinitions/EnumDefinitions.h"
 	
-void DistributeNumDofs(int* pnumdofs,int analysis_type,double* vertices_type){
+void DistributeNumDofs(DofIndexing* index,int analysis_type,double* vertices_type){
 
 	/*For now, we distribute by analysis_type, later, we will distribute using the analysis_type,
@@ -14,18 +14,24 @@
 	int numdofs=2; //default numdofs
 	int i;
+	int* doftype=NULL;
 
 	/*ok, according to analysis type: */
 	if (analysis_type==DiagnosticHorizAnalysisEnum){
-		if ((int)*vertices_type==MacAyealApproximationEnum){
+		if (vertices_type[0]==MacAyealApproximationEnum){
 			numdofs=2;
 		}
-		else if ((int)*vertices_type==PattynApproximationEnum){
+		else if (vertices_type[0]==PattynApproximationEnum){
 			numdofs=2;
 		}
-		else if ((int)*vertices_type==HutterApproximationEnum){
+		else if (vertices_type[0]==HutterApproximationEnum){
 			numdofs=2;
 		}
-		else if ((int)*vertices_type==MacAyealPattynApproximationEnum){
+		else if (vertices_type[0]==MacAyealPattynApproximationEnum){
 			numdofs=4;
+			doftype=(int*)xmalloc(numdofs*sizeof(int));
+			doftype[0]=MacAyealApproximationEnum;
+			doftype[1]=MacAyealApproximationEnum;
+			doftype[2]=PattynApproximationEnum;
+			doftype[3]=PattynApproximationEnum;
 		}
 		else ISSMERROR("Approximationtype %i (%s) not implemented yet for DiagnosticHoriz",(int)*vertices_type,EnumToString((int)*vertices_type));
@@ -60,5 +66,8 @@
 	else ISSMERROR("analysis type: %i (%s) not implemented yet",analysis_type,EnumToString(analysis_type));
 
-	/*Assign output pointers:*/
-	*pnumdofs=numdofs;;
+	/*Now initialize the index*/
+	index->Init(numdofs,doftype);
+
+	/*Clean up*/
+	 xfree((void**)&doftype);
 }
Index: /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h	(revision 5254)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h	(revision 5255)
@@ -104,5 +104,5 @@
 
 /*Distribution of dofs: */
-void DistributeNumDofs(int* pnumdofs,int analysis_type,double* vertices_type);
+void DistributeNumDofs(DofIndexing* index,int analysis_type,double* vertices_type);
 
 #endif
