Index: /issm/trunk-jpl/src/m/modules/Chaco.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Chaco.m	(revision 20874)
+++ /issm/trunk-jpl/src/m/modules/Chaco.m	(revision 20875)
@@ -9,5 +9,5 @@
 %   ewgts:		weights for all edges
 %   x,y,z:		coordinates for inertial method
-%   options:	architecture and partitioning options
+%   options:		architecture and partitioning options
 %   nparts:		number of parts options
 %   goal:		desired set sizes
Index: /issm/trunk-jpl/src/m/modules/ContourToMesh.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/ContourToMesh.m	(revision 20874)
+++ /issm/trunk-jpl/src/m/modules/ContourToMesh.m	(revision 20875)
@@ -2,5 +2,5 @@
 %CONTOURTOMESH - Flag the elements or nodes inside a contour
 %
-%	 Usage:
+%   Usage:
 %      [in_nod,in_elem]=ContourToMesh(index,x,y,contourname,interptype,edgevalue);
 %	
Index: /issm/trunk-jpl/src/m/modules/ElementConnectivity.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/ElementConnectivity.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/ElementConnectivity.m	(revision 20875)
@@ -0,0 +1,14 @@
+function elementconnectivity = ElementConnectivity(elements,nodeconnectivity);
+%ELEMENTCONNECTIVITY - Build element connectivity using node connectivity and elements
+%
+%   Usage:
+%      elementconnectivity = ElementConnectivity(elements,nodeconnectivity);
+
+% Check usage
+if nargin~=2
+	help ElementConnectivity
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+elementconnectivity = ElementConnectivity_matlab(elements,nodeconnectivity);
Index: /issm/trunk-jpl/src/m/modules/ElementConnectivity.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/ElementConnectivity.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/ElementConnectivity.py	(revision 20875)
@@ -0,0 +1,14 @@
+from ElementConnectivity_python import ElementConnectivity_python
+
+def ElementConnectivity(elements,nodeconnectivity):
+	"""
+	ELEMENTCONNECTIVITY - Build element connectivity using node connectivity and elements
+
+		Usage:
+			elementconnectivity = ElementConnectivity(elements,nodeconnectivity);
+	"""
+	#Call mex module
+	elementconnectivity = ElementConnectivity_python(elements,nodeconnectivity);
+	
+	#Return
+	return elementconnectivity
Index: /issm/trunk-jpl/src/m/modules/EnumToString.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/EnumToString.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/EnumToString.m	(revision 20875)
@@ -0,0 +1,14 @@
+function enumstring = EnumToString(enum);
+%ENUMTOSTRING - Convert an enum (int) to a string
+%
+%   Usage:
+%      enumstring = EnumToString(enum);
+
+% Check usage
+if nargin~=1
+	help EnumToString
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+enumstring = EnumToString_matlab(enum);
Index: /issm/trunk-jpl/src/m/modules/EnumToString.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/EnumToString.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/EnumToString.py	(revision 20875)
@@ -0,0 +1,15 @@
+from EnumToString_python import EnumToString_python
+
+def EnumToString(enum):
+	"""
+	ENUMTOSTRING - Convert an enum (int) to a string
+
+		Usage:
+			enumstring = EnumToString(enum);
+	"""
+
+	# Call mex module
+	enumstring = EnumToString_python(enum);
+
+	# Return
+	return enumstring
Index: /issm/trunk-jpl/src/m/modules/Exp2Kml.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Exp2Kml.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/Exp2Kml.m	(revision 20875)
@@ -0,0 +1,39 @@
+function [ret] = Exp2Kml(varargin);
+%EXP2KML - Converts a file from exp to kml format
+%
+%   Usage:
+%      [ret]=Exp2Kml(filexp,filkml,sgn,'param nam',param,...);
+%
+%   filexp:		file name of the exp file to be read (string)
+%   filkml:		file name of the kml file to be written (string)
+%   sgn:		sign for hemisphere (double, +1 (north) or -1 (south))
+%
+%   central_meridian:	central meridian (double, optional, but must specify with sp)
+%   standard_parallel:	standard parallel (double, optional, but must specify with cm)
+%   holes:		flag for treatment of multiple profiles (string, optional, 'yes' for holes)
+%
+%   ret:		return code (non-zero for warning)
+%
+%   Examples:
+%      [ret]=Exp2Kml('file.exp','file.kml', 1);
+%      [ret]=Exp2Kml('file.exp','file.kml', 1,'central_meridian',45,'standard_parallel',70,'holes','yes');
+%      [ret]=Exp2Kml('file.exp','file.kml',-1,'central_meridian',0, 'standard_parallel',71,'holes','yes');
+
+% Check usage
+if nargin~=3 && nargin~=7 && nargin~=9
+	help Exp2Kml
+	error('Wrong usage (see above)');
+end
+
+% Call mex module depending on number of arguments
+switch nargin
+	case 3
+		[ret]=Exp2Kml_matlab(varargin{1},varargin{2},varargin{3});
+	case 7
+		[ret]=Exp2Kml_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7});
+	case 9
+		[ret]=Exp2Kml_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7},varargin{8},varargin{9});
+	otherwise
+		error(['Exp2Kml not supported yet']);
+end
+
Index: /issm/trunk-jpl/src/m/modules/ExpSimplify.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/ExpSimplify.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/ExpSimplify.m	(revision 20875)
@@ -0,0 +1,30 @@
+function ExpSimplify(varargin);
+%EXPSIMPLIFY - Simplify an Exp contour
+%
+%   Usage:
+%      ExpSimplify(expfile,tol);
+%
+%   expfile:	name of the expfile
+%   tol:	tolerance (maximal euclidean distance allowed between the new line and a vertex)
+%   min:	minimum number of vertices to save contours in an exp file (default is 3) [OPTIONAL]
+%
+%   Example:
+%      ExpSimplify('file.exp',100);
+%      ExpSimplify('file.exp',100,'min','4');
+
+% Check usage
+if nargin~=2 && nargin~=4
+	help ExpSimplify
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+switch nargin
+	case 2
+		ExpSimplify_matlab(varargin{1},varargin{2});
+	case 4
+		ExpSimplify_matlab(varargin{1},varargin{2},varargin{3},varargin{4});
+	otherwise
+		error('Exp2Kml not supported yet');
+end
+
Index: /issm/trunk-jpl/src/m/modules/ExpToLevelSet.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/ExpToLevelSet.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/ExpToLevelSet.m	(revision 20875)
@@ -0,0 +1,21 @@
+function distance = ExpToLevelSet(x,y,contourname);
+%EXPTOLEVELSET - Determine levelset distance between a contour and a cloud of points
+%
+%   Usage:
+%      distance=ExpToLevelSet(x,y,contourname);
+%
+%   x,y:	cloud point
+%   contourname:	name of .exp file containing the contours
+%   distance:	distance vector representing a levelset where the 0 level is one of the contour segments
+%
+%   Example:
+%      distance=ExpToLevelSet(md.mesh.x,md.mesh.y,'Contour.exp');
+
+% Check usage
+if nargin~=3
+	help ExpToLevelSet
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+distance = ExpToLevelSet_matlab(x,y,contourname);
Index: /issm/trunk-jpl/src/m/modules/InterpFromGridToMesh.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromGridToMesh.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromGridToMesh.m	(revision 20875)
@@ -0,0 +1,23 @@
+function data_mesh = InterpFromGridToMesh(x,y,data,x_mesh,y_mesh,default_value);
+%INTERPFROMGRIDTOMESH - Interpolation from a grid onto a list of points
+%
+%   Usage:
+%      data_mesh=InterpFromGridToMesh(x,y,data,x_mesh,y_mesh,default_value);
+%
+%   data:		matrix holding the data to be interpolated onto the mesh
+%   x,y:		coordinates of matrix data (x and y must be in increasing order)
+%   x_mesh,y_mesh:	coordinates of the points onto which we interpolate
+%   default_value:	vector of mesh interpolated data
+%
+%	 Example:
+%      load('velocities.mat');
+%      md.inversion.vx_obs=InterpFromGridToMesh(x_n,y_m,vx,md.mesh.x,md.mesh.y,0);
+
+% Check usage
+if nargin~=6
+	help InterpFromGridToMesh
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+data_mesh=InterpFromGridToMesh_matlab(x,y,data,x_mesh,y_mesh,default_value);
Index: /issm/trunk-jpl/src/m/modules/InterpFromGridToMesh.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromGridToMesh.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromGridToMesh.py	(revision 20875)
@@ -0,0 +1,22 @@
+from InterpFromGridToMesh_python import InterpFromGridToMesh_python
+
+def InterpFromGridToMesh(x,y,data,x_mesh,y_mesh,default_value):
+	"""
+	INTERPFROMGRIDTOMESH - Interpolation from a grid onto a list of points
+
+   Usage:
+      data_mesh=InterpFromGridToMesh(x,y,data,x_mesh,y_mesh,default_value);
+
+   data:		matrix holding the data to be interpolated onto the mesh
+   x,y:		coordinates of matrix data (x and y must be in increasing order)
+   x_mesh,y_mesh:	coordinates of the points onto which we interpolate
+	default_value:	vector of mesh interpolated data
+
+	Example:
+		load('velocities.mat');
+		md.inversion.vx_obs=InterpFromGridToMesh(x_n,y_m,vx,md.mesh.x,md.mesh.y,0);
+	"""
+	# Call mex module
+	data_mesh=InterpFromGridToMesh_python(x,y,data,x_mesh,y_mesh,default_value);
+	# Return
+	return data_mesh
Index: /issm/trunk-jpl/src/m/modules/InterpFromMesh2d.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromMesh2d.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromMesh2d.m	(revision 20875)
@@ -0,0 +1,38 @@
+function data_prime=InterpFromMesh2d(varargin);
+%INTERPFROMMESH2D
+%
+%   Usage:
+%      data_prime=InterpFromMesh2d(index,x,y,data,x_prime,y_prime);
+%      or data_prime=InterpFromMesh2d(index,x,y,data,x_prime,y_prime,default_value);
+%      or data_prime=InterpFromMesh2d(index,x,y,data,x_prime,y_prime,default_value,contourname);
+%
+%   x,y:	coordinates of the nodes where data is defined
+%   index:	index of the mesh where data is defined
+%   data:	vector holding the data to be interpolated onto the points
+%   x_prime,y_prime:	coordinates of the mesh vertices onto which we interpolate
+%   default_value:	a scalar or vector of size length(x_prime)
+%   contourname:	linear interpolation will happen on all x_interp,y_interp inside the contour,
+%      default value will be adopted on the rest of the mesh.
+%
+%   data_prime:	vector of prime interpolated data
+
+% Check usage
+if nargin~=6 && nargin~=7 && nargin~=8
+	help InterpFromMesh2d
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+switch nargin
+	case 6
+		data_prime=InterpFromMesh2d_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6});
+	case 7
+		data_prime=InterpFromMesh2d_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7});
+	case 8 
+		data_prime=InterpFromMesh2d_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7},varargin{8});
+	otherwise
+		error('InterpFromMesh2d not supported');
+end
+
+
+
Index: /issm/trunk-jpl/src/m/modules/InterpFromMeshToGrid.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromMeshToGrid.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromMeshToGrid.m	(revision 20875)
@@ -0,0 +1,20 @@
+function [x_m,y_m,griddata] = InterpFromMeshToGrid(index,x,y,data,xmin,ymax,xposting,yposting,nlines,ncols,default_value);
+%INTERPFROMMESHTOGRID - Interpolation of a data defined on a mesh onto a grid
+%
+%   This function is a multi-threaded mex file that interpolates a field defined on a triangular
+%   mesh onto a regular grid.
+%
+%   index,x,y:	delaunay triangulation defining the mesh
+%   meshdata:	vertex values of data to be interpolated
+%
+%   xmin,ymax,posting,nlines,ncols: parameters that define the grid
+%   default_value:	value of points located out of the mesh
+
+% Check usage
+if nargin~=11
+	help InterpFromMeshToGrid
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[x_m,y_m,griddata] = InterpFromMeshToGrid_matlab(index,x,y,data,xmin,ymax,xposting,yposting,nlines,ncols,default_value);
Index: /issm/trunk-jpl/src/m/modules/InterpFromMeshToGrid.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromMeshToGrid.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromMeshToGrid.py	(revision 20875)
@@ -0,0 +1,19 @@
+from InterpFromMeshToGrid_python import InterpFromMeshToGrid_python
+
+def InterpFromMeshToGrid(index,x,y,data,xmin,ymax,xposting,yposting,nlines,ncols,default_value):
+	"""
+	INTERPFROMMESHTOGRID - Interpolation of a data defined on a mesh onto a grid
+
+		This function is a multi-threaded mex file that interpolates a field defined
+		on a triangular mesh onto a regular grid
+
+		index,x,y:	delaunay triangulation defining the mesh
+		meshdata:	vertex values of data to be interpolated
+
+		xmin,ymax,posting,nlines,ncols:	parameters that define the grid
+		default_value:	value of points located out of the mesh
+	"""
+	# Call mex module
+	[x_m,y_m,griddata]=InterpFromMeshToGrid_python(index,x,y,data,xmin,ymax,xposting,yposting,nlines,ncols,default_value);
+	# Return
+	return [x_m,y_m,griddate];
Index: /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh2d.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh2d.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh2d.m	(revision 20875)
@@ -0,0 +1,28 @@
+function data_interp = InterpFromMeshToMesh2d(varargin);
+%INTERPFROMMESHTOMESH2D - Interpolation from a 2d triangular mesh onto a list of points
+%
+%   Usage:
+%      data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp);
+%      or data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp,OPTIONS);
+%
+%   index:	index of the mesh where data is defined
+%   x,y:	coordinates of the nodes where data is defined
+%   data:	matrix holding the data to be interpolated onto the mesh (one column per field)
+%   x_interp,y_interp:	coordinates of the points onto which we interpolate
+%   data_interp:	vector of mesh interpolated data
+%   Available options:
+%      default:	default value if point is outsite of triangulation (instead of linear interpolation)
+%
+%   Example:
+%      load('temperature.mat');
+%      md.initialization.temperature=InterpFromMeshToMesh2d(index,x,y,temperature,md.mesh.x,md.mesh.y);
+%      md.initialization.temperature=InterpFromMeshToMesh2d(index,x,y,temperature,md.mesh.x,md.mesh.y,'default',253);
+
+% Check usage
+if nargin~=6 && nargin~=8
+	help InterpFromMeshToMesh2d
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+data_interp=InterpFromMeshToMesh2d_matlab(varargin{:});
Index: /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh2d.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh2d.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh2d.py	(revision 20875)
@@ -0,0 +1,27 @@
+import InterpFromMeshToMesh2d_python from InterpFromMeshToMesh2d_python
+
+def InterpFromMeshToMesh2d(*args):
+	"""
+	INTERPFROMMESHTOMESH2D - Interpolation from a 2d triangular mesh onto a list of points
+
+		Usage:
+			data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp);
+			or data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp,OPTIONS);
+		
+		index:	index of the mesh where data is defined
+		x,y:	coordinates of the nodes where data is defined
+		data:	matrix holding the data to be interpolated onto the mesh (one column per field)
+		x_interp,y_interp:	coordinates of the points onto which we interpolate
+		data_interp:	vector of mesh interpolated data
+		Available options:
+			default:	default value if point is outsite of triangulation (instead of linear interpolation)
+
+	Example:
+		load('temperature.mat');
+		md.initialization.temperature=InterpFromMeshToMesh2d(index,x,y,temperature,md.mesh.x,md.mesh.y);
+		md.initialization.temperature=InterpFromMeshToMesh2d(index,x,y,temperature,md.mesh.x,md.mesh.y,'default',253);
+	"""
+	# Call mex module
+	data_interp = InterpFromMeshToMesh2d_python(*args);
+	# Return
+	return data_interp
Index: /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh3d.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh3d.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh3d.m	(revision 20875)
@@ -0,0 +1,24 @@
+function data_prime = InterpFromMeshToMesh3d(index,x,y,z,data,x_prime,y_prime,z_prime,default_value);
+%INTERPFROMMESHTOMESH3D - Interpolation from a 3d hexahedron mesh onto a list of points
+%
+%   Usage:
+%      index:	index of the mesh where data is defined
+%      x,y,z:	coordinates of the nodes where data is defined
+%      data:	matrix holding the data to be interpolated onto the mesh
+%      x_prime,y_prime,z_prime:	coordinates of the points onto which we interpolate
+%      default_value:	default value if no data is found (holes)
+%      data_prime:	vector of mesh interpolated data
+%
+%   Example:
+%      load('temperature.mat');
+%      md.initialization.temperature=InterpFromMeshToMesh3d(index,x,y,z,temperature,md.mesh.x,md.mesh.y,md.mesh.z,253);
+
+% Check usage
+if nargin~=9
+	help InterpFromMeshToMesh3d
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+data_prime=InterpFromMeshToMesh3d_matlab(index,x,y,z,data,x_prime,y_prime,z_prime,default_value);
+
Index: /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh3d.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh3d.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/InterpFromMeshToMesh3d.py	(revision 20875)
@@ -0,0 +1,22 @@
+from InterpFromMeshToMesh3d_python import InterpFromMeshToMesh3d_python
+
+def InterpFromMeshToMesh3d(index,x,y,z,data,x_prime,y_prime,z_prime,default_value):
+	"""
+	INTERPFROMMESHTOMESH3D - Interpolation from a 3d hexahedron mesh onto a list of points
+
+   Usage:
+      index:	index of the mesh where data is defined
+      x,y,z:	coordinates of the nodes where data is defined
+      data:	matrix holding the data to be interpolated onto the mesh
+      x_prime,y_prime,z_prime:	coordinates of the points onto which we interpolate
+      default_value:	default value if no data is found (holes)
+      data_prime:	vector of mesh interpolated data
+
+   Example:
+      load('temperature.mat');
+      md.initialization.temperature=InterpFromMeshToMesh3d(index,x,y,z,temperature,md.mesh.x,md.mesh.y,md.mesh.z,253);
+	"""
+# Call mex module
+data_prime = InterpFromMeshToMesh3d_python(index,x,y,z,data,x_prime,y_prime,z_prime,default_value);
+# Return
+return data_prime
Index: /issm/trunk-jpl/src/m/modules/IssmConfig.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/IssmConfig.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/IssmConfig.m	(revision 20875)
@@ -0,0 +1,14 @@
+function value = IssmConfig(string);
+%ISSMCONFIG
+%
+%   Usage:
+%      value = IssmConfig('string');
+
+% Check usage
+if nargin~=1
+	help IssmConfig
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+value = IssmConfig_matlab(string);
Index: /issm/trunk-jpl/src/m/modules/IssmConfig.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/IssmConfig.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/IssmConfig.py	(revision 20875)
@@ -0,0 +1,15 @@
+from IssmConfig_python import IssmConfig_python
+
+def IssmConfig(string):
+	"""
+	ISSMCONFIG
+
+		Usage:
+			value = IssmConfig('string');
+	"""
+
+	# Call mex module
+	value = IssmConfig_python(string);
+	# Return
+	return value;
+
Index: /issm/trunk-jpl/src/m/modules/KMLFileRead.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/KMLFileRead.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/KMLFileRead.m	(revision 20875)
@@ -0,0 +1,39 @@
+function [ierror] = KMLFileRead(varargin);
+%KMLFILEREAD - KML File Reader module
+%
+%   This module reads a KML File.
+%
+%   Usage:
+%      [ierror]=KMLFileRead(kmlfile,'param name',param,...);
+%
+%   kmlfile:	file name of kml file to be read (char)
+%   echo:	echo command (char, optional, 'off'/'on')
+%   deepecho:	deep echo command (char, optional, 'off'/'stdout'/kmlfile
+%   write:	write command (char, optiona, 'off'/'stdout'/kmlfile
+%
+%   ierror:	return code (non-zero for error)
+%
+%   Examples:
+%      [ierror]=KMLFileRead('file.kml','deepecho','on');
+%      [ierror]=KMLFileRead('filin.kml','echo','on','write','filout.kml');
+
+% Check usage
+if nargin~=1 && nargin~=3 && nargin~=5 && nargin~=7
+	help KMLFileRead
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+switch nargin
+	case 1
+		[ierror]=KMLFileRead_matlab(varargin{1});
+	case 3
+		[ierror]=KMLFileRead_matlab(varargin{1},varargin{2},varargin{3});
+	case 5
+		[ierror]=KMLFileRead_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5});
+	case 7
+		[ierror]=KMLFileRead_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7});
+	otherwise
+		[ierror]=['Error using KMLFileRead'];
+end
+
Index: /issm/trunk-jpl/src/m/modules/KMLMeshWrite.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/KMLMeshWrite.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/KMLMeshWrite.m	(revision 20875)
@@ -0,0 +1,32 @@
+function ierror = KMLMeshWrite(name,notes,elem,nodecon,lat,long,part,data,cmap,kmlfile);
+%	KMLMESHWRITE - KML mesh writer module:
+%	
+%	   This module writes the mesh of a model as KML polygons into the specified KML file.
+%	
+%	   Usage:
+%	      ierror=KMLMeshWrite(name,notes,elem,nodecon,lat,long,part,data,cmap,kmlfile);
+%	
+%	      name:       model name (string, may be empty)
+%	      notes:      model notes (string or cell array of strings, may be empty)
+%	      elem:       elements (double array)
+%	      nodecon:    nodal connectivity array (double array, may be empty)
+%	      lat:        nodal latititudes (double vector)
+%	      long:       nodal longitudes (double vector)
+%	      part:       nodal partitions (double vector, may be empty)
+%	      data:       nodal or element data (double vector, may be empty)
+%	      cmap:       color map (double nx3 array, may be empty)
+%	      kmlfile:    KML file name (string)
+%	
+%	      ierror:     error flag (double, non-zero for error)
+%	
+%	   Example:
+%	      KMLMeshWrite(md.name,md.notes,md.elements,md.nodeconnectivity,md.lat,md.long,md.part,md.fm_criterion,options.cmap,filekml);
+
+% Check usage
+if nargin~=10
+	help KMLMeshWrite
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+ierror = KMLMeshWrite_matlab(name,notes,elem,nodecon,lat,long,part,data,cmap,kmlfile);
Index: /issm/trunk-jpl/src/m/modules/KMLOverlay.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/KMLOverlay.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/KMLOverlay.m	(revision 20875)
@@ -0,0 +1,35 @@
+function ierror = KMLOverlay(varargin);
+%	KMLOverlay - KML file overlay module:
+%	
+%	   This module reads a list of image files and writes a KML or KMZ overlay file.
+%	
+%	   Usage:
+%	      ierror=KMLOverlay(kmlfile,'param name',param,...);
+%	
+%	      kmlfile:     KML or KMZ file name (string)
+%	
+%	      lataxis:     latitude axis (double vector [south north], required)
+%	      longaxis:    longitude axis (double vector [west east], required)
+%	      images:      relative or http image file names (string or array of strings or cell array of strings, required)
+%	      zip:         flag to zip the doc.kml and image files into kmzfile (double, non-zero for kmz)
+%	
+%	      ierror:     error flag (double, non-zero for error)
+%	
+%	   Example:
+%	      KMLOverlay(kmlfile,'lataxis',[south north],'longaxis',[west east],'images',{'file1.png','http://issm/file2.png'},'zip',1);
+
+% Check usage
+if nargin~=7 && nargin~=9
+	help KMLOverlay
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+switch nargin
+	case 7
+		ierror=KMLOverlay_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7});
+	case 9
+		ierror=KMLOverlay_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7},varargin{8},varargin{9});
+	otherwise
+		ierror=-1; % ERROR (non-zero)
+end
Index: /issm/trunk-jpl/src/m/modules/Kml2Exp.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Kml2Exp.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/Kml2Exp.m	(revision 20875)
@@ -0,0 +1,38 @@
+function [ret] = Kml2Exp(varargin);
+%	KML2EXP - kml to exp file conversion module:
+%	
+%	   This module converts a file from kml to exp format.
+%	
+%	   Usage:
+%	      [ret]=Kml2Exp(filexp,filkml,sgn,'param name',param,...);
+%	
+%	      filkml:      file name of kml file to be read (char)
+%	      filexp:      file name of exp file to be written (char)
+%	      sgn:         sign for hemisphere (double, +1 (north) or -1 (south))
+%	
+%	      central_meridian:     central meridian (double, optional, but must specify with sp)
+%	      standard_parallel:    standard parallel (double, optional, but must specify with cm)
+%	
+%	      ret:         return code (non-zero for warning)
+%	
+%	   Examples:
+%	      [ret]=Kml2Exp('file.kml','file.exp', 1);
+%	      [ret]=Kml2Exp('file.kml','file.exp', 1,'central_meridian',45,'standard_parallel',70);
+%	      [ret]=Kml2Exp('file.kml','file.exp',-1,'central_meridian', 0,'standard_parallel',71);
+
+% Check usage
+if nargin~=3 && nargin~=7
+	help Kml2Exp
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+switch nargin
+	case 3
+		[ret]=Kml2Exp_matlab(varargin{1},varargin{2},varargin{3});
+	case 7
+		[ret]=Kml2Exp_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7});
+	otherwise
+		[ret]=['Kml2Exp error'];
+end
+
Index: /issm/trunk-jpl/src/m/modules/Kriging.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Kriging.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/Kriging.m	(revision 20875)
@@ -0,0 +1,22 @@
+function predictions = Kriging(x,y,observations,x_interp,y_interp,varargin);
+%KRIGING - Linear predictor
+%   Usage: predictions = Kriging(x,y,observations,x_interp,y_interp,'options');
+%   
+%   available options:
+%	   -'model': Available variogram models 'gaussian' (default),'spherical','power','exponential'
+%	      -'nugget': nugget effect (default 0.2)
+%	      -'range':  for gaussian, spherical and exponential models (default sqrt(3))
+%	      -'sill':   for gaussian, spherical and exponential models (default 1)
+%	      -'slope':  for power model (default 1)
+%	      -'power':  for power model (default 1)
+%	   -'searchradius': search radius for each prediction (default is observations span)
+%	   -'boxlength':    minimum length of quadtree boxes (useful to decrease the number of observations)
+%	   -'maxdata':      minimum number of observations for a prediction (default is 50)
+%	   -'mindata':      maximum number of observations for a prediction (default is 1)
+%	   -'maxtrimming':  maximum trimming value (default is -1.e+21)
+%	   -'mintrimming':  minimum trimming value (default is +1.e+21)
+%	   -'minspacing':   minimum distance between observation (default is 0.01)
+%	   -'numthreads':   number of threads, default is "<<num << "
+
+% Call mex module
+predictions = Kriging_matlab(x,y,observations,x_interp,y_interp,varargin{:});
Index: /issm/trunk-jpl/src/m/modules/Ll2xy.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Ll2xy.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/Ll2xy.m	(revision 20875)
@@ -0,0 +1,40 @@
+function [x,y] = Ll2xy(varargin);
+%LL2XY - lat/long to x/y coordinate transformation module:
+%	
+%	   This module transforms lat/long to x/y coordinates.
+%	
+%	   Usage:
+%	      [x,y]=Ll2xy(lat,lon,sgn,'param name',param,...);
+%	
+%	      lat         latitude coordinates (double vector)
+%	      lon         longitude coordinates (double vector)
+%	      sgn         sign for hemisphere (double, +1 (north) or -1 (south))
+%	
+%	      central_meridian     central meridian (double, optional, but must specify with sp)
+%	      standard_parallel    standard parallel (double, optional, but must specify with cm)
+%	
+%	      x           x coordinates (double vector)
+%	      y           y coordinates (double vector)
+%	
+%	   Examples:
+%	      [x,y]=Ll2xy(lat,lon, 1);
+%	      [x,y]=Ll2xy(lat,lon, 1,'central_meridian',45,'standard_parallel',70);
+%	      [x,y]=Ll2xy(lat,lon,-1,'central_meridian', 0,'standard_parallel',71);
+
+% Check usage
+if nargin~=3 && nargin~=7
+	help Ll2xy
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+switch nargin
+	case 3
+		[x,y]=Ll2xy_matlab(varargin{1},varargin{2},varargin{3});
+	case 7
+		[x,y]=Ll2xy_matlab(varargin{1},varargin{2},varargin{3},varargin{4},varargin{5},varargin{6},varargin{7});
+	otherwise
+		error(['Error in Ll2xy', '']);
+end
+
+		
Index: /issm/trunk-jpl/src/m/modules/M1qn3.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/M1qn3.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/M1qn3.m	(revision 20875)
@@ -0,0 +1,11 @@
+function X = M1qn3(varargin);
+%M1QN3 - Data interpolation from a list of (x,y,values) into mesh vertices
+%	   usage:
+%	         X=M1qn3(Xs,Gs);
+%	   where:
+%	      Xs are the X values (m x n, where m is the number of independents, n the number of evaluations previously carried out on X)
+%	      Gs are the G (gradient) values (m x n, where m is the number of independents, n the number of evaluations previously carried out on X,G)
+%	      X - the new direction.
+
+% Call mex module
+X = M1qn3_matlab(varargin{:});
Index: /issm/trunk-jpl/src/m/modules/MeshPartition.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/MeshPartition.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/MeshPartition.m	(revision 20875)
@@ -0,0 +1,17 @@
+function [element_partitioning, node_partitioning] = MeshPartition(md.mesh,numpartitions);
+%MESHPARTITION - Partition mesh according to the number of areas, using Metis library.
+%
+%	   Usage:
+%			[element_partitioning,node_partitioning]=MeshPartition(md.mesh,numpartitions)");
+%
+%	   element_partitioning: Vector of partitioning area numbers, for every element.
+%	   node_partitioning: Vector of partitioning area numbers, for every node.
+
+% Check usage
+if nargin~=2
+	help MeshPartition
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[element_partitioning, node_partitioning] = MeshPartition_matlab(md.mesh,numpartitions);
Index: /issm/trunk-jpl/src/m/modules/MeshProfileIntersection.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/MeshProfileIntersection.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/MeshProfileIntersection.m	(revision 20875)
@@ -0,0 +1,22 @@
+function [segments] = MeshProfileIntersection(index,x,y,filename);
+%MESHPROFILEINTERSECTION - Take a .exp file (made of several profiles), and figures out its intersection with a mesh.
+%
+%	   usage:
+%	   [segments]=MeshProfileIntersection(index,x,y,filename);
+%
+%	   input:
+%	        index,x,y is a triangulation
+%	        filename: name of Argus style .exp file containing the segments (can be groups of disconnected segments)
+%	   output:
+%	        segments: array made of x1,y1,x2,y2,element_id lines (x1,y1) and (x2,y2) are segment extremities for a segment 
+%	        belonging to the elemnt_id element. there are as many lines in segments as there are segments intersecting the 
+%	        mesh.
+
+% Check usage
+if nargin~=4
+	help MeshProfileIntersection
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[segments] = MeshProfileIntersection_matlab(index,x,y,filename);
Index: /issm/trunk-jpl/src/m/modules/MeshProfileIntersection.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/MeshProfileIntersection.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/MeshProfileIntersection.py	(revision 20875)
@@ -0,0 +1,23 @@
+from MeshProfileIntersection_python import MeshProfileIntersection_python
+
+def MeshProfileIntersection(index,x,y,filename):
+	"""
+	MESHPROFILEINTERSECTION - Takes a .exp file (made of several profiles), and figures out its intersection with a mesh
+		Usage:
+			[segments]=MeshProfileIntersection(index,x,y,filename);
+		
+		input:
+			  index,x,y is a triangulation
+			  filename: name of Argus style .exp file containing the segments (can be groups of disconnected segments)
+
+		output:
+			  segments: array made of x1,y1,x2,y2,element_id lines (x1,y1) and (x2,y2) are segment extremities for a segment 
+			  belonging to the elemnt_id element. there are as many lines in segments as there are segments intersecting the 
+			  mesh.
+	"""
+	
+	# Call mex module
+	[segments] = MeshProfileIntersection_python(index,x,y,filename);
+
+	# Return
+	return segments
Index: /issm/trunk-jpl/src/m/modules/NodeConnectivity.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/NodeConnectivity.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/NodeConnectivity.m	(revision 20875)
@@ -0,0 +1,14 @@
+function connectivity = NodeConnectivity(elements,numnodes);
+%NODECONNECTIVITY - Build node connectivity from elements
+%
+%   Usage:
+%      connectivity = NodeConnectivity(elements,numnodes);
+
+% Check usage
+if nargin~=2
+	help NodeConnectivity
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+connectivity = NodeConnectivity_matlab(elements,numnodes);
Index: /issm/trunk-jpl/src/m/modules/NodeConnectivity.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/NodeConnectivity.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/NodeConnectivity.py	(revision 20875)
@@ -0,0 +1,15 @@
+from NodeConnectivity_python import NodeConnectivity_python
+
+def NodeConnectivity(elements,numnodes):
+	"""
+	NODECONNECTIVITY - Build node connectivity from elements
+
+		Usage:
+			connectivity = NodeConnectivity(elements, numnodes);
+	"""
+	# Call mex module
+	connectivity = NodeConnectivity_python(elements,numnodes);
+
+	# Return
+	return connectivity;
+
Index: /issm/trunk-jpl/src/m/modules/PointCloudFindNeighbors.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/PointCloudFindNeighbors.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/PointCloudFindNeighbors.m	(revision 20875)
@@ -0,0 +1,19 @@
+function [flags] = PointCloudFindNeighbors(x,y,mindistance,multithread);
+%POINTCLOUDFINDNEIGHBORS - Flag points that are too near one another, within an array of point coordinates
+%
+%	   Usage:
+%	      [flags]=PointCloudFindNeighbors(x,y,mindistance,multithread);
+%
+%	      x,y: list of points.
+%	      mindistance: minimum distance that should exist between points in the cloud.
+%	      multithread: run multithreaded or not. with multithreads, flags can get 1 and 2 values in duplicates.
+%	      flags: array of flags (flag==1 means point is within mindistance of another point)
+
+% Check usage
+if nargin~=4
+	help PointCloudFindNeighbors
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[flags] = PointCloudFindNeighbors_matlab(x,y,mindistance,multithread);
Index: /issm/trunk-jpl/src/m/modules/PropagateFlagsFromConnectivity.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/PropagateFlagsFromConnectivity.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/PropagateFlagsFromConnectivity.m	(revision 20875)
@@ -0,0 +1,14 @@
+function [pool] = PropagateFlagsFromConnectivity(connectivity,pool,index,flags);
+%PROPAGATEFLAGSFROMCONNECTIVITY - Propagate flags onto mesh, element by element, using connectivity
+%
+%   Usage:
+%      [pool] = PropagateFlagsFromConnectivity(connectivity,pool,index,flags);
+
+% Check usage
+if nargin~=4
+	help PropagateFlagsFromConnectivity
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[pool] = PropagateFlagsFromConnectivity_matlab(connectivity,pool,index,flags);
Index: /issm/trunk-jpl/src/m/modules/Scotch.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Scotch.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/Scotch.m	(revision 20875)
@@ -0,0 +1,14 @@
+function [maptab] = Scotch(varargin);
+%SCOTCH - Scotch partitioner
+%
+%   Usage:
+%      [maptab]=Scotch(adjmat,vertlb,vertwt,edgewt,archtyp,archpar,Scotch-specific parameters);
+
+% Check usage
+if nargin<6
+	help Scotch
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[maptab]=Scotch_matlab(varargin{:});
Index: /issm/trunk-jpl/src/m/modules/Shp2Kml.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Shp2Kml.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/Shp2Kml.m	(revision 20875)
@@ -0,0 +1,30 @@
+function [ret]=Shp2Kml(varargin);
+%	SHP2KML - shp to kml file conversion module:
+%	
+%	   This module converts a file from shp to kml format.
+%	
+%	   Usage:
+%	      [ret]=Shp2Kml(filshp,filkml,sgn,'param name',param,...);
+%	
+%	      filshp:      file name of shp file to be read (char, extension optional)
+%	      filkml:      file name of kml file to be written (char)
+%	      sgn:         sign for hemisphere (double, +1 (north) -1 (south) or 0 (no translation))
+%	
+%	      central_meridian:     central meridian (double, optional, but must specify with sp)
+%	      standard_parallel:    standard parallel (double, optional, but must specify with cm)
+%	
+%	      ret:         return code (non-zero for warning)
+%	
+%	   Examples:
+%	      [ret]=Shp2Kml('file.shp','file.kml', 0);
+%	      [ret]=Shp2Kml('file.shp','file.kml', 1,'central_meridian',45,'standard_parallel',70);
+%	      [ret]=Shp2Kml('file.shp','file.kml',-1,'central_meridian', 0,'standard_parallel',71);
+
+% Check usage
+if nargin~=3 && nargin~=7
+	help Shp2Kml
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[ret]=Shp2Kml_matlab(varargin{:});
Index: /issm/trunk-jpl/src/m/modules/ShpRead.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/ShpRead.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/ShpRead.m	(revision 20875)
@@ -0,0 +1,20 @@
+function ShpRead(filename);
+%	SHPREAD - Read shapefile
+%	
+%	   This module reads shapefiles and converts them to matlab/python structures
+%	
+%	   Usage:
+%	      ShpRead(filename);
+%	      filexp:      file name of exp file to be written
+%	
+%	   Examples:
+%	      ShpRead('file.shp');
+
+% Check usage
+if nargin~=1
+	help ShpRead
+	error('Wrong usage: No file specified');
+end
+
+% Call mex module
+ShpRead_matlab(filename);
Index: /issm/trunk-jpl/src/m/modules/StringToEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/StringToEnum.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/StringToEnum.m	(revision 20875)
@@ -0,0 +1,14 @@
+function enum = StringToEnum(string);
+%STRINGTOENUM - Convert a string to an enum (int)
+%
+%   Usage:
+%      enum = StringToEnum(string);
+
+% Check usage
+if nargin~=1
+	help StringToEnum
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+enum = StringToEnum_matlab(string);
Index: /issm/trunk-jpl/src/m/modules/StringToEnum.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/StringToEnum.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/StringToEnum.py	(revision 20875)
@@ -0,0 +1,14 @@
+from StringToEnum_python import StringToEnum_python
+
+def StringToEnum(string):
+	"""
+	STRINGTOENUM - Convert a string to an enum (int)
+
+	   Usage:
+		   enum = StringToEnum(string);
+	"""
+	
+	# Call mex module
+	enum = StringToEnum_python(string);
+	# Return
+	return enum
Index: /issm/trunk-jpl/src/m/modules/TriMesh.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/TriMesh.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/TriMesh.m	(revision 20875)
@@ -0,0 +1,21 @@
+function [index,x,y,segments,segmentmarkers] = TriMesh(domainoutlinefilename,rifts,mesh_area);
+%TRIMESH - Mesh a domain using an .exp file
+%
+%   Usage: 
+%     [index,x,y,segments,segmentmarkers]=TriMesh(domainoutlinefilename,rifts,mesh_area);
+%	      
+%   index,x,y:	Defines a triangulation 
+%   segments:	Array made of exterior segments to the mesh domain outline 
+%   segmentmarkers:	Array flagging each segment
+%
+%   domainoutlinefilename:	Argus domain outline file
+%   mesh_area:	Maximum area desired for any element of the resulting mesh
+
+% Check usage
+if nargin~=3 && nargout~=5
+	help TriMesh
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[index,x,y,segments,segmentmarkers]=TriMesh_matlab(domainoutlinefilename,rifts,mesh_area);
Index: /issm/trunk-jpl/src/m/modules/TriMesh.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/TriMesh.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/TriMesh.py	(revision 20875)
@@ -0,0 +1,21 @@
+from TriMesh_python import TriMesh_python
+
+def TriMesh(domainoutlinefilename,rifts,mesh_area):
+	"""
+	TRIMESH - Mesh a domain using an .exp file
+
+	   Usage: 
+			[index,x,y,segments,segmentmarkers]=TriMesh(domainoutlinefilename,rifts,mesh_area); 
+
+	   index,x,y: defines a triangulation 
+		segments: An array made of exterior segments to the mesh domain outline 
+		segmentmarkers: An array flagging each segment
+
+	   domainoutlinefilename: an Argus domain outline file
+		mesh_area: The maximum area desired for any element of the resulting mesh
+	"""
+	# Call mex module
+	[index,x,y,segments,segmentmarkers]=TriMesh_python(domainoutlinefilename,rifts,mesh_area);
+	# Return
+	return [index,x,y,segments,segmentmarkers]
+
Index: /issm/trunk-jpl/src/m/modules/TriMeshProcessRifts.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/TriMeshProcessRifts.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/TriMeshProcessRifts.m	(revision 20875)
@@ -0,0 +1,17 @@
+function [index2,x2,y2,segments2,segmentmarkers2,rifts2] = TriMeshProcessRifts(index1,x1,y1,segments1,segmentmarkers1);
+%TRIMESHPROCESSRIFTS - Split a mesh where a rift (or fault) is present
+%
+%   Usage: 
+%      [index2,x2,y2,segments2,segmentmarkers2,rifts2]=TriMeshProcessRifts(index1,x1,y1,segments1,segmentmarkers1); 
+%   
+%   (index1,x1,y1,segments1,segmentmarkers1):	An initial triangulation.
+%   [index2,x2,y2,segments2,segmentmarkers2,rifts2]:	The resulting triangulation where rifts have been processed.
+
+% Check usage
+if nargin~=5 && nargout~=6
+	help TriMeshProcessRifts
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[index2,x2,y2,segments2,segmentmarkers2,rifts2] = TriMeshProcessRifts_matlab(index1,x1,y1,segments1,segmentmarkers1);
Index: /issm/trunk-jpl/src/m/modules/TriMeshProcessRifts.py
===================================================================
--- /issm/trunk-jpl/src/m/modules/TriMeshProcessRifts.py	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/TriMeshProcessRifts.py	(revision 20875)
@@ -0,0 +1,16 @@
+from TriMeshProcessRifts_python import TriMeshProcessRifts_python
+
+def TriMeshProcessRifts(index1,x1,y1,segments1,segmentmarkers1):
+	"""
+	TRIMESHPROCESSRIFTS - Split a mesh where a rift (or fault) is present
+
+	   Usage: 
+		   [index2,x2,y2,segments2,segmentmarkers2,rifts2]=TriMeshProcessRifts(index1,x1,y1,segments1,segmentmarkers1);
+
+	   (index1,x1,y1,segments1,segmentmarkers1):	An initial triangulation.
+	   [index2,x2,y2,segments2,segmentmarkers2,rifts2]:	The resulting triangulation where rifts have been processed.
+	"""
+	# Call mex module
+	[index2,x2,y2,segments2,segmentmarkers2,rifts2] = TriMeshProcessRifts_python(index1,x1,y1,segments1,segmentmarkers1);
+	# Return
+	return [index2,x2,y2,segments2,segmentmarkers2,rifts2] 
Index: /issm/trunk-jpl/src/m/modules/Xy2ll.m
===================================================================
--- /issm/trunk-jpl/src/m/modules/Xy2ll.m	(revision 20875)
+++ /issm/trunk-jpl/src/m/modules/Xy2ll.m	(revision 20875)
@@ -0,0 +1,31 @@
+function [lat,lon] = Xy2ll(varargin);
+%XY2LL - x/y to lat/long coordinate transformation module:
+%	
+%	   This module transforms x/y to lat/long coordinates.
+%	
+%	   Usage:
+%	      [lat,lon]=Xy2ll(x,y,sgn,'param name',param,...);
+%	
+%	      x:           x coordinates (double vector)
+%	      y:           y coordinates (double vector)
+%	      sgn:         sign for hemisphere (double, +1 (north) or -1 (south))
+%	
+%	      central_meridian:     central meridian (double, optional, but must specify with sp)
+%	      standard_parallel:    standard parallel (double, optional, but must specify with cm)
+%	
+%	      lat:         latitude coordinates (double vector)
+%	      lon:         longitude coordinates (double vector)
+%	
+%	   Examples:
+%	      [lat,lon]=Xy2ll(x,y, 1);
+%	      [lat,lon]=Xy2ll(x,y, 1,'central_meridian',45,'standard_parallel',70);
+%	      [lat,lon]=Xy2ll(x,y,-1,'central_meridian', 0,'standard_parallel',71);
+
+% Check usage
+if nargout~=2 && nargin~=3 && nargin~=7
+	help Xy2ll
+	error('Wrong usage (see above)');
+end
+
+% Call mex module
+[lat,lon]=Xy2ll_matlab(varargin{:});
Index: /issm/trunk-jpl/src/wrappers/matlab/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20874)
+++ /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20875)
@@ -43,26 +43,26 @@
 						 ContourToNodes_matlab.la\
 						 DistanceToMaskBoundary_matlab.la\
