Index: ../trunk-jpl/m4/issm_options.m4 =================================================================== --- ../trunk-jpl/m4/issm_options.m4 (revision 19489) +++ ../trunk-jpl/m4/issm_options.m4 (revision 19490) @@ -721,6 +721,7 @@ AC_SUBST([ADOLCLIB]) fi AM_CONDITIONAL([ADOLC], [test x$HAVE_ADOLC = xyes]) + AM_COND_IF(ADOLC,[CXXFLAGS+=" -std=c++11"]) dnl }}} dnl adolc-version{{{ AC_ARG_WITH([adolc-version], Index: ../trunk-jpl/externalpackages/adolc/install-withampi.sh =================================================================== --- ../trunk-jpl/externalpackages/adolc/install-withampi.sh (revision 19489) +++ ../trunk-jpl/externalpackages/adolc/install-withampi.sh (revision 19490) @@ -4,7 +4,7 @@ #Some cleanup rm -rf install src -git clone -b ampi git://git.mcs.anl.gov/adol-c.git src +git clone https://gitlab.com/adol-c/adol-c.git src #git reset --hard b254b2a001a1b7a024a9184cd087ae06eb975cad #Compile ADOL-C Index: ../trunk-jpl/src/c/shared/Numerics/isnan.h =================================================================== --- ../trunk-jpl/src/c/shared/Numerics/isnan.h (revision 19489) +++ ../trunk-jpl/src/c/shared/Numerics/isnan.h (revision 19490) @@ -12,13 +12,13 @@ #endif /*If include cmath instead of math, isnan on linux64 murdo does not work: */ -#include +#include template int xIsNan(const T& X) { #ifdef _INTEL_WIN_ return (X!=X)?1:0; #else - return isnan(X); + return std::isnan(X); #endif } Index: ../trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp (revision 19489) +++ ../trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp (revision 19490) @@ -231,16 +231,12 @@ IssmDouble* adoubleEDFin=xNew(n*(n+1)); // packed inputs, i.e. matrix and right hand side for(int i=0; i(n*(n+1)); // provide space to transfer inputs during call_ext_fct - IssmPDouble* pdoubleEDFout=xNew(n); // provide space to transfer outputs during call_ext_fct // call the wrapped solver through the registry entry we retrieve from parameters call_ext_fct(xDynamicCast * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p, - n*(n+1), pdoubleEDFin, adoubleEDFin, - n, pdoubleEDFout,X); + n*(n+1), adoubleEDFin, + n, X); // for(int i=0; iparameters->FindParam(&driver,AutodiffDriverEnum); - /* these are always needed regardless of the interpreter */ - anEDF_for_solverx_p->dp_x=xNew(anEDF_for_solverx_p->max_n); - anEDF_for_solverx_p->dp_y=xNew(anEDF_for_solverx_p->max_m); if (strcmp(driver,"fos_forward")==0){ /*{{{*/ @@ -142,9 +139,6 @@ anEDF_for_solverx_p->fos_forward=EDF_fos_forward_for_solverx; #endif - /*allocate the space for the parameters to invoke the EDF fos_forward:*/ - anEDF_for_solverx_p->dp_X=xNew(anEDF_for_solverx_p->max_n); - anEDF_for_solverx_p->dp_Y=xNew(anEDF_for_solverx_p->max_m); /*call driver: */ fos_forward(my_rank,num_dependents,num_independents, 0, xp, tangentDir, theOutput, jacTimesTangentDir ); @@ -189,9 +183,6 @@ #endif // anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx; - /*allocate the space for the parameters to invoke EDF fov_forward:*/ - anEDF_for_solverx_p->dpp_X=xNew(anEDF_for_solverx_p->max_n, tangentDirNum); - anEDF_for_solverx_p->dpp_Y=xNew(anEDF_for_solverx_p->max_m, tangentDirNum); /*seed matrix: */ seed=xNewZeroInit(num_independents,tangentDirNum); @@ -251,9 +242,6 @@ anEDF_for_solverx_p->fos_reverse_iArr=fos_reverse_mumpsSolveEDF; #endif - /*allocate the space for the parameters to invoke the EDF fos_reverse :*/ - anEDF_for_solverx_p->dp_U=xNew(anEDF_for_solverx_p->max_m); - anEDF_for_solverx_p->dp_Z=xNew(anEDF_for_solverx_p->max_n); /*call driver: */ fos_reverse(my_rank,num_dependents,num_independents, aWeightVector, weightVectorTimesJac ); @@ -295,9 +283,6 @@ anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx; #endif - /*allocate the space for the parameters to invoke the EDF fos_reverse :*/ - anEDF_for_solverx_p->dpp_U=xNew(weightNum,anEDF_for_solverx_p->max_m); - anEDF_for_solverx_p->dpp_Z=xNew(weightNum,anEDF_for_solverx_p->max_n); /*seed matrix: */ weights=xNewZeroInit(weightNum,num_dependents); @@ -330,17 +315,6 @@ } /*}}}*/ else _error_("driver: " << driver << " not yet supported!"); - /* delete the allocated space for the parameters:*/ - xDelete(anEDF_for_solverx_p->dp_x); - xDelete(anEDF_for_solverx_p->dp_X); - xDelete(anEDF_for_solverx_p->dpp_X); - xDelete(anEDF_for_solverx_p->dp_y); - xDelete(anEDF_for_solverx_p->dp_Y); - xDelete(anEDF_for_solverx_p->dpp_Y); - xDelete(anEDF_for_solverx_p->dp_U); - xDelete(anEDF_for_solverx_p->dpp_U); - xDelete(anEDF_for_solverx_p->dp_Z); - xDelete(anEDF_for_solverx_p->dpp_Z); if(VerboseAutodiff())_printf0_(" end AD core\n");