Index: /issm/trunk-jpl/src/c/modules/UpdateVertexPositionsx/UpdateVertexPositionsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/UpdateVertexPositionsx/UpdateVertexPositionsx.cpp	(revision 11241)
+++ /issm/trunk-jpl/src/c/modules/UpdateVertexPositionsx/UpdateVertexPositionsx.cpp	(revision 11242)
@@ -12,22 +12,31 @@
 int UpdateVertexPositionsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters){
 
-	int i;
-	Vertex* vertex=NULL;
-	double* thickness=NULL;
-	double* bed=NULL;
+	int     i;
+	Vec     vz        = NULL;
+	Vertex *vertex    = NULL;
+	double *thickness = NULL;
+	double *bed       = NULL;
 
 	/*get vertex vectors for bed and thickness: */
-	GetVectorFromInputsx( &thickness,elements,nodes, vertices, loads, materials, parameters, ThicknessEnum,VertexEnum);
-	GetVectorFromInputsx( &bed      ,elements,nodes, vertices, loads, materials, parameters, BedEnum,      VertexEnum);
+	GetVectorFromInputsx(&thickness,elements,nodes, vertices, loads, materials, parameters, ThicknessEnum,VertexEnum);
+	GetVectorFromInputsx(&bed      ,elements,nodes, vertices, loads, materials, parameters, BedEnum,      VertexEnum);
+
+	/*Allocate vector*/
+	vz=NewVec(vertices->NumberOfVertices());
 
 	/*Update verices new geometry: */
 	for (i=0;i<vertices->Size();i++){
 		vertex=(Vertex*)vertices->GetObjectByOffset(i);
-		vertex->UpdatePosition(thickness,bed);
+		vertex->UpdatePosition(vz,parameters,thickness,bed);
 	}
+
+	/*Assemble mesh velocity*/
+	VecAssemblyBegin(vz);
+	VecAssemblyEnd(vz);
 
 	/*Free ressources:*/
 	xfree((void**)&thickness);
 	xfree((void**)&bed);
+	VecFree(&vz);
 	return 1;
 }
Index: /issm/trunk-jpl/src/c/objects/Vertex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/objects/Vertex.cpp	(revision 11241)
+++ /issm/trunk-jpl/src/c/objects/Vertex.cpp	(revision 11242)
@@ -71,5 +71,5 @@
 	printf("   z: %g\n",z);
 	printf("   sigma: %g\n",sigma);
-	printf("   connectivity: %g\n",connectivity);
+	printf("   connectivity: %i\n",connectivity);
 	printf("   dof: %i\n",dof);
 	printf("   clone: %i\n",clone);
@@ -273,9 +273,20 @@
 /*}}}*/
 /*FUNCTION Vertex::UpdateVertexPosition {{{1*/
-void  Vertex::UpdatePosition(double* thickness,double* bed){
+void  Vertex::UpdatePosition(Vec vz,Parameters* parameters,double* thickness,double* bed){
+
+	double oldz,newz;
+	double dt,velz;
+
+	/*Get time stepping*/
+	parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 
 	/*sigma remains constant. z=bed+sigma*thickness*/
-	this->z=bed[this->dof]+sigma*thickness[this->dof];
-
-}
-/*}}}*/
+	oldz = this->z;
+	newz = bed[this->dof]+sigma*thickness[this->dof];
+	velz = (newz-oldz)/dt;
+	this->z = newz;
+
+	/*put vz in vector*/
+	VecSetValue(vz,this->Sid(),velz,INSERT_VALUES);
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/objects/Vertex.h
===================================================================
--- /issm/trunk-jpl/src/c/objects/Vertex.h	(revision 11241)
+++ /issm/trunk-jpl/src/c/objects/Vertex.h	(revision 11242)
@@ -63,5 +63,5 @@
 		int   Sid(void); 
 		int   Connectivity(void); 
-		void  UpdatePosition(double* thickness,double* bed);
+		void  UpdatePosition(Vec vz,Parameters* parameters,double* thickness,double* bed);
 		/*}}}*/
 };
