Index: /issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 4184)
+++ /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 4185)
@@ -877,6 +877,6 @@
 }
 /*}}}*/
-/*FUNCTION DataSet::NumberOfRgbs{{{1*/
-int   DataSet::NumberOfRgbs(int analysis_type){
+/*FUNCTION DataSet::NumberOfLocalRgbs{{{1*/
+int   DataSet::NumberOfLocalRgbs(int analysis_type){
 
 	vector<Object*>::iterator object;
@@ -898,5 +898,5 @@
 /*}}}*/
 /*FUNCTION DataSet::NumberOfNodes{{{1*/
-void DataSet::NumberOfNodes(int* pnumberofnodes){
+int DataSet::NumberOfNodes(void){
 
 	vector<Object*>::iterator object;
@@ -924,10 +924,10 @@
 	max_sid++;
 
-	/*Assign output pointers:*/
-	*pnumberofnodes=max_sid;
+	/*return*/
+	return max_sid;
 }
 /*}}}*/
 /*FUNCTION DataSet::NumberOfVertices{{{1*/
-void DataSet::NumberOfVertices(int* pnumberofvertices){
+int DataSet::NumberOfVertices(void){
 
 	vector<Object*>::iterator object;
@@ -955,6 +955,46 @@
 	max_sid++;
 
-	/*Assign output pointers:*/
-	*pnumberofvertices=max_sid;
+	/*return:*/
+	return max_sid;
+}
+/*}}}*/
+/*FUNCTION DataSet::NumberOfLoads{{{1*/
+int DataSet::NumberOfLoads(void){
+
+	int localloads;
+	int numberofloads;
+
+	/*Get number of local loads*/
+	localloads=this->Size();
+
+	/*figure out total number of loads combining all the cpus (no clones here)*/
+#ifdef _PARALLEL_
+	MPI_Reduce(&localloads,&numberofloads,1,MPI_INT,MPI_SUM,0,MPI_COMM_WORLD );
+	MPI_Bcast(&numberofloads,1,MPI_INT,0,MPI_COMM_WORLD);
+#else
+	numberofloads=localloads;
+#endif
+
+  return numberofloads;
+}
+/*}}}*/
+/*FUNCTION DataSet::NumberOfConstraints{{{1*/
+int DataSet::NumberOfConstraints(void){
+
+	int localconstraints;
+	int numberofconstraints;
+
+	/*Get number of local constraints*/
+	localconstraints=this->Size();
+
+	/*figure out total number of constraints combining all the cpus (no clones here)*/
+#ifdef _PARALLEL_
+	MPI_Reduce(&localconstraints,&numberofconstraints,1,MPI_INT,MPI_SUM,0,MPI_COMM_WORLD );
+	MPI_Bcast(&numberofconstraints,1,MPI_INT,0,MPI_COMM_WORLD);
+#else
+	numberofconstraints=localconstraints;
+#endif
+
+	return numberofconstraints;
 }
 /*}}}*/
Index: /issm/trunk/src/c/DataSet/DataSet.h
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.h	(revision 4184)
+++ /issm/trunk/src/c/DataSet/DataSet.h	(revision 4185)
@@ -57,7 +57,9 @@
 		void  FlagClones(int numberofnodes);
 		int   NumberOfDofs(int analysis_type);
-		int   NumberOfRgbs(int analysis_type);
-		void  NumberOfVertices(int* pnumberofvertices);
-		void  NumberOfNodes(int* pnumberofnodes);
+		int   NumberOfLocalRgbs(int analysis_type);
+		int   NumberOfVertices(void);
+		int   NumberOfNodes(void);
+		int   NumberOfLoads(void);
+		int   NumberOfConstraints(void);
 		void  SetupSpcs(DataSet* nodes,Vec yg,int analysis_type);
 		void  SetupMpcs(Mat Rmg,DataSet* nodes,int analysis_type);
Index: /issm/trunk/src/c/modules/ComputePressurex/ComputePressurex.cpp
===================================================================
--- /issm/trunk/src/c/modules/ComputePressurex/ComputePressurex.cpp	(revision 4184)
+++ /issm/trunk/src/c/modules/ComputePressurex/ComputePressurex.cpp	(revision 4185)
@@ -21,5 +21,5 @@
 
 	/*Recover numberofnodes: */
-	nodes->NumberOfNodes(&numberofnodes);
+	numberofnodes=nodes->NumberOfNodes();
 
 	/*Allocate p_g on numberofnodes (only 1 dof): */
Index: /issm/trunk/src/c/modules/FieldAverageOntoVerticesx/FieldAverageOntoVerticesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/FieldAverageOntoVerticesx/FieldAverageOntoVerticesx.cpp	(revision 4184)
+++ /issm/trunk/src/c/modules/FieldAverageOntoVerticesx/FieldAverageOntoVerticesx.cpp	(revision 4185)
@@ -24,5 +24,5 @@
 
 	/*Initialize intermediary*/
-	vertices->NumberOfVertices(&numberofvertices);
+	numberofvertices=vertices->NumberOfVertices();
 	connectivity=NewVec(numberofvertices);
 	fieldsum    =NewVec(numberofvertices);
Index: /issm/trunk/src/c/modules/Gradjx/Gradjx.cpp
===================================================================
--- /issm/trunk/src/c/modules/Gradjx/Gradjx.cpp	(revision 4184)
+++ /issm/trunk/src/c/modules/Gradjx/Gradjx.cpp	(revision 4185)
@@ -24,5 +24,5 @@
 	/*retrieve some parameters: */
 	parameters->FindParam(&dim,DimEnum);
-	vertices->NumberOfVertices(&numberofvertices);
+	numberofvertices=vertices->NumberOfVertices();
 
 	/*Compute gradients: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp	(revision 4184)
+++ /issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp	(revision 4185)
@@ -27,11 +27,11 @@
 
 
-	if(nodes)iomodel->nodecounter=nodes->Size();
+	if(nodes)iomodel->nodecounter=nodes->NumberOfNodes();
 	else iomodel->nodecounter=0;
 
-	if(loads)iomodel->loadcounter=loads->Size();
+	if(loads)iomodel->loadcounter=loads->NumberOfLoads();
 	else iomodel->loadcounter=0;
 	
-	if(constraints)iomodel->constraintcounter=constraints->Size();
+	if(constraints)iomodel->constraintcounter=constraints->NumberOfConstraints();
 	else iomodel->constraintcounter=0;
 
Index: /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.cpp	(revision 4184)
+++ /issm/trunk/src/c/modules/MpcNodesx/MpcNodesx.cpp	(revision 4185)
@@ -31,5 +31,5 @@
 
 	/*Get number of equations from number of constraints: */
-	numberofequations=constraints->NumberOfRgbs(analysis_type);
+	numberofequations=constraints->NumberOfLocalRgbs(analysis_type);
 
 	if(numberofequations){
Index: /issm/trunk/src/c/modules/NodesDofx/NodesDofx.cpp
===================================================================
--- /issm/trunk/src/c/modules/NodesDofx/NodesDofx.cpp	(revision 4184)
+++ /issm/trunk/src/c/modules/NodesDofx/NodesDofx.cpp	(revision 4185)
@@ -20,6 +20,6 @@
 	int  numberofdofspernode;
 
-	/*First, recover number of vertices and nodes from parameters: */
-	nodes->NumberOfNodes(&numberofnodes);
+	/*First, recover number of vertices and nodes: */
+	numberofnodes=nodes->NumberOfNodes();
 
 	/*Recover number of dofs per node: */
Index: /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.cpp
===================================================================
--- /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.cpp	(revision 4184)
+++ /issm/trunk/src/c/modules/VerticesDofx/VerticesDofx.cpp	(revision 4185)
@@ -28,5 +28,5 @@
 
 	/*figure out how many vertices we have: */
-	vertices->NumberOfVertices(&numberofvertices);
+	numberofvertices=vertices->NumberOfVertices();
 
 	/*Ensure that only for each cpu, the partition border vertices only will be taken into account once 
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 4184)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 4185)
@@ -250,8 +250,7 @@
 	printf("   analysis_type: %s\n",EnumAsString(analysis_type));
 	indexing.Echo();
-	hvertex.Echo();
-	hupper_node.Echo();
-	printf("   inputs\n");
-	inputs->Echo();
+	printf("   hvertex:     not displayed\n");
+	printf("   hupper_node: not displayed\n");
+	printf("   inputs:      %p\n",inputs);
 
 
Index: /issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp	(revision 4184)
+++ /issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp	(revision 4185)
@@ -42,5 +42,5 @@
 	/*Recover parameters: */
 	kflag=1; pflag=1;
-	femmodel->nodes->NumberOfNodes(&numberofnodes);
+	numberofnodes=femmodel->nodes->NumberOfNodes();
 	femmodel->parameters->FindParam(&solver_string,SolverStringEnum);
 	femmodel->parameters->FindParam(&dim,DimEnum);
Index: /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp	(revision 4184)
+++ /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp	(revision 4185)
@@ -42,5 +42,5 @@
 	kflag=1; pflag=1;
 
-	fem->nodes->NumberOfNodes(&numberofnodes);
+	numberofnodes=fem->nodes->NumberOfNodes();
 	fem->parameters->FindParam(&solver_string,SolverStringEnum);
 	fem->parameters->FindParam(&verbose,VerboseEnum);
