Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 15656)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 15657)
@@ -3333,5 +3333,4 @@
 			penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[6*index+4];
 			penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[6*index+5];
-			printarray(penta_node_ids,1,21);
 			break;
 		default:
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp	(revision 15656)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp	(revision 15657)
@@ -169,4 +169,5 @@
 			for(i=0;i<iomodel->numberofvertices;i++){
 				if(iomodel->my_vertices[i]){
+					if(IssmComm::GetRank()==0) printf("Creating node id %i\n",iomodel->nodecounter+i+1);
 					nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i,iomodel,analysis,FSvelocityEnum));
 				}
@@ -174,4 +175,5 @@
 			for(i=0;i<iomodel->numberofedges;i++){
 				if(my_edges[i]){
+					if(IssmComm::GetRank()==0) printf("Creating node id %i\n",iomodel->nodecounter+iomodel->numberofvertices+i+1);
 					nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,0,iomodel,analysis,FSvelocityEnum));
 				}
@@ -181,4 +183,5 @@
 			for(i=0;i<iomodel->numberofvertices;i++){
 				if(iomodel->my_vertices[i]){
+					if(IssmComm::GetRank()==0) printf("Creating node id %i\n",iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1);
 					nodes->AddObject(new Node(iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,i,iomodel,analysis,FSpressureEnum));
 				}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 15656)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 15657)
@@ -139,11 +139,27 @@
 			iomodel->FetchData(&surface,NULL,NULL,SurfaceEnum);
 			iomodel->FetchData(&z,NULL,NULL,MeshZEnum);
-			for(i=0;i<iomodel->numberofvertices;i++){
-				if(iomodel->my_vertices[i]){
-					if (reCast<int,IssmDouble>(vertices_type[i])==NoneApproximationEnum){
-						constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,1,g*rho_ice*(surface[i]-z[i])/FSreconditioning,DiagnosticHorizAnalysisEnum));
-						count++;
-					}
-				}
+			switch(finiteelement){
+				case P1bubbleEnum:
+					for(i=0;i<iomodel->numberofvertices;i++){
+						if(iomodel->my_vertices[i]){
+							if (reCast<int,IssmDouble>(vertices_type[i])==NoneApproximationEnum){
+								constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+i+1,1,g*rho_ice*(surface[i]-z[i])/FSreconditioning,DiagnosticHorizAnalysisEnum));
+								count++;
+							}
+						}
+					}
+					break;
+				case P2Enum:
+					for(i=0;i<iomodel->numberofvertices;i++){
+						if(iomodel->my_vertices[i]){
+							if (reCast<int,IssmDouble>(vertices_type[i])==NoneApproximationEnum){
+								constraints->AddObject(new SpcStatic(count+1,iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+i+1,1,g*rho_ice*(surface[i]-z[i])/FSreconditioning,DiagnosticHorizAnalysisEnum));
+								count++;
+							}
+						}
+					}
+					break;
+				default:
+					_error_("not implemented yet");
 			}
 			iomodel->DeleteData(vertices_type,FlowequationVertexEquationEnum);
