Index: /issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp	(revision 23532)
@@ -44,5 +44,5 @@
 
 			/* Add load */
-			loads->AddObject(new Numericalflux(iomodel->loadcounter+i+1,i,i,iomodel,BalancethicknessAnalysisEnum));
+			loads->AddObject(new Numericalflux(i+1,i,i,iomodel,BalancethicknessAnalysisEnum));
 		}
 
Index: /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 23532)
@@ -33,12 +33,9 @@
 
 			/*Get node ids*/
-			penpair_ids[0]=iomodel->nodecounter+reCast<int>(vertex_pairing[2*i+0]);
-			penpair_ids[1]=iomodel->nodecounter+reCast<int>(vertex_pairing[2*i+1]);
+			penpair_ids[0]=reCast<int>(vertex_pairing[2*i+0]);
+			penpair_ids[1]=reCast<int>(vertex_pairing[2*i+1]);
 
 			/*Create Load*/
-			loads->AddObject(new Penpair(
-							iomodel->loadcounter+count+1,
-							&penpair_ids[0],
-							FreeSurfaceBaseAnalysisEnum));
+			loads->AddObject(new Penpair(count+1, &penpair_ids[0], FreeSurfaceBaseAnalysisEnum));
 			count++;
 		}
Index: /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 23532)
@@ -33,12 +33,9 @@
 
 			/*Get node ids*/
-			penpair_ids[0]=iomodel->nodecounter+reCast<int>(vertex_pairing[2*i+0]);
-			penpair_ids[1]=iomodel->nodecounter+reCast<int>(vertex_pairing[2*i+1]);
+			penpair_ids[0]=reCast<int>(vertex_pairing[2*i+0]);
+			penpair_ids[1]=reCast<int>(vertex_pairing[2*i+1]);
 
 			/*Create Load*/
-			loads->AddObject(new Penpair(
-							iomodel->loadcounter+count+1,
-							&penpair_ids[0],
-							FreeSurfaceTopAnalysisEnum));
+			loads->AddObject(new Penpair( count+1, &penpair_ids[0], FreeSurfaceTopAnalysisEnum));
 			count++;
 		}
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 23532)
@@ -128,10 +128,10 @@
 			/*keep only this partition's nodes:*/
 			if(iomodel->my_vertices[i]){
-				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCEfficientAnalysisEnum));
+				loads->AddObject(new Moulin(i+1,i,iomodel,HydrologyDCEfficientAnalysisEnum));
 			}
 		}
 		else if(reCast<int>(iomodel->Data("md.mesh.vertexonbase")[i])){
 			if(iomodel->my_vertices[i]){
-				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCEfficientAnalysisEnum));
+				loads->AddObject(new Moulin(i+1,i,iomodel,HydrologyDCEfficientAnalysisEnum));
 			}
 		}
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 23532)
@@ -155,12 +155,12 @@
 			/*keep only this partition's nodes:*/
 			if(iomodel->my_vertices[i]){
-				loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
-				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
+				loads->AddObject(new Pengrid(i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
+				loads->AddObject(new Moulin(i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
 			}
 		}
 		else if(reCast<int>(iomodel->Data("md.mesh.vertexonbase")[i])){
 			if(iomodel->my_vertices[i]){
-				loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
-				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
+				loads->AddObject(new Pengrid(i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
+				loads->AddObject(new Moulin(i+1,i,iomodel,HydrologyDCInefficientAnalysisEnum));
 			}
 		}
Index: /issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyShaktiAnalysis.cpp	(revision 23532)
@@ -38,10 +38,10 @@
 			/*keep only this partition's nodes:*/
 			if(iomodel->my_vertices[i]){
-				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologyShaktiAnalysisEnum));
+				loads->AddObject(new Moulin(i+1,i,iomodel,HydrologyShaktiAnalysisEnum));
 			}
 		}
 		else if(reCast<int>(iomodel->Data("md.mesh.vertexonbase")[i])){
 			if(iomodel->my_vertices[i]){
-				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologyShaktiAnalysisEnum));
+				loads->AddObject(new Moulin(i+1,i,iomodel,HydrologyShaktiAnalysisEnum));
 			}	
 		}
@@ -58,5 +58,5 @@
 	for(int i=0;i<M;i++){
 		if(iomodel->my_elements[segments[i*3+2]-1]){
-			loads->AddObject(new Neumannflux(iomodel->loadcounter+i+1,i,iomodel,segments,HydrologyShaktiAnalysisEnum));
+			loads->AddObject(new Neumannflux(i+1,i,iomodel,segments,HydrologyShaktiAnalysisEnum));
 		}
 	}
Index: /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 23532)
@@ -51,5 +51,5 @@
 
 			/* Add load */
-			loads->AddObject(new Numericalflux(iomodel->loadcounter+i+1,i,i,iomodel,MasstransportAnalysisEnum));
+			loads->AddObject(new Numericalflux(i+1,i,i,iomodel,MasstransportAnalysisEnum));
 		}
 
@@ -77,12 +77,9 @@
 
 			/*Get node ids*/
-			penpair_ids[0]=iomodel->nodecounter+reCast<int>(vertex_pairing[2*i+0]);
-			penpair_ids[1]=iomodel->nodecounter+reCast<int>(vertex_pairing[2*i+1]);
+			penpair_ids[0]=reCast<int>(vertex_pairing[2*i+0]);
+			penpair_ids[1]=reCast<int>(vertex_pairing[2*i+1]);
 
 			/*Create Load*/
-			loads->AddObject(new Penpair(
-							iomodel->loadcounter+count+1,
-							&penpair_ids[0],
-							MasstransportAnalysisEnum));
+			loads->AddObject(new Penpair(count+1,&penpair_ids[0],MasstransportAnalysisEnum));
 			count++;
 		}
Index: /issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp	(revision 23532)
@@ -21,5 +21,5 @@
 		if(iomodel->my_vertices[i]){
 			if (reCast<int>(iomodel->Data("md.mesh.vertexonbase")[i])){
-				loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,MeltingAnalysisEnum));
+				loads->AddObject(new Pengrid(i+1,i,iomodel,MeltingAnalysisEnum));
 			}
 		}
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 23532)
@@ -15,5 +15,5 @@
 	/*Intermediary*/
 	int        i,j;
-	int        count,finiteelement,p_fe,v_fe;
+	int        finiteelement,p_fe,v_fe;
 	IssmDouble g;
 	IssmDouble rho_ice;
@@ -122,5 +122,5 @@
 
 			/*Pressure spc*/
-			count = constraints->Size();
+			int count = constraints->Size();
 			iomodel->FetchData(&vertices_type,NULL,NULL,"md.flowequation.vertex_equation");
 			iomodel->FetchData(&surface,NULL,NULL,"md.geometry.surface");
@@ -139,5 +139,5 @@
 							if(iomodel->my_vertices[i]){
 								if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){
-									constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));
+									constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));
 									count++;
 								}
@@ -149,5 +149,5 @@
 							if(iomodel->my_vertices[i]){
 								if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){
-									constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));
+									constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+iomodel->numberofelements+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));
 									count++;
 								}
@@ -159,5 +159,5 @@
 							if(iomodel->my_vertices[i]){
 								if(IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){
-									constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));
+									constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum));
 									count++;
 								}
@@ -197,5 +197,5 @@
 
 	/*Initialize counter: */
-	count=0;
+	int count=0;
 
 	/*figure out times: */
