Index: /issm/trunk/src/m/classes/public/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/classes/public/ismodelselfconsistent.m	(revision 4890)
+++ /issm/trunk/src/m/classes/public/ismodelselfconsistent.m	(revision 4891)
@@ -54,26 +54,16 @@
 %}}}
 %ELEMENTSTYPE{{{1
-if size(md.elements_type,1)~=md.numberofelements | size(md.elements_type,2)~=2,
-	error(['model not consistent: types of elements have not been set properly, run setelementstype first'])
-end
-if any(ones(md.numberofelements,1)-((md.elements_type(:,1)==HutterFormulationEnum) + (md.elements_type(:,1)==MacAyealFormulationEnum)  + (md.elements_type(:,1)==PattynFormulationEnum)))
-	error(['model not consistent: types of elements have not been set properly, run setelementstype first'])
-end
-if any(ones(md.numberofelements,1)-((md.elements_type(:,2)==StokesFormulationEnum) + (md.elements_type(:,2)==NoneFormulationEnum)))
-	error(['model not consistent: types of elements have not been set properly, run setelementstype first'])
-end
+%Check the size of elements_type
+fields={'elements_type'};
+checksize(md,fields,[md.numberofelements 2]);
+%Check the values of elements_type(1)
+checkvalues(md,{'elements_type(:,1)'},[MacAyealFormulationEnum() HutterFormulationEnum() PattynFormulationEnum()]);
+%Check the values of elements_type(2)
+checkvalues(md,{'elements_type(:,2)'},[StokesFormulationEnum() NoneFormulationEnum()]);
 if (md.dim==2),
-	if (ismember(PattynFormulationEnum,md.elements_type(:,1)) |  ismember(StokesFormulationEnum,md.elements_type(:,2))),
-		error(['model not consistent: for a 2d model, only MacAyeal''s and Hutter''s elements are allowed']);
-	end
+	checkvalues(md,{'elements_type(:,1)'},[MacAyealFormulationEnum() HutterFormulationEnum()]);
 end
 if (md.ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),
 	error(['model not consistent: no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']);
-end
-if (md.analysis_type==DiagnosticSolutionEnum & any(ismember(MacAyealFormulationEnum,md.elements_type(:,1)) & ismember(PattynFormulationEnum,md.elements_type(:,1))))
-	error(['model not consistent: coupling MacAyeal/Pattyn not implemented yet']);
-end
-if (md.isstokes & md.analysis_type==Transient3DSolutionEnum());
-	error(['model not consistent: Stokes transient not implemented yet']);
 end
 %}}}
Index: /issm/trunk/src/m/classes/public/setelementstype.m
===================================================================
--- /issm/trunk/src/m/classes/public/setelementstype.m	(revision 4890)
+++ /issm/trunk/src/m/classes/public/setelementstype.m	(revision 4891)
@@ -107,6 +107,6 @@
 if ~isnan(bordergrids2d),
 	penalties=[];
-	for	i=1:numlayers,
-		penalties=[penalties [bordergrids2d+md.numberofgrids2d*(i-1)]];
+	for	i=1:numlayers-1,
+		penalties=[penalties; [bordergrids2d bordergrids2d+md.numberofgrids2d*(i)]];
 	end
 	md.penalties=penalties;
