Index: /issm/trunk/src/c/VelocityExtrudex/VelocityExtrudex.cpp
===================================================================
--- /issm/trunk/src/c/VelocityExtrudex/VelocityExtrudex.cpp	(revision 82)
+++ /issm/trunk/src/c/VelocityExtrudex/VelocityExtrudex.cpp	(revision 82)
@@ -0,0 +1,36 @@
+/*!\file VelocityExtrudex
+ * \brief: vertical velocity extrusion
+ */
+
+#include "./VelocityExtrudex.h"
+
+#undef __FUNCT__ 
+#define __FUNCT__ "VelocityExtrudex"
+
+#include "../shared/shared.h"
+#include "../include/macros.h"
+#include "../toolkits/toolkits.h"
+#include "../EnumDefinitions/EnumDefinitions.h"
+
+void VelocityExtrudex( Vec ug, DataSet* elements,DataSet* nodes, DataSet* loads, DataSet* materials){
+
+	double* ug_serial=NULL;
+
+	/*First, get elements and nodes configured: */
+	elements->Configure(elements,loads, nodes, materials);
+	nodes->Configure(elements,loads, nodes, materials);
+
+	/*Serialize velcoity: */
+	VecToMPISerial(&ug_serial,ug);
+
+	/*Extrude velocity vertically: */
+	elements->VelocityExtrude(ug,ug_serial);
+
+	/*Assemble vector: */
+	VecAssemblyBegin(ug);
+	VecAssemblyEnd(ug);
+
+	/*Free ressources:*/
+	xfree((void**)&ug_serial);
+
+}
Index: /issm/trunk/src/c/VelocityExtrudex/VelocityExtrudex.h
===================================================================
--- /issm/trunk/src/c/VelocityExtrudex/VelocityExtrudex.h	(revision 82)
+++ /issm/trunk/src/c/VelocityExtrudex/VelocityExtrudex.h	(revision 82)
@@ -0,0 +1,14 @@
+/*!\file:  VelocityExtrudex.h
+ * \brief header file for velocity extrusion
+ */ 
+
+#ifndef _VELOCITYEXTRUDEX_H
+#define _VELOCITYEXTRUDEX_H
+
+#include "../DataSet/DataSet.h"
+
+/* local prototypes: */
+void VelocityExtrudex( Vec ug, DataSet* elements,DataSet* nodes, DataSet* loads, DataSet* materials);
+
+#endif  /* _VELOCITYEXTRUDEX_H */
+
Index: /issm/trunk/src/mex/VelocityExtrude/VelocityExtrude.cpp
===================================================================
--- /issm/trunk/src/mex/VelocityExtrude/VelocityExtrude.cpp	(revision 82)
+++ /issm/trunk/src/mex/VelocityExtrude/VelocityExtrude.cpp	(revision 82)
@@ -0,0 +1,54 @@
+/*\file VelocityExtrude.c
+ *\brief: extrude velocity vertically
+ */
+
+#include "./VelocityExtrude.h"
+
+void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
+
+	/*diverse: */
+	int   noerr=1;
+
+	/*input datasets: */
+	DataSet* elements=NULL;
+	DataSet* nodes=NULL;
+	DataSet* loads=NULL;
+	DataSet* materials=NULL;
+	Vec      ug=NULL;
+
+	/*Boot module: */
+	MODULEBOOT();
+
+	/*checks on arguments on the matlab side: */
+	CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&VelocityExtrudeUsage);
+
+	/*Input datasets: */
+	FetchData((void**)&elements,NULL,NULL,ELEMENTS,"DataSet",NULL);
+	FetchData((void**)&nodes,NULL,NULL,NODES,"DataSet",NULL);
+	FetchData((void**)&loads,NULL,NULL,LOADS,"DataSet",NULL);
+	FetchData((void**)&materials,NULL,NULL,MATERIALS,"DataSet",NULL);
+	FetchData((void**)&ug,NULL,NULL,UG,"Vector",NULL);
+
+	/*!Call core code: */
+	VelocityExtrudex(ug,elements,nodes,loads,materials);
+
+	/*write output : */
+	WriteData(UGOUT,ug,0,0,"Vector",NULL);
+
+	/*Free ressources: */
+	delete elements;
+	delete nodes;
+	delete loads;
+	delete materials;
+	VecFree(&ug);
+
+	/*end module: */
+	MODULEEND();
+}
+
+void VelocityExtrudeUsage(void)
+{
+	_printf_("\n");
+	_printf_("   usage: [ug] = %s(elements, nodes,loads, materials, ug);\n",__FUNCT__);
+	_printf_("\n");
+}
Index: /issm/trunk/src/mex/VelocityExtrude/VelocityExtrude.h
===================================================================
--- /issm/trunk/src/mex/VelocityExtrude/VelocityExtrude.h	(revision 82)
+++ /issm/trunk/src/mex/VelocityExtrude/VelocityExtrude.h	(revision 82)
@@ -0,0 +1,35 @@
+
+/*
+	VelocityExtrude.h
+*/
+
+
+#ifndef _VELOCITYEXTRUDE_H
+#define _VELOCITYEXTRUDE_H
+
+/* local prototypes: */
+void VelocityExtrudeUsage(void);
+
+#include "../../c/issm.h"
+
+#undef __FUNCT__ 
+#define __FUNCT__  "VelocityExtrude"
+
+/* serial input macros: */
+#define ELEMENTS (mxArray*)prhs[0]
+#define LOADS (mxArray*)prhs[1]
+#define NODES (mxArray*)prhs[2]
+#define MATERIALS (mxArray*)prhs[3]
+#define UG (mxArray*)prhs[4]
+
+/* serial output macros: */
+#define UGOUT (mxArray**)&plhs[0]
+
+/* serial arg counts: */
+#undef NLHS
+#define NLHS  1
+#undef NRHS
+#define NRHS  5
+
+
+#endif  /* _VELOCITYEXTRUDE_H */
