Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 18875)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 18876)
@@ -31,5 +31,4 @@
 		parameters->AddObject(iomodel->CopyConstantObject(InversionNumControlParametersEnum));
 		parameters->AddObject(iomodel->CopyConstantObject(InversionNumCostFunctionsEnum));
-		parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
 
 		/*What solution type?*/
@@ -50,4 +49,5 @@
 		switch(inversiontype){
 			case 0:/*Brent Search*/
+				parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
 				parameters->AddObject(iomodel->CopyConstantObject(InversionNstepsEnum));
 				parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum));
@@ -60,4 +60,5 @@
 				break;
 			case 1:/*TAO*/
+				parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
 				parameters->AddObject(iomodel->CopyConstantObject(InversionFatolEnum));
 				parameters->AddObject(iomodel->CopyConstantObject(InversionFrtolEnum));
@@ -70,4 +71,5 @@
 				break;
 			case 2:/*M1QN3*/
+				parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
 				parameters->AddObject(iomodel->CopyConstantObject(InversionDxminEnum));
 				parameters->AddObject(iomodel->CopyConstantObject(InversionGttolEnum));
@@ -78,4 +80,13 @@
 				break;
 			case 3:/*Validation*/
+				parameters->AddObject(iomodel->CopyConstantObject(InversionIncompleteAdjointEnum));
+				iomodel->FetchData(&control_scaling_factors,NULL,NULL,InversionControlScalingFactorsEnum);
+				parameters->AddObject(new DoubleVecParam(InversionControlScalingFactorsEnum,control_scaling_factors,num_controls));
+				break;
+			case 4:/*M1QN3 AD*/
+				parameters->AddObject(iomodel->CopyConstantObject(InversionDxminEnum));
+				parameters->AddObject(iomodel->CopyConstantObject(InversionGttolEnum));
+				parameters->AddObject(iomodel->CopyConstantObject(InversionMaxstepsEnum));
+				parameters->AddObject(iomodel->CopyConstantObject(InversionMaxiterEnum));
 				iomodel->FetchData(&control_scaling_factors,NULL,NULL,InversionControlScalingFactorsEnum);
 				parameters->AddObject(new DoubleVecParam(InversionControlScalingFactorsEnum,control_scaling_factors,num_controls));
@@ -87,5 +98,4 @@
 
 		xDelete<int>(control_type);
-		xDelete<int>(cm_responses);
 		xDelete<int>(maxiter);
 		xDelete<IssmDouble>(control_scaling_factors);
