Index: ../trunk-jpl/src/c/modules/AutodiffDriversx/AutodiffDriversx.cpp
===================================================================
--- ../trunk-jpl/src/c/modules/AutodiffDriversx/AutodiffDriversx.cpp	(revision 13445)
+++ ../trunk-jpl/src/c/modules/AutodiffDriversx/AutodiffDriversx.cpp	(revision 13446)
@@ -19,9 +19,6 @@
 	int         num_dependents;
 	int         num_independents;
 	IssmDouble *axp                = NULL;
-	int         configuration_type;
-	int         solveSize;
-	int         edf_n                ,edf_m;
 	double     *xp                 = NULL;
 	int         anIndepNum;
 
@@ -47,12 +44,6 @@
 				xp[i]=reCast<double,IssmDouble>(axp[i]);
 			}
 
-			/* get the dimension for the solverx arguments*/
-			parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
-			solveSize=nodes->NumberOfDofs(configuration_type,FsetEnum);
-			edf_n=solveSize*(solveSize+1);
-			edf_m=solveSize;
-
 			/*get the EDF pointer:*/
 			ext_diff_fct *anEDF_for_solverx_p=dynamic_cast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p;
 
@@ -64,16 +55,16 @@
 			// anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx;
 			
 			/*allocate the space for the parameters to invoke the forward methods:*/
-			anEDF_for_solverx_p->dp_x=xNew<double>(edf_n);
-			anEDF_for_solverx_p->dp_X=xNew<double>(edf_n);
-			anEDF_for_solverx_p->dpp_X=xNew<double>(edf_n, num_independents);
-			anEDF_for_solverx_p->dp_y=xNew<double>(edf_m);
-			anEDF_for_solverx_p->dp_Y=xNew<double>(edf_m);
-			anEDF_for_solverx_p->dpp_Y=xNew<double>(edf_m, num_independents);
-			anEDF_for_solverx_p->dp_U=xNew<double>(edf_m);
-			anEDF_for_solverx_p->dpp_U=xNew<double>(num_dependents,edf_m);
-			anEDF_for_solverx_p->dp_Z=xNew<double>(edf_n);
-			anEDF_for_solverx_p->dpp_Z=xNew<double>(num_dependents,edf_n);
+			anEDF_for_solverx_p->dp_x=xNew<double>(anEDF_for_solverx_p->max_n);
+			anEDF_for_solverx_p->dp_X=xNew<double>(anEDF_for_solverx_p->max_n);
+			anEDF_for_solverx_p->dpp_X=xNew<double>(anEDF_for_solverx_p->max_n, num_independents);
+			anEDF_for_solverx_p->dp_y=xNew<double>(anEDF_for_solverx_p->max_m);
+			anEDF_for_solverx_p->dp_Y=xNew<double>(anEDF_for_solverx_p->max_m);
+			anEDF_for_solverx_p->dpp_Y=xNew<double>(anEDF_for_solverx_p->max_m, num_independents);
+			anEDF_for_solverx_p->dp_U=xNew<double>(anEDF_for_solverx_p->max_m);
+			anEDF_for_solverx_p->dpp_U=xNew<double>(num_dependents,anEDF_for_solverx_p->max_m);
+			anEDF_for_solverx_p->dp_Z=xNew<double>(anEDF_for_solverx_p->max_n);
+			anEDF_for_solverx_p->dpp_Z=xNew<double>(num_dependents,anEDF_for_solverx_p->max_n);
 
 			/* Call AD driver:*/
 			// single direction:
