Index: /issm/trunk/src/mex/InputUpdateFromVector/UpdateInputsFromVector.cpp
===================================================================
--- /issm/trunk/src/mex/InputUpdateFromVector/UpdateInputsFromVector.cpp	(revision 4109)
+++ /issm/trunk/src/mex/InputUpdateFromVector/UpdateInputsFromVector.cpp	(revision 4109)
@@ -0,0 +1,75 @@
+/*\file UpdateInputsFromVector.c
+*\brief: update elements properties using an input  vector
+*/
+
+#include "./UpdateInputsFromVector.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* vertices=NULL;
+DataSet* loads=NULL;
+DataSet* materials=NULL;
+Parameters* parameters=NULL;
+double*  vector=NULL;
+int      dummy;
+int      NameEnum;
+int      TypeEnum;
+
+/*Boot module: */
+MODULEBOOT();
+
+/*checks on arguments on the matlab side: */
+CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&UpdateInputsFromVectorUsage);
+
+/*Input datasets: */
+FetchData(&elements,ELEMENTSIN);
+FetchData(&nodes,NODESIN);
+FetchData(&vertices,VERTICESIN);
+FetchData(&loads,LOADSIN);
+FetchData(&materials,MATERIALSIN);
+FetchParams(&parameters,PARAMETERSIN);
+FetchData(&vector,&dummy,VECTOR);
+FetchData(&NameEnum,NAME);
+FetchData(&TypeEnum,TYPE);
+
+/*Check that type is one of Constant, Vertex or Element: */
+if ((TypeEnum!=ConstantEnum) && (TypeEnum!=VertexEnum) && (TypeEnum!=ElementEnum)){
+	ISSMERROR("%s%s%s\n","Type of input can only be a constant, a vertex or an element vector.  Right now, you input a ",EnumAsString(TypeEnum)," type data for input update");
+}
+
+/*!Generate internal degree of freedom numbers: */
+UpdateInputsFromVectorx(elements,nodes,vertices,loads, materials,parameters,vector,NameEnum,TypeEnum);
+
+/*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;
+xfree((void**)&vector);
+
+/*end module: */
+MODULEEND();
+}
+
+void UpdateInputsFromVectorUsage(void)
+{
+	_printf_("\n");
+	_printf_("   usage: [elements,nodes,vertices,loads,materials,parameters] = %s(elements,nodes,vertices,loads,materials,parameters,vector,name_enum,type_enum);\n",__FUNCT__);
+	_printf_("\n");
+}
Index: /issm/trunk/src/mex/InputUpdateFromVector/UpdateInputsFromVector.h
===================================================================
--- /issm/trunk/src/mex/InputUpdateFromVector/UpdateInputsFromVector.h	(revision 4109)
+++ /issm/trunk/src/mex/InputUpdateFromVector/UpdateInputsFromVector.h	(revision 4109)
@@ -0,0 +1,48 @@
+
+/*
+	UpdateInputsFromVector.h
+*/
+
+
+#ifndef _UPDATEINPUTSFROMVECTOR_H
+#define _UPDATEINPUTSFROMVECTOR_H
+
+/* local prototypes: */
+void UpdateInputsFromVectorUsage(void);
+
+#include "../../c/modules/modules.h"
+#include "../../c/DataSet/DataSet.h"
+#include "../../c/shared/shared.h"
+#include "../../c/EnumDefinitions/EnumDefinitions.h"
+
+#undef __FUNCT__ 
+#define __FUNCT__  "UpdateInputsFromVector"
+
+/* serial input macros: */
+#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]
+#define VECTOR (mxArray*)prhs[6]
+#define NAME (mxArray*)prhs[7]
+#define TYPE (mxArray*)prhs[8]
+
+/* serial output macros: */
+#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  6
+#undef NRHS
+#define NRHS  9
+
+
+#endif  /* _UPDATEINPUTSFROMVECTOR_H */
+
