Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 27664)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 27665)
@@ -29,9 +29,9 @@
 
 		switch(inversiontype){
-			  {
 			case 0:/*Brent Search*/
 			case 1:/*TAO*/
 			case 2:/*M1QN3*/
 			case 3:/*Validation*/
+				  {
 				/*How many controls and how many responses?*/
 				parameters->AddObject(iomodel->CopyConstantObject("md.inversion.num_control_parameters",InversionNumControlParametersEnum));
@@ -63,49 +63,43 @@
 
 				break;
-		}
+				  }
 			case 4:/*AD M1QN3*/
-			{
-			/*Intermediaries*/
-			int            num_independent_objects,M;
-			char**         names                   = NULL;
+				  {
+			 /*Intermediaries*/
+			int     num_independent_objects,M;
+			char**  names = NULL;
 
-				/*this is done somewhere else*/
-				parameters->AddObject(iomodel->CopyConstantObject("md.autodiff.num_independent_objects",InversionNumControlParametersEnum));
-			   parameters->AddObject(iomodel->CopyConstantObject("md.autodiff.num_dependent_objects",InversionNumCostFunctionsEnum));
+			/*this is done somewhere else*/
+			parameters->AddObject(iomodel->CopyConstantObject("md.autodiff.num_independent_objects",InversionNumControlParametersEnum));
+			parameters->AddObject(iomodel->CopyConstantObject("md.autodiff.num_dependent_objects",InversionNumCostFunctionsEnum));
 
-				/*Step1: create controls (independents)*/
-				iomodel->FetchData(&num_independent_objects,"md.autodiff.num_independent_objects");
-				_assert_(num_independent_objects>0);
-				iomodel->FetchData(&names,&M,"md.autodiff.independent_object_names");
-				_assert_(M==num_independent_objects);
-				int* ind_enums=xNew<int>(num_independent_objects);
-				for(int i=0;i<num_independent_objects;i++){
-					ind_enums[i]=StringToEnumx(names[i]);
-					xDelete<char>(names[i]);
-				}
+			/*Step 1: create controls (independents)*/
+			iomodel->FetchData(&num_independent_objects,"md.autodiff.num_independent_objects"); _assert_(num_independent_objects>0);
+			iomodel->FetchData(&names,&M,"md.autodiff.independent_object_names");               _assert_(M==num_independent_objects);
+			int* ind_enums=xNew<int>(num_independent_objects);
+			for(int i=0;i<num_independent_objects;i++){
+				ind_enums[i]=StringToEnumx(names[i]);
+				xDelete<char>(names[i]);
+			}
+			xDelete<char*>(names);
+			parameters->AddObject(new IntVecParam(InversionControlParametersEnum,ind_enums,num_independent_objects));
+			xDelete<int>(ind_enums);	
 
-				parameters->AddObject(new IntVecParam(InversionControlParametersEnum,ind_enums,num_independent_objects));
-				iomodel->FindConstant(&cm_responses,&num_costfunc,"md.autodiff.dependent_object_names");
-				      _assert_(num_costfunc>0);
-				if(num_costfunc<1) _error_ ("no cost functions found");
-				int* costfunc_enums=xNew<int>(num_costfunc);
-				for(int i=0;i<num_costfunc;i++){
-					costfunc_enums[i]=StringToEnumx(cm_responses[i]);
-					xDelete<char>(cm_responses[i]);
-				}
-				xDelete<char*>(cm_responses);
-				parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,costfunc_enums,num_costfunc));
+			iomodel->FetchData(&control_scaling_factors,NULL,NULL,"md.autodiff.independent_scaling_factors");
+			parameters->AddObject(new DoubleVecParam(InversionControlScalingFactorsEnum,control_scaling_factors,num_independent_objects));
 
-				iomodel->FetchData(&control_scaling_factors,NULL,NULL,"md.autodiff.independent_scaling_factors");
-				parameters->AddObject(new DoubleVecParam(InversionControlScalingFactorsEnum,control_scaling_factors,num_independent_objects));
+			/*Step 2: create cost functions (dependent)*/
+			iomodel->FindConstant(&cm_responses,&num_costfunc,"md.autodiff.dependent_object_names");
+			if(num_costfunc<1) _error_ ("no cost functions found");
+			int* costfunc_enums=xNew<int>(num_costfunc);
+			for(int i=0;i<num_costfunc;i++){
+				costfunc_enums[i]=StringToEnumx(cm_responses[i]);
+				xDelete<char>(cm_responses[i]);
+			}
+			xDelete<char*>(cm_responses);
+			parameters->AddObject(new IntVecParam(InversionCostFunctionsEnum,costfunc_enums,num_costfunc));
+			xDelete<int>(costfunc_enums);
 
-				/*cleanup*/
-				for(int i=0;i<num_independent_objects;i++){
-					xDelete<char>(names[i]);
-				}
-				xDelete<char*>(names);
-				xDelete<int>(ind_enums);	
-				xDelete<int>(costfunc_enums);
-				break;
+			break;
 			}
 			default:
