Index: /issm/trunk-jpl/src/m/classes/diagnostic.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/diagnostic.py	(revision 13170)
+++ /issm/trunk-jpl/src/m/classes/diagnostic.py	(revision 13171)
@@ -187,7 +187,7 @@
 		#marshall ice front
 		data=self.icefront
-		data[[i for i,item in enumerate(data[:,-1]) if item==0],-1]=AirEnum()
-		data[[i for i,item in enumerate(data[:,-1]) if item==1],-1]=WaterEnum()
-		data[[i for i,item in enumerate(data[:,-1]) if item==2],-1]=IceEnum()
+		data[numpy.nonzero(data[:,-1]==0),-1]=AirEnum()
+		data[numpy.nonzero(data[:,-1]==1),-1]=WaterEnum()
+		data[numpy.nonzero(data[:,-1]==2),-1]=IceEnum()
 		WriteData(fid,'data',data,'enum',DiagnosticIcefrontEnum(),'format','DoubleMat','mattype',3)
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/flowequation.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/flowequation.py	(revision 13170)
+++ /issm/trunk-jpl/src/m/classes/flowequation.py	(revision 13171)
@@ -90,24 +90,24 @@
 		#convert approximations to enums
 		data=self.vertex_equation
-		data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==8]]=L1L2ApproximationEnum()
+		data[numpy.nonzero(data==0)]=NoneApproximationEnum()
+		data[numpy.nonzero(data==1)]=HutterApproximationEnum()
+		data[numpy.nonzero(data==2)]=MacAyealApproximationEnum()
+		data[numpy.nonzero(data==3)]=PattynApproximationEnum()
+		data[numpy.nonzero(data==4)]=StokesApproximationEnum()
+		data[numpy.nonzero(data==5)]=MacAyealPattynApproximationEnum()
+		data[numpy.nonzero(data==6)]=MacAyealStokesApproximationEnum()
+		data[numpy.nonzero(data==7)]=PattynStokesApproximationEnum()
+		data[numpy.nonzero(data==8)]=L1L2ApproximationEnum()
 		WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
 		data=self.element_equation
-		data[[i for i,item in enumerate(data) if item==0]]=NoneApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==1]]=HutterApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==2]]=MacAyealApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==3]]=PattynApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==4]]=StokesApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==5]]=MacAyealPattynApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==6]]=MacAyealStokesApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==7]]=PattynStokesApproximationEnum()
-		data[[i for i,item in enumerate(data) if item==8]]=L1L2ApproximationEnum()
+		data[numpy.nonzero(data==0)]=NoneApproximationEnum()
+		data[numpy.nonzero(data==1)]=HutterApproximationEnum()
+		data[numpy.nonzero(data==2)]=MacAyealApproximationEnum()
+		data[numpy.nonzero(data==3)]=PattynApproximationEnum()
+		data[numpy.nonzero(data==4)]=StokesApproximationEnum()
+		data[numpy.nonzero(data==5)]=MacAyealPattynApproximationEnum()
+		data[numpy.nonzero(data==6)]=MacAyealStokesApproximationEnum()
+		data[numpy.nonzero(data==7)]=PattynStokesApproximationEnum()
+		data[numpy.nonzero(data==8)]=L1L2ApproximationEnum()
 		WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2)
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/inversion.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/inversion.py	(revision 13170)
+++ /issm/trunk-jpl/src/m/classes/inversion.py	(revision 13171)
@@ -179,15 +179,15 @@
 		num_cost_functions=size(self.cost_functions,1)
 		data=self.cost_functions
-		data[[i for i,item in enumerate(data) if item==101]]=SurfaceAbsVelMisfitEnum()
-		data[[i for i,item in enumerate(data) if item==102]]=SurfaceRelVelMisfitEnum()
-		data[[i for i,item in enumerate(data) if item==103]]=SurfaceLogVelMisfitEnum()
-		data[[i for i,item in enumerate(data) if item==104]]=SurfaceLogVxVyMisfitEnum()
-		data[[i for i,item in enumerate(data) if item==105]]=SurfaceAverageVelMisfitEnum()
-		data[[i for i,item in enumerate(data) if item==201]]=ThicknessAbsMisfitEnum()
-		data[[i for i,item in enumerate(data) if item==501]]=DragCoefficientAbsGradientEnum()
-		data[[i for i,item in enumerate(data) if item==502]]=RheologyBbarAbsGradientEnum()
-		data[[i for i,item in enumerate(data) if item==503]]=ThicknessAbsGradientEnum()
-		data[[i for i,item in enumerate(data) if item==504]]=ThicknessAlongGradientEnum()
-		data[[i for i,item in enumerate(data) if item==505]]=ThicknessAcrossGradientEnum()
+		data[numpy.nonzero(data==101)]=SurfaceAbsVelMisfitEnum()
+		data[numpy.nonzero(data==102)]=SurfaceRelVelMisfitEnum()
+		data[numpy.nonzero(data==103)]=SurfaceLogVelMisfitEnum()
+		data[numpy.nonzero(data==104)]=SurfaceLogVxVyMisfitEnum()
+		data[numpy.nonzero(data==105)]=SurfaceAverageVelMisfitEnum()
+		data[numpy.nonzero(data==201)]=ThicknessAbsMisfitEnum()
+		data[numpy.nonzero(data==501)]=DragCoefficientAbsGradientEnum()
+		data[numpy.nonzero(data==502)]=RheologyBbarAbsGradientEnum()
+		data[numpy.nonzero(data==503)]=ThicknessAbsGradientEnum()
+		data[numpy.nonzero(data==504)]=ThicknessAlongGradientEnum()
+		data[numpy.nonzero(data==505)]=ThicknessAcrossGradientEnum()
 		WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
 		WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
Index: /issm/trunk-jpl/src/m/parameterization/setflowequation.py
===================================================================
--- /issm/trunk-jpl/src/m/parameterization/setflowequation.py	(revision 13170)
+++ /issm/trunk-jpl/src/m/parameterization/setflowequation.py	(revision 13171)
@@ -150,8 +150,8 @@
 			elist = elist + numpy.any(numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
 			elist = elist - numpy.any(numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1),axis=1)
-			pos1=[i for i,item in enumerate(elist) if item==1]
+			pos1=numpy.nonzero(elist==1)
 			macayealflag[pos[pos1]]=1
 			macayealpattynflag[pos[pos1]]=0
-			pos2=[i for i,item in enumerate(elist) if item==-1]
+			pos2=numpy.nonzero(elist==-1)
 			pattynflag[pos[pos2]]=1
 			macayealpattynflag[pos[pos2]]=0
@@ -182,8 +182,8 @@
 			elist = elist + numpy.any(numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
 			elist = elist - numpy.any(numpy.sum(nodeonpattyn[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
-			pos1=[i for i,item in enumerate(elist) if item==1]
+			pos1=numpy.nonzero(elist==1)
 			stokesflag[pos[pos1]]=1
 			pattynstokesflag[pos[pos1]]=0
-			pos2=[i for i,item in enumerate(elist) if item==-1]
+			pos2=numpy.nonzero(elist==-1)
 			pattynflag[pos[pos2]]=1
 			pattynstokesflag[pos[pos2]]=0
@@ -214,8 +214,8 @@
 			elist = elist + numpy.any(numpy.sum(nodeonmacayeal[md.mesh.elements[pos,:].astype(int)-1],axis=1),axis=1)
 			elist = elist - numpy.any(numpy.sum(nodeonstokes[md.mesh.elements[pos,:].astype(int)-1]  ,axis=1),axis=1)
-			pos1=[i for i,item in enumerate(elist) if item==1]
+			pos1=numpy.nonzero(elist==1)
 			macayealflag[pos[pos1]]=1
 			macayealstokesflag[pos[pos1]]=0
-			pos2=[i for i,item in enumerate(elist) if item==-1]
+			pos2=numpy.nonzero(elist==-1)
 			stokesflag[pos[pos2]]=1
 			macayealstokesflag[pos[pos2]]=0
