Index: issm/trunk-jpl/src/m/classes/flowequation.m
===================================================================
--- issm/trunk-jpl/src/m/classes/flowequation.m	(revision 13048)
+++ issm/trunk-jpl/src/m/classes/flowequation.m	(revision 13049)
@@ -8,4 +8,5 @@
 		ismacayealpattyn     = 0;
 		ishutter             = 0;
+		isl1l2               = 0;
 		isstokes             = 0;
 		vertex_equation      = NaN;
@@ -33,4 +34,5 @@
 				md = checkfield(md,'flowequation.ismacayealpattyn','numel',[1],'values',[0 1]);
 				md = checkfield(md,'flowequation.ishutter','numel',[1],'values',[0 1]);
+				md = checkfield(md,'flowequation.isl1l2','numel',[1],'values',[0 1]);
 				md = checkfield(md,'flowequation.isstokes','numel',[1],'values',[0 1]);
 				md = checkfield(md,'flowequation.bordermacayeal','size',[md.mesh.numberofvertices 1],'values',[0 1]);
@@ -41,14 +43,14 @@
 					md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]);
 				else
-					md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:7]);
-					md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:7]);
+					md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]);
+					md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[0:8]);
 				end
-				if ~(md.flowequation.ismacayealpattyn || md.flowequation.ishutter || md.flowequation.isstokes),
+				if ~(obj.ismacayealpattyn || obj.ishutter || obj.isstokes || obj.isl1l2),
 					md = checkmessage(md,['no element types set for this model. At least one of ismacayealpattyn, ishutter or isstokes need to be =1']);
 				end
 			end
 			if ismember(DiagnosticHutterAnalysisEnum(),analyses),
-				if any(md.flowequation.element_equation==1),
-					if(md.flowequation.element_equation & md.mask.elementonfloatingice),
+				if any(obj.element_equation==1),
+					if(obj.element_equation & md.mask.elementonfloatingice),
 						disp(sprintf('\n !!! Warning: Hutter''s model is not consistent on ice shelves !!!\n'));
 					end
@@ -62,4 +64,5 @@
 			fielddisplay(obj,'ismacayealpattyn','is the macayeal or pattyn approximation used ?');
 			fielddisplay(obj,'ishutter','is the shallow ice approximation used ?');
+			fielddisplay(obj,'isl1l2','is the l1l2 approximation used ?');
 			fielddisplay(obj,'isstokes','are the Full-Stokes equations used ?');
 			fielddisplay(obj,'vertex_equation','flow equation for each vertex');
@@ -73,4 +76,5 @@
 			WriteData(fid,'object',obj,'fieldname','ismacayealpattyn','format','Boolean');
 			WriteData(fid,'object',obj,'fieldname','ishutter','format','Boolean');
+			WriteData(fid,'object',obj,'fieldname','isl1l2','format','Boolean');
 			WriteData(fid,'object',obj,'fieldname','isstokes','format','Boolean');
 			WriteData(fid,'object',obj,'fieldname','bordermacayeal','format','DoubleMat','mattype',1);
@@ -87,4 +91,5 @@
 			pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum();
 			pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum();
+			pos=find(data==8); data(pos,end)=L1L2ApproximationEnum();
 			WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1);
 			data=obj.element_equation;
@@ -97,4 +102,5 @@
 			pos=find(data==6); data(pos,end)=MacAyealStokesApproximationEnum();
 			pos=find(data==7); data(pos,end)=PattynStokesApproximationEnum();
+			pos=find(data==8); data(pos,end)=L1L2ApproximationEnum();
 			WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2);
 		end % }}}
Index: issm/trunk-jpl/src/m/classes/flowequation.py
===================================================================
--- issm/trunk-jpl/src/m/classes/flowequation.py	(revision 13048)
+++ issm/trunk-jpl/src/m/classes/flowequation.py	(revision 13049)
@@ -20,4 +20,5 @@
 		self.ismacayealpattyn     = 0;
 		self.ishutter             = 0;
+		self.isl1l2             = 0;
 		self.isstokes             = 0;
 		self.vertex_equation      = float('NaN')
@@ -37,4 +38,5 @@
 		string="%s\n\n%s"%(string,fielddisplay(self,'ismacayealpattyn','is the macayeal or pattyn approximation used ?'))
 		string="%s\n%s"%(string,fielddisplay(self,'ishutter','is the shallow ice approximation used ?'))
+		string="%s\n%s"%(string,fielddisplay(self,'isl1l2','are l1l2 equations used ?'))
 		string="%s\n%s"%(string,fielddisplay(self,'isstokes','are the Full-Stokes equations used ?'))
 		string="%s\n%s"%(string,fielddisplay(self,'vertex_equation','flow equation for each vertex'))
@@ -56,4 +58,5 @@
 			md = checkfield(md,'flowequation.ismacayealpattyn','numel',[1],'values',[0,1])
 			md = checkfield(md,'flowequation.ishutter','numel',[1],'values',[0,1])
+			md = checkfield(md,'flowequation.isl1l2','numel',[1],'values',[0,1])
 			md = checkfield(md,'flowequation.isstokes','numel',[1],'values',[0,1])
 			md = checkfield(md,'flowequation.bordermacayeal','size',[md.mesh.numberofvertices],'values',[0,1])
@@ -66,10 +69,10 @@
 				md = checkfield(md,'flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',range(0,7+1))
 				md = checkfield(md,'flowequation.element_equation','size',[md.mesh.numberofelements],'values',range(0,7+1))
-			if not (md.flowequation.ismacayealpattyn or md.flowequation.ishutter or md.flowequation.isstokes):
+			if not (self.ismacayealpattyn or self.ishutter or self.isstokes or self.isl1l2):
 				md.checkmessage("no element types set for this model. At least one of ismacayealpattyn, ishutter or isstokes need to be =1")
 
 		if DiagnosticHutterAnalysisEnum() in analyses:
-			if any(md.flowequation.element_equation==1):
-				if numpy.any(numpy.logical_and(md.flowequation.element_equation,md.mask.elementonfloatingice)):
+			if any(self.element_equation==1):
+				if numpy.any(numpy.logical_and(self.element_equation,md.mask.elementonfloatingice)):
 					print "\n !!! Warning: Hutter's model is not consistent on ice shelves !!!\n"
 
@@ -80,4 +83,5 @@
 		WriteData(fid,'object',self,'fieldname','ismacayealpattyn','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','ishutter','format','Boolean')
+		WriteData(fid,'object',self,'fieldname','isl1l2','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','isstokes','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','bordermacayeal','format','DoubleMat','mattype',1)
@@ -94,4 +98,5 @@
 		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()
 		WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
 		data=self.element_equation
@@ -104,4 +109,5 @@
 		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()
 		WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2)
 	# }}}
