Index: /issm/trunk-jpl/src/c/cores/controltao_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/controltao_core.cpp	(revision 27715)
+++ /issm/trunk-jpl/src/c/cores/controltao_core.cpp	(revision 27716)
@@ -98,6 +98,5 @@
 	TaoSetInitialVector(tao,X->pvector->vector);
 	#else
-	//TaoSetSolution(tao,X->pvector->vector);
-	_error_("not implemented yet");
+	TaoSetSolution(tao,X->pvector->vector);
 	#endif
 	TaoSetVariableBounds(tao,XL->pvector->vector,XU->pvector->vector);
@@ -107,4 +106,5 @@
 	user.J=xNewZeroInit<double>(maxiter+5);
 	user.femmodel=femmodel;
+	G=new Vector<IssmDouble>(0); VecFree(&G->pvector->vector);
 	#if PETSC_VERSION_LT(3,17,0)
 	TaoSetObjectiveAndGradientRoutine(tao,FormFunctionGradient,(void*)&user); 
@@ -124,10 +124,8 @@
 	TaoGetSolution(tao,&X->pvector->vector);
 	#endif
-	G=new Vector<IssmDouble>(0); VecFree(&G->pvector->vector);
 	#if PETSC_VERSION_LT(3,17,0)
 	TaoGetGradientVector(tao,&G->pvector->vector);
 	#else
-	//TaoGetGradient(tao,&G->pvector->vector);
-	_error_("not implemented yet");
+	TaoGetGradient(tao,&G->pvector->vector, NULL, NULL);
 	#endif
 	SetControlInputsFromVectorx(femmodel,X);
