Index: /issm/trunk/src/c/parallel/control.cpp
===================================================================
--- /issm/trunk/src/c/parallel/control.cpp	(revision 319)
+++ /issm/trunk/src/c/parallel/control.cpp	(revision 320)
@@ -90,7 +90,7 @@
 	femmodel.parameters->FindParam((void*)&mincontrolconstraint,"mincontrolconstraint");
 	femmodel.parameters->FindParam((void*)&maxcontrolconstraint,"maxcontrolconstraint");
-	femmodel.parameters->FindParam((void*)&gsize,"gsize");
 	femmodel.parameters->FindParam((void*)&p_g,"p_g");
 	femmodel.parameters->FindParam((void*)&u_g_obs,"u_g_obs");
+	gsize=femmodel.nodes->NumberOfDofs();
 
 	/*Initialize misfit: */
@@ -98,5 +98,4 @@
 
 	/*Initialize inputs:*/
-	
 	femmodel.parameters->FindParam((void*)&u_g_initial,"u_g");
 	femmodel.parameters->FindParam((void*)&numberofnodes,"numberofnodes");
@@ -123,9 +122,11 @@
 		inputs->Add("fit",fit[n]);
 
+		/*Update parameters: */
+		UpdateFromInputsx(femmodel.elements,femmodel.nodes,femmodel.loads, femmodel.materials,inputs);
+
 		_printf_("%s\n","      computing gradJ...");
 		grad_g=GradJCompute(inputs,&femmodel,u_g_obs);
 		_printf_("%s\n","      done.");
 			
-		
 		_printf_("%s\n","      normalizing directions...");
 		Orthx(&new_grad_g,grad_g,grad_g_old);
@@ -134,5 +135,4 @@
 		VecToMPISerial(&grad_g_double,grad_g);
 		_printf_("%s\n","      done.");
-
 	
 		_printf_("%s\n","      optimizing along gradient direction...");
@@ -170,4 +170,7 @@
 	inputs->Add(control_type,p_g,2,numberofnodes);
 	inputs->Add("fit",fit[n]);
+
+	/*Update parameters: */
+	UpdateFromInputsx(femmodel.elements,femmodel.nodes,femmodel.loads, femmodel.materials,inputs);
 	
 	diagnostic_core_nonlinear(&u_g,NULL,NULL,inputs,&femmodel);
@@ -188,5 +191,4 @@
 	PetscFinalize(); 
 
-
 	/*end module: */
 	MODULEEND();
