Index: /issm/trunk/src/c/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp
===================================================================
--- /issm/trunk/src/c/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp	(revision 3482)
+++ /issm/trunk/src/c/PenaltySystemMatricesx/PenaltySystemMatricesx.cpp	(revision 3483)
@@ -21,4 +21,5 @@
 	/*First, get elements and loads configured: */
 	elements->Configure(elements,loads, nodes,vertices, materials,parameters);
+	nodes->Configure(elements,loads, nodes,vertices, materials,parameters);
 	loads->Configure(elements, loads, nodes,vertices, materials,parameters);
 	parameters->Configure(elements,loads, nodes,vertices, materials,parameters);
Index: /issm/trunk/src/c/SystemMatricesx/SystemMatricesx.cpp
===================================================================
--- /issm/trunk/src/c/SystemMatricesx/SystemMatricesx.cpp	(revision 3482)
+++ /issm/trunk/src/c/SystemMatricesx/SystemMatricesx.cpp	(revision 3483)
@@ -27,4 +27,5 @@
 	/*First, get elements and loads configured: */
 	elements->Configure(elements,loads, nodes,vertices, materials,parameters);
+	nodes->Configure(elements,loads, nodes,vertices, materials,parameters);
 	loads->Configure(elements, loads, nodes,vertices, materials,parameters);
 	parameters->Configure(elements,loads, nodes,vertices, materials,parameters);
Index: /issm/trunk/src/c/objects/DofIndexing.cpp
===================================================================
--- /issm/trunk/src/c/objects/DofIndexing.cpp	(revision 3482)
+++ /issm/trunk/src/c/objects/DofIndexing.cpp	(revision 3483)
@@ -79,9 +79,10 @@
 	printf("\n");
 
-	printf("   doflist:|");
+	printf("   doflist: |");
 	for(i=0;i<numberofdofs;i++){
 		if(i>MAXDOFSPERNODE)break;
-		printf("%i|",doflist[i]);
+		printf(" %i |",doflist[i]);
 	}
+	printf("\n");
 
 }		
Index: /issm/trunk/src/c/objects/ElementProperties.cpp
===================================================================
--- /issm/trunk/src/c/objects/ElementProperties.cpp	(revision 3482)
+++ /issm/trunk/src/c/objects/ElementProperties.cpp	(revision 3483)
@@ -429,11 +429,12 @@
 	int i;
 	
-	if (h)              {printf("   h=[\n"); for(i=0;i<numnodes;i++)printf("%g ",this->h[i]);printf("]\n");}
-	if (s)              {printf("   s=[\n"); for(i=0;i<numnodes;i++)printf("%g ",this->s[i]);printf("]\n");}
-	if (b)              {printf("   b=[\n"); for(i=0;i<numnodes;i++)printf("%g ",this->b[i]);printf("]\n");}
-	if (k)              {printf("   k=[\n"); for(i=0;i<numnodes;i++)printf("%g ",this->k[i]);printf("]\n");}
-	if (melting)        {printf("   melting=[\n"); for(i=0;i<numnodes;i++)printf("%g ",this->melting[i]);printf("]\n");}
-	if (accumulation)   {printf("   accumulation=[\n"); for(i=0;i<numnodes;i++)printf("%g ",this->accumulation[i]);printf("]\n");}
-	if (geothermalflux) {printf("   geothermalflux=[\n"); for(i=0;i<numnodes;i++)printf("%g ",this->geothermalflux[i]);printf("]\n");}
+	printf("Element properties:\n");
+	if (h)              {printf("   h=[ "); for(i=0;i<numnodes;i++)printf("%g ",this->h[i]);printf("]\n");}
+	if (s)              {printf("   s=[ "); for(i=0;i<numnodes;i++)printf("%g ",this->s[i]);printf("]\n");}
+	if (b)              {printf("   b=[ "); for(i=0;i<numnodes;i++)printf("%g ",this->b[i]);printf("]\n");}
+	if (k)              {printf("   k=[ "); for(i=0;i<numnodes;i++)printf("%g ",this->k[i]);printf("]\n");}
+	if (melting)        {printf("   melting=[ "); for(i=0;i<numnodes;i++)printf("%g ",this->melting[i]);printf("]\n");}
+	if (accumulation)   {printf("   accumulation=[ "); for(i=0;i<numnodes;i++)printf("%g ",this->accumulation[i]);printf("]\n");}
+	if (geothermalflux) {printf("   geothermalflux=[ "); for(i=0;i<numnodes;i++)printf("%g ",this->geothermalflux[i]);printf("]\n");}
 	printf("   friction_type: %i\n",friction_type);
 	printf("   p: %g\n",p);
