Index: /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py
===================================================================
--- /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py	(revision 14097)
+++ /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py	(revision 14098)
@@ -25,5 +25,5 @@
 		if not os.path.exists(icefrontfile):
 			raise IOError("SetIceShelfBC error message: ice front file '%s' not found." % icefrontfile)
-		[nodeinsideicefront,dum]=ContourToMesh(md.mesh.elements,md.mesh.x.reshape(-1,1),md.mesh.y.reshape(-1,1),icefrontfile,'node',2)
+		[nodeinsideicefront,dum]=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2)
 		nodeonicefront=numpy.logical_and(md.mesh.vertexonboundary,nodeinsideicefront.reshape(-1))
 	else:
Index: /issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py
===================================================================
--- /issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py	(revision 14097)
+++ /issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py	(revision 14098)
@@ -27,5 +27,5 @@
 		if not os.path.exists(icefrontfile):
 			raise IOError("SetMarineIceSheetBC error message: ice front file '%s' not found." % icefrontfile)
-		[nodeinsideicefront,dum]=ContourToMesh(md.mesh.elements,md.mesh.x.reshape(-1,1),md.mesh.y.reshape(-1,1),icefrontfile,'node',2)
+		[nodeinsideicefront,dum]=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2)
 		vertexonicefront=numpy.logical_and(md.mesh.vertexonboundary,nodeinsideicefront.reshape(-1))
 	else:
Index: /issm/trunk-jpl/src/m/geometry/FlagElements.py
===================================================================
--- /issm/trunk-jpl/src/m/geometry/FlagElements.py	(revision 14097)
+++ /issm/trunk-jpl/src/m/geometry/FlagElements.py	(revision 14098)
@@ -47,5 +47,5 @@
 			else:
 				#ok, flag elements
-				[flag,dum]=ContourToMesh(md.mesh.elements[:,0:3].copy(),md.mesh.x.reshape(-1,1),md.mesh.y.reshape(-1,1),region,'element',1)
+				[flag,dum]=ContourToMesh(md.mesh.elements[:,0:3].copy(),md.mesh.x,md.mesh.y,region,'element',1)
 				flag=flag.astype(bool)
 
Index: /issm/trunk-jpl/src/m/mesh/ComputeMetric.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/ComputeMetric.m	(revision 14097)
+++ /issm/trunk-jpl/src/m/mesh/ComputeMetric.m	(revision 14098)
@@ -13,7 +13,7 @@
 lambda1=0.5*((a+d)+sqrt(4.*b.^2+(a-d).^2));
 lambda2=0.5*((a+d)-sqrt(4.*b.^2+(a-d).^2));
-pos1=find(lambda1==0);
-pos2=find(lambda2==0);
-pos3=find(b==0 & lambda1==lambda2);
+pos1=find(lambda1==0.);
+pos2=find(lambda2==0.);
+pos3=find(b==0. & lambda1==lambda2);
 
 %Modify the eigen values to control the shape of the elements
Index: /issm/trunk-jpl/src/m/mesh/ComputeMetric.py
===================================================================
--- /issm/trunk-jpl/src/m/mesh/ComputeMetric.py	(revision 14097)
+++ /issm/trunk-jpl/src/m/mesh/ComputeMetric.py	(revision 14098)
@@ -19,7 +19,7 @@
 	lambda1=0.5*((a+d)+numpy.sqrt(4.*b**2+(a-d)**2))
 	lambda2=0.5*((a+d)-numpy.sqrt(4.*b**2+(a-d)**2))
-	pos1=numpy.nonzero(lambda1==0)[0]
-	pos2=numpy.nonzero(lambda2==0)[0]
-	pos3=numpy.nonzero(numpy.logical_and(b==0,lambda1==lambda2))[0]
+	pos1=numpy.nonzero(lambda1==0.)[0]
+	pos2=numpy.nonzero(lambda2==0.)[0]
+	pos3=numpy.nonzero(numpy.logical_and(b==0.,lambda1==lambda2))[0]
 
 	#Modify the eigen values to control the shape of the elements
Index: /issm/trunk-jpl/src/m/mesh/bamg.py
===================================================================
--- /issm/trunk-jpl/src/m/mesh/bamg.py	(revision 14097)
+++ /issm/trunk-jpl/src/m/mesh/bamg.py	(revision 14098)
@@ -92,5 +92,5 @@
 			#Checks that all holes are INSIDE the principle domain outline
 			if i:
