Index: /issm/trunk/src/m/solutions/cielo/diagnostic_core_nonlinear.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/diagnostic_core_nonlinear.m	(revision 77)
+++ /issm/trunk/src/m/solutions/cielo/diagnostic_core_nonlinear.m	(revision 78)
@@ -52,4 +52,7 @@
 
 		%Solve	
+		if m.parameters.debug,
+			disp(sprintf('%s%g','      condition number of stiffness matrix: ',condest(K_ff)));
+		end
 		[soln(count).u_f]=Solver(K_ff,p_f,[],m.parameters);
 	
@@ -70,18 +73,25 @@
 		if(count>=3),
 			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); 
+
+			%Relative criterion
 			if (ndu/nu<=m.parameters.eps_rel),
-				if (isnan(m.parameters.eps_abs) | nduinf<=m.parameters.eps_abs),
-					if constraints_converged,
-						converged=1;
-					end
-				end
+				if m.parameters.debug, disp(sprintf('%s %g %s %g','      convergence criterion: norm(du)/norm(u)=',ndu/nu,' < ',m.parameters.eps_rel)); end
+				converged=1;
+			else
+				if m.parameters.debug, disp(sprintf('%s %g %s %g','      convergence criterion: norm(du)/norm(u)=',ndu/nu,' > ',m.parameters.eps_rel)); end
+				converged=0;
+			end
+
+			%Absolute criterion
+			if (isnan(m.parameters.eps_abs) | nduinf<=m.parameters.eps_abs),
+				if m.parameters.debug, disp(sprintf('%s %g %s %g','      convergence criterion: max(du)=',nduinf,' < ',m.parameters.eps_abs)); end
+			else
+				if m.parameters.debug, disp(sprintf('%s %g %s %g','      convergence criterion: max(du)=',nduinf,' > ',m.parameters.eps_abs)); end
+				converged=0;
 			end
 			
-			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));
+			%rift convergence criterion
+			if ~constraints_converged,
+				converged=0;
 			end
 		end
