Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 25319)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 25320)
@@ -215,5 +215,4 @@
 	int*				types							= NULL;
 	int*				control_sizes				= NULL;
-	int*				M_all							= NULL;
 	IssmDouble*		independent					= NULL;
 	IssmDouble*		independents_fullmin    = NULL;
@@ -233,5 +232,7 @@
 	iomodel->FetchData(&types,NULL,NULL,"md.autodiff.independent_object_types");
 
-	M_all = xNew<int>(num_independent_objects);
+	int* M_all = xNew<int>(num_independent_objects);
+	int* N_all = xNew<int>(num_controls);
+	int* Interp_all = xNew<int>(num_controls);
 
 	/*create independent objects, and at the same time, fetch the corresponding independent variables, 
@@ -277,4 +278,16 @@
 			else M_all[i]=M;
 
+			if(M_all[i]==iomodel->numberofvertices){
+				Interp_all[i] = P1Enum;
+			}
+			else if(M_all[i]==iomodel->numberofelements){
+				Interp_all[i] = P0Enum;
+			}
+			else{
+				_error_("Control size not supported");
+			}
+			N_all[i] = N;
+
+
 			for(int j=0;j<elements->Size();j++){
 				Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
@@ -290,6 +303,7 @@
 		}
 	}
-	parameters->AddObject(new IntVecParam(ControlInputSizeNEnum,control_sizes,num_independent_objects));
+	parameters->AddObject(new IntVecParam(ControlInputSizeNEnum,N_all,num_independent_objects));
 	parameters->AddObject(new IntVecParam(ControlInputSizeMEnum,M_all,num_independent_objects));
+	parameters->AddObject(new IntVecParam(ControlInputInterpolationEnum,Interp_all,num_controls));
 
 	/*cleanup*/
@@ -300,4 +314,6 @@
 	xDelete<int>(types);
 	xDelete<int>(M_all);
+	xDelete<int>(N_all);
+	xDelete<int>(Interp_all);
 	xDelete<IssmDouble>(independents_fullmin);
 	xDelete<IssmDouble>(independents_fullmax);
