Index: /issm/trunk-jpl/src/c/analyses/control_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/control_core.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/analyses/control_core.cpp	(revision 16307)
@@ -18,5 +18,5 @@
 
 	/*parameters: */
-	int        num_controls,num_responses;
+	int        num_controls;
 	int        nsteps;
 	IssmDouble tol_cm;
@@ -26,6 +26,4 @@
 
 	int        *control_type   = NULL;
-	IssmDouble *responses      = NULL;
-	int        *step_responses = NULL;
 	IssmDouble *maxiter        = NULL;
 	IssmDouble *cm_jump        = NULL;
@@ -45,7 +43,5 @@
 	/*Recover parameters used throughout the solution*/
 	femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum);
-	femmodel->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
 	femmodel->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum);
-	femmodel->parameters->FindParam(&responses,NULL,NULL,InversionCostFunctionsEnum);
 	femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum);
 	femmodel->parameters->FindParam(&maxiter,NULL,InversionMaxiterPerStepEnum);
@@ -65,7 +61,6 @@
 	if(isFS) solutioncore(femmodel);
 
-	/*Initialize responses: */
+	/*Initialize cost function: */
 	J=xNew<IssmDouble>(nsteps);
-	step_responses=xNew<int>(num_responses);
 
 	/*Initialize some of the BrentSearch arguments: */
@@ -78,6 +73,5 @@
 		/*Display info*/
 		if(VerboseControl()) _printf0_("\n" << "   control method step " << n+1 << "/" << nsteps << "\n");
-		for(i=0;i<num_responses;i++) step_responses[i]=reCast<int,IssmDouble>(responses[n*num_responses+i]);
-		femmodel->parameters->SetParam(step_responses,1,num_responses,StepResponsesEnum);
+
 
 		/*In steady state inversion, compute new temperature field now*/
@@ -118,7 +112,5 @@
 	/*Free ressources: */
 	xDelete<int>(control_type);
-	xDelete<int>(step_responses);
 	xDelete<IssmDouble>(maxiter);
-	xDelete<IssmDouble>(responses);
 	xDelete<IssmDouble>(cm_jump);
 	xDelete<IssmDouble>(J);
Index: /issm/trunk-jpl/src/c/analyses/controltao_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/controltao_core.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/analyses/controltao_core.cpp	(revision 16307)
@@ -109,9 +109,7 @@
 
 	/*Retreive arguments*/
-	int                  solution_type,num_cost_functions;
+	int                  solution_type;
 	AppCtx              *user            = (AppCtx *)userCtx;
 	FemModel            *femmodel        = user->femmodel;
-	int                 *cost_functions  = NULL;
-	IssmDouble          *cost_functionsd = NULL;
 	Vector<IssmDouble>  *gradient        = NULL;
 	Vector<IssmDouble>  *X               = NULL;
@@ -127,11 +125,4 @@
 	/*Recover some parameters*/
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
-	femmodel->parameters->FindParam(&num_cost_functions,InversionNumCostFunctionsEnum);
-	femmodel->parameters->FindParam(&cost_functionsd,NULL,NULL,InversionCostFunctionsEnum);
-
-	/*Prepare objective function*/
-	cost_functions=xNew<int>(num_cost_functions);
-	for(int i=0;i<num_cost_functions;i++) cost_functions[i]=(int)cost_functionsd[i]; //FIXME
-	femmodel->parameters->SetParam(cost_functions,1,num_cost_functions,StepResponsesEnum);
 
 	/*Compute solution and adjoint*/
@@ -152,6 +143,4 @@
 
 	/*Clean-up and return*/
-	xDelete<int>(cost_functions);
-	xDelete<IssmDouble>(cost_functionsd);
 	return 0;
 }
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16307)
@@ -5574,5 +5574,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 	Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
 	Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
@@ -5770,5 +5770,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 	Input* weights_input = inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
 	Input* vx_input      = inputs->GetInput(VxEnum);                                 _assert_(vx_input);