-				flags=ContourToNodes(domaini['x'].reshape(-1,1),domaini['y'].reshape(-1,1),domainfile,0)
+				flags=ContourToNodes(domaini['x'],domaini['y'],domainfile,0)
 				if numpy.any(numpy.logical_not(flags)):
 					raise RuntimeError("bamg error message: All holes should be strictly inside the principal domain")
@@ -118,5 +118,5 @@
 
 				#detect whether all points of the rift are inside the domain
-				flags=ContourToNodes(rifti['x'].reshape(-1,1),rifti['y'].reshape(-1,1),domain[0],0)
+				flags=ContourToNodes(rifti['x'],rifti['y'],domain[0],0)
 				if numpy.all(numpy.logical_not(flags)):
 					raise RuntimeError("one rift has all its points outside of the domain outline")
Index: /issm/trunk-jpl/src/m/mesh/rifts/meshprocessoutsiderifts.py
===================================================================
--- /issm/trunk-jpl/src/m/mesh/rifts/meshprocessoutsiderifts.py	(revision 14097)
+++ /issm/trunk-jpl/src/m/mesh/rifts/meshprocessoutsiderifts.py	(revision 14098)
@@ -16,5 +16,5 @@
 	
 		#first, flag nodes that belong to the domain outline
-		flags=ContourToMesh(md.mesh.elements,md.mesh.x.reshape(-1,1),md.mesh.y.reshape(-1,1),domainoutline,'node',0)
+		flags=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,domainoutline,'node',0)
 
 		tips=rift.tips
Index: /issm/trunk-jpl/src/m/mesh/rifts/meshprocessrifts.py
===================================================================
--- /issm/trunk-jpl/src/m/mesh/rifts/meshprocessrifts.py	(revision 14097)
+++ /issm/trunk-jpl/src/m/mesh/rifts/meshprocessrifts.py	(revision 14098)
@@ -49,5 +49,5 @@
 
 	#In case we have rifts that open up the domain outline, we need to open them: 
-	[flags,dum]=ContourToMesh(md.mesh.elements,md.mesh.x.reshape(-1,1),md.mesh.y.reshape(-1,1),domainoutline,'node',0)
+	[flags,dum]=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,domainoutline,'node',0)
 	found=0
 	for rift in md.rifts.riftstruct:
Index: /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 14097)
+++ /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 14098)
@@ -108,7 +108,14 @@
 		/*retrieve dimensions: */
 		ndim=PyArray_NDIM((const PyArrayObject*)py_matrix);
-		if(ndim!=2)_error_("expecting an MxN matrix in input!");
-		dims=PyArray_DIMS((PyArrayObject*)py_matrix);
-		M=dims[0]; N=dims[1];
+		if      (ndim==2) {
+			dims=PyArray_DIMS((PyArrayObject*)py_matrix);
+			M=dims[0]; N=dims[1];
+		}
+		else if (ndim==1) {
+			dims=PyArray_DIMS((PyArrayObject*)py_matrix);
+			M=dims[0]; N=1;
+		}
+		else
+			_error_("expecting an MxN matrix or M vector in input!");
 
 		if (M && N) {
@@ -141,5 +148,5 @@
 
 			else
-				_error_("unrecognized pyarray type in input!");
+				_error_("unrecognized float pyarray type in input!");
 		}
 		else
@@ -178,7 +185,14 @@
 		/*retrieve dimensions: */
 		ndim=PyArray_NDIM((const PyArrayObject*)py_matrix);
-		if(ndim!=2)_error_("expecting an MxN matrix in input!");
-		dims=PyArray_DIMS((PyArrayObject*)py_matrix);
-		M=dims[0]; N=dims[1];
+		if      (ndim==2) {
+			dims=PyArray_DIMS((PyArrayObject*)py_matrix);
+			M=dims[0]; N=dims[1];
+		}
+		else if (ndim==1) {
+			dims=PyArray_DIMS((PyArrayObject*)py_matrix);
+			M=dims[0]; N=1;
+		}
+		else
+			_error_("expecting an MxN matrix or M vector in input!");
 
 		if (M && N) {
@@ -211,5 +225,5 @@
 
 			else
-				_error_("unrecognized pyarray type in input!");
+				_error_("unrecognized long pyarray type in input!");
 		}
 		else
