Index: /issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 4144)
+++ /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 4145)
@@ -888,4 +888,60 @@
 
 	return count;
+}
+/*}}}*/
+/*FUNCTION DataSet::NumberOfNodes{{{1*/
+void DataSet::NumberOfNodes(int* pnumberofnodes){
+
+	vector<Object*>::iterator object;
+	int max_sid=0;
+	int sid;
+	int node_max_sid;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		if((*object)->Enum()==NodeEnum){ 
+
+			Node* node=(Node*)(*object);
+			sid=node->Sid();
+			if (sid>max_sid)max_sid=sid;
+		}
+	}
+
+	#ifdef _PARALLEL_
+	MPI_Reduce (&max_sid,&node_max_sid,1,MPI_INT,MPI_MAX,0,MPI_COMM_WORLD );
+	MPI_Bcast(&node_max_sid,1,MPI_INT,0,MPI_COMM_WORLD);
+	max_sid=node_max_sid;
+	#endif
+
+	/*Assign output pointers:*/
+	*pnumberofnodes=max_sid;
+}
+/*}}}*/
+/*FUNCTION DataSet::NumberOfVertices{{{1*/
+void DataSet::NumberOfVertices(int* pnumberofvertices){
+
+	vector<Object*>::iterator object;
+	int max_sid=0;
+	int sid;
+	int vertex_max_sid;
+
+	for ( object=objects.begin() ; object < objects.end(); object++ ){
+
+		if((*object)->Enum()==VertexEnum){ 
+
+			Vertex* vertex=(Vertex*)(*object);
+			sid=vertex->Sid();
+			if (sid>max_sid)max_sid=sid;
+		}
+	}
+
+	#ifdef _PARALLEL_
+	MPI_Reduce (&max_sid,&vertex_max_sid,1,MPI_INT,MPI_MAX,0,MPI_COMM_WORLD );
+	MPI_Bcast(&vertex_max_sid,1,MPI_INT,0,MPI_COMM_WORLD);
+	max_sid=vertex_max_sid;
+	#endif
+
+	/*Assign output pointers:*/
+	*pnumberofvertices=max_sid;
 }
 /*}}}*/
Index: /issm/trunk/src/c/DataSet/DataSet.h
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.h	(revision 4144)
+++ /issm/trunk/src/c/DataSet/DataSet.h	(revision 4145)
@@ -58,9 +58,11 @@
 		int   NumberOfDofs(int analysis_type);
 		int   NumberOfRgbs(int analysis_type);
+		int   NumberOfVertices(int* pnumberofvertices);
+		int   NumberOfNodes(int* pnumberofnodes);
 		void  SetupSpcs(DataSet* nodes,Vec yg,int analysis_type);
 		void  SetupMpcs(Mat Rmg,DataSet* nodes,int analysis_type);
 		void  FlagNodeSets(Vec pv_g, Vec pv_m, Vec pv_n, Vec pv_f, Vec pv_s,int analysis_type);
 		void  clear();
-		void Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,Parameters* parameters);
+		void  Configure(DataSet* elements,DataSet* loads, DataSet* nodes, DataSet* vertices, DataSet* materials,Parameters* parameters);
 		Object* GetObjectByOffset(int offset);
 		Object* GetObjectById(int* poffset,int eid);