@@ -223,14 +223,14 @@
 				/*If grionSSA, spc HO dofs: 3 & 4*/
 					if (reCast<int,IssmDouble>(nodeonHO[i])){
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,0,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,1,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
 						if (!xIsNan<IssmDouble>(spcvx[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,2,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvy[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,3,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
@@ -238,14 +238,14 @@
 					}
 					else if (reCast<int,IssmDouble>(nodeonSSA[i])){
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,2,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,3,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
 						if (!xIsNan<IssmDouble>(spcvx[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvy[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
@@ -258,16 +258,16 @@
 				/*If grion,HO spc FS dofs: 3 4 & 5*/
 					if (reCast<int,IssmDouble>(nodeonHO[i])){
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,2,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,3,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,4,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,4,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
 						if (!xIsNan<IssmDouble>(spcvx[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvy[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
@@ -275,18 +275,18 @@
 					}
 					else if (reCast<int,IssmDouble>(nodeonFS[i])){ //spc HO nodes: 1 & 2
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,0,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,1,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
 						if (!xIsNan<IssmDouble>(spcvx[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,2,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvy[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,3,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvz[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,4,spcvz[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,4,spcvz[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
@@ -298,16 +298,16 @@
 				/*If grion,HO spc FS dofs: 3 4 & 5*/
 					if (reCast<int,IssmDouble>(nodeonSSA[i])){
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,2,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,3,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,4,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,4,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
 						if (!xIsNan<IssmDouble>(spcvx[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvy[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
@@ -315,18 +315,18 @@
 					}
 					else if (reCast<int,IssmDouble>(nodeonFS[i])){ //spc SSA nodes: 1 & 2
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,0,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,1,0,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
 						if (!xIsNan<IssmDouble>(spcvx[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,2,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvy[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,3,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
 						if (!xIsNan<IssmDouble>(spcvz[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,4,spcvz[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+							constraints->AddObject(new SpcStatic(count+1,i+1,4,spcvz[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 							count++;
 						}
@@ -337,5 +337,5 @@
 			else{
 				if (Mx==iomodel->numberofvertices && !xIsNan<IssmDouble>(spcvx[i])){
-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+					constraints->AddObject(new SpcStatic(count+1,i+1,0,spcvx[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 					count++;
 
@@ -351,5 +351,5 @@
 
 					if(spcpresent){
-						constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,Nx,timesx,values,StressbalanceAnalysisEnum));
+						constraints->AddObject(new SpcTransient(count+1,i+1,0,Nx,timesx,values,StressbalanceAnalysisEnum));
 						count++;
 					}
@@ -357,10 +357,10 @@
 				}
 				else if (IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==SIAApproximationEnum){
-					constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,StressbalanceAnalysisEnum));
+					constraints->AddObject(new SpcDynamic(count+1,i+1,0,StressbalanceAnalysisEnum));
 					count++;
 				}
 
 				if (My==iomodel->numberofvertices && !xIsNan<IssmDouble>(spcvy[i])){
-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vy.
+					constraints->AddObject(new SpcStatic(count+1,i+1,1,spcvy[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vy.
 					count++;
 				}
@@ -374,5 +374,5 @@
 					}
 					if(spcpresent){
-						constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,Ny,timesy,values,StressbalanceAnalysisEnum));
+						constraints->AddObject(new SpcTransient(count+1,i+1,1,Ny,timesy,values,StressbalanceAnalysisEnum));
 						count++;
 					}
@@ -380,5 +380,5 @@
 				}
 				else if (IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==SIAApproximationEnum){
-					constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,StressbalanceAnalysisEnum));
+					constraints->AddObject(new SpcDynamic(count+1,i+1,1,StressbalanceAnalysisEnum));
 					count++;
 				}
@@ -386,5 +386,5 @@
 				if (IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==FSApproximationEnum ||  (IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum)){
 					if (Mz==iomodel->numberofvertices && !xIsNan<IssmDouble>(spcvz[i])){
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,spcvz[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
+						constraints->AddObject(new SpcStatic(count+1,i+1,2,spcvz[i],StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
 						count++;
 					}
@@ -398,5 +398,5 @@
 						}
 						if(spcpresent){
-							constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,Nz,timesz,values,StressbalanceAnalysisEnum));
+							constraints->AddObject(new SpcTransient(count+1,i+1,2,Nz,timesz,values,StressbalanceAnalysisEnum));
 							count++;
 						}
@@ -406,5 +406,5 @@
 				}
 				if (IoCodeToEnumVertexEquation(reCast<int>(vertices_type[i]))==NoneApproximationEnum){
-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
+					constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+i+1,0,g*rho_ice*(surface[i]-z[i])/FSreconditioning,StressbalanceAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
 					count++;
 				}
@@ -470,9 +470,9 @@
 
 			/*Get node ids*/
-			penpair_ids[0]=iomodel->nodecounter+reCast<int,IssmDouble>(penalties[2*i+0]);
-			penpair_ids[1]=iomodel->nodecounter+reCast<int,IssmDouble>(penalties[2*i+1]);
+			penpair_ids[0]=reCast<int,IssmDouble>(penalties[2*i+0]);
+			penpair_ids[1]=reCast<int,IssmDouble>(penalties[2*i+1]);
 
 			/*Create Load*/
-			loads->AddObject(new Penpair(iomodel->loadcounter+count+1,&penpair_ids[0],StressbalanceAnalysisEnum));
+			loads->AddObject(new Penpair(count+1,&penpair_ids[0],StressbalanceAnalysisEnum));
 			count++;
 		}
@@ -488,5 +488,5 @@
 		for(i=0;i<numriftsegments;i++){
 			if(iomodel->my_elements[reCast<int,IssmDouble>(*(riftinfo+RIFTINFOSIZE*i+2))-1]){
-				loads->AddObject(new Riftfront(iomodel->loadcounter+count+1,i,iomodel,StressbalanceAnalysisEnum));
+				loads->AddObject(new Riftfront(count+1,i,iomodel,StressbalanceAnalysisEnum));
 				count++;
 			}
@@ -558,10 +558,10 @@
 					approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]));
 					if(approximation==FSApproximationEnum)  approximation=FSvelocityEnum;
-					nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,approximation));
+					nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,approximation));
 				}
 			}
 			for(int i=0;i<iomodel->numberofelements;i++){
 				if(iomodel->my_elements[i]){
-					node = new Node(iomodel->nodecounter+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum);
+					node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum);
 					node->Deactivate();
 					nodes->AddObject(node);
@@ -572,5 +572,5 @@
 				if(iomodel->my_vertices[i]){
 					approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]));
-					node = new Node(iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum);
+					node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum);
 					if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum){
 						node->Deactivate();
@@ -583,5 +583,5 @@
 			for(int i=0;i<iomodel->numberofvertices;i++){
 				if(iomodel->my_vertices[i]){
-					nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))));
+					nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))));
 				}
 			}
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 23532)
@@ -38,5 +38,5 @@
 
 		/*Initialize conunter*/
-		int count=0;
+		int count = 0;
 
 		/*vx and vy are spc'd if we are not on nodeonSIA: */
@@ -46,18 +46,18 @@
 				if (IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))!=SIAApproximationEnum){
 
-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceSIAAnalysisEnum));
+					constraints->AddObject(new SpcStatic(count+1,i+1,0,0,StressbalanceSIAAnalysisEnum));
 					count++;
 
-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,StressbalanceSIAAnalysisEnum));
+					constraints->AddObject(new SpcStatic(count+1,i+1,1,0,StressbalanceSIAAnalysisEnum));
 					count++;
 				}
 				else{
 					if (!xIsNan<IssmDouble>(iomodel->Data("md.stressbalance.spcvx")[i])){
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,iomodel->Data("md.stressbalance.spcvx")[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+						constraints->AddObject(new SpcStatic(count+1,i+1,0,iomodel->Data("md.stressbalance.spcvx")[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 						count++;
 					}
 
 					if (!xIsNan<IssmDouble>(iomodel->Data("md.stressbalance.spcvy")[i])){
-						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data("md.stressbalance.spcvy")[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
+						constraints->AddObject(new SpcStatic(count+1,i+1,1,iomodel->Data("md.stressbalance.spcvy")[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
 						count++;
 					}
@@ -99,5 +99,5 @@
 
 			/*Create new node if is in this processor's partition*/
-			node = new Node(iomodel->nodecounter+i+1,i,lid++,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])));
+			node = new Node(i+1,i,lid++,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])));
 
 			/*Deactivate node if not SIA*/
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 23532)
@@ -51,9 +51,9 @@
 
 				if (reCast<int,IssmDouble>(iomodel->Data("md.flowequation.borderFS")[i])){
-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceVerticalAnalysisEnum)); //spc to zero as vertical velocity is done in Horiz for FS
+					constraints->AddObject(new SpcStatic(count+1,i+1,0,0,StressbalanceVerticalAnalysisEnum)); //spc to zero as vertical velocity is done in Horiz for FS
 					count++;
 				}
 				else if (!xIsNan<IssmDouble>(spcvz[i])){
-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,
+					constraints->AddObject(new SpcStatic(count+1,i+1,0,
 									spcvz[i],StressbalanceVerticalAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
 					count++;
Index: /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 23532)
@@ -84,5 +84,5 @@
 		if(iomodel->my_vertices[i]){
 			if (xIsNan<IssmDouble>(iomodel->Data("md.thermal.spctemperature")[i])){ //No penalty applied on spc nodes!
-				loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,ThermalAnalysisEnum));
+				loads->AddObject(new Pengrid(i+1,i,iomodel,ThermalAnalysisEnum));
 			}
 		}
Index: /issm/trunk-jpl/src/c/classes/Elements/ElementHook.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 23532)
@@ -46,5 +46,5 @@
 
 	/*retrieve material_id: */
-	matpar_id = iomodel->matparcounter;
+	matpar_id = iomodel->numberofelements+1;
 
 	/*retrieve material_id*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 23532)
@@ -2891,344 +2891,344 @@
 			numnodes         = 6;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[5]=iomodel->nodecounter+iomodel->elements[6*index+5];
+			penta_node_ids[0]=iomodel->elements[6*index+0];
+			penta_node_ids[1]=iomodel->elements[6*index+1];
+			penta_node_ids[2]=iomodel->elements[6*index+2];
+			penta_node_ids[3]=iomodel->elements[6*index+3];
+			penta_node_ids[4]=iomodel->elements[6*index+4];
+			penta_node_ids[5]=iomodel->elements[6*index+5];
 			break;
 		case P1bubbleEnum: case P1bubblecondensedEnum:
 			numnodes         = 7;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+index+1;
+			penta_node_ids[0]=iomodel->elements[6*index+0];
+			penta_node_ids[1]=iomodel->elements[6*index+1];
+			penta_node_ids[2]=iomodel->elements[6*index+2];
+			penta_node_ids[3]=iomodel->elements[6*index+3];
+			penta_node_ids[4]=iomodel->elements[6*index+4];
+			penta_node_ids[5]=iomodel->elements[6*index+5];
+			penta_node_ids[6]=iomodel->numberofvertices+index+1;
 			break;
 		case P1xP2Enum:
 			numnodes         = 9;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
 			break;
 		case P1xP3Enum:
 			numnodes         = 12;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+2]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+0]+2;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+1]+2;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+2]+2;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+0]+2;
+			penta_node_ids[10]=iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+1]+2;
+			penta_node_ids[11]=iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+2]+2;
 			break;
 		case P2xP1Enum:
 			numnodes         = 12;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
 			break;
 		case P1xP4Enum:
 			numnodes         = 15;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0]; /*Vertex 1*/
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1]; /*Vertex 2*/
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2]; /*Vertex 3*/
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3]; /*Vertex 4*/
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4]; /*Vertex 5*/
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5]; /*Vertex 6*/
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+1; /*mid vertical edge 1*/
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+1; /*mid vertical edge 2*/
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+1; /*mid vertical edge 3*/
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+2; /* 1/4 vertical edge 1*/
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 3/4 vertical edge 1*/
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 3/4 vertical edge 2*/
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 3/4 vertical edge 3*/
+			penta_node_ids[ 0]=iomodel->elements[6*index+0]; /*Vertex 1*/
+			penta_node_ids[ 1]=iomodel->elements[6*index+1]; /*Vertex 2*/
+			penta_node_ids[ 2]=iomodel->elements[6*index+2]; /*Vertex 3*/
+			penta_node_ids[ 3]=iomodel->elements[6*index+3]; /*Vertex 4*/
+			penta_node_ids[ 4]=iomodel->elements[6*index+4]; /*Vertex 5*/
+			penta_node_ids[ 5]=iomodel->elements[6*index+5]; /*Vertex 6*/
+			penta_node_ids[ 6]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+1; /*mid vertical edge 1*/
+			penta_node_ids[ 7]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+1; /*mid vertical edge 2*/
+			penta_node_ids[ 8]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+1; /*mid vertical edge 3*/
+			penta_node_ids[ 9]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+2; /* 1/4 vertical edge 1*/
+			penta_node_ids[10]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
+			penta_node_ids[11]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
+			penta_node_ids[12]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 3/4 vertical edge 1*/
+			penta_node_ids[13]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 3/4 vertical edge 2*/
+			penta_node_ids[14]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 3/4 vertical edge 3*/
 			break;
 		case P2xP4Enum:
 			numnodes         = 30;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0]; /*Vertex 1*/
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1]; /*Vertex 2*/
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2]; /*Vertex 3*/
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3]; /*Vertex 4*/
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4]; /*Vertex 5*/
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5]; /*Vertex 6*/
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+1; /*mid vertical edge 1*/
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+1; /*mid vertical edge 2*/
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+1; /*mid vertical edge 3*/
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+3]+1; /*mid basal edge 1*/
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+4]+1; /*mid basal edge 2*/
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+5]+1; /*mid basal edge 3*/
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+6]+1; /*mid top edge 1*/
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+7]+1; /*mid top edge 2*/
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+8]+1; /*mid top edge 3*/
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+2; /* 1/4 vertical edge 1*/
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
-			penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 3/4 vertical edge 1*/
-			penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 3/4 vertical edge 2*/
-			penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 3/4 vertical edge 3*/
-			penta_node_ids[21]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+1; /* 1/4 vertical face 1*/
-			penta_node_ids[22]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+1; /* 1/4 vertical face 2*/
-			penta_node_ids[23]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+1; /* 1/4 vertical face 3*/
-			penta_node_ids[24]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+2; /* 2/4 vertical face 1*/
-			penta_node_ids[25]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+2; /* 2/4 vertical face 2*/
-			penta_node_ids[26]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+2; /* 2/4 vertical face 3*/
-			penta_node_ids[27]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+3; /* 3/4 vertical face 1*/
-			penta_node_ids[28]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+3; /* 3/4 vertical face 2*/
-			penta_node_ids[29]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+3; /* 3/4 vertical face 3*/
+			penta_node_ids[ 0]=iomodel->elements[6*index+0]; /*Vertex 1*/
+			penta_node_ids[ 1]=iomodel->elements[6*index+1]; /*Vertex 2*/
+			penta_node_ids[ 2]=iomodel->elements[6*index+2]; /*Vertex 3*/
+			penta_node_ids[ 3]=iomodel->elements[6*index+3]; /*Vertex 4*/
+			penta_node_ids[ 4]=iomodel->elements[6*index+4]; /*Vertex 5*/
+			penta_node_ids[ 5]=iomodel->elements[6*index+5]; /*Vertex 6*/
+			penta_node_ids[ 6]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+1; /*mid vertical edge 1*/
+			penta_node_ids[ 7]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+1; /*mid vertical edge 2*/
+			penta_node_ids[ 8]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+1; /*mid vertical edge 3*/
+			penta_node_ids[ 9]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+3]+1; /*mid basal edge 1*/
+			penta_node_ids[10]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+4]+1; /*mid basal edge 2*/
+			penta_node_ids[11]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+5]+1; /*mid basal edge 3*/
+			penta_node_ids[12]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+6]+1; /*mid top edge 1*/
+			penta_node_ids[13]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+7]+1; /*mid top edge 2*/
+			penta_node_ids[14]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+8]+1; /*mid top edge 3*/
+			penta_node_ids[15]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+2; /* 1/4 vertical edge 1*/
+			penta_node_ids[16]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
+			penta_node_ids[17]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
+			penta_node_ids[18]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 3/4 vertical edge 1*/
+			penta_node_ids[19]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 3/4 vertical edge 2*/
+			penta_node_ids[20]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 3/4 vertical edge 3*/
+			penta_node_ids[21]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+1; /* 1/4 vertical face 1*/
+			penta_node_ids[22]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+1; /* 1/4 vertical face 2*/
+			penta_node_ids[23]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+1; /* 1/4 vertical face 3*/
+			penta_node_ids[24]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+2; /* 2/4 vertical face 1*/
+			penta_node_ids[25]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+2; /* 2/4 vertical face 2*/
+			penta_node_ids[26]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+2; /* 2/4 vertical face 3*/
+			penta_node_ids[27]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+3; /* 3/4 vertical face 1*/
+			penta_node_ids[28]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+3; /* 3/4 vertical face 2*/
+			penta_node_ids[29]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+3; /* 3/4 vertical face 3*/
 			break;
 		case P2Enum:
 			numnodes         = 18;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