Index: /issm/trunk/src/c/objects/Hook.cpp
===================================================================
--- /issm/trunk/src/c/objects/Hook.cpp	(revision 3482)
+++ /issm/trunk/src/c/objects/Hook.cpp	(revision 3483)
@@ -226,17 +226,19 @@
 	int i;
 	if (num){
-		printf("Hook: \n");
-		printf("  num=%i\n",this->num);
-		printf("  ids:\n    ");
+		printf("   Hook: \n");
+		printf("      num=%i\n",this->num);
+		printf("      ids: ");
 		for (i=0;i<this->num;i++){
 			printf("%i ",this->ids[i]);
 		}
-		printf("\n   offsets:\n   ");
+		printf("\n");
+		printf("      offsets: ");
 		for (i=0;i<this->num;i++){
 			printf("%i ",this->offsets[i]);
 		}
+		printf("\n");
 	}
 	else{
-		printf("Hook: num=0 \n");
+		printf("   Hook: num=0 \n");
 	}
 }
@@ -247,22 +249,27 @@
 	int i;
 	if (num){
-		printf("Hook: \n");
-		printf("  num=%i\n",this->num);
-		printf("  ids:\n    ");
+		printf("   Hook: \n");
+		printf("      num=%i\n",this->num);
+		printf("      ids: ");
 		for (i=0;i<this->num;i++){
 			printf("%i ",this->ids[i]);
 		}
-		printf("\n   offsets:\n   ");
+		printf("\n");
+		printf("      offsets: ");
 		for (i=0;i<this->num;i++){
 			printf("%i ",this->offsets[i]);
 		}
-		printf("\n   objects:\n   ");
-		for (i=0;i<this->num;i++){
-			printf("      object %i\n",i);
-			objects[i]->Echo();
+		printf("\n");
+		if (!objects) printf("      warning: object not hooked yet\n");
+		else{
+			printf("      objects:\n   ");
+			for (i=0;i<this->num;i++){
+				printf("         object %i\n",i);
+				objects[i]->DeepEcho();
+			}
 		}
 	}
 	else{
-		printf("Hook: num=0 \n");
+		printf("   Hook: num=0 \n");
 	}
 }
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 3482)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 3483)
@@ -242,5 +242,7 @@
 	indexing.DeepEcho();
 	properties.DeepEcho();
+	printf("Vertex:\n");
 	hvertex.DeepEcho();
+	printf("Upper node:\n");
 	hupper_node.DeepEcho();
 
