Index: /issm/trunk/src/m/solutions/cielo/GradJCompute.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/GradJCompute.m	(revision 421)
+++ /issm/trunk/src/m/solutions/cielo/GradJCompute.m	(revision 422)
@@ -1,3 +1,3 @@
-function grad_g=GradJCompute(m,inputs, u_g_obs,analysis_type);
+function [u_g grad_g]=GradJCompute(m,inputs, u_g_obs,analysis_type);
 
 %Recover solution for this stiffness and right hand side: 
Index: /issm/trunk/src/m/solutions/cielo/control.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/control.m	(revision 421)
+++ /issm/trunk/src/m/solutions/cielo/control.m	(revision 422)
@@ -34,4 +34,5 @@
 		%update inputs with new fit
 		inputs=add(inputs,'fit',m.parameters.fit(n),'double');
+		inputs=add(inputs,m.parameters.control_type,p_g,'doublevec',2,m.parameters.numberofnodes);
 
 		%Update inputs in datasets
@@ -39,5 +40,6 @@
 
 		disp('      computing gradJ...');
-		c(n).grad_g=GradJCompute(m,inputs,u_g_obs,md.analysis_type);
+		[u_g c(n).grad_g]=GradJCompute(m,inputs,u_g_obs,md.analysis_type);
+		inputs=add(inputs,'velocity',u_g,'doublevec',2,m.parameters.numberofnodes);
 		disp('      done.');
 
@@ -72,10 +74,4 @@
 		end
 
-		disp('      update velocity...');    
-		inputs=add(inputs,m.parameters.control_type,p_g,'doublevec',2,m.parameters.numberofnodes);
-		u_g=diagnostic_core_nonlinear(m,inputs,md.analysis_type);
-		inputs=add(inputs,'velocity',u_g,'doublevec',2,m.parameters.numberofnodes);
-		disp('      done.');
-
 		%some temporary saving 
 		if(mod(n,5)==0),