+			penta_node_ids[12]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
+			penta_node_ids[13]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
+			penta_node_ids[14]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
+			penta_node_ids[15]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
+			penta_node_ids[16]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
+			penta_node_ids[17]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
 			break;
 		case P2bubbleEnum: case P2bubblecondensedEnum:
 			numnodes         = 19;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
-			penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+index+1;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
+			penta_node_ids[12]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
+			penta_node_ids[13]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
+			penta_node_ids[14]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
+			penta_node_ids[15]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
+			penta_node_ids[16]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
+			penta_node_ids[17]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
+			penta_node_ids[18]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+index+1;
 			break;
 		case P1P1Enum: case P1P1GLSEnum:
 			numnodes         = 12;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[6*index+0];
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[6*index+1];
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[6*index+2];
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[6*index+3];
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[6*index+4];
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[6*index+5];
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elements[6*index+0];
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elements[6*index+1];
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elements[6*index+2];
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elements[6*index+3];
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elements[6*index+4];
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elements[6*index+5];
 			break;
 		case MINIEnum: case MINIcondensedEnum:
 			numnodes         = 13;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+index+1;
-
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+0];
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+1];
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+2];
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+3];
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+4];
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+5];
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+index+1;
+
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+0];
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+1];
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+2];
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+3];
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+4];
+			penta_node_ids[12]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[6*index+5];
 			break;
 		case TaylorHoodEnum:
 			numnodes         = 24;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
-
-			penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+0];
-			penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+1];
-			penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+2];
-			penta_node_ids[21]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+3];
-			penta_node_ids[22]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+4];
-			penta_node_ids[23]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+5];
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
+			penta_node_ids[12]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
+			penta_node_ids[13]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
+			penta_node_ids[14]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
+			penta_node_ids[15]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
+			penta_node_ids[16]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
+			penta_node_ids[17]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
+
+			penta_node_ids[18]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+0];
+			penta_node_ids[19]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+1];
+			penta_node_ids[20]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+2];
+			penta_node_ids[21]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+3];
+			penta_node_ids[22]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+4];
+			penta_node_ids[23]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->elements[6*index+5];
 			break;
 		case LATaylorHoodEnum:
 			numnodes         = 18;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
+			penta_node_ids[12]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
+			penta_node_ids[13]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
+			penta_node_ids[14]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
+			penta_node_ids[15]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
+			penta_node_ids[16]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
+			penta_node_ids[17]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
 			break;
 		case OneLayerP4zEnum:
 			numnodes         = 30+6;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0]; /*Vertex 1*/
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1]; /*Vertex 2*/
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2]; /*Vertex 3*/
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3]; /*Vertex 4*/
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4]; /*Vertex 5*/
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5]; /*Vertex 6*/
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+1; /*mid vertical edge 1*/
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+1; /*mid vertical edge 2*/
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+1; /*mid vertical edge 3*/
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+3]+1; /*mid basal edge 1*/
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+4]+1; /*mid basal edge 2*/
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+5]+1; /*mid basal edge 3*/
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+6]+1; /*mid top edge 1*/
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+7]+1; /*mid top edge 2*/
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+8]+1; /*mid top edge 3*/
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+2; /* 1/4 vertical edge 1*/
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
-			penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 2/4 vertical edge 1*/
-			penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 2/4 vertical edge 2*/
-			penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 2/4 vertical edge 3*/
-			penta_node_ids[21]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+1; /* 1/4 vertical face 1*/
-			penta_node_ids[22]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+1; /* 1/4 vertical face 2*/
-			penta_node_ids[23]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+1; /* 1/4 vertical face 3*/
-			penta_node_ids[24]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+2; /* 2/4 vertical face 1*/
-			penta_node_ids[25]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+2; /* 2/4 vertical face 2*/
-			penta_node_ids[26]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+2; /* 2/4 vertical face 3*/
-			penta_node_ids[27]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+3; /* 3/4 vertical face 1*/
-			penta_node_ids[28]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+3; /* 3/4 vertical face 2*/
-			penta_node_ids[29]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+3; /* 3/4 vertical face 3*/
-
-			penta_node_ids[30]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+0];
-			penta_node_ids[31]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+1];
-			penta_node_ids[32]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+2];
-			penta_node_ids[33]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+3];
-			penta_node_ids[34]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+4];
-			penta_node_ids[35]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+5];
+			penta_node_ids[ 0]=iomodel->elements[6*index+0]; /*Vertex 1*/
+			penta_node_ids[ 1]=iomodel->elements[6*index+1]; /*Vertex 2*/
+			penta_node_ids[ 2]=iomodel->elements[6*index+2]; /*Vertex 3*/
+			penta_node_ids[ 3]=iomodel->elements[6*index+3]; /*Vertex 4*/
+			penta_node_ids[ 4]=iomodel->elements[6*index+4]; /*Vertex 5*/
+			penta_node_ids[ 5]=iomodel->elements[6*index+5]; /*Vertex 6*/
+			penta_node_ids[ 6]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+1; /*mid vertical edge 1*/
+			penta_node_ids[ 7]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+1; /*mid vertical edge 2*/
+			penta_node_ids[ 8]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+1; /*mid vertical edge 3*/
+			penta_node_ids[ 9]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+3]+1; /*mid basal edge 1*/
+			penta_node_ids[10]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+4]+1; /*mid basal edge 2*/
+			penta_node_ids[11]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+5]+1; /*mid basal edge 3*/
+			penta_node_ids[12]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+6]+1; /*mid top edge 1*/
+			penta_node_ids[13]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+7]+1; /*mid top edge 2*/
+			penta_node_ids[14]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+8]+1; /*mid top edge 3*/
+			penta_node_ids[15]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+2; /* 1/4 vertical edge 1*/
+			penta_node_ids[16]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
+			penta_node_ids[17]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
+			penta_node_ids[18]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 2/4 vertical edge 1*/
+			penta_node_ids[19]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 2/4 vertical edge 2*/
+			penta_node_ids[20]=iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 2/4 vertical edge 3*/
+			penta_node_ids[21]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+1; /* 1/4 vertical face 1*/
+			penta_node_ids[22]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+1; /* 1/4 vertical face 2*/
+			penta_node_ids[23]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+1; /* 1/4 vertical face 3*/
+			penta_node_ids[24]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+2; /* 2/4 vertical face 1*/
+			penta_node_ids[25]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+2; /* 2/4 vertical face 2*/
+			penta_node_ids[26]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+2; /* 2/4 vertical face 3*/
+			penta_node_ids[27]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+3; /* 3/4 vertical face 1*/
+			penta_node_ids[28]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+3; /* 3/4 vertical face 2*/
+			penta_node_ids[29]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+4]+3; /* 3/4 vertical face 3*/
+
+			penta_node_ids[30]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+0];
+			penta_node_ids[31]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+1];
+			penta_node_ids[32]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+2];
+			penta_node_ids[33]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+3];
+			penta_node_ids[34]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+4];
+			penta_node_ids[35]=iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->numberoffaces+iomodel->elements[6*index+5];
 			break;
 		case CrouzeixRaviartEnum:
 			numnodes         = 25;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
