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(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 * >(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(edf_n); - anEDF_for_solverx_p->dp_X=xNew(edf_n); - anEDF_for_solverx_p->dpp_X=xNew(edf_n, num_independents); - anEDF_for_solverx_p->dp_y=xNew(edf_m); - anEDF_for_solverx_p->dp_Y=xNew(edf_m); - anEDF_for_solverx_p->dpp_Y=xNew(edf_m, num_independents); - anEDF_for_solverx_p->dp_U=xNew(edf_m); - anEDF_for_solverx_p->dpp_U=xNew(num_dependents,edf_m); - anEDF_for_solverx_p->dp_Z=xNew(edf_n); - anEDF_for_solverx_p->dpp_Z=xNew(num_dependents,edf_n); + anEDF_for_solverx_p->dp_x=xNew(anEDF_for_solverx_p->max_n); + anEDF_for_solverx_p->dp_X=xNew(anEDF_for_solverx_p->max_n); + anEDF_for_solverx_p->dpp_X=xNew(anEDF_for_solverx_p->max_n, num_independents); + anEDF_for_solverx_p->dp_y=xNew(anEDF_for_solverx_p->max_m); + anEDF_for_solverx_p->dp_Y=xNew(anEDF_for_solverx_p->max_m); + anEDF_for_solverx_p->dpp_Y=xNew(anEDF_for_solverx_p->max_m, num_independents); + anEDF_for_solverx_p->dp_U=xNew(anEDF_for_solverx_p->max_m); + anEDF_for_solverx_p->dpp_U=xNew(num_dependents,anEDF_for_solverx_p->max_m); + anEDF_for_solverx_p->dp_Z=xNew(anEDF_for_solverx_p->max_n); + anEDF_for_solverx_p->dpp_Z=xNew(num_dependents,anEDF_for_solverx_p->max_n); /* Call AD driver:*/ // single direction: