Index: /issm/trunk/src/m/solutions/cielo/diagnostic_core_nonlinear.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/diagnostic_core_nonlinear.m	(revision 61)
+++ /issm/trunk/src/m/solutions/cielo/diagnostic_core_nonlinear.m	(revision 62)
@@ -66,8 +66,10 @@
 	%   Figure out if convergence is reached.
 		if(count>=3),
-			dug=soln(count).u_g-soln(count-1).u_g; ndu=norm(dug,2); nu=norm(soln(count-1).u_g,2); 
+			dug=soln(count).u_g-soln(count-1).u_g; nduinf=norm(dug,inf)*m.parameters.yts; ndu=norm(dug,2); nu=norm(soln(count-1).u_g,2); 
 			if (ndu/nu<=m.parameters.eps_rel),
-				if constraints_converged,
-					converged=1;
+				if (isnan(m.parameters.eps_abs) | nduinf<=m.parameters.eps_abs),
+					if constraints_converged,
+						converged=1;
+					end
 				end
 			end
@@ -75,4 +77,7 @@
 			if m.parameters.debug,
 				disp(sprintf('%s %g %s %g','      convergence criterion: norm(du)/norm(u)=',ndu/nu,' > ',m.parameters.eps_rel));
+				if ~isnan(m.parameters.eps_abs)
+					disp(sprintf('%s %g %s %g','      convergence criterion: max(du)=',nduinf,' > ',m.parameters.eps_abs));
+				end
 				disp(sprintf('%s %i','      number of unstable constraints=',num_unstable_constraints));
 			end