-			penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+index+1;
-
-			penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+1;
-			penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+2;
-			penta_node_ids[21]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+3;
-			penta_node_ids[22]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+4;
-			penta_node_ids[23]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+5;
-			penta_node_ids[24]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+6;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
+			penta_node_ids[12]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
+			penta_node_ids[13]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
+			penta_node_ids[14]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
+			penta_node_ids[15]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
+			penta_node_ids[16]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
+			penta_node_ids[17]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
+			penta_node_ids[18]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+index+1;
+
+			penta_node_ids[19]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+1;
+			penta_node_ids[20]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+2;
+			penta_node_ids[21]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+3;
+			penta_node_ids[22]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+4;
+			penta_node_ids[23]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+5;
+			penta_node_ids[24]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+iomodel->numberofelements+6*index+6;
 			break;
 		case LACrouzeixRaviartEnum:
 			numnodes         = 19;
 			penta_node_ids   = xNew<int>(numnodes);
-			penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
-			penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
-			penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
-			penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
-			penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
-			penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
-			penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
-			penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
-			penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
-			penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
-			penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
-			penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
-			penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
-			penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
-			penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
-			penta_node_ids[15]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
-			penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
-			penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
-			penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+index+1;
+			penta_node_ids[ 0]=iomodel->elements[6*index+0];
+			penta_node_ids[ 1]=iomodel->elements[6*index+1];
+			penta_node_ids[ 2]=iomodel->elements[6*index+2];
+			penta_node_ids[ 3]=iomodel->elements[6*index+3];
+			penta_node_ids[ 4]=iomodel->elements[6*index+4];
+			penta_node_ids[ 5]=iomodel->elements[6*index+5];
+			penta_node_ids[ 6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+0]+1;
+			penta_node_ids[ 7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+1]+1;
+			penta_node_ids[ 8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1;
+			penta_node_ids[ 9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
+			penta_node_ids[10]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
+			penta_node_ids[11]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
+			penta_node_ids[12]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
+			penta_node_ids[13]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
+			penta_node_ids[14]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
+			penta_node_ids[15]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+2]+1;
+			penta_node_ids[16]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+3]+1;
+			penta_node_ids[17]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elementtofaceconnectivity[5*index+4]+1;
+			penta_node_ids[18]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberoffaces+index+1;
 			break;
 		default:
Index: /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 23532)
@@ -917,45 +917,45 @@
 			numnodes         = 4;
 			tetra_node_ids   = xNew<int>(numnodes);
-			tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
-			tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
-			tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
-			tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
+			tetra_node_ids[0]=iomodel->elements[4*index+0];
+			tetra_node_ids[1]=iomodel->elements[4*index+1];
+			tetra_node_ids[2]=iomodel->elements[4*index+2];
+			tetra_node_ids[3]=iomodel->elements[4*index+3];
 			break;
 		case P1bubbleEnum: case P1bubblecondensedEnum:
 			numnodes         = 5;
 			tetra_node_ids   = xNew<int>(numnodes);
-			tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
-			tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
-			tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
-			tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
-			tetra_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+index+1;
+			tetra_node_ids[0]=iomodel->elements[4*index+0];
+			tetra_node_ids[1]=iomodel->elements[4*index+1];
+			tetra_node_ids[2]=iomodel->elements[4*index+2];
+			tetra_node_ids[3]=iomodel->elements[4*index+3];
+			tetra_node_ids[4]=iomodel->numberofvertices+index+1;
 			break;
 		case P2Enum:
 			numnodes        = 10;
 			tetra_node_ids   = xNew<int>(numnodes);
-			tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
-			tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
-			tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
-			tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
-			tetra_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+0]+1;
-			tetra_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+1]+1;
-			tetra_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+2]+1;
-			tetra_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+3]+1;
-			tetra_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+4]+1;
-			tetra_node_ids[9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
+			tetra_node_ids[0]=iomodel->elements[4*index+0];
+			tetra_node_ids[1]=iomodel->elements[4*index+1];
+			tetra_node_ids[2]=iomodel->elements[4*index+2];
+			tetra_node_ids[3]=iomodel->elements[4*index+3];
+			tetra_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+0]+1;
+			tetra_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+1]+1;
+			tetra_node_ids[6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+2]+1;
+			tetra_node_ids[7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+3]+1;
+			tetra_node_ids[8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+4]+1;
+			tetra_node_ids[9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
 			break;
 		case MINIEnum: case MINIcondensedEnum:
 			numnodes         = 9;
 			tetra_node_ids   = xNew<int>(numnodes);
-			tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
-			tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
-			tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
-			tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
-			tetra_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+index+1;
-
-			tetra_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+0];
-			tetra_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+1];
-			tetra_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+2];
-			tetra_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+3];
+			tetra_node_ids[0]=iomodel->elements[4*index+0];
+			tetra_node_ids[1]=iomodel->elements[4*index+1];
+			tetra_node_ids[2]=iomodel->elements[4*index+2];
+			tetra_node_ids[3]=iomodel->elements[4*index+3];
+			tetra_node_ids[4]=iomodel->numberofvertices+index+1;
+
+			tetra_node_ids[5]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+0];
+			tetra_node_ids[6]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+1];
+			tetra_node_ids[7]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+2];
+			tetra_node_ids[8]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+3];
 			break;
 		case TaylorHoodEnum:
@@ -963,33 +963,33 @@
 			numnodes        = 14;
 			tetra_node_ids  = xNew<int>(numnodes);
-			tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
-			tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
-			tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
-			tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
-			tetra_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+0]+1;
-			tetra_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+1]+1;
-			tetra_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+2]+1;
-			tetra_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+3]+1;
-			tetra_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+4]+1;
-			tetra_node_ids[9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
-
-			tetra_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+0];
-			tetra_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+1];
-			tetra_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+2];
-			tetra_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+3];
+			tetra_node_ids[0]=iomodel->elements[4*index+0];
+			tetra_node_ids[1]=iomodel->elements[4*index+1];
+			tetra_node_ids[2]=iomodel->elements[4*index+2];
+			tetra_node_ids[3]=iomodel->elements[4*index+3];
+			tetra_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+0]+1;
+			tetra_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+1]+1;
+			tetra_node_ids[6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+2]+1;
+			tetra_node_ids[7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+3]+1;
+			tetra_node_ids[8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+4]+1;
+			tetra_node_ids[9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
+
+			tetra_node_ids[10]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+0];
+			tetra_node_ids[11]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+1];
+			tetra_node_ids[12]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+2];
+			tetra_node_ids[13]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+3];
 			break;
 		case LATaylorHoodEnum:
 			numnodes        = 10;
 			tetra_node_ids  = xNew<int>(numnodes);
-			tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
-			tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
-			tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
-			tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
-			tetra_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+0]+1;
-			tetra_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+1]+1;
-			tetra_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+2]+1;
-			tetra_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+3]+1;
-			tetra_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+4]+1;
-			tetra_node_ids[9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
+			tetra_node_ids[0]=iomodel->elements[4*index+0];
+			tetra_node_ids[1]=iomodel->elements[4*index+1];
+			tetra_node_ids[2]=iomodel->elements[4*index+2];
+			tetra_node_ids[3]=iomodel->elements[4*index+3];
+			tetra_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+0]+1;
+			tetra_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+1]+1;
+			tetra_node_ids[6]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+2]+1;
+			tetra_node_ids[7]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+3]+1;
+			tetra_node_ids[8]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+4]+1;
+			tetra_node_ids[9]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
 			break;
 		default:
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 23532)
@@ -3747,66 +3747,66 @@
 			numnodes        = 3;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
 			break;
 		case P1DGEnum:
 			numnodes        = 3;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+3*index+1;
-			tria_node_ids[1]=iomodel->nodecounter+3*index+2;
-			tria_node_ids[2]=iomodel->nodecounter+3*index+3;
+			tria_node_ids[0]=3*index+1;
+			tria_node_ids[1]=3*index+2;
+			tria_node_ids[2]=3*index+3;
 			break;
 		case P1bubbleEnum: case P1bubblecondensedEnum:
 			numnodes        = 4;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+index+1;
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+index+1;
 			break;
 		case P2Enum:
 			numnodes        = 6;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
 			break;
 		case P2bubbleEnum: case P2bubblecondensedEnum:
 			numnodes        = 7;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
-			tria_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+index+1;
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
+			tria_node_ids[6]=iomodel->numberofvertices+iomodel->numberofedges+index+1;
 			break;
 		case P1P1Enum: case P1P1GLSEnum:
 			numnodes        = 6;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[3*index+0];
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[3*index+1];
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elements[3*index+2];
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+
+			tria_node_ids[3]=iomodel->numberofvertices+iomodel->elements[3*index+0];
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->elements[3*index+1];
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->elements[3*index+2];
 			break;
 		case MINIEnum: case MINIcondensedEnum:
 			numnodes       = 7;
 			tria_node_ids  = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+index+1;
-
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[3*index+0];
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[3*index+1];
-			tria_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[3*index+2];
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+index+1;
+
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[3*index+0];
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[3*index+1];
+			tria_node_ids[6]=iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[3*index+2];
 			break;
 		case TaylorHoodEnum:
@@ -3814,50 +3814,50 @@
 			numnodes        = 9;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
-
-			tria_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[3*index+0];
-			tria_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[3*index+1];
-			tria_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[3*index+2];
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
+
+			tria_node_ids[6]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[3*index+0];
+			tria_node_ids[7]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[3*index+1];
+			tria_node_ids[8]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[3*index+2];
 			break;
 		case LATaylorHoodEnum:
 			numnodes        = 6;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
 			break;
 		case CrouzeixRaviartEnum:
 			numnodes        = 10;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
-			tria_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+index+1;
-
-			tria_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+3*index+1;
-			tria_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+3*index+2;
-			tria_node_ids[9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+3*index+3;
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
+			tria_node_ids[6]=iomodel->numberofvertices+iomodel->numberofedges+index+1;
+
+			tria_node_ids[7]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+3*index+1;
+			tria_node_ids[8]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+3*index+2;
+			tria_node_ids[9]=iomodel->numberofvertices+iomodel->numberofedges+iomodel->numberofelements+3*index+3;
 			break;
 		case LACrouzeixRaviartEnum:
 			numnodes        = 7;
 			tria_node_ids   = xNew<int>(numnodes);
-			tria_node_ids[0]=iomodel->nodecounter+iomodel->elements[3*index+0];
-			tria_node_ids[1]=iomodel->nodecounter+iomodel->elements[3*index+1];
-			tria_node_ids[2]=iomodel->nodecounter+iomodel->elements[3*index+2];
-			tria_node_ids[3]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
-			tria_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
-			tria_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
-			tria_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+index+1;
+			tria_node_ids[0]=iomodel->elements[3*index+0];
+			tria_node_ids[1]=iomodel->elements[3*index+1];
+			tria_node_ids[2]=iomodel->elements[3*index+2];
+			tria_node_ids[3]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+0]+1;
+			tria_node_ids[4]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+1]+1;
+			tria_node_ids[5]=iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[3*index+2]+1;
+			tria_node_ids[6]=iomodel->numberofvertices+iomodel->numberofedges+index+1;
 			break;
 		default:
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23532)
@@ -2650,6 +2650,4 @@
 	Nodes** new_nodes_list = xNew<Nodes*>(this->nummodels);
 
-	int nodecounter		=0;
-	int constraintcounter=0;
 	this->analysis_counter=-1;
 	for(int i=0;i<this->nummodels;i++){//create nodes for each analysis in analysis_type_list
@@ -2664,12 +2662,7 @@
 		if(analysis_enum==StressbalanceVerticalAnalysisEnum) continue;
 
-		this->CreateNodes(newnumberofvertices,my_vertices,nodecounter,analysis_enum,new_nodes_list[i]);
-		this->CreateConstraints(new_vertices,nodecounter,constraintcounter,analysis_enum,new_constraints_list[i]);
-		this->UpdateElements(newnumberofelements,newelementslist,my_elements,nodecounter,i,new_elements);
-
-		if(new_nodes_list[i]->Size()) nodecounter=new_nodes_list[i]->MaximumId();
-		constraintcounter = new_constraints_list[i]->NumberOfConstraints();
-		/*Make sure nodecounter is at least 0 (if no node exists, maxid will be -1*/
-		_assert_(nodecounter>=0);
+		this->CreateNodes(newnumberofvertices,my_vertices,analysis_enum,new_nodes_list[i]);
+		this->CreateConstraints(new_vertices,analysis_enum,new_constraints_list[i]);
+		this->UpdateElements(newnumberofelements,newelementslist,my_elements,i,new_elements);
 
 		new_constraints_list[i]->Presort();
@@ -3267,5 +3260,5 @@
 }
 /*}}}*/
-void FemModel::CreateNodes(int newnumberofvertices,int* my_vertices,int nodecounter,int analysis_enum,Nodes* nodes){/*{{{*/
+void FemModel::CreateNodes(int newnumberofvertices,int* my_vertices,int analysis_enum,Nodes* nodes){/*{{{*/
 
 	int lid=0;
@@ -3276,5 +3269,5 @@
 
 			/*id: */
-			newnode->id=nodecounter+j+1;
+			newnode->id=j+1;
 			newnode->sid=j;
 			newnode->lid=lid++;
@@ -3475,5 +3468,5 @@
 }
 /*}}}*/
-void FemModel::CreateConstraints(Vertices* newfemmodel_vertices,int nodecounter,int constraintcounter,int analysis_enum,Constraints* newfemmodel_constraints){/*{{{*/
+void FemModel::CreateConstraints(Vertices* newfemmodel_vertices,int analysis_enum,Constraints* newfemmodel_constraints){/*{{{*/
 
 	/*ATTENTION: JUST SPCVX AND SPCVY*/
@@ -3551,5 +3544,5 @@
 		/*spcvx*/
 		if(!xIsNan<IssmDouble>(newspc[i*numberofcols]) && newspc[i*numberofcols+dofpernode]>(1-eps)){
-			newfemmodel_constraints->AddObject(new SpcStatic(constraintcounter+count+1,nodecounter+vertex->Sid()+1,0,newspc[i*numberofcols],analysis_enum));
+			newfemmodel_constraints->AddObject(new SpcStatic(count+1,vertex->Sid()+1,0,newspc[i*numberofcols],analysis_enum));
 			//add count'th spc, on node i+1, setting dof 1 to vx.
 			count++;
@@ -3561,5 +3554,5 @@
 		/*spcvy*/
 		if(!xIsNan<IssmDouble>(newspc[i*numberofcols+1]) && newspc[i*numberofcols+dofpernode+1]>(1-eps) ){
-			newfemmodel_constraints->AddObject(new SpcStatic(constraintcounter+count+1,nodecounter+vertex->Sid()+1,1,newspc[i*numberofcols+1],analysis_enum));
+			newfemmodel_constraints->AddObject(new SpcStatic(count+1,vertex->Sid()+1,1,newspc[i*numberofcols+1],analysis_enum));
 			//add count'th spc, on node i+1, setting dof 1 to vx.
 			count++;
@@ -3575,5 +3568,5 @@
 }
 /*}}}*/
-void FemModel::UpdateElements(int newnumberofelements,int* newelementslist,bool* my_elements,int nodecounter,int analysis_counter,Elements* newelements){/*{{{*/
+void FemModel::UpdateElements(int newnumberofelements,int* newelementslist,bool* my_elements,int analysis_counter,Elements* newelements){/*{{{*/
 
 	/*newelementslist is in Matlab indexing*/
@@ -3589,7 +3582,7 @@
 			int numnodes=3;
          int* tria_node_ids=xNew<int>(numnodes);
-         tria_node_ids[0]=nodecounter+newelementslist[3*iel+0]; //matlab indexing
-         tria_node_ids[1]=nodecounter+newelementslist[3*iel+1]; //matlab indexing
-         tria_node_ids[2]=nodecounter+newelementslist[3*iel+2]; //matlab indexing
+         tria_node_ids[0]=newelementslist[3*iel+0]; //matlab indexing
+         tria_node_ids[1]=newelementslist[3*iel+1]; //matlab indexing
+         tria_node_ids[2]=newelementslist[3*iel+2]; //matlab indexing
 			tria->SetHookNodes(tria_node_ids,numnodes,analysis_counter); tria->nodes=NULL;
    		xDelete<int>(tria_node_ids);
Index: /issm/trunk-jpl/src/c/classes/FemModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/FemModel.h	(revision 23532)
@@ -182,9 +182,9 @@
 		void CreateElements(int newnumberofelements,int elementswidth,int* newelementslist,bool* my_elements,Elements* elements);
 		void CreateMaterials(int newnumberofelements,bool* my_elements,Materials* materials);
-		void CreateNodes(int newnumberofvertices,int* my_vertices,int nodecounter,int analysis_enum,Nodes* nodes);
-		void CreateConstraints(Vertices* newfemmodel_vertices,int nodecounter,int constraintcounter,int analysis_enum,Constraints* newfemmodel_constraints);
+		void CreateNodes(int newnumberofvertices,int* my_vertices,int analysis_enum,Nodes* nodes);
+		void CreateConstraints(Vertices* newfemmodel_vertices,int analysis_enum,Constraints* newfemmodel_constraints);
 		void GetInputs(int* pnumP0inputs,IssmDouble** pP0inputs,int** pP0input_enums,int** pP0input_interp,int* pnumP1inputs,IssmDouble** pP1inputs,int** pP1input_enums,int** pP1input_interp);
 		void InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements);
-		void UpdateElements(int newnumberofelements,int* newelementslist,bool* my_elements,int nodecounter,int analysis_counter,Elements* newelements);
+		void UpdateElements(int newnumberofelements,int* newelementslist,bool* my_elements,int analysis_counter,Elements* newelements);
 		void ElementsAndVerticesPartitioning(int& newnumberofvertices,int& newnumberofelements,int& elementswidth,int* newelementslist,bool** pmy_elements,int** pmy_vertices);
 		void WriteMeshInResults(void);
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 23532)
@@ -155,10 +155,5 @@
 	this->singlenodetoelementconnectivity=NULL;
 	this->numbernodetoelementconnectivity=NULL;
-
-	this->nodecounter=0;
-	this->loadcounter=0;
-	this->constraintcounter=0;
-}
-/*}}}*/
+}/*}}}*/
 IoModel::IoModel(FILE* iomodel_handle,int solution_enum_in,bool trace,IssmPDouble* X){/*{{{*/
 
@@ -219,10 +214,5 @@
 	this->singlenodetoelementconnectivity = NULL;
 	this->numbernodetoelementconnectivity = NULL;
-
-	this->nodecounter=0;
-	this->loadcounter=0;
-	this->constraintcounter=0;
-}
-/*}}}*/
+}/*}}}*/
 IoModel::~IoModel(){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/classes/IoModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.h	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/IoModel.h	(revision 23532)
@@ -86,10 +86,4 @@
 		int *singlenodetoelementconnectivity;
 
-		/*Data to synchronize through low level object drivers: */
-		int constraintcounter;   //keep track of how many constraints are being created in each analysis
-		int loadcounter;         //keep track of how many loads are being created in each analysis
-		int nodecounter;         //keep track of how many nodes are being created in each analysis
-		int matparcounter;       //keep track of where we end up putting this object accessed by every element.
-
 		/*Methods*/
 		~IoModel();
Index: /issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp	(revision 23532)
@@ -46,5 +46,5 @@
 
 	/*hooks: */
-	pengrid_node_id=iomodel->nodecounter+index+1;
+	pengrid_node_id=index+1;
 	pengrid_element_id=iomodel->singlenodetoelementconnectivity[index];
 	_assert_(pengrid_element_id);
Index: /issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp	(revision 23532)
@@ -44,6 +44,6 @@
 
 	/*2: Get the ids of the nodes*/
-	neumannflux_node_ids[0]=iomodel->nodecounter+neumannflux_vertex_ids[0];
-	neumannflux_node_ids[1]=iomodel->nodecounter+neumannflux_vertex_ids[1];
+	neumannflux_node_ids[0]=neumannflux_vertex_ids[0];
+	neumannflux_node_ids[1]=neumannflux_vertex_ids[1];
 
 	/*Get element id*/
Index: /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 23532)
@@ -85,8 +85,8 @@
 		/*3: We have the id of the elements and the position of the vertices in the index
 		 * we can compute their dofs!*/
-		numericalflux_node_ids[0]=iomodel->nodecounter+3*(e1-1)+pos1;
-		numericalflux_node_ids[1]=iomodel->nodecounter+3*(e1-1)+pos2;
-		numericalflux_node_ids[2]=iomodel->nodecounter+3*(e2-1)+pos3;
-		numericalflux_node_ids[3]=iomodel->nodecounter+3*(e2-1)+pos4;
+		numericalflux_node_ids[0]=3*(e1-1)+pos1;
+		numericalflux_node_ids[1]=3*(e1-1)+pos2;
+		numericalflux_node_ids[2]=3*(e2-1)+pos3;
+		numericalflux_node_ids[3]=3*(e2-1)+pos4;
 	}
 	else{
@@ -102,6 +102,6 @@
 		/*3: We have the id of the elements and the position of the vertices in the index
 		 * we can compute their dofs!*/
-		numericalflux_node_ids[0]=iomodel->nodecounter+3*(e1-1)+pos1;
-		numericalflux_node_ids[1]=iomodel->nodecounter+3*(e1-1)+pos2;
+		numericalflux_node_ids[0]=3*(e1-1)+pos1;
+		numericalflux_node_ids[1]=3*(e1-1)+pos2;
 	}
 
