Index: /issm/trunk/src/m/enum/IntMatParamEnum.m
===================================================================
--- /issm/trunk/src/m/enum/IntMatParamEnum.m	(revision 8602)
+++ /issm/trunk/src/m/enum/IntMatParamEnum.m	(revision 8602)
@@ -0,0 +1,11 @@
+function macro=IntMatParamEnum()
+%INTMATPARAMENUM - Enum of IntMatParam
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=IntMatParamEnum()
+
+macro=StringToEnum('IntMatParam');
Index: /issm/trunk/src/m/enum/NumResponsesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/NumResponsesEnum.m	(revision 8602)
+++ /issm/trunk/src/m/enum/NumResponsesEnum.m	(revision 8602)
@@ -0,0 +1,11 @@
+function macro=NumResponsesEnum()
+%NUMRESPONSESENUM - Enum of NumResponses
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=NumResponsesEnum()
+
+macro=StringToEnum('NumResponses');
Index: /issm/trunk/src/m/enum/StepResponsesEnum.m
===================================================================
--- /issm/trunk/src/m/enum/StepResponsesEnum.m	(revision 8602)
+++ /issm/trunk/src/m/enum/StepResponsesEnum.m	(revision 8602)
@@ -0,0 +1,11 @@
+function macro=StepResponsesEnum()
+%STEPRESPONSESENUM - Enum of StepResponses
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/EnumDefinitions/Synchronize.sh
+%            Please read src/c/EnumDefinitions/README for more information
+%
+%   Usage:
+%      macro=StepResponsesEnum()
+
+macro=StringToEnum('StepResponses');
Index: /issm/trunk/src/m/solutions/control_core.m
===================================================================
--- /issm/trunk/src/m/solutions/control_core.m	(revision 8601)
+++ /issm/trunk/src/m/solutions/control_core.m	(revision 8602)
@@ -7,9 +7,10 @@
 
 	%recover parameters common to all solutions
-	nsteps=femmodel.parameters.NSteps;
 	num_controls=femmodel.parameters.NumControls;
+	num_responses=femmodel.parameters.NumResponses;
+	responses=femmodel.parameters.CmResponses;
 	control_type=femmodel.parameters.ControlType;
 	solution_type=femmodel.parameters.SolutionType;
-	responses=femmodel.parameters.CmResponses;
+	nsteps=femmodel.parameters.NSteps;
 	maxiter=femmodel.parameters.MaxIter;
 	cm_jump=femmodel.parameters.CmJump;
@@ -41,5 +42,5 @@
 
 		issmprintf(VerboseControl(),['control method step ' num2str(n) '/' num2str(femmodel.parameters.NSteps)]);
-		[femmodel.elements,femmodel.loads]=InputUpdateFromConstant(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,responses(n),CmResponseEnum);
+		femmodel.parameters.StepResponses=responses(n,:);
 
 		%In case we are running a steady state control method, compute new temperature field using new parameter distribution: 
Index: /issm/trunk/src/m/solutions/objectivefunctionC.m
===================================================================
--- /issm/trunk/src/m/solutions/objectivefunctionC.m	(revision 8601)
+++ /issm/trunk/src/m/solutions/objectivefunctionC.m	(revision 8602)
@@ -1,11 +1,14 @@
-function J =objectivefunctionC(search_scalar,femmodel,n);
+function J =objectivefunctionC(search_scalar,femmodel);
 %OBJECTIVEFUNCTIONC - objective function that return a parameter for a certain function
 
 conserve_loads=true;
+J=0;
+
 %recover some parameters
-response=femmodel.parameters.CmResponses(n);
-analysis_type=femmodel.parameters.AnalysisType;
-solution_type=femmodel.parameters.SolutionType;
-isstokes=femmodel.parameters.IsStokes;
+num_responses = femmodel.parameters.NumResponses;
+responses     = femmodel.parameters.StepResponses;
+analysis_type = femmodel.parameters.AnalysisType;
+solution_type = femmodel.parameters.SolutionType;
+isstokes      = femmodel.parameters.IsStokes;
 
 %set current configuration
@@ -33,3 +36,5 @@
 
 %Compute misfit for this velocity field
-J=CostFunction(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials, femmodel.parameters,response);
+for i=1:num_responses
+	J=J+CostFunction(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials, femmodel.parameters,responses(i));
+end
