Index: /issm/trunk/src/mex/InputControlConstrain/ControlConstrain.cpp
===================================================================
--- /issm/trunk/src/mex/InputControlConstrain/ControlConstrain.cpp	(revision 4096)
+++ /issm/trunk/src/mex/InputControlConstrain/ControlConstrain.cpp	(revision 4096)
@@ -0,0 +1,52 @@
+/*\file ControlConstrain.c
+ *\brief: constrain updated parameters during inverse control run
+ */
+
+#include "./ControlConstrain.h"
+
+void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
+
+	/*diverse: */
+	int   noerr=1;
+
+	/*input datasets: */
+	double*  p_g=NULL;
+	double   cm_min;
+	double   cm_max;
+	int      control_type=NULL;
+	int      gsize;
+	Parameters* parameters=NULL;
+
+	/*Boot module: */
+	MODULEBOOT();
+
+	/*checks on arguments on the matlab side: */
+	CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&ControlConstrainUsage);
+
+	/*Input datasets: */
+	FetchData(&p_g,&gsize,PG);
+	FetchParams(&parameters,PARAMETERS);
+
+	parameters->FindParam(&cm_min,CmMinEnum);
+	parameters->FindParam(&cm_max,CmMaxEnum);
+	parameters->FindParam(&control_type,ControlTypeEnum);
+
+	/*!Call core code: */
+	ControlConstrainx(p_g,gsize,cm_min,cm_max,control_type);
+
+	/*write output : */
+	WriteData(PGOUT,p_g,gsize);
+
+	/*Free ressources: */
+	delete parameters;
+
+	/*end module: */
+	MODULEEND();
+}
+
+void ControlConstrainUsage(void)
+{
+	_printf_("\n");
+	_printf_("   usage: [p_g] = %s(p_g,parameters);\n",__FUNCT__);
+	_printf_("\n");
+}
Index: /issm/trunk/src/mex/InputControlConstrain/ControlConstrain.h
===================================================================
--- /issm/trunk/src/mex/InputControlConstrain/ControlConstrain.h	(revision 4096)
+++ /issm/trunk/src/mex/InputControlConstrain/ControlConstrain.h	(revision 4096)
@@ -0,0 +1,37 @@
+/*
+	ControlConstrain.h
+*/
+
+
+#ifndef _CONTROLCONSTRAIN_H
+#define _CONTROLCONSTRAIN_H
+
+/* local prototypes: */
+void ControlConstrainUsage(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__  "ControlConstrain"
+
+/* serial input macros: */
+#define PG (mxArray*)prhs[0]
+#define PARAMETERS (mxArray*)prhs[1]
+
+/* serial output macros: */
+#define PGOUT (mxArray**)&plhs[0]
+
+/* serial arg counts: */
+#undef NLHS
+#define NLHS  1
+#undef NRHS
+#define NRHS  2
+
+
+#endif  /* _CONTROLCONSTRAIN_H */
+
+
+
Index: /issm/trunk/src/mex/InputDepthAverage/InputDepthAverage.h
===================================================================
--- /issm/trunk/src/mex/InputDepthAverage/InputDepthAverage.h	(revision 4095)
+++ /issm/trunk/src/mex/InputDepthAverage/InputDepthAverage.h	(revision 4096)
@@ -24,6 +24,6 @@
 #define MATERIALSIN (mxArray*)prhs[4]
 #define PARAMETERSIN (mxArray*)prhs[5]
-#define ENUMTYPE(mxArray*)prhs[6]
-#define AVERAGEENUMTYPE(mxArray*)prhs[7]
+#define ENUMTYPE (mxArray*)prhs[6]
+#define AVERAGEENUMTYPE (mxArray*)prhs[7]
 
 /* serial output macros: */