-						 ElementConnectivity.la\
-						 EnumToString.la\
-						 ExpSimplify.la\
-						 ExpToLevelSet.la\
-						 InterpFromGridToMesh.la\
-						 InterpFromMeshToMesh2d.la\
-						 InterpFromMeshToMesh3d.la\
-						 InterpFromMeshToGrid.la\
-						 InterpFromMesh2d.la\
-						 IssmConfig.la\
-						 Ll2xy.la\
-						 NodeConnectivity.la\
-						 M1qn3.la\
-						 MeshPartition.la\
-						 MeshProfileIntersection.la\
-						 PointCloudFindNeighbors.la\
-						 PropagateFlagsFromConnectivity.la\
-						 StringToEnum.la\
-						 TriMesh.la\
-						 TriMeshProcessRifts.la\
-						 Scotch.la\
-						 Xy2ll.la
+						 ElementConnectivity_matlab.la\
+						 EnumToString_matlab.la\
+						 ExpSimplify_matlab.la\
+						 ExpToLevelSet_matlab.la\
+						 InterpFromGridToMesh_matlab.la\
+						 InterpFromMeshToMesh2d_matlab.la\
+						 InterpFromMeshToMesh3d_matlab.la\
+						 InterpFromMeshToGrid_matlab.la\
+						 InterpFromMesh2d_matlab.la\
+						 IssmConfig_matlab.la\
+						 Ll2xy_matlab.la\
+						 NodeConnectivity_matlab.la\
+						 M1qn3_matlab.la\
+						 MeshPartition_matlab.la\
+						 MeshProfileIntersection_matlab.la\
+						 PointCloudFindNeighbors_matlab.la\
+						 PropagateFlagsFromConnectivity_matlab.la\
+						 StringToEnum_matlab.la\
+						 TriMesh_matlab.la\
+						 TriMeshProcessRifts_matlab.la\
+						 Scotch_matlab.la\
+						 Xy2ll_matlab.la
 
 if CHACO
@@ -70,14 +70,14 @@
 endif
 if KRIGING
-lib_LTLIBRARIES +=  Kriging.la
+lib_LTLIBRARIES +=  Kriging_matlab.la
 endif
 if KML
-lib_LTLIBRARIES +=  KMLFileRead.la\
-				   KMLMeshWrite.la\
-				   KMLOverlay.la\
-				   Exp2Kml.la\
-				   Kml2Exp.la\
-				   ShpRead.la\
-				   Shp2Kml.la
+lib_LTLIBRARIES +=  KMLFileRead_matlab.la\
+				   KMLMeshWrite_matlab.la\
+				   KMLOverlay_matlab.la\
+				   Exp2Kml_matlab.la\
+				   Kml2Exp_matlab.la\
+				   ShpRead_matlab.la\
+				   Shp2Kml_matlab.la
 endif
 #}}}
@@ -158,6 +158,6 @@
 ContourToMesh_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
-ExpToLevelSet_la_SOURCES = ../ExpToLevelSet/ExpToLevelSet.cpp
-ExpToLevelSet_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+ExpToLevelSet_matlab_la_SOURCES = ../ExpToLevelSet/ExpToLevelSet.cpp
+ExpToLevelSet_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
 ContourToNodes_matlab_la_SOURCES = ../ContourToNodes/ContourToNodes.cpp
@@ -167,89 +167,89 @@
 DistanceToMaskBoundary_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 
-ElementConnectivity_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
-ElementConnectivity_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-EnumToString_la_SOURCES = ../EnumToString/EnumToString.cpp
-EnumToString_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-StringToEnum_la_SOURCES = ../StringToEnum/StringToEnum.cpp
-StringToEnum_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-InterpFromGridToMesh_la_SOURCES = ../InterpFromGridToMesh/InterpFromGridToMesh.cpp
-InterpFromGridToMesh_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
-
-InterpFromMeshToMesh2d_la_SOURCES = ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
-InterpFromMeshToMesh2d_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
-
-InterpFromMeshToMesh3d_la_SOURCES = ../InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
-InterpFromMeshToMesh3d_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-InterpFromMeshToGrid_la_SOURCES = ../InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
-InterpFromMeshToGrid_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-InterpFromMesh2d_la_SOURCES = ../InterpFromMesh2d/InterpFromMesh2d.cpp
-InterpFromMesh2d_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
-
-IssmConfig_la_SOURCES = ../IssmConfig/IssmConfig.cpp
-IssmConfig_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB)
-
-KMLFileRead_la_SOURCES = ../KMLFileRead/KMLFileRead.cpp
-KMLFileRead_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-KMLMeshWrite_la_SOURCES = ../KMLMeshWrite/KMLMeshWrite.cpp
-KMLMeshWrite_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-KMLOverlay_la_SOURCES = ../KMLOverlay/KMLOverlay.cpp
-KMLOverlay_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-Xy2ll_la_SOURCES = ../Xy2ll/Xy2ll.cpp
-Xy2ll_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-Ll2xy_la_SOURCES = ../Ll2xy/Ll2xy.cpp
-Ll2xy_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-ExpSimplify_la_SOURCES = ../ExpSimplify/ExpSimplify.cpp
-ExpSimplify_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-Exp2Kml_la_SOURCES = ../Exp2Kml/Exp2Kml.cpp
-Exp2Kml_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-Kml2Exp_la_SOURCES = ../Kml2Exp/Kml2Exp.cpp
-Kml2Exp_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-Kriging_la_SOURCES = ../Kriging/Kriging.cpp
-Kriging_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
-
-MeshPartition_la_SOURCES = ../MeshPartition/MeshPartition.cpp
-MeshPartition_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(METISLIB) $(GSLLIB) $(PROJ4LIB)
-
-M1qn3_la_SOURCES = ../M1qn3/M1qn3.cpp
-M1qn3_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(METISLIB) $(M1QN3LIB) $(GSLLIB) $(PROJ4LIB)
-
-MeshProfileIntersection_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp
-MeshProfileIntersection_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-NodeConnectivity_la_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp
-NodeConnectivity_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-PointCloudFindNeighbors_la_SOURCES = ../PointCloudFindNeighbors/PointCloudFindNeighbors.cpp
-PointCloudFindNeighbors_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
-
-PropagateFlagsFromConnectivity_la_SOURCES = ../PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp
-PropagateFlagsFromConnectivity_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-Scotch_la_SOURCES = ../Scotch/Scotch.cpp
-Scotch_la_LIBADD = ${deps} $(SCOTCHLIB) $(MPILIB) $(PETSCLIB) $(BLASLAPACKLIB)
-
-ShpRead_la_SOURCES = ../ShpRead/ShpRead.cpp
-ShpRead_la_LIBADD = ${deps} $(SHAPELIBLIB) $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-Shp2Kml_la_SOURCES = ../Shp2Kml/Shp2Kml.cpp
-Shp2Kml_la_LIBADD = ${deps} $(SHAPELIBLIB) $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-
-TriMesh_la_SOURCES = ../TriMesh/TriMesh.cpp
-TriMesh_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(TRIANGLELIB) $(GSLLIB) $(PROJ4LIB)
-
-TriMeshProcessRifts_la_SOURCES = ../TriMeshProcessRifts/TriMeshProcessRifts.cpp
-TriMeshProcessRifts_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
-#}}}
+ElementConnectivity_matlab_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
+ElementConnectivity_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+EnumToString_matlab_la_SOURCES = ../EnumToString/EnumToString.cpp
+EnumToString_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+StringToEnum_matlab_la_SOURCES = ../StringToEnum/StringToEnum.cpp
+StringToEnum_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+InterpFromGridToMesh_matlab_la_SOURCES = ../InterpFromGridToMesh/InterpFromGridToMesh.cpp
+InterpFromGridToMesh_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+
+InterpFromMeshToMesh2d_matlab_la_SOURCES = ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
+InterpFromMeshToMesh2d_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+
+InterpFromMeshToMesh3d_matlab_la_SOURCES = ../InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
+InterpFromMeshToMesh3d_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+InterpFromMeshToGrid_matlab_la_SOURCES = ../InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
+InterpFromMeshToGrid_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+InterpFromMesh2d_matlab_la_SOURCES = ../InterpFromMesh2d/InterpFromMesh2d.cpp
+InterpFromMesh2d_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+
+IssmConfig_matlab_la_SOURCES = ../IssmConfig/IssmConfig.cpp
+IssmConfig_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB)
+
+KMLFileRead_matlab_la_SOURCES = ../KMLFileRead/KMLFileRead.cpp
+KMLFileRead_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+KMLMeshWrite_matlab_la_SOURCES = ../KMLMeshWrite/KMLMeshWrite.cpp
+KMLMeshWrite_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+KMLOverlay_matlab_la_SOURCES = ../KMLOverlay/KMLOverlay.cpp
+KMLOverlay_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+Xy2ll_matlab_la_SOURCES = ../Xy2ll/Xy2ll.cpp
+Xy2ll_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+Ll2xy_matlab_la_SOURCES = ../Ll2xy/Ll2xy.cpp
+Ll2xy_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+ExpSimplify_matlab_la_SOURCES = ../ExpSimplify/ExpSimplify.cpp
+ExpSimplify_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+Exp2Kml_matlab_la_SOURCES = ../Exp2Kml/Exp2Kml.cpp
+Exp2Kml_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+Kml2Exp_matlab_la_SOURCES = ../Kml2Exp/Kml2Exp.cpp
+Kml2Exp_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+Kriging_matlab_la_SOURCES = ../Kriging/Kriging.cpp
+Kriging_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+
+MeshPartition_matlab_la_SOURCES = ../MeshPartition/MeshPartition.cpp
+MeshPartition_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(METISLIB) $(GSLLIB) $(PROJ4LIB)
+
+M1qn3_matlab_la_SOURCES = ../M1qn3/M1qn3.cpp
+M1qn3_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(METISLIB) $(M1QN3LIB) $(GSLLIB) $(PROJ4LIB)
+
+MeshProfileIntersection_matlab_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp
+MeshProfileIntersection_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+NodeConnectivity_matlab_la_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp
+NodeConnectivity_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+PointCloudFindNeighbors_matlab_la_SOURCES = ../PointCloudFindNeighbors/PointCloudFindNeighbors.cpp
+PointCloudFindNeighbors_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+
+PropagateFlagsFromConnectivity_matlab_la_SOURCES = ../PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp
+PropagateFlagsFromConnectivity_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+Scotch_matlab_la_SOURCES = ../Scotch/Scotch.cpp
+Scotch_matlab_la_LIBADD = ${deps} $(SCOTCHLIB) $(MPILIB) $(PETSCLIB) $(BLASLAPACKLIB)
+
+ShpRead_matlab_la_SOURCES = ../ShpRead/ShpRead.cpp
+ShpRead_matlab_la_LIBADD = ${deps} $(SHAPELIBLIB) $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+Shp2Kml_matlab_la_SOURCES = ../Shp2Kml/Shp2Kml.cpp
+Shp2Kml_matlab_la_LIBADD = ${deps} $(SHAPELIBLIB) $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+
+TriMesh_matlab_la_SOURCES = ../TriMesh/TriMesh.cpp
+TriMesh_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(TRIANGLELIB) $(GSLLIB) $(PROJ4LIB)
+
+TriMeshProcessRifts_matlab_la_SOURCES = ../TriMeshProcessRifts/TriMeshProcessRifts.cpp
+TriMeshProcessRifts_matlab_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+#}}}
Index: /issm/trunk-jpl/src/wrappers/python/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 20874)
+++ /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 20875)
@@ -33,16 +33,16 @@
 						ContourToMesh_python.la\
 						ContourToNodes_python.la\
