Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 22828)
@@ -1383,5 +1383,5 @@
 	return z;
 }/*}}}*/
-void       Element::GradientIndexing(int* indexing,int control_index,bool onsid){/*{{{*/
+void       Element::GradientIndexing(int* indexing,int control_index){/*{{{*/
 
 	/*Get number of controls*/
@@ -1415,14 +1415,7 @@
 		int M;
 		parameters->FindParam(&M,ControlInputSizeMEnum);
-	/*get gradient indices*/
-		if(onsid){
-			for(int i=0;i<numvertices;i++){
-				indexing[i]=this->vertices[i]->Sid() + (control_index)*M;
-			}
-		}
-		else{
-			for(int i=0;i<numvertices;i++){
-				indexing[i]=this->vertices[i]->Pid() + (control_index)*M;
-			}
+		/*get gradient indices*/
+		for(int i=0;i<numvertices;i++){
+			indexing[i]=this->vertices[i]->Sid() + (control_index)*M;
 		}
 	}
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 22828)
@@ -111,5 +111,5 @@
 		IssmDouble         GetYcoord(IssmDouble* xyz_list,Gauss* gauss);
 		IssmDouble         GetZcoord(IssmDouble* xyz_list,Gauss* gauss);
-		void               GradientIndexing(int* indexing,int control_index,bool onsid=false);
+		void               GradientIndexing(int* indexing,int control_index);
 		IssmDouble         GroundedArea(IssmDouble* mask, bool scaled);
 		bool               HasNodeOnBase();
@@ -225,6 +225,6 @@
 		virtual int        GetNumberOfNodes(int enum_type)=0;
 		virtual int        GetNumberOfVertices(void)=0;
-		virtual void       GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset, bool onsid)=0;
-		virtual void       GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data, bool onsid)=0;
+		virtual void       GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset)=0;
+		virtual void       GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data)=0;
 		virtual void       GetVerticesCoordinatesBase(IssmDouble** xyz_list)=0;
 		virtual void       GetVerticesCoordinatesTop(IssmDouble** xyz_list)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 22828)
@@ -1153,5 +1153,5 @@
 }
 /*}}}*/
-void       Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,bool onsid){/*{{{*/
+void       Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data){/*{{{*/
 
 	int vertexidlist[NUMVERTICES];
@@ -1161,5 +1161,5 @@
 
 	/*Prepare index list*/
-	GradientIndexing(&vertexidlist[0],control_index,onsid);
+	GradientIndexing(&vertexidlist[0],control_index);
 
 	/*Get input (either in element or material)*/
@@ -1176,5 +1176,5 @@
 }
 /*}}}*/
-void       Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,int offset,bool onsid){/*{{{*/
+void       Penta::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,int offset){/*{{{*/
 
 	int* idlist = NULL;
@@ -1217,5 +1217,5 @@
 					idlist = xNew<int>(NUMVERTICES);
 					values = xNew<IssmDouble>(NUMVERTICES);
-					GradientIndexing(&idlist[0],control_index,true);
+					GradientIndexing(&idlist[0],control_index);
 					for(int i=0;i<NUMVERTICES;i++){
 						values[i] = pentainput->values[i];
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 22828)
@@ -86,6 +86,6 @@
 		Penta*         GetLowerPenta(void);
 		Penta*         GetUpperPenta(void);
-		void           GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
-		void           GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset,bool onsid);
+		void           GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data);
+		void           GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset);
 		void           GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
 		void           GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 22828)
@@ -73,6 +73,6 @@
 		int         GetNumberOfNodes(int enum_type){_error_("not implemented yet");};
 		int         GetNumberOfVertices(void);
-		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset,bool onsid){_error_("not implemented yet");};
-		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");};
+		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset){_error_("not implemented yet");};
+		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data){_error_("not implemented yet");};
 		void        GetVerticesCoordinates(IssmDouble** pxyz_list);
 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list){_error_("not implemented yet");};
Index: /issm/trunk-jpl/src/c/classes/Elements/Tetra.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 22828)
@@ -79,6 +79,6 @@
 		int         GetNumberOfNodes(int enum_type){_error_("not implemented yet");};
 		int         GetNumberOfVertices(void);