Index: /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 23532)
@@ -51,5 +51,5 @@
 
 	/*hooks: */
-	pengrid_node_id=iomodel->nodecounter+index+1;
+	pengrid_node_id=index+1;
 	pengrid_element_id=iomodel->singlenodetoelementconnectivity[index];
 	_assert_(pengrid_element_id);
Index: /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 23532)
@@ -60,6 +60,6 @@
 
 	/*hooks: */
-	riftfront_node_ids[0]=iomodel->nodecounter+node1;
-	riftfront_node_ids[1]=iomodel->nodecounter+node2;
+	riftfront_node_ids[0]=node1;
+	riftfront_node_ids[1]=node2;
 	riftfront_elem_ids[0]=el1;
 	riftfront_elem_ids[1]=el2;
Index: /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 23532)
@@ -71,5 +71,5 @@
 	iomodel->FindConstant(&materials_type,"md.materials.type");
 
-	this->mid = iomodel->matparcounter;
+	this->mid = iomodel->numberofelements+1;
 
 	switch(materials_type){
Index: /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 23532)
@@ -54,9 +54,9 @@
 
 	/*intermediary: */
-	int         i,j,count,elementnbv,numfacevertices;
+	int         i,j,elementnbv,numfacevertices;
 	IssmDouble  value;
-	IssmDouble *times            = NULL;
-	IssmDouble *values           = NULL;
-	bool        spcpresent       = false;
+	IssmDouble *times      = NULL;
+	IssmDouble *values     = NULL;
+	bool        spcpresent = false;
 
 	/*Higher-order finite elements*/
@@ -113,5 +113,5 @@
 	}
 
-	count=0;
+	int count=0;
 	if(M==iomodel->numberofvertices){
 		switch(finite_element){
@@ -120,5 +120,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -130,5 +130,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -140,5 +140,5 @@
 						v2 = iomodel->edges[3*i+1]-1;
 						if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,
+							constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+i+1,
 											dof,(spcdata[v1]+spcdata[v2])/2.,analysis_type));
 							count++;
@@ -157,6 +157,6 @@
 								value = value/reCast<IssmDouble>(numfacevertices);
 								if(!xIsNan<IssmDouble>(value)){
-									constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,
-													iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,
+									constraints->AddObject(new SpcStatic(count+1,
+													iomodel->numberofvertices+iomodel->numberofedges+i+1,
 													dof,value,analysis_type));
 									count++;
@@ -171,5 +171,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -181,5 +181,5 @@
 						v2 = iomodel->edges[3*i+1]-1;
 						if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,
+							constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+i+1,
 											dof,(spcdata[v1]+spcdata[v2])/2.,analysis_type));
 							count++;
@@ -198,6 +198,6 @@
 								value = value/reCast<IssmDouble>(numfacevertices);
 								if(!xIsNan<IssmDouble>(value)){
-									constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,
-													iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,
+									constraints->AddObject(new SpcStatic(count+1,
+													iomodel->numberofvertices+iomodel->numberofedges+i+1,
 													dof,value,analysis_type));
 									count++;
@@ -213,9 +213,9 @@
 						value = value/reCast<IssmDouble,int>(elementnbv+0);
 						if(!xIsNan<IssmDouble>(value)){
-							int nodeid = iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1;
+							int nodeid = iomodel->numberofvertices+iomodel->numberofedges+i+1;
 							if(iomodel->meshelementtype==PentaEnum){
 								nodeid += iomodel->numberoffaces;
 							}
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,nodeid,dof,value,analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,nodeid,dof,value,analysis_type));
 							count++;
 						}
@@ -227,5 +227,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -238,9 +238,9 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*i+1,
+								constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+3*i+1,
 												dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+3*i+2,
+								constraints->AddObject(new SpcStatic(count+2,iomodel->numberofvertices+3*i+2,
 												dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+3,iomodel->nodecounter+iomodel->numberofvertices+3*i+3,
+								constraints->AddObject(new SpcStatic(count+3,iomodel->numberofvertices+3*i+3,
 												dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
 								count=count+3;
@@ -253,5 +253,5 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*i+1,
+								constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+3*i+1,
 												dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
 								count=count+1;
@@ -270,12 +270,12 @@
 							value = value/reCast<IssmDouble>(numfacevertices);
 							if(!xIsNan<IssmDouble>(value)){
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,
-												iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+1,
+								constraints->AddObject(new SpcStatic(count+1,
+												iomodel->numberofvertices+3*iomodel->numberofedges+3*i+1,
 												dof,value,analysis_type));
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,
-												iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+2,
+								constraints->AddObject(new SpcStatic(count+2,
+												iomodel->numberofvertices+3*iomodel->numberofedges+3*i+2,
 												dof,value,analysis_type));
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+3,
-												iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*i+3,
+								constraints->AddObject(new SpcStatic(count+3,
+												iomodel->numberofvertices+3*iomodel->numberofedges+3*i+3,
 												dof,value,analysis_type));
 								count=count+3;
@@ -289,5 +289,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -300,5 +300,5 @@
 						value = value/reCast<IssmDouble,int>(elementnbv+0);
 						if(!xIsNan<IssmDouble>(value)){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,
+							constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+i+1,
 											dof,value,analysis_type));
 							count++;
@@ -311,5 +311,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -321,5 +321,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -332,5 +332,5 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,
+								constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+i+1,
 												dof,(spcdata[v1]+spcdata[v2])/2.,analysis_type));
 								count++;
@@ -344,5 +344,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -355,7 +355,7 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+2*i+1,
+								constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+2*i+1,
 												dof,2./3.*spcdata[v1]+1./3.*spcdata[v2],analysis_type));
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+2*i+2,
+								constraints->AddObject(new SpcStatic(count+2,iomodel->numberofvertices+2*i+2,
 												dof,1./3.*spcdata[v1]+2./3.*spcdata[v2],analysis_type));
 								count=count+2;
@@ -369,5 +369,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -380,9 +380,9 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*i+1,
+								constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+3*i+1,
 												dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+3*i+2,
+								constraints->AddObject(new SpcStatic(count+2,iomodel->numberofvertices+3*i+2,
 												dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+3,iomodel->nodecounter+iomodel->numberofvertices+3*i+3,
+								constraints->AddObject(new SpcStatic(count+3,iomodel->numberofvertices+3*i+3,
 												dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
 								count=count+3;
@@ -396,5 +396,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
+							constraints->AddObject(new SpcStatic(count+1,i+1,dof,spcdata[i],analysis_type));
 							count++;
 						}
@@ -407,5 +407,5 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,
+								constraints->AddObject(new SpcStatic(count+1,iomodel->numberofvertices+i+1,
 												dof,(spcdata[v1]+spcdata[v2])/2.,analysis_type));
 								count++;
@@ -441,5 +441,5 @@
 
 						if(spcpresent){
-							constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,N,times,values,analysis_type));
+							constraints->AddObject(new SpcTransient(count+1,i+1,dof,N,times,values,analysis_type));
 							count++;
 						}
@@ -462,5 +462,5 @@
 
 						if(spcpresent){
-							constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,N,times,values,analysis_type));
+							constraints->AddObject(new SpcTransient(count+1,i+1,dof,N,times,values,analysis_type));
 							count++;
 						}
@@ -479,6 +479,5 @@
 						}
 						if(spcpresent){
-							constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,dof,
-											N,times,values,analysis_type));
+							constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+i+1,dof,N,times,values,analysis_type));
 							count++;
 						}
@@ -500,5 +499,5 @@
 
 						if(spcpresent){
-							constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,N,times,values,analysis_type));
+							constraints->AddObject(new SpcTransient(count+1,i+1,dof,N,times,values,analysis_type));
 							count++;
 						}
@@ -518,6 +517,5 @@
 							}
 							if(spcpresent){
-								constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,dof,
-												N,times,values,analysis_type));
+								constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+i+1,dof,N,times,values,analysis_type));
 								count++;
 							}
@@ -540,5 +538,5 @@
 
 						if(spcpresent){
-							constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,N,times,values,analysis_type));
+							constraints->AddObject(new SpcTransient(count+1,i+1,dof,N,times,values,analysis_type));
 							count++;
 						}
@@ -558,6 +556,5 @@
 							}
 							if(spcpresent){
-								constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+2*i+1,dof,
-												N,times,values,analysis_type));
+								constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+2*i+1,dof,N,times,values,analysis_type));
 								count++;
 							}
@@ -568,6 +565,5 @@
 							}
 							if(spcpresent){
-								constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+2*i+2,dof,
-												N,times,values,analysis_type));
+								constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+2*i+2,dof,N,times,values,analysis_type));
 								count++;
 							}
@@ -590,5 +586,5 @@
 
 						if(spcpresent){
-							constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,N,times,values,analysis_type));
+							constraints->AddObject(new SpcTransient(count+1,i+1,dof,N,times,values,analysis_type));
 							count++;
 						}
@@ -608,6 +604,5 @@
 							}
 							if(spcpresent){
-								constraints->AddObject(new SpcTransient(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,dof,
-												N,times,values,analysis_type));
+								constraints->AddObject(new SpcTransient(count+1,iomodel->numberofvertices+i+1,dof,N,times,values,analysis_type));
 								count++;
 							}
@@ -625,7 +620,4 @@
 	}
 
-	/*Update counter now since we have added some constraints*/
-	iomodel->constraintcounter = constraints->NumberOfConstraints();
-
 	/*Free ressources:*/
 	xDelete<IssmDouble>(times);
