Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 873)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 874)
@@ -685,13 +685,17 @@
 
 		if (strcmp(field_name,"velocity")==0){
+			printf("extrude velocity\n");
+
 
 			/* node data: */
-			const int    numdof=2;
-			int          doflist[numdof];
-			int          nodedofs[2];
+			int          doflist1;
+			int          doflist[2];
 			double       fieldnode[2];
 
-
-			GetDofList(&doflist[0],&numberofdofspernode);
+			doflist1=GetDofList1();
+
+			/*get dofs for this base node velocity: we know there are two dofs in field_serial */
+			doflist[0]=2*doflist1;
+			doflist[1]=2*doflist1+1;
 
 			//initilaize node
@@ -701,4 +705,9 @@
 			fieldnode[0]=field_serial[doflist[0]];
 			fieldnode[1]=field_serial[doflist[1]];
+			printf("dof %g \n",doflist[0]);
+			printf("dof %g \n",doflist[1]);
+			printf("fieldnode %g \n",fieldnode[0]);
+			printf("fieldnode %g \n",fieldnode[1]);
+
 
 			//go through all nodes which sit on top of this node, until we reach the surface, 
@@ -706,7 +715,9 @@
 			for(;;){
 
-				node->GetDofList(&nodedofs[0],&numberofdofspernode);
-				VecSetValues(field,1,&nodedofs[0],&fieldnode[0],INSERT_VALUES);
-				VecSetValues(field,1,&nodedofs[1],&fieldnode[1],INSERT_VALUES);
+				doflist1=node->GetDofList1();
+				doflist[0]=2*doflist1;
+				doflist[1]=2*doflist1+1;
+				VecSetValues(field,1,&doflist[0],&fieldnode[0],INSERT_VALUES);
+				VecSetValues(field,1,&doflist[1],&fieldnode[1],INSERT_VALUES);
 
 				if (node->IsOnSurface())break;
