Index: /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 15905)
+++ /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 15905)
@@ -0,0 +1,88 @@
+/*\file IssmConfig.c
+ *\brief: get configuration names
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "./IssmConfig.h"
+
+void IssmConfigUsage(void){/*{{{*/
+	_printf0_("\n");
+	_printf0_("   usage: " << __FUNCT__ << "value = IssmConfig('string');\n");
+	_printf0_("\n");
+}/*}}}*/
+WRAPPER(IssmConfig){
+
+	/*input/output*/
+	char       *name  = NULL;
+	IssmDouble  value = 0.;
+
+	/*Boot module: */
+	MODULEBOOT();
+
+	/*checks on arguments: */
+	CHECKARGUMENTS(NLHS,NRHS,&IssmConfigUsage);
+
+	/*Fetch inputs: */
+	FetchData(&name,NAME);
+
+	/*Core*/
+	if(strcmp(name,"_HAVE_MPI_")==0){
+		#ifdef _HAVE_MPI_
+		value = 1.;
+		#else
+		value = 0.;
+		#endif
+	}
+	else if(strcmp(name,"_HAVE_DAKOTA_")==0){
+		#ifdef _HAVE_DAKOTA_
+		value = 1.;
+		#else
+		value = 0.;
+		#endif
+	}
+	else if(strcmp(name,"_HAVE_MUMPS_")==0){
+		#ifdef _HAVE_MUMPS_
+		value = 1.;
+		#else
+		value = 0.;
+		#endif
+	}
+	else if(strcmp(name,"_HAVE_PETSC_")==0){
+		#ifdef _HAVE_PETSC_
+		value = 1.;
+		#else
+		value = 0.;
+		#endif
+	}
+	else if(strcmp(name,"_PETSC_MAJOR_")==0){
+		#ifdef _PETSC_MAJOR_
+		value = IssmDouble(_PETSC_MAJOR_);
+		#else
+		_error_("_PETSC_MAJOR_ not found in config.h");
+		#endif
+	}
+	else if(strcmp(name,"_DAKOTA_VERSION_")==0){
+		#ifdef _DAKOTA_VERSION_
+		value = IssmDouble(_DAKOTA_VERSION_);
+		#else
+		_error_("_DAKOTA_VERSION_ not found in config.h");
+		#endif
+	}
+	else{
+		_error_("variable " << name << " not supported yet");
+	}
+
+	/* output: */
+	WriteData(VALUE,value);
+
+	/*Clean up*/
+	xDelete<char>(name);
+
+	/*end module: */
+	MODULEEND();
+}
Index: /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 15905)
+++ /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 15905)
@@ -0,0 +1,48 @@
+/*!\file:  IssmConfig.h
+ * \brief header file for IssmConfig module.
+ */ 
+
+#ifndef _ISSMCONFIG_H
+#define _ISSMCONFIG_H
+
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+	#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+/*For python modules: needs to come before header files inclusion*/
+#ifdef _HAVE_PYTHON_
+#define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol
+#endif
+
+/*Header files: */
+#include "../bindings.h"
+#include "../../c/main/globals.h"
+#include "../../c/shared/Enum/Enum.h"
+#include "../../c/shared/shared.h"
+
+#undef __FUNCT__ 
+#define __FUNCT__  "IssmConfig"
+
+#ifdef _HAVE_MATLAB_MODULES_
+/* serial input macros: */
+#define NAME (mxArray*)prhs[0]
+/* serial output macros: */
+#define VALUE (mxArray**)&plhs[0]
+#endif
+
+#ifdef _HAVE_PYTHON_MODULES_
+/* serial input macros: */
+#define NAME PyTuple_GetItem(args,0)
+/* serial output macros: */
+#define VALUE output,0
+#endif
+
+/* serial arg counts: */
+#undef NLHS
+#define NLHS  1
+#undef NRHS
+#define NRHS  1
+
+#endif  /* _TEST_H */
Index: /issm/trunk-jpl/src/wrappers/matlab/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 15904)
+++ /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 15905)
@@ -60,4 +60,5 @@
 						 InterpFromMeshToGrid.la\
 						 InterpFromMesh2d.la\
+						 IssmConfig.la\
 						 Ll2xy.la\
 						 NodeConnectivity.la\
@@ -196,4 +197,8 @@
 InterpFromMesh2d_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB)
 
+IssmConfig_la_SOURCES = ../IssmConfig/IssmConfig.cpp\
+										../IssmConfig/IssmConfig.h
+IssmConfig_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB)
+
 KMLFileRead_la_SOURCES = ../KMLFileRead/KMLFileRead.cpp\
 								 ../KMLFileRead/KMLFileRead.h
Index: /issm/trunk-jpl/src/wrappers/python/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 15904)
+++ /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 15905)
@@ -51,4 +51,5 @@
 						InterpFromMeshToMesh2d.la\
 						InterpFromGridToMesh.la\
+						IssmConfig.la\
 						MeshProfileIntersection.la\
 						NodeConnectivity.la\
@@ -143,4 +144,8 @@
 InterpFromGridToMesh_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB)
 
+IssmConfig_la_SOURCES = ../IssmConfig/IssmConfig.cpp\
+											 ../IssmConfig/IssmConfig.h
+IssmConfig_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB)
+
 MeshProfileIntersection_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp\
 										../MeshProfileIntersection/MeshProfileIntersection.h