-						ElementConnectivity.la\
-						EnumToString.la\
-						InterpFromMeshToMesh2d.la\
-						InterpFromMeshToMesh3d.la\
-						InterpFromGridToMesh.la\
-						InterpFromMeshToGrid.la\
-						IssmConfig.la\
-						MeshProfileIntersection.la\
-						NodeConnectivity.la\
-						StringToEnum.la\
-						TriMesh.la\
-						TriMeshProcessRifts.la
+						ElementConnectivity_python.la\
+						EnumToString_python.la\
+						InterpFromMeshToMesh2d_python.la\
+						InterpFromMeshToMesh3d_python.la\
+						InterpFromGridToMesh_python.la\
+						InterpFromMeshToGrid_python.la\
+						IssmConfig_python.la\
+						MeshProfileIntersection_python.la\
+						NodeConnectivity_python.la\
+						StringToEnum_python.la\
+						TriMesh_python.la\
+						TriMeshProcessRifts_python.la
 endif 
 #}}}
@@ -106,38 +106,38 @@
 ContourToNodes_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 
-ElementConnectivity_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
-ElementConnectivity_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+ElementConnectivity_python_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
+ElementConnectivity_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 
-EnumToString_la_SOURCES = ../EnumToString/EnumToString.cpp
-EnumToString_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+EnumToString_python_la_SOURCES = ../EnumToString/EnumToString.cpp
+EnumToString_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 
-InterpFromMeshToMesh2d_la_SOURCES = ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
-InterpFromMeshToMesh2d_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromMeshToMesh2d_python_la_SOURCES = ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
+InterpFromMeshToMesh2d_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
-InterpFromMeshToMesh3d_la_SOURCES = ../InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
-InterpFromMeshToMesh3d_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromMeshToMesh3d_python_la_SOURCES = ../InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
+InterpFromMeshToMesh3d_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
-InterpFromGridToMesh_la_SOURCES = ../InterpFromGridToMesh/InterpFromGridToMesh.cpp
-InterpFromGridToMesh_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromGridToMesh_python_la_SOURCES = ../InterpFromGridToMesh/InterpFromGridToMesh.cpp
+InterpFromGridToMesh_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
-InterpFromMeshToGrid_la_SOURCES = ../InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
-InterpFromMeshToGrid_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromMeshToGrid_python_la_SOURCES = ../InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
+InterpFromMeshToGrid_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
-IssmConfig_la_SOURCES = ../IssmConfig/IssmConfig.cpp
-IssmConfig_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB)
+IssmConfig_python_la_SOURCES = ../IssmConfig/IssmConfig.cpp
+IssmConfig_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB)
 
-MeshProfileIntersection_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp
-MeshProfileIntersection_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+MeshProfileIntersection_python_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp
+MeshProfileIntersection_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 
-NodeConnectivity_la_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp
-NodeConnectivity_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+NodeConnectivity_python_la_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp
+NodeConnectivity_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 
-StringToEnum_la_SOURCES = ../StringToEnum/StringToEnum.cpp
-StringToEnum_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+StringToEnum_python_la_SOURCES = ../StringToEnum/StringToEnum.cpp
+StringToEnum_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 
-TriMesh_la_SOURCES = ../TriMesh/TriMesh.cpp
-TriMesh_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(TRIANGLELIB) $(GSLLIB) $(PROJ4LIB)
+TriMesh_python_la_SOURCES = ../TriMesh/TriMesh.cpp
+TriMesh_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(TRIANGLELIB) $(GSLLIB) $(PROJ4LIB)
 
-TriMeshProcessRifts_la_SOURCES = ../TriMeshProcessRifts/TriMeshProcessRifts.cpp
-TriMeshProcessRifts_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+TriMeshProcessRifts_python_la_SOURCES = ../TriMeshProcessRifts/TriMeshProcessRifts.cpp
+TriMeshProcessRifts_python_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
 #}}}