@@ -636,5 +628,5 @@
 
 	/*intermediary: */
-	int         i,j,count,elementnbv,numfacevertices;
+	int         i,j,elementnbv,numfacevertices;
 	IssmDouble  value;
 	IssmDouble *times            = NULL;
@@ -698,5 +690,5 @@
 	}
 
-	count=0;
+	int count=0;
 	if(M==iomodel->numberofvertices){
 		switch(finite_element){
@@ -705,5 +697,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,analysis_type));
+							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,analysis_type));
 							count++;
 						}
@@ -715,5 +707,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,analysis_type));
+							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,analysis_type));
 							count++;
 						}
@@ -726,5 +718,5 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+i+1,
+								constraints->AddObject(new SpcDynamic(count+1,iomodel->numberofvertices+i+1,
 												dof,analysis_type));
 								count++;
@@ -738,5 +730,5 @@
 					if((iomodel->my_vertices[i])){
 						if (!xIsNan<IssmDouble>(spcdata[i])){
-							constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,analysis_type));
+							constraints->AddObject(new SpcDynamic(count+1,i+1,dof,analysis_type));
 							count++;
 						}
@@ -749,8 +741,6 @@
 							v2 = iomodel->edges[3*i+1]-1;
 							if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
-								constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+2*i+1,
-												dof,analysis_type));
-								constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+2*i+2,
-												dof,analysis_type));
+								constraints->AddObject(new SpcDynamic(count+1,iomodel->numberofvertices+2*i+1,dof,analysis_type));
+								constraints->AddObject(new SpcDynamic(count+2,iomodel->numberofvertices+2*i+2,dof,analysis_type));
 								count=count+2;
 							}
@@ -767,7 +757,4 @@
 	}
 
-	/*Update counter now since we have added some constraints*/
-	iomodel->constraintcounter = constraints->NumberOfConstraints();
-
 	/*Free ressources:*/
 	xDelete<IssmDouble>(times);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 23532)
@@ -20,7 +20,4 @@
 	/*Did we already create the elements? : */
 	_assert_(elements->Size()==0);
-
-	/*Setup matpar counter in iomodel before we call on element constructors: */
-	iomodel->matparcounter=iomodel->numberofelements+1;
 
 	/*Create elements*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp	(revision 23532)
@@ -14,8 +14,8 @@
 	int   i,j,counter,vnodes,lid=0;
 	int   numberoffaces,elementnbv;
-	int   id0 = iomodel->nodecounter;
 	bool *my_nodes = NULL;
 	Node *node     = NULL;
 
+	int id0 = 0;
 	switch(finite_element){
 		case P1Enum:
@@ -215,5 +215,5 @@
 			for(i=0;i<iomodel->numberofelements;i++){
 				if(iomodel->my_elements[i]){
-					nodes->AddObject(new Node(id0+i+1,id0-iomodel->nodecounter+i,lid++,0,iomodel,analysis,approximation));
+					nodes->AddObject(new Node(id0+i+1,id0-i,lid++,0,iomodel,analysis,approximation));
 				}
 			}
@@ -532,5 +532,5 @@
 			for(i=0;i<iomodel->numberofelements;i++){
 				if(iomodel->my_elements[i]){
-					nodes->AddObject(new Node(id0+i+1,id0-iomodel->nodecounter+i,lid++,0,iomodel,analysis,FSvelocityEnum));
+					nodes->AddObject(new Node(id0+i+1,id0-i,lid++,0,iomodel,analysis,FSvelocityEnum));
 				}
 			}
@@ -547,5 +547,5 @@
 				if(iomodel->my_elements[i]){
 					for(j=0;j<elementnbv;j++){
-						nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes-iomodel->nodecounter+elementnbv*i+j,lid++,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum));
+						nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes-elementnbv*i+j,lid++,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum));
 
 					}
@@ -588,5 +588,5 @@
 			for(i=0;i<iomodel->numberofelements;i++){
 				if(iomodel->my_elements[i]){
-					nodes->AddObject(new Node(id0+i+1,id0-iomodel->nodecounter+i,lid++,0,iomodel,analysis,FSvelocityEnum));
+					nodes->AddObject(new Node(id0+i+1,id0-i,lid++,0,iomodel,analysis,FSvelocityEnum));
 				}
 			}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 23531)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 23532)
@@ -62,14 +62,4 @@
 		delete analysis;
 
-		/* Update counters, because we have created more nodes, loads and
-		 * constraints, and ids for objects created in next call to CreateDataSets
-		 * will need to start at the end of the updated counters: */
-		if(nodes[i]->Size()) iomodel->nodecounter = nodes[i]->MaximumId();
-		iomodel->loadcounter       = loads[i]->NumberOfLoads();
-		iomodel->constraintcounter = constraints[i]->NumberOfConstraints();
-
-		/*Make sure nodecounter is at least 0 (if no node exists, maxid will be -1*/
-		_assert_(iomodel->nodecounter>=0);
-
 		/*Tell datasets that Ids are already sorted*/
 		constraints[i]->Presort();
