Index: /issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.cpp
===================================================================
--- /issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.cpp	(revision 4110)
+++ /issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.cpp	(revision 4111)
@@ -1,5 +1,5 @@
 /*\file UpdateGeometry.c
- *\brief: update geometry from new thickness computed by prognostic_core.
- */
+*\brief: update geometry after prognostic computation of new thickness
+*/
 
 #include "./UpdateGeometry.h"
@@ -7,70 +7,56 @@
 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
 
-	/*diverse: */
-	int   noerr=1;
+/*diverse: */
+int         noerr             = 1;
 
-	/*input datasets: */
-	DataSet* elements=NULL;
-	DataSet* nodes=NULL;
-	DataSet* vertices=NULL;
-	DataSet* loads=NULL;
-	DataSet* materials=NULL;
-	Parameters* parameters=NULL;
-	Vec      newthickness=NULL;
-	Vec      bed=NULL;
-	Vec      surface=NULL;
+/*input datasets: */
+DataSet    *elements          = NULL;
+DataSet    *nodes             = NULL;
+DataSet    *vertices          = NULL;
+DataSet    *loads             = NULL;
+DataSet    *materials         = NULL;
+Parameters *parameters        = NULL;
 
-	/* output datasets: */
-	Vec outbed=NULL;
-	Vec outsurface=NULL;
-	Vec outthickness=NULL;
+/*Boot module: */
+MODULEBOOT();
 
-	/*Boot module: */
-	MODULEBOOT();
+/*checks on arguments on the matlab side: */
+CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateGeometryUsage);
 
-	/*checks on arguments on the matlab side: */
-	CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateGeometryUsage);
-        
-	/*Input datasets: */
-	FetchData(&elements,ELEMENTS);
-	FetchData(&nodes,NODES);
-	FetchData(&vertices,VERTICES);
-	FetchData(&loads,LOADS);
-	FetchData(&materials,MATERIALS);
-	FetchParams(&parameters,PARAMETERS);
-	
-	FetchData(&newthickness,NEWTHICKNESS);
-	FetchData(&bed,BED);
-	FetchData(&surface,SURFACE);
+/*Input datasets: */
+FetchData(&elements,ELEMENTSIN);
+FetchData(&nodes,NODESIN);
+FetchData(&vertices,VERTICESIN);
+FetchData(&loads,LOADSIN);
+FetchData(&materials,MATERIALSIN);
+FetchParams(&parameters,PARAMETERSIN);
 
-	/*!Generate internal degree of freedom numbers: */
-	UpdateGeometryx(&outthickness,&outbed,&outsurface, elements, nodes,vertices,loads, materials, parameters,newthickness,bed,surface);
+/*call "x" code layer*/
+UpdateGeometryx(elements,nodes,vertices,loads, materials,parameters);
 
-	/*write output data: */
-	WriteData(OUTTHICKNESS,outthickness);
-	WriteData(OUTBED,outbed);
-	WriteData(OUTSURFACE,outsurface);
+/*write output datasets: */
+WriteData(ELEMENTS,elements);
+WriteData(NODES,nodes);
+WriteData(VERTICES,vertices);
+WriteData(LOADS,loads);
+WriteData(MATERIALS,materials);
+WriteParams(PARAMETERS,parameters);
 
-	/*Free ressources: */
-	delete elements;
-	delete nodes;
-	delete vertices;
-	delete loads;
-	delete materials;
-	delete parameters;
-	VecFree(&newthickness);
-	VecFree(&bed);
-	VecFree(&surface);
-	VecFree(&outbed);
-	VecFree(&outthickness);
-	VecFree(&outsurface);
+/*Free ressources: */
+delete elements;
+delete nodes;
+delete vertices;
+delete loads;
+delete materials;
+delete parameters;
 
-	/*end module: */
-	MODULEEND();
+/*end module: */
+MODULEEND();
 }
 