-		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset,bool onsid){_error_("not implemented yet");};
-		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");};
+		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset){_error_("not implemented yet");};
+		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data){_error_("not implemented yet");};
 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
 		void        GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 22828)
@@ -753,5 +753,5 @@
 	if (input->ObjectEnum()!=ControlInputEnum) _error_("Input " << EnumToStringx(enum_type) << " is not a ControlInput");
 
-	GradientIndexing(&gradidlist[0],control_index,true);
+	GradientIndexing(&gradidlist[0],control_index);
 
 	for(int n=0;n<N;n++){
@@ -1689,5 +1689,5 @@
 }
 /*}}}*/
-void       Tria::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,bool onsid){/*{{{*/
+void       Tria::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data){/*{{{*/
 
 	int vertexidlist[NUMVERTICES];
@@ -1698,5 +1698,5 @@
 
 	/*Prepare index list*/
-	GradientIndexing(&vertexidlist[0],control_index,onsid);
+	GradientIndexing(&vertexidlist[0],control_index);
 
 	/*Get input (either in element or material)*/
@@ -1711,5 +1711,5 @@
 }
 /*}}}*/
-void       Tria::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,int offset, bool onsid){/*{{{*/
+void       Tria::GetVectorFromControlInputs(Vector<IssmDouble>* vector,int control_enum,int control_index,const char* data,int offset){/*{{{*/
 
 	int* idlist = NULL;
@@ -1753,5 +1753,5 @@
 				idlist = xNew<int>(NUMVERTICES);
 				values = xNew<IssmDouble>(NUMVERTICES);
-				GradientIndexing(&idlist[0],control_index,true);
+				GradientIndexing(&idlist[0],control_index);
 				for(int i=0;i<NUMVERTICES;i++){
 					values[i] = triainput->values[i];
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 22827)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 22828)
@@ -86,6 +86,6 @@
 		int         GetNumberOfNodes(int enum_type);
 		int         GetNumberOfVertices(void);
-		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset,bool onsid);
-		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
+		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,int offset);
+		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data);
 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
 		void        GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
Index: /issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 22827)
+++ /issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 22828)
@@ -88,12 +88,9 @@
 	G = xNew<double>(n);
 
-	for(int i=0;i<intn;i++)_printf_(X[i]<<"\n");
 	/*Scale control for M1QN3*/
 	for(int c=0;c<num_controls;c++){
 		for(int i=0;i<numberofvertices;i++){
 			int index = numberofvertices*c+i;
-			_printf_("Before "<<X[index]<<"\n");
 			X[index] = X[index]/scaling_factors[c];
-			_printf_("After "<<X[index]<<"\n");
 		}
 	}
Index: /issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.cpp	(revision 22827)
+++ /issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.cpp	(revision 22828)
@@ -7,5 +7,5 @@
 #include "../../toolkits/toolkits.h"
 
-void GetVectorFromControlInputsx(Vector<IssmDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,const char* data,bool onsid){/*{{{*/
+void GetVectorFromControlInputsx(Vector<IssmDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,const char* data){/*{{{*/
 
 	bool isautodiff;
@@ -37,5 +37,5 @@
 			for(int j=0;j<elements->Size();j++){
 				Element* element=(Element*)elements->GetObjectByOffset(j);
-				element->GetVectorFromControlInputs(vector,control_type[i],i,data,offset,onsid);
+				element->GetVectorFromControlInputs(vector,control_type[i],i,data,offset);
 			}
 			offset += M[i]*N[i];
@@ -69,5 +69,5 @@
 			for(int j=0;j<elements->Size();j++){
 				Element* element=(Element*)elements->GetObjectByOffset(j);
-				element->GetVectorFromControlInputs(vector,control_type[i],i,data,onsid);
+				element->GetVectorFromControlInputs(vector,control_type[i],i,data);
 			}
 		}
@@ -80,10 +80,10 @@
 
 }/*}}}*/