@@ -6008,5 +6008,5 @@
 	int num_responses,resp;
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 
 	for(resp=0;resp<num_responses;resp++) switch(responses[resp]){
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16307)
@@ -3803,5 +3803,5 @@
 	int         num_responses,resp;
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 
 	for(resp=0;resp<num_responses;resp++) switch(responses[resp]){
@@ -4245,5 +4245,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 	Input* thickness_input            = inputs->GetInput(ThicknessEnum);                          _assert_(thickness_input);
 	Input* thicknessobs_input         = inputs->GetInput(InversionThicknessObsEnum);              _assert_(thicknessobs_input);
@@ -4890,5 +4890,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 	Input* thickness_input    = inputs->GetInput(ThicknessEnum);                          _assert_(thickness_input);
 	Input* thicknessobs_input = inputs->GetInput(InversionThicknessObsEnum);              _assert_(thicknessobs_input);
@@ -4980,5 +4980,5 @@
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 	this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	this->parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 	Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum);   _assert_(weights_input);
 	Input* vx_input     =inputs->GetInput(VxEnum);        _assert_(vx_input);
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 16307)
@@ -1050,5 +1050,5 @@
 	/*Recover parameters*/
 	parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum);
-	parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
+	parameters->FindParam(&responses,NULL,InversionCostFunctionsEnum);
 
 	/*Get response*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 16307)
@@ -16,5 +16,5 @@
 	int         num_cm_responses;
 	int        *control_type     = NULL;
-	IssmDouble *cm_responses     = NULL;
+	int        *cm_responses     = NULL;
 	IssmDouble *cm_jump          = NULL;
 	IssmDouble *optscal          = NULL;
@@ -58,10 +58,10 @@
 		if(tao_analysis){
 			parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type));
-			parameters->AddObject(new DoubleVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses));
+			parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses));
 		}
 		else{
 			parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type));
+			parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,cm_responses,num_cm_responses));
 			parameters->AddObject(new DoubleMatParam(InversionGradientScalingEnum,optscal,nsteps,num_control_type));
-			parameters->AddObject(new DoubleMatParam(InversionCostFunctionsEnum,cm_responses,nsteps,num_cm_responses));
 			parameters->AddObject(new DoubleVecParam(InversionStepThresholdEnum,cm_jump,nsteps));
 			parameters->AddObject(new DoubleVecParam(InversionMaxiterPerStepEnum,maxiter,nsteps));
@@ -69,5 +69,5 @@
 
 		xDelete<int>(control_type);
-		iomodel->DeleteData(cm_responses,InversionCostFunctionsEnum);
+		xDelete<int>(cm_responses);
 		iomodel->DeleteData(cm_jump,InversionStepThresholdEnum);
 		iomodel->DeleteData(optscal,InversionGradientScalingEnum);
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 16306)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 16307)
@@ -486,5 +486,4 @@
 	ThicknessAlongGradientEnum,
 	ThicknessAcrossGradientEnum,
-	StepResponsesEnum,
 	IntMatParamEnum,
 	RheologyBbarAbsGradientEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 16307)
@@ -480,5 +480,4 @@
 		case ThicknessAlongGradientEnum : return "ThicknessAlongGradient";
 		case ThicknessAcrossGradientEnum : return "ThicknessAcrossGradient";
-		case StepResponsesEnum : return "StepResponses";
 		case IntMatParamEnum : return "IntMatParam";
 		case RheologyBbarAbsGradientEnum : return "RheologyBbarAbsGradient";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 16306)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 16307)
@@ -489,5 +489,4 @@
 	      else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
 	      else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
-	      else if (strcmp(name,"StepResponses")==0) return StepResponsesEnum;
 	      else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;
 	      else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
@@ -506,9 +505,9 @@
 	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
 	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
+	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
-	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+	      if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
 	      else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
 	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
Index: /issm/trunk-jpl/src/m/classes/inversion.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/inversion.m	(revision 16306)
+++ /issm/trunk-jpl/src/m/classes/inversion.m	(revision 16307)
@@ -86,5 +86,5 @@
 
 			%several responses can be used:
-			obj.cost_functions=101*ones(obj.nsteps,1);
+			obj.cost_functions=101;
 
 			%step_threshold is used to speed up control method. When
@@ -115,5 +115,5 @@
 			md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps 1],'>=',0);
 			md = checkfield(md,'inversion.step_threshold','size',[md.inversion.nsteps 1]);
-			md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps num_costfunc],'values',[101:105 201 501:506]);
+			md = checkfield(md,'inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);
 			md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
 			md = checkfield(md,'inversion.gradient_scaling','size',[md.inversion.nsteps num_controls]);
Index: /issm/trunk-jpl/src/m/classes/inversion.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/inversion.py	(revision 16306)
+++ /issm/trunk-jpl/src/m/classes/inversion.py	(revision 16307)
@@ -93,5 +93,5 @@
 
 		#several responses can be used:
-		self.cost_functions=101*numpy.ones((self.nsteps,1))
+		self.cost_functions=101
 
 		#step_threshold is used to speed up control method. When
@@ -114,5 +114,5 @@
 
 		num_controls=numpy.size(md.inversion.control_parameters)
-		num_costfunc=numpy.size(md.inversion.cost_functions,axis=1)
+		num_costfunc=numpy.size(md.inversion.cost_functions)
 
 		md = checkfield(md,'inversion.iscontrol','values',[0,1])
@@ -123,5 +123,5 @@
 		md = checkfield(md,'inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0)
 		md = checkfield(md,'inversion.step_threshold','size',[md.inversion.nsteps])
-		md = checkfield(md,'inversion.cost_functions','size',[md.inversion.nsteps,num_costfunc],'values',[101,102,103,104,105,201,501,502,503,504,505])
+		md = checkfield(md,'inversion.cost_functions','size',[num_costfunc],'values',[101,102,103,104,105,201,501,502,503,504,505])
 		md = checkfield(md,'inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)
 		md = checkfield(md,'inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls])
@@ -171,18 +171,18 @@
 
 		#process cost functions
-		num_cost_functions=numpy.size(self.cost_functions,axis=1)
+		num_cost_functions=numpy.size(self.cost_functions)
 		data=copy.deepcopy(self.cost_functions)
-		data[numpy.nonzero(data==101)]=SurfaceAbsVelMisfitEnum()
-		data[numpy.nonzero(data==102)]=SurfaceRelVelMisfitEnum()
-		data[numpy.nonzero(data==103)]=SurfaceLogVelMisfitEnum()
-		data[numpy.nonzero(data==104)]=SurfaceLogVxVyMisfitEnum()
-		data[numpy.nonzero(data==105)]=SurfaceAverageVelMisfitEnum()
-		data[numpy.nonzero(data==201)]=ThicknessAbsMisfitEnum()
-		data[numpy.nonzero(data==501)]=DragCoefficientAbsGradientEnum()
-		data[numpy.nonzero(data==502)]=RheologyBbarAbsGradientEnum()
-		data[numpy.nonzero(data==503)]=ThicknessAbsGradientEnum()
-		data[numpy.nonzero(data==504)]=ThicknessAlongGradientEnum()
-		data[numpy.nonzero(data==505)]=ThicknessAcrossGradientEnum()
-		WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
+		data=[SurfaceAbsVelMisfitEnum()        if x==101 else x for x in data]
+		data=[SurfaceRelVelMisfitEnum()        if x==102 else x for x in data]
+		data=[SurfaceLogVelMisfitEnum()        if x==103 else x for x in data]
+		data=[SurfaceLogVxVyMisfitEnum()       if x==104 else x for x in data]
+		data=[SurfaceAverageVelMisfitEnum()    if x==105 else x for x in data]
+		data=[ThicknessAbsMisfitEnum()         if x==201 else x for x in data]
+		data=[DragCoefficientAbsGradientEnum() if x==501 else x for x in data]
+		data=[RheologyBbarAbsGradientEnum()    if x==502 else x for x in data]
+		data=[ThicknessAbsGradientEnum()       if x==503 else x for x in data]
+		data=[ThicknessAlongGradientEnum()     if x==504 else x for x in data]
+		data=[ThicknessAcrossGradientEnum()    if x==505 else x for x in data]
+		WriteData(fid,'data',numpy.array(data).reshape(1,-1),'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
 		WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
 	# }}}
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 16306)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 16307)
@@ -472,5 +472,4 @@
 def ThicknessAlongGradientEnum(): return StringToEnum("ThicknessAlongGradient")[0]
 def ThicknessAcrossGradientEnum(): return StringToEnum("ThicknessAcrossGradient")[0]
-def StepResponsesEnum(): return StringToEnum("StepResponses")[0]
 def IntMatParamEnum(): return StringToEnum("IntMatParam")[0]
 def RheologyBbarAbsGradientEnum(): return StringToEnum("RheologyBbarAbsGradient")[0]
Index: sm/trunk-jpl/src/m/enum/StepResponsesEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/StepResponsesEnum.m	(revision 16306)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=StepResponsesEnum()
-%STEPRESPONSESENUM - Enum of StepResponses
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=StepResponsesEnum()
-
-macro=StringToEnum('StepResponses');
Index: /issm/trunk-jpl/test/NightlyRun/test212.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test212.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test212.m	(revision 16307)
@@ -10,5 +10,5 @@
 md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=101;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test212.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test212.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test212.py	(revision 16307)
@@ -22,5 +22,5 @@
 md.inversion.max_parameters=2.*10**9*ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=101.*ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=101
 md.inversion.cost_functions_coefficients=ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=10**7*ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test213.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test213.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test213.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=101;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test213.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test213.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test213.py	(revision 16307)
@@ -23,5 +23,5 @@
 md.inversion.max_parameters=2.*10**9*ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=101.*ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=101.
 md.inversion.cost_functions_coefficients=ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=10**7*ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test214.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test214.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test214.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=101;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test214.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test214.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test214.py	(revision 16307)
@@ -23,5 +23,5 @@
 md.inversion.max_parameters=2.*10**9*ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=101.*ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=101.
 md.inversion.cost_functions_coefficients=ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=10**7*ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test215.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test215.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test215.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=2*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=101;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test215.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test215.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test215.py	(revision 16307)
@@ -23,5 +23,5 @@
 md.inversion.max_parameters=2.*10**9*ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=101.*ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=101.
 md.inversion.cost_functions_coefficients=ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=10**7*ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test272.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test272.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test272.m	(revision 16307)
@@ -12,5 +12,5 @@
 md.inversion.max_parameters=(1-10^-13)*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=101.*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=101;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=0.9*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test272.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test272.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test272.py	(revision 16307)
@@ -22,5 +22,5 @@
 md.inversion.max_parameters=numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=101.*numpy.ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=101.
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=0.9*numpy.ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test319.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test319.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test319.m	(revision 16307)
@@ -10,5 +10,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[103  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test319.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test319.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test319.py	(revision 16307)
@@ -20,5 +20,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((103*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[103,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test320.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test320.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test320.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[103  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test320.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test320.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test320.py	(revision 16307)
@@ -21,5 +21,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((103*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[103,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test321.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test321.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test321.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[102  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test321.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test321.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test321.py	(revision 16307)
@@ -21,5 +21,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((102*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[102,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test322.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test322.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test322.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[104*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[104  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test322.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test322.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test322.py	(revision 16307)
@@ -21,5 +21,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((104*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[104,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test415.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test415.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test415.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[103  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test415.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test415.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test415.py	(revision 16307)
@@ -21,5 +21,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((103*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[103,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test416.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test416.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test416.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[102  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test416.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test416.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test416.py	(revision 16307)
@@ -21,5 +21,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((102*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[102,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test511.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test511.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test511.m	(revision 16307)
@@ -16,5 +16,5 @@
 md.inversion.max_parameters=2.*10^9*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=101*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=101;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10.^8*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test511.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test511.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test511.py	(revision 16307)
@@ -26,5 +26,5 @@
 md.inversion.max_parameters=2.*10**9*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=101*numpy.ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=101
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=10.**8*numpy.ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test512.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test512.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test512.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[103  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test512.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test512.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test512.py	(revision 16307)
@@ -21,5 +21,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((103*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[103,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test513.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test513.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test513.m	(revision 16307)
@@ -11,5 +11,5 @@
 md.inversion.max_parameters=200.*ones(md.mesh.numberofvertices,1);
 md.inversion.nsteps=2;
-md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1)  501*ones(md.inversion.nsteps,1)];
+md.inversion.cost_functions=[103  501];
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,2); md.inversion.cost_functions_coefficients(:,2)=2.*10^-7;
 md.inversion.gradient_scaling=3.*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test513.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test513.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test513.py	(revision 16307)
@@ -20,5 +20,5 @@
 md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.nsteps=2
-md.inversion.cost_functions=numpy.hstack((103*numpy.ones((md.inversion.nsteps,1)),501*numpy.ones((md.inversion.nsteps,1))))
+md.inversion.cost_functions=[103,501]
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
 md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
Index: /issm/trunk-jpl/test/NightlyRun/test611.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test611.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test611.m	(revision 16307)
@@ -12,5 +12,5 @@
 md.inversion.min_parameters=-50.*ones(md.mesh.numberofvertices,1);
 md.inversion.max_parameters=50.*ones(md.mesh.numberofvertices,1);
-md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=201;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10./md.constants.yts*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test611.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test611.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test611.py	(revision 16307)
@@ -22,5 +22,5 @@
 md.inversion.min_parameters=-50.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.max_parameters=50.*numpy.ones((md.mesh.numberofvertices,1))
-md.inversion.cost_functions=201*numpy.ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=201
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=10./md.constants.yts*numpy.ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test612.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test612.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test612.m	(revision 16307)
@@ -13,5 +13,5 @@
 md.inversion.min_parameters=-50.*ones(md.mesh.numberofvertices,1);
 md.inversion.max_parameters=50.*ones(md.mesh.numberofvertices,1);
-md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=201;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.gradient_scaling=10./md.constants.yts*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test612.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test612.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test612.py	(revision 16307)
@@ -24,5 +24,5 @@
 md.inversion.min_parameters=-50.*numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.max_parameters=50.*numpy.ones((md.mesh.numberofvertices,1))
-md.inversion.cost_functions=201*numpy.ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=201
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.gradient_scaling=10./md.constants.yts*numpy.ones((md.inversion.nsteps,1))
Index: /issm/trunk-jpl/test/NightlyRun/test613.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test613.m	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test613.m	(revision 16307)
@@ -19,5 +19,5 @@
 md.inversion.min_parameters=[-2000.*ones(md.mesh.numberofvertices,1) -2000.*ones(md.mesh.numberofvertices,1)];
 md.inversion.max_parameters=[+2000.*ones(md.mesh.numberofvertices,1) +2000.*ones(md.mesh.numberofvertices,1)];
-md.inversion.cost_functions=201*ones(md.inversion.nsteps,1);
+md.inversion.cost_functions=201;
 md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices,1);
 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1);
Index: /issm/trunk-jpl/test/NightlyRun/test613.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test613.py	(revision 16306)
+++ /issm/trunk-jpl/test/NightlyRun/test613.py	(revision 16307)
@@ -31,5 +31,5 @@
 md.inversion.min_parameters=numpy.hstack((-2000.*numpy.ones((md.mesh.numberofvertices,1)),-2000.*numpy.ones((md.mesh.numberofvertices,1))))
 md.inversion.max_parameters=numpy.hstack((+2000.*numpy.ones((md.mesh.numberofvertices,1)),+2000.*numpy.ones((md.mesh.numberofvertices,1))))
-md.inversion.cost_functions=201*numpy.ones((md.inversion.nsteps,1))
+md.inversion.cost_functions=201
 md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,1))
 md.inversion.maxiter_per_step=4*numpy.ones((md.inversion.nsteps,1))