-void UpdateGeometryUsage(void) {
+void UpdateGeometryUsage(void)
+{
 	_printf_("\n");
-	_printf_("   usage: [outthickness,outbed,outsrface] = %s(elements, nodes, materials, parameters,newthickness,bed,surface);\n",__FUNCT__);
+	_printf_("   usage: [elements,nodes,vertices,loads,materials,parameters] = %s(elements,nodes,vertices,loads,materials,parameters);\n",__FUNCT__);
 	_printf_("\n");
 }
Index: /issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.h
===================================================================
--- /issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.h	(revision 4110)
+++ /issm/trunk/src/mex/UpdateGeometry/UpdateGeometry.h	(revision 4111)
@@ -1,7 +1,5 @@
-
 /*
 	UpdateGeometry.h
 */
-
 
 #ifndef _UPDATEGEOMETRY_H
@@ -14,4 +12,5 @@
 #include "../../c/DataSet/DataSet.h"
 #include "../../c/shared/shared.h"
+#include "../../c/EnumDefinitions/EnumDefinitions.h"
 
 #undef __FUNCT__ 
@@ -19,25 +18,24 @@
 
 /* serial input macros: */
-#define ELEMENTS (mxArray*)prhs[0]
-#define NODES (mxArray*)prhs[1]
-#define VERTICES (mxArray*)prhs[2]
-#define LOADS (mxArray*)prhs[3]
-#define MATERIALS (mxArray*)prhs[4]
-#define PARAMETERS (mxArray*)prhs[5]
-#define NEWTHICKNESS (mxArray*)prhs[6]
-#define BED (mxArray*)prhs[7]
-#define SURFACE (mxArray*)prhs[8]
+#define ELEMENTSIN (mxArray*)prhs[0]
+#define NODESIN (mxArray*)prhs[1]
+#define VERTICESIN (mxArray*)prhs[2]
+#define LOADSIN (mxArray*)prhs[3]
+#define MATERIALSIN (mxArray*)prhs[4]
+#define PARAMETERSIN (mxArray*)prhs[5]
 
 /* serial output macros: */
-#define OUTTHICKNESS (mxArray**)&plhs[0]
-#define OUTBED (mxArray**)&plhs[1]
-#define OUTSURFACE (mxArray**)&plhs[2]
+#define ELEMENTS (mxArray**)&plhs[0]
+#define NODES (mxArray**)&plhs[1]
+#define VERTICES (mxArray**)&plhs[2]
+#define LOADS (mxArray**)&plhs[3]
+#define MATERIALS (mxArray**)&plhs[4]
+#define PARAMETERS (mxArray**)&plhs[5]
 
 /* serial arg counts: */
 #undef NLHS
-#define NLHS  3
+#define NLHS  6
 #undef NRHS
-#define NRHS  9
-
+#define NRHS  6
 
 #endif  /* _UPDATEGEOMETRY_H */
Index: /issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.cpp
===================================================================
--- /issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.cpp	(revision 4110)
+++ /issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.cpp	(revision 4111)
@@ -1,5 +1,5 @@
 /*\file UpdateVertexPositions.c
- *\brief: update vertex positions using new geometry defined by new bed and new thickness
- */
+*\brief: update elements properties using an input  vector
+*/
 
 #include "./UpdateVertexPositions.h"
@@ -7,36 +7,50 @@
 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
 
-	/*diverse: */
-	int   noerr=1;
+/*diverse: */
+int         noerr             = 1;
 
-	/*input datasets: */
-	DataSet* vertices=NULL;
-	Vec      thickness=NULL;
-	Vec      bed=NULL;
+/*input datasets: */
+DataSet    *elements          = NULL;
+DataSet    *nodes             = NULL;
+DataSet    *vertices          = NULL;
+DataSet    *loads             = NULL;
+DataSet    *materials         = NULL;
+Parameters *parameters        = NULL;
 
-	/*Boot module: */
-	MODULEBOOT();
+/*Boot module: */
+MODULEBOOT();
 
-	/*checks on arguments on the matlab side: */
-	CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateVertexPositionsUsage);
+/*checks on arguments on the matlab side: */
+CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateVertexPositionsUsage);
 
