Index: /issm/trunk/src/c/modules/InputConvergencex/InputConvergencex.cpp
===================================================================
--- /issm/trunk/src/c/modules/InputConvergencex/InputConvergencex.cpp	(revision 4878)
+++ /issm/trunk/src/c/modules/InputConvergencex/InputConvergencex.cpp	(revision 4879)
@@ -12,11 +12,10 @@
 	/*intermediary:*/
 	int         i;
-	int         converged = 1;
-	int         node_converged=1;
+	bool        converged;
+	int         num_notconverged=0;
+	int         total_notconverged;
 	double     *eps       = NULL;
-	extern int  my_rank;
-	int         rank_allowed;
 	Element*    element=NULL;
-	int         verbose=0;
+	int         verbose;
 
 	/*retrieve parameters: */
@@ -29,27 +28,13 @@
 	for(i=0;i<elements->Size();i++){
 		element=(Element*)elements->GetObjectByOffset(i);
-		element->InputConvergence(&converged,eps,enums,num_enums,criterionenums,criterionvalues,num_criterionenums);
-		if(!converged)break;
+		converged=element->InputConvergence(eps,enums,num_enums,criterionenums,criterionvalues,num_criterionenums);
+		if(!converged) num_notconverged++;
 	}
 
-	if(!converged){ 
-		/*get convergence information to user: */
-		if(verbose>2)rank_allowed=my_rank;
-		else rank_allowed=0;
-		if(my_rank==rank_allowed){
-			printf("Convergence info: element %i (and maybe others) did not converge for inputs:",element->Id());
-			for(i=0;i<num_enums-1;i++)printf(" %s,",EnumAsString(enums[i])); printf(" %s\n",EnumAsString(enums[num_enums-1]));
-			printf("                  convergence criterions: ");
-			for(i=0;i<num_criterionenums;i++) printf("%s: %g/%g ",EnumAsString(criterionenums[i]),eps[i],criterionvalues[i]);
-			printf("\n");
-		}
-	}
-	
 	/*In parallel, we need to gather the converged status: */
 	#ifdef _PARALLEL_
-	MPI_Reduce (&converged,&node_converged,1,MPI_INT,MPI_MIN,0,MPI_COMM_WORLD );
-	MPI_Bcast(&node_converged,1,MPI_INT,0,MPI_COMM_WORLD);   
-	converged=node_converged;
+	MPI_Allreduce ( (void*)&num_notconverged,(void*)&total_notconverged,1,MPI_INT,MPI_SUM,MPI_COMM_WORLD);
 	#endif
+	_printf_("      #elements above convergence criterion = %i\n",total_notconverged);
 
 	/*Free ressources:*/
@@ -57,7 +42,7 @@
 
 	/*return: */
-	if (converged){
+	if (total_notconverged){
+		return false;}
+	else{
 		return true;}
-	else{
-		return false;}
 }
Index: /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.h
===================================================================
--- /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.h	(revision 4878)
+++ /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.h	(revision 4879)
@@ -16,8 +16,8 @@
 #ifdef _SERIAL_
 #include <mex.h>
-void OutputResultsx(mxArray** pdataref, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads,  Materials* materials, Parameters* parameters,DataSet** results,int step=0,double time=0);
+void OutputResultsx(mxArray** pdataref, Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads,  Materials* materials, Parameters* parameters,DataSet** results,int step=1,double time=0);
 void MatlabWriteResults(mxArray** pdataref, Parameters* parameters, DataSet* results);
 #else
-void OutputResultsx(Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads,  Materials* materials, Parameters* parameters,DataSet** results,int step=0,double time=0);
+void OutputResultsx(Elements* elements, Nodes* nodes, Vertices* vertices, Loads* loads,  Materials* materials, Parameters* parameters,DataSet** results,int step=1,double time=0);
 void FileWriteResults(Parameters* parameters, DataSet* results);
 #endif
