Index: /issm/trunk-jpl/src/c/solutions/controltao_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/controltao_core.cpp	(revision 11270)
+++ /issm/trunk-jpl/src/c/solutions/controltao_core.cpp	(revision 11271)
@@ -42,10 +42,10 @@
 	info = PetscOptionsSetValue("-tao_ls_stepmin","10e5"); if(info) _error_("STOP");    //does not work
 	info = PetscOptionsSetValue("-tao_ls_maxfev","8"); if(info) _error_("STOP");
-
 	/*TAO options: http://www.mcs.anl.gov/research/projects/tao/docs/manualpages/solver/TaoSetFromOptions.html*/
 	info = PetscOptionsSetValue("-tao_monitor",""); if(info) _error_("STOP");
-	info = PetscOptionsSetValue("-tao_gatol","10e-18"); if(info) _error_("STOP");
 	info = PetscOptionsSetValue("-tao_max_its","10"); if(info) _error_("STOP");
 	info = PetscOptionsSetValue("-tao_max_funcs","40"); if(info) _error_("STOP");
+
+
 
 	/*Additional options*/
@@ -58,8 +58,11 @@
 	GetVectorFromInputsx(&initial_solution,femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,MaterialsRheologyBbarEnum,VertexEnum);
 	info = TaoCreate(PETSC_COMM_WORLD,&tao); if(info) _error_("STOP");
-	info = TaoSetType(tao,"tao_cg"); if(info) _error_("STOP");
+	info = TaoSetType(tao,"tao_blmvm"); if(info) _error_("STOP");
 	info = TaoSetInitialVector(tao,initial_solution);  if(info) _error_("STOP");
 	info = TaoSetObjectiveAndGradientRoutine(tao,FormFunctionGradient,(void*)&user);  if(info) _error_("STOP");
 	info = TaoSetFromOptions(tao);  if(info) _error_("STOP");
+	/* http://www.mcs.anl.gov/research/projects/tao/docs/manpages/taosolver/TaoSetTolerances.html*/
+	/*                          fatol, frtol, gatol, grtol, gttol*/
+	info = TaoSetTolerances(tao,10e-18,10e-18,10e-18,10e-18,10e-18);
 	info = TaoSolve(tao); //if(info) _error_("STOP");
 
@@ -112,5 +115,5 @@
 	adjointdiagnostic_core(user->femmodel);
 	Gradjx(&gradient, femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters, MaterialsRheologyBbarEnum);
-	VecScale(gradient,10e7);
+	VecScale(gradient,-10e7);
 	//VecScale(gradient,-1.);
 	VecCopy(gradient,G);
