Index: /issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.cpp	(revision 26886)
+++ /issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.cpp	(revision 26887)
@@ -40,2 +40,24 @@
 	xDelete<IssmDouble>(serial_vector);
 }
+void SetControlInputsFromVectorx(FemModel* femmodel,IssmPDouble* vector){
+
+	/*Get total size and recast*/
+	int  num_controls;
+	int* M = NULL;
+	int* N = NULL;
+	femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
+	femmodel->parameters->FindParam(&M,NULL,ControlInputSizeMEnum);
+	femmodel->parameters->FindParam(&N,NULL,ControlInputSizeNEnum);
+
+	int size = 0;
+	for(int i=0;i<num_controls;i++) size += M[i]*N[i]; 
+
+	IssmDouble* serial_vector=xNew<IssmDouble>(size);
+	for(int i=0;i<size;i++) serial_vector[i] = reCast<IssmDouble>(vector[i]);
+
+	SetControlInputsFromVectorx(femmodel,serial_vector);
+
+	xDelete<IssmDouble>(serial_vector);
+	xDelete<int>(M);
+	xDelete<int>(N);
+}
Index: /issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.h
===================================================================
--- /issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.h	(revision 26886)
+++ /issm/trunk-jpl/src/c/modules/SetControlInputsFromVectorx/SetControlInputsFromVectorx.h	(revision 26887)
@@ -10,4 +10,5 @@
 void SetControlInputsFromVectorx(FemModel* femmodel,Vector<IssmDouble>* vector);
 void SetControlInputsFromVectorx(FemModel* femmodel,IssmDouble* vector);
+void SetControlInputsFromVectorx(FemModel* femmodel,IssmPDouble* vector);
 
 #endif 