-	/*Input datasets: */
-	FetchData(&vertices,VERTICES);
-	FetchData(&thickness,THICKNESS);
-	FetchData(&bed,BED);
-	
-	/*!Generate internal degree of freedom numbers: */
-	UpdateVertexPositionsx(vertices,thickness,bed);
+/*Input datasets: */
+FetchData(&elements,ELEMENTSIN);
+FetchData(&nodes,NODESIN);
+FetchData(&vertices,VERTICESIN);
+FetchData(&loads,LOADSIN);
+FetchData(&materials,MATERIALSIN);
+FetchParams(&parameters,PARAMETERSIN);
 
-	/*write output datasets: */
-	WriteData(VERTICESOUT,vertices);
+/*call "x" code layer*/
+UpdateVertexPositionsx(elements,nodes,vertices,loads, materials,parameters);
 
-	/*Free ressources: */
-	delete vertices;
-	VecFree(&thickness);
-	VecFree(&bed);
+/*write output datasets: */
+WriteData(ELEMENTS,elements);
+WriteData(NODES,nodes);
+WriteData(VERTICES,vertices);
+WriteData(LOADS,loads);
+WriteData(MATERIALS,materials);
+WriteParams(PARAMETERS,parameters);
 
-	/*end module: */
-	MODULEEND();
+/*Free ressources: */
+delete elements;
+delete nodes;
+delete vertices;
+delete loads;
+delete materials;
+delete parameters;
+
+/*end module: */
+MODULEEND();
 }
 
@@ -44,5 +58,5 @@
 {
 	_printf_("\n");
-	_printf_("   usage: [vertices] = %s(vertices, thickness, bed);\n",__FUNCT__);
+	_printf_("   usage: [elements,nodes,vertices,loads,materials,parameters] = %s(elements,nodes,vertices,loads,materials,parameters);\n",__FUNCT__);
 	_printf_("\n");
 }
Index: /issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.h
===================================================================
--- /issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.h	(revision 4110)
+++ /issm/trunk/src/mex/UpdateVertexPositions/UpdateVertexPositions.h	(revision 4111)
@@ -1,7 +1,5 @@
-
 /*
 	UpdateVertexPositions.h
 */
-
 
 #ifndef _UPDATEVERTEXPOSITIONS_H
@@ -14,4 +12,5 @@
 #include "../../c/DataSet/DataSet.h"
 #include "../../c/shared/shared.h"
+#include "../../c/EnumDefinitions/EnumDefinitions.h"
 
 #undef __FUNCT__ 
@@ -19,17 +18,24 @@
 
 /* serial input macros: */
-#define VERTICES (mxArray*)prhs[0]
-#define BED (mxArray*)prhs[1]
-#define THICKNESS (mxArray*)prhs[2]
-	
+#define ELEMENTSIN (mxArray*)prhs[0]
+#define NODESIN (mxArray*)prhs[1]
+#define VERTICESIN (mxArray*)prhs[2]
+#define LOADSIN (mxArray*)prhs[3]
+#define MATERIALSIN (mxArray*)prhs[4]
+#define PARAMETERSIN (mxArray*)prhs[5]
+
 /* serial output macros: */
-#define VERTICESOUT (mxArray**)&plhs[0]
+#define ELEMENTS (mxArray**)&plhs[0]
+#define NODES (mxArray**)&plhs[1]
+#define VERTICES (mxArray**)&plhs[2]
+#define LOADS (mxArray**)&plhs[3]
+#define MATERIALS (mxArray**)&plhs[4]
+#define PARAMETERS (mxArray**)&plhs[5]
 
 /* serial arg counts: */
 #undef NLHS
-#define NLHS  1
+#define NLHS  6
 #undef NRHS
-#define NRHS  3
-
+#define NRHS  6
 
 #endif  /* _UPDATEVERTEXPOSITIONS_H */