Index: /issm/trunk/src/c/objects/NodeProperties.cpp
===================================================================
--- /issm/trunk/src/c/objects/NodeProperties.cpp	(revision 3482)
+++ /issm/trunk/src/c/objects/NodeProperties.cpp	(revision 3483)
@@ -130,5 +130,5 @@
 void  NodeProperties::Echo(void){
 
-	printf("NodeProperties echo: \n");
+	printf("Node properties:\n");
 	printf("   onbed: %i\n",onbed);
 	printf("   onsurface: %i\n",onsurface);
Index: /issm/trunk/src/c/objects/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Tria.cpp	(revision 3482)
+++ /issm/trunk/src/c/objects/Tria.cpp	(revision 3483)
@@ -983,7 +983,5 @@
 /*}}}*/
 /*FUNCTION Tria::CreateKMatrixDiagnosticHoriz {{{1*/
-
 void  Tria::CreateKMatrixDiagnosticHoriz(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
-
 
 	/* local declarations */
@@ -1042,5 +1040,5 @@
 
 	/*First, if we are on water, return empty matrix: */
-	if(this->properties.onwater)return;
+	if(this->properties.onwater) return;
 
 	/*recover pointers: */
@@ -1048,5 +1046,5 @@
 
 	/*recover objects from hooks: */
-	nodes=(Node**)hnodes.deliverp();
+	nodes =(Node**) hnodes.deliverp();
 	matpar=(Matpar*)hmatpar.delivers();
 	matice=(Matice*)hmatice.delivers();
@@ -1064,34 +1062,6 @@
 	for(i=0;i<numdof;i++) for(j=0;j<numdof;j++) Ke_gg[i][j]=0.0;
 
-#ifdef _DEBUGELEMENTS_
-	if(my_rank==RANK && id==ELID){ 
-		printf("El id %i Rank %i TriaElemnet input list before gaussian loop: \n",ELID,RANK); 
-		printf("   rho_ice: %g \n",matpar->GetRhoIce());
-		printf("   gravity: %g \n",matpar->GetG())
-		  printf("   rho_water: %g \n",matpar->GetRhoWater());
-		printf("   Velocity: \n");
-		for (i=0;i<numgrids;i++){
-			printf("      node %i  [%g,%g]\n",i,vxvy_list[i][0],vxvy_list[i][1]);
-		}
-		printf("   flow_law_parameter [%g ]\n",matice->GetB());
-		printf("   drag [%g %g %g ]\n",k[0],k[1],k[2]);
-		printf("   thickness [%g %g %g]\n",h[0],h[1],h[2]);
-		printf("   surface [%g %g %g ]\n",s[0],s[1],s[2]);
-		printf("   bed [%g %g %g]\n",b[0],b[1],b[2]);
-	}
-#endif
-
-
 	/* Get gaussian points and weights (make this a statically initialized list of points? fstd): */
 	GaussTria( &num_gauss, &first_gauss_area_coord, &second_gauss_area_coord, &third_gauss_area_coord, &gauss_weights, 2);
-
-#ifdef _DEBUGELEMENTS_
-	if(my_rank==RANK && id==ELID){ 
-		printf("   gaussian points: \n");
-		for(i=0;i<num_gauss;i++){
-			printf("    %g %g %g : %g\n",first_gauss_area_coord[i],second_gauss_area_coord[i],third_gauss_area_coord[i],gauss_weights[i]);
-		}
-	}
-#endif
 
 	/* Start  looping on the number of gaussian points: */
@@ -1127,21 +1097,4 @@
 		}
 
-#ifdef _DEBUGELEMENTS_
-		if(my_rank==RANK && id==ELID){ 
-			printf("   gaussian loop %i\n",ig);
-			printf("      thickness %g\n",thickness);
-			printf("      slope [%g,%g]\n",slope[0],slope[1]);
-			printf("      alpha2_list [%g,%g,%g]\n",alpha2_list[0],alpha2_list[1],alpha2_list[2]);
-			printf("      epsilon [%g,%g,%g]\n",epsilon[0],epsilon[1],epsilon[2]);
-			printf("      Matice: \n");
-			matice->Echo();
-			printf("      Matpar: \n");
-			matpar->Echo();
-			printf("\n    viscosity: %g \n",viscosity);
-			printf("      jacobian: %g \n",Jdet);
-			printf("      gauss_weight: %g \n",gauss_weight);
-		}
-#endif
-
 		/*Get B and Bprime matrices: */
 		GetB(&B[0][0], &xyz_list[0][0], gauss_l1l2l3);
@@ -1157,27 +1110,8 @@
 		for( i=0; i<numdof; i++) for(j=0;j<numdof;j++) Ke_gg[i][j]+=Ke_gg_gaussian[i][j];
 
-#ifdef _DEBUGELEMENTS_
-		if(my_rank==RANK && id==ELID){ 
-			printf("      B:\n");
-			for(i=0;i<3;i++){
-				for(j=0;j<numdof;j++){
-					printf("%g ",B[i][j]);
-				}
-				printf("\n");
-			}
-			printf("      Bprime:\n");
-			for(i=0;i<3;i++){
-				for(j=0;j<numdof;j++){
-					printf("%g ",Bprime[i][j]);
-				}
-				printf("\n");
-			}
-		}
-#endif
 	} // for (ig=0; ig<num_gauss; ig++)
 
 	/*Add Ke_gg to global matrix Kgg: */
 	MatSetValues(Kgg,numdof,doflist,numdof,doflist,(const double*)Ke_gg,ADD_VALUES);
-
 
 	/*Do not forget to include friction: */
@@ -1185,21 +1119,4 @@
 		CreateKMatrixDiagnosticHorizFriction(Kgg,inputs,analysis_type,sub_analysis_type);
 	}
-
-#ifdef _DEBUGELEMENTS_
-	if(my_rank==RANK && id==ELID){ 
-		printf("      Ke_gg erms:\n");
-		for( i=0; i<numdof; i++){
-			for (j=0;j<numdof;j++){
-				printf("%g ",Ke_gg[i][j]);
-			}
-			printf("\n");
-		}
-		printf("      Ke_gg row_indices:\n");
-		for( i=0; i<numdof; i++){
-			printf("%i ",doflist[i]);
-		}
-
-	}
-#endif
 
 cleanup_and_return: 