Index: /issm/trunk-jpl/src/c/toolkits/issm/IssmMpiSparseMat.h
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/issm/IssmMpiSparseMat.h	(revision 23531)
+++ /issm/trunk-jpl/src/c/toolkits/issm/IssmMpiSparseMat.h	(revision 23532)
@@ -150,16 +150,11 @@
 		void Assemble(){/*{{{*/
 
-			int           i,j;
-
-			int         *RowRank            = NULL;
-			int           num_procs;
-
-			int        *row_indices_forcpu = NULL;
-			int        *col_indices_forcpu = NULL;
-			int        *modes_forcpu       = NULL;
-			doubletype *values_forcpu      = NULL;
-			int         *numvalues_forcpu   = NULL;
-			DataSet     **bucketsforcpu       = NULL;
-
+			int         *RowRank = NULL;
+			int         *row_indices_forcpu  = NULL;
+			int         *col_indices_forcpu  = NULL;
+			int         *modes_forcpu        = NULL;
+			doubletype  *values_forcpu       = NULL;
+			int         *numvalues_forcpu    = NULL;
+			DataSet    **bucketsforcpu       = NULL;
 			int        **row_indices_fromcpu = NULL;
 			int        **col_indices_fromcpu = NULL;
@@ -167,28 +162,23 @@
 			doubletype **values_fromcpu      = NULL;
 			int         *numvalues_fromcpu   = NULL;
-
-			int           lower_row;
-			int           upper_row;
-			int*          sendcnts            = NULL;
-			int*          displs              = NULL;
-			int           count               = 0;
-
-			int           this_row_numvalues;
-			int*          this_row_cols       = NULL;
-			int*          this_row_mods       = NULL;
-			int*          numvalues_perrow    = NULL;
-			int           row;
-			
-			doubletype**  values_perrow       = NULL;
-			int**         cols_perrow         = NULL;
-			int**         mods_perrow         = NULL;
-			int*          counters_perrow     = NULL;
-			int           counter;
+			int          lower_row;
+			int          upper_row;
+			int         *sendcnts = NULL;
+			int         *displs   = NULL;
+			int          this_row_numvalues;
+			int         *this_row_cols       = NULL;
+			int         *this_row_mods       = NULL;
+			int         *numvalues_perrow    = NULL;
+
+			doubletype **values_perrow       = NULL;
+			int        **cols_perrow         = NULL;
+			int        **mods_perrow         = NULL;
+			int         *counters_perrow     = NULL;
 
 			/*Early exit: */
-			if(this->M*this->N==0)return; //no need to assemble.
+			if(this->M*this->N==0) return;
 
 			/*some communicator info: */
-			num_procs=IssmComm::GetSize();
+			int num_procs=IssmComm::GetSize();
 			ISSM_MPI_Comm comm=IssmComm::GetComm();
 
@@ -196,10 +186,9 @@
 			RowRank=DetermineRowRankFromLocalSize(M,m,comm);
 
-			/*Now, sort out our dataset of buckets according to cpu ownership of rows: {{{*/
+			/*Now, sort out our dataset of buckets according to cpu ownership of rows*/
 			bucketsforcpu=xNew<DataSet*>(num_procs);
-
-			for(i=0;i<num_procs;i++){
+			for(int i=0;i<num_procs;i++){
 				DataSet* bucketsofcpu_i=new DataSet();
-				for (j=0;j<buckets->Size();j++){
+				for(int j=0;j<buckets->Size();j++){
 					Bucket<doubletype>* bucket=(Bucket<doubletype>*)buckets->GetObjectByOffset(j);
 					bucket->SpawnBucketsPerCpu(bucketsofcpu_i,i,RowRank);
@@ -207,18 +196,14 @@
 				bucketsforcpu[i]=bucketsofcpu_i;
 			}
-			/*}}}*/
-
-			/*Recap, each cpu has num_procs datasets of buckets. For a certain cpu j, for a given dataset i, the buckets this  {{{
+
+			/*Recap, each cpu has num_procs datasets of buckets. For a certain cpu j, for a given dataset i, the buckets this 
 			 * dataset owns correspond to rows that are owned by cpu i, not j!. Out of all the buckets we own, make row,col,value,insert_mode 
 			 * vectors that will be shipped around the cluster: */
 			this->BucketsBuildScatterBuffers(&numvalues_forcpu,&row_indices_forcpu,&col_indices_forcpu,&values_forcpu,&modes_forcpu,bucketsforcpu,num_procs);
-			/*}}}*/
-
-			/*Now, we need to allocate on each cpu arrays to receive data from all the other cpus. To know what we need to allocate, we need  {{{
+
+			/*Now, we need to allocate on each cpu arrays to receive data from all the other cpus. To know what we need to allocate, we need 
 			 *some scatter calls: */
 			numvalues_fromcpu   = xNew<int>(num_procs);
-			for(i=0;i<num_procs;i++){
-				ISSM_MPI_Scatter(numvalues_forcpu,1,ISSM_MPI_INT,numvalues_fromcpu+i,1,ISSM_MPI_INT,i,comm);
-			}
+			for(int i=0;i<num_procs;i++) ISSM_MPI_Scatter(numvalues_forcpu,1,ISSM_MPI_INT,numvalues_fromcpu+i,1,ISSM_MPI_INT,i,comm);
 
 			row_indices_fromcpu=xNew<int*>(num_procs);
@@ -226,5 +211,5 @@
 			values_fromcpu=xNew<doubletype*>(num_procs);
 			modes_fromcpu=xNew<int*>(num_procs);
-			for(i=0;i<num_procs;i++){
+			for(int i=0;i<num_procs;i++){
 				int size=numvalues_fromcpu[i];
 				if(size){
@@ -238,17 +223,15 @@
 					values_fromcpu[i]=xNew<doubletype>(size);
 #endif
-
 					modes_fromcpu[i]=xNew<int>(size);
 				}
 				else{
-					row_indices_fromcpu[i]=NULL;
-					col_indices_fromcpu[i]=NULL;
-					values_fromcpu[i]=NULL;
-					modes_fromcpu[i]=NULL;
-				}
-			}
-			/*}}}*/
-
-			/*Scatter values around: {{{*/
+					row_indices_fromcpu[i] = NULL;
+					col_indices_fromcpu[i] = NULL;
+					values_fromcpu[i]      = NULL;
+					modes_fromcpu[i]       = NULL;
+				}
+			}
+
+			/*Scatter values around*/
 			/*Now, to scatter values across the cluster, we need sendcnts and displs. Our sendbufs have been built by BucketsBuildScatterBuffers, with a stride given 
 			 * by numvalues_forcpu. Get this ready to go before starting the scatter itslef. For reference, here is the ISSM_MPI_Scatterv prototype: 
@@ -256,6 +239,6 @@
 			sendcnts=xNew<int>(num_procs);
 			displs=xNew<int>(num_procs);
-			count=0;
-			for(i=0;i<num_procs;i++){
+			int count=0;
+			for(int i=0;i<num_procs;i++){
 				sendcnts[i]=numvalues_forcpu[i];
 				displs[i]=count;
@@ -263,5 +246,5 @@
 			}
 
-			for(i=0;i<num_procs;i++){
+			for(int i=0;i<num_procs;i++){
 				ISSM_MPI_Scatterv( row_indices_forcpu, sendcnts, displs, ISSM_MPI_INT, row_indices_fromcpu[i], numvalues_fromcpu[i], ISSM_MPI_INT, i, comm);
 				ISSM_MPI_Scatterv( col_indices_forcpu, sendcnts, displs, ISSM_MPI_INT, col_indices_fromcpu[i], numvalues_fromcpu[i], ISSM_MPI_INT, i, comm);
@@ -269,15 +252,14 @@
 				ISSM_MPI_Scatterv( modes_forcpu, sendcnts, displs, ISSM_MPI_INT, modes_fromcpu[i], numvalues_fromcpu[i], ISSM_MPI_INT, i, comm);
 			}
-			/*}}}*/
-
-			/*Plug values into global matrix. To do so, we are going to first figure out how many overall values each sparse row is going to get, then we fill up these values, and give it to each sparse row: {{{*/
+
+			/*Plug values into global matrix. To do so, we are going to first figure out how many overall values each sparse row is going to get, then we fill up these values, and give it to each sparse row*/
 			GetOwnershipBoundariesFromRange(&lower_row,&upper_row,m,comm);
 
 			/*Figure out how many values each row is going to get: */
 			numvalues_perrow=xNewZeroInit<int>(this->m);
-			for(i=0;i<num_procs;i++){ 
+			for(int i=0;i<num_procs;i++){ 
 				int  numvalues=numvalues_fromcpu[i];
 				int* rows=row_indices_fromcpu[i];
-				for(j=0;j<numvalues;j++)numvalues_perrow[rows[j]-lower_row]++;
+				for(int j=0;j<numvalues;j++)numvalues_perrow[rows[j]-lower_row]++;
 			}
 
@@ -288,5 +270,5 @@
 			counters_perrow=xNewZeroInit<int>(this->m);
 
-			for(i=0;i<this->m;i++){
+			for(int i=0;i<this->m;i++){
 				values_perrow[i]=xNewZeroInit<doubletype>(numvalues_perrow[i]);
 				cols_perrow[i]=xNewZeroInit<int>(numvalues_perrow[i]);
@@ -295,5 +277,5 @@
 
 			/*collect:*/
-			for(i=0;i<num_procs;i++){
+			for(int i=0;i<num_procs;i++){
 				int  numvalues=numvalues_fromcpu[i];
 				int* rows=row_indices_fromcpu[i];
@@ -301,8 +283,7 @@
 				doubletype* values=values_fromcpu[i];
 				int* mods=modes_fromcpu[i];
-
-				for(j=0;j<numvalues;j++){
-					row=rows[j]-lower_row;
-					counter=counters_perrow[row];
+				for(int j=0;j<numvalues;j++){
+					int row=rows[j]-lower_row;
+					int counter=counters_perrow[row];
 					values_perrow[row][counter]=values[j];
 					cols_perrow[row][counter]=cols[j];
@@ -313,10 +294,7 @@
 					
 			/*Plug into matrix: */
-			for(i=0;i<this->m;i++){
-				this->matrix[i]->SetValues(numvalues_perrow[i],cols_perrow[i],values_perrow[i],mods_perrow[i]);
-			}
-			/*}}}*/
-
-			/*Free ressources:{{{*/
+			for(int i=0;i<this->m;i++) this->matrix[i]->SetValues(numvalues_perrow[i],cols_perrow[i],values_perrow[i],mods_perrow[i]);
+
+			/*Free ressources*/
 			xDelete<int>(numvalues_perrow);
 			xDelete<int>(RowRank);
@@ -326,17 +304,14 @@
 			xDelete<doubletype>(values_forcpu);
 			xDelete<int>(numvalues_forcpu);
-
-			for(i=0;i<num_procs;i++){
+			for(int i=0;i<num_procs;i++){
 				DataSet* buckets=bucketsforcpu[i];
 				delete buckets;
 			}
 			xDelete<DataSet*>(bucketsforcpu);
-
-			for(i=0;i<num_procs;i++){
+			for(int i=0;i<num_procs;i++){
 				int* rows=row_indices_fromcpu[i];
 				int* cols=col_indices_fromcpu[i];
 				int* modes=modes_fromcpu[i];
 				doubletype* values=values_fromcpu[i];
-
 				xDelete<int>(rows);
 				xDelete<int>(cols);
@@ -349,9 +324,7 @@
 			xDelete<doubletype*>(values_fromcpu);
 			xDelete<int>(numvalues_fromcpu);
-
 			xDelete<int>(sendcnts);
 			xDelete<int>(displs);
-			
-			for(i=0;i<this->m;i++){
+			for(int i=0;i<this->m;i++){
 				doubletype* values=values_perrow[i]; xDelete<doubletype>(values);
 				int* cols=cols_perrow[i]; xDelete<int>(cols);
@@ -362,8 +335,5 @@
 			xDelete<int*>(cols_perrow);
 			xDelete<int*>(mods_perrow);
-			/*}}}*/
-
-		}
-		/*}}}*/
+		}/*}}}*/
 		doubletype Norm(NormMode mode){/*{{{*/
 
@@ -458,7 +428,5 @@
 
 			/*intermediary: */
-			int         i,j;
-			int         count                   = 0;
-			int         total_size              = 0;
+			int         count;
 			int        *temp_row_indices_forcpu = NULL;
 			int        *temp_col_indices_forcpu = NULL;
@@ -476,13 +444,11 @@
 
 			numvalues_forcpu=xNew<int>(num_procs);
-			for(i=0;i<num_procs;i++){
-				DataSet    *buckets            = bucketsforcpu[i];
-
+			for(int i=0;i<num_procs;i++){
+				DataSet    *buckets = bucketsforcpu[i];
 				count=0;
-				for(j=0;j<buckets->Size();j++){
+				for(int j=0;j<buckets->Size();j++){
 					Bucket<doubletype>* bucket =(Bucket<doubletype>*)buckets->GetObjectByOffset(j);
 					count+=bucket->MarshallSize();
 				}
-
 				numvalues_forcpu[i]=count;
 			}
@@ -490,8 +456,6 @@
 			/*now, figure out size of  total buffers (for all cpus!): */
 			count=0;
-			for(i=0;i<num_procs;i++){
-				count+=numvalues_forcpu[i];
-			}
-			total_size=count;
+			for(int i=0;i<num_procs;i++) count+=numvalues_forcpu[i];
+			int total_size=count;
 
 			/*Allocate buffers: */
@@ -505,5 +469,4 @@
 			values_forcpu = xNew<doubletype>(total_size);
 #endif
-
 			modes_forcpu = xNew<int>(total_size);
 
@@ -511,13 +474,13 @@
 			 *lose track of where these buffers are located in memory, we are going to work using copies 
 			 of them: */
-			temp_row_indices_forcpu=row_indices_forcpu;
-			temp_col_indices_forcpu=col_indices_forcpu;
-			temp_values_forcpu=values_forcpu;
-			temp_modes_forcpu=modes_forcpu;
+			temp_row_indices_forcpu = row_indices_forcpu;
+			temp_col_indices_forcpu = col_indices_forcpu;
+			temp_values_forcpu      = values_forcpu;
+			temp_modes_forcpu       = modes_forcpu;
 
 			/*Fill buffers: */
-			for(i=0;i<num_procs;i++){
-				DataSet    *buckets            = bucketsforcpu[i];
-				for(j=0;j<buckets->Size();j++){
+			for(int i=0;i<num_procs;i++){
+				DataSet *buckets = bucketsforcpu[i];
+				for(int j=0;j<buckets->Size();j++){
 					Bucket<doubletype>* bucket =(Bucket<doubletype>*)buckets->GetObjectByOffset(j);
 					bucket->Marshall(&temp_row_indices_forcpu,&temp_col_indices_forcpu,&temp_values_forcpu,&temp_modes_forcpu); //pass in the address of the buffers, so as to have the Marshall routine increment them.
@@ -526,8 +489,8 @@
 
 			/*sanity check: */
-			if (temp_row_indices_forcpu!=row_indices_forcpu+total_size)_error_("problem with marshalling of buckets");
-			if (temp_col_indices_forcpu!=col_indices_forcpu+total_size)_error_("problem with marshalling of buckets");
-			if (temp_values_forcpu!=values_forcpu+total_size)_error_("problem with marshalling of buckets");
-			if (temp_modes_forcpu!=modes_forcpu+total_size)_error_("problem with marshalling of buckets");
+			if(temp_row_indices_forcpu!=row_indices_forcpu+total_size)_error_("problem with marshalling of buckets");
+			if(temp_col_indices_forcpu!=col_indices_forcpu+total_size)_error_("problem with marshalling of buckets");
+			if(temp_values_forcpu!=values_forcpu+total_size)_error_("problem with marshalling of buckets");
+			if(temp_modes_forcpu!=modes_forcpu+total_size)_error_("problem with marshalling of buckets");
 
 			/*output buffers: */
