Index: /issm/trunk-jpl/src/c/cores/controltao_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/controltao_core.cpp	(revision 26942)
+++ /issm/trunk-jpl/src/c/cores/controltao_core.cpp	(revision 26943)
@@ -95,5 +95,10 @@
 	GetVectorFromControlInputsx(&XL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"lowerbound");
 	GetVectorFromControlInputsx(&XU,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"upperbound");
+	#if PETSC_VERSION_LT(3,17,0)
 	TaoSetInitialVector(tao,X->pvector->vector);
+	#else
+	//TaoSetSolution(tao,X->pvector->vector);
+	_error_("not implemented yet");
+	#endif
 	TaoSetVariableBounds(tao,XL->pvector->vector,XU->pvector->vector);
 	delete XL;
@@ -110,7 +115,16 @@
 
 	/*Save results*/
+	#if PETSC_VERSION_LT(3,17,0)
 	TaoGetSolutionVector(tao,&X->pvector->vector);
+	#else
+	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");
+	#endif
 	SetControlInputsFromVectorx(femmodel,X);
 	ControlInputSetGradientx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,G);