-void GetVectorFromControlInputsx( IssmDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, const char* data,bool onsid){/*{{{*/
+void GetVectorFromControlInputsx( IssmDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, const char* data){/*{{{*/
 
 	/*intermediary: */
 	Vector<IssmDouble>* vec_vector=NULL;
 
-	GetVectorFromControlInputsx( &vec_vector, elements,nodes, vertices, loads, materials, parameters,data,onsid);
+	GetVectorFromControlInputsx( &vec_vector, elements,nodes, vertices, loads, materials, parameters,data);
 	IssmDouble* vector=vec_vector->ToMPISerial();
 
@@ -97,5 +97,5 @@
 /*For autodiff, we sometimes need to cast our vectors to passive*/
 #ifdef _HAVE_ADOLC_
-void GetPassiveVectorFromControlInputsx(Vector<IssmPDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,const char* data,bool onsid){/*{{{*/
+void GetPassiveVectorFromControlInputsx(Vector<IssmPDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,const char* data){/*{{{*/
 
 	/*Get active vector first*/
@@ -105,5 +105,5 @@
 
 	/*Retrieve some parameters*/
-	GetVectorFromControlInputsx(&activevector, elements,nodes, vertices, loads, materials, parameters,data,onsid);
+	GetVectorFromControlInputsx(&activevector, elements,nodes, vertices, loads, materials, parameters,data);
 
 	/*Serialize vector*/
@@ -124,5 +124,5 @@
 
 }/*}}}*/
-void GetPassiveVectorFromControlInputsx(IssmPDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, const char* data,bool onsid){/*{{{*/
+void GetPassiveVectorFromControlInputsx(IssmPDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, const char* data){/*{{{*/
 
 	/*Get active vector first*/
@@ -132,5 +132,5 @@
 
 	/*Retrieve some parameters*/
-	GetVectorFromControlInputsx(&activevector, elements,nodes, vertices, loads, materials, parameters,data,onsid);
+	GetVectorFromControlInputsx(&activevector, elements,nodes, vertices, loads, materials, parameters,data);
 
 	/*Serialize vector*/
@@ -149,12 +149,12 @@
 }/*}}}*/
 #else
-void GetPassiveVectorFromControlInputsx(Vector<IssmPDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,const char* data,bool onsid){/*{{{*/
+void GetPassiveVectorFromControlInputsx(Vector<IssmPDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,const char* data){/*{{{*/
 
-	GetVectorFromControlInputsx(pvector, elements,nodes, vertices, loads, materials, parameters,data,onsid);
+	GetVectorFromControlInputsx(pvector, elements,nodes, vertices, loads, materials, parameters,data);
 
 }/*}}}*/
-void GetPassiveVectorFromControlInputsx(IssmPDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, const char* data,bool onsid){/*{{{*/
+void GetPassiveVectorFromControlInputsx(IssmPDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, const char* data){/*{{{*/
 
-	GetVectorFromControlInputsx(pvector, elements,nodes, vertices, loads, materials, parameters,data,onsid);
+	GetVectorFromControlInputsx(pvector, elements,nodes, vertices, loads, materials, parameters,data);
 }/*}}}*/
 #endif
Index: /issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.h
===================================================================
--- /issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.h	(revision 22827)
+++ /issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.h	(revision 22828)
@@ -8,9 +8,9 @@
 
 /* local prototypes: */
-void	GetVectorFromControlInputsx( Vector<IssmDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value",bool onsid=false);
-void	GetVectorFromControlInputsx( IssmDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value",bool onsid=false);
+void	GetVectorFromControlInputsx( Vector<IssmDouble>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value");
+void	GetVectorFromControlInputsx( IssmDouble** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value");
 
-void	GetPassiveVectorFromControlInputsx(Vector<double>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value",bool onsid=false);
-void	GetPassiveVectorFromControlInputsx(double** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value",bool onsid=false);
+void	GetPassiveVectorFromControlInputsx(Vector<double>** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value");
+void	GetPassiveVectorFromControlInputsx(double** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials,  Parameters* parameters,const char* data="value");
 
 #endif  /* _GETVECTORFROMCONTROLINPUTSXX_H */
