Index: /issm/trunk-jpl/test/NightlyRun/python_skipped_tests.txt
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/python_skipped_tests.txt	(revision 14106)
+++ /issm/trunk-jpl/test/NightlyRun/python_skipped_tests.txt	(revision 14107)
@@ -11,4 +11,15 @@
 test418    needs Dakota
 test420    needs Dakota
-test1401    roundoff error in metric causes different meshes from matlab
-test1402    roundoff error in metric causes different meshes from matlab
+
+test1401,test1402
+Roundoff error in ComputeHessian and ComputeMetric causes different meshes
+from matlab, specifically in the handling of 0/0=nan, eps/0=inf, etc.  Since
+the mesh is of a different size, NR fails.  (Note Matlab test1402 currently
+fails.)
+
+test1205,test1206,test1207
+The expression for the thickness in the RoundSheetStaticEISMINT.par/py files
+includes an expression (1/2)^(4/3)-(r/(2*rmax))^(4/3).  For r close to rmax,
+the outer circumference, this equals roundoff zero, but differences
+propagate into the sixth digit of the thickness, which is enough to fail NR.
+
Index: /issm/trunk-jpl/test/NightlyRun/test1201.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1201.m	(revision 14106)
+++ /issm/trunk-jpl/test/NightlyRun/test1201.m	(revision 14107)
@@ -6,8 +6,8 @@
 for stabilization=1:3;
 	%The goal is to test the prognostic model
-	md=bamg(model(),'domain','../Exp/SquareEISMINT.exp','hmax',3000);
+	md=bamg(model(),'domain','../Exp/SquareEISMINT.exp','hmax',3000.);
 	md=setmask(md,'all','');
 	md=parameterize(md,'../Par/SquareEISMINT.par');
-	md.surfaceforcings.mass_balance(:)=0;
+	md.surfaceforcings.mass_balance(:)=0.;
 	md=setflowequation(md,'macayeal','all');
 	md.cluster=generic('name',oshostname(),'np',8);
@@ -15,5 +15,5 @@
 	disp('      initial velocity');
 	md.initialization.vx=zeros(md.mesh.numberofvertices,1);
-	md.initialization.vy=-400*ones(md.mesh.numberofvertices,1);
+	md.initialization.vy=-400.*ones(md.mesh.numberofvertices,1);
 
 	%Stabilization
@@ -29,7 +29,7 @@
 	md.prognostic.spcthickness=NaN*ones(md.mesh.numberofvertices+1,length(times));
 	md.prognostic.spcthickness(end,:)=times;
-	md.prognostic.spcthickness(pos,:)=repmat(500+100*sin(2*pi*times/200),length(pos),1);
+	md.prognostic.spcthickness(pos,:)=repmat(500.+100.*sin(2.*pi*times/200.),length(pos),1);
 	if stabilization==3,
-		pos=find(isnan(md.prognostic.spcthickness)); md.prognostic.spcthickness(pos)=500; %No NaN for DG
+		pos=find(isnan(md.prognostic.spcthickness)); md.prognostic.spcthickness(pos)=500.; %No NaN for DG
 	end
 
@@ -43,11 +43,11 @@
 
 %plot results
-[elements,x,y,z,s,h1]=SectionValues(md,results{1},'../Exp/CrossLineEISMINT.exp',100);
-[elements,x,y,z,s,h2]=SectionValues(md,results{2},'../Exp/CrossLineEISMINT.exp',100);
-[elements,x,y,z,s,h3]=SectionValues(md,results{3},'../Exp/CrossLineEISMINT.exp',100);
-[elements,x,y,z,s,hth]=SectionValues(md, 500+100*sin(2*pi/200*(500-md.mesh.y/400)),'../Exp/CrossLineEISMINT.exp',100);
+[elements,x,y,z,s,h1]=SectionValues(md,results{1},'../Exp/CrossLineEISMINT.exp',100.);
+[elements,x,y,z,s,h2]=SectionValues(md,results{2},'../Exp/CrossLineEISMINT.exp',100.);
+[elements,x,y,z,s,h3]=SectionValues(md,results{3},'../Exp/CrossLineEISMINT.exp',100.);
+[elements,x,y,z,s,hth]=SectionValues(md, 500+100*sin(2*pi/200*(500-md.mesh.y/400)),'../Exp/CrossLineEISMINT.exp',100.);
 plot(s,h1,'r',s,h2,'b',s,h3,'g',s,hth,'k')
 legend('Art. diff.','No Art. diff.','D.G.','Theoretical')
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	export_fig([issmdir() '/website/doc_pdf/validation/Images/EISMINT/IceShelf/eismintmasscthickness.pdf']);
@@ -56,5 +56,5 @@
 %Fields and tolerances to track changes
 field_names     ={ ...
-	'ThicknessArtDigg','ThicknessNoArtDiff','ThicknessDG' ...
+	'ThicknessArtDiff','ThicknessNoArtDiff','ThicknessDG' ...
 };
 field_tolerances={...
Index: /issm/trunk-jpl/test/NightlyRun/test1201.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1201.py	(revision 14107)
+++ /issm/trunk-jpl/test/NightlyRun/test1201.py	(revision 14107)
@@ -0,0 +1,78 @@
+import numpy
+from model import *
+from bamg import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+"""
+This test is a test from the EISMINT for Ice shelves Vincent Rommelaere 1996
+"""
+
+printingflag=False
+
+results=[]
+
+for stabilization in xrange(1,4):
+	#The goal is to test the prognostic model
+	md=bamg(model(),'domain','../Exp/SquareEISMINT.exp','hmax',3000.)
+	md=setmask(md,'all','')
+	md=parameterize(md,'../Par/SquareEISMINT.py')
+	md.surfaceforcings.mass_balance[:]=0.
+	md=setflowequation(md,'macayeal','all')
+	md.cluster=generic('name',oshostname(),'np',8)
+
+	print "      initial velocity"
+	md.initialization.vx=numpy.zeros((md.mesh.numberofvertices,1))
+	md.initialization.vy=-400.*numpy.ones((md.mesh.numberofvertices,1))
+
+	#Stabilization
+	if stabilization==2:
+		md.prognostic.stabilization=0
+	else:
+		md.prognostic.stabilization=stabilization
+
+	#spc thickness
+	pos=numpy.nonzero(md.mesh.y>199999.9)[0]
+	times=numpy.arange(0,501)
+	md.prognostic.spcthickness=float('NaN')*numpy.ones((md.mesh.numberofvertices+1,numpy.size(times)))
+	md.prognostic.spcthickness[-1,:]=times
+	md.prognostic.spcthickness[pos,:]=numpy.tile(500.+100.*numpy.sin(2.*numpy.pi*times/200.),(numpy.size(pos),1))
+	if stabilization==3:
+		pos=numpy.nonzero(numpy.isnan(md.prognostic.spcthickness))
+		md.prognostic.spcthickness[pos]=500.    #No NaN for DG
+
+	#solve
+	md.transient.isdiagnostic=False
+	md.settings.output_frequency=500    #keep only last step
+	md.verbose=verbose()
+	md=solve(md,TransientSolutionEnum())
+	results.append(md.results.TransientSolution[-1].Thickness)
+
+#plot results
+#[elements,x,y,z,s,h1]=SectionValues(md,results[0],'../Exp/CrossLineEISMINT.exp',100.);
+#[elements,x,y,z,s,h2]=SectionValues(md,results[1],'../Exp/CrossLineEISMINT.exp',100.);
+#[elements,x,y,z,s,h3]=SectionValues(md,results[2],'../Exp/CrossLineEISMINT.exp',100.);
+#[elements,x,y,z,s,hth]=SectionValues(md, 500+100*sin(2*pi/200*(500-md.mesh.y/400)),'../Exp/CrossLineEISMINT.exp',100.);
+#plot(s,h1,'r',s,h2,'b',s,h3,'g',s,hth,'k')
+#legend('Art. diff.','No Art. diff.','D.G.','Theoretical')
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	export_fig([issmdir() '/website/doc_pdf/validation/Images/EISMINT/IceShelf/eismintmasscthickness.pdf']);
+
+#Fields and tolerances to track changes
+field_names     =[ \
+	'ThicknessArtDiff','ThicknessNoArtDiff','ThicknessDG' \
+]
+field_tolerances=[\
+	1e-13, 1e-13, 1e-13\
+]
+field_values=[
+	results[0], \
+	results[1], \
+	results[2], \
+]
Index: /issm/trunk-jpl/test/NightlyRun/test1202.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1202.m	(revision 14106)
+++ /issm/trunk-jpl/test/NightlyRun/test1202.m	(revision 14107)
@@ -19,5 +19,5 @@
 plotmodel(md,'data',vx,'contourlevels',{0,20,40,60,60,100,120,140,160,180,-20,-40,-60,-80,-100,-120,-140,-160,-180}, ...
 	'contourcolor','k')
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	printmodel('eismintdiag1vx','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
@@ -27,5 +27,5 @@
 plotmodel(md,'data',vy,'contourlevels',{-100,-200,-300,-400,-500,-600,-700,-800,-900,-1000},...
 	'contourcolor','k')
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	printmodel('eismintdiag1vy','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
Index: /issm/trunk-jpl/test/NightlyRun/test1202.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1202.py	(revision 14107)
+++ /issm/trunk-jpl/test/NightlyRun/test1202.py	(revision 14107)
@@ -0,0 +1,54 @@
+import numpy
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+"""
+Test on the diagnostic model and the prognostic in 2d
+"""
+
+printingflag=False
+
+#tests 3 and 4: using Glen's flow law
+md=model()
+md=triangle(md,'../Exp/SquareEISMINT.exp',3550.)
+md=setmask(md,'all','')
+md=parameterize(md,'../Par/SquareEISMINT.py')
+md=setflowequation(md,'macayeal','all')    #MacAyeal's model and 2d
+
+#Compute solution for MacAyeal's model 
+md.cluster=generic('name',oshostname(),'np',8)
+md=solve(md,DiagnosticSolutionEnum())
+
+#plot results
+vx=md.results.DiagnosticSolution.Vx
+vy=md.results.DiagnosticSolution.Vy
+
+#plotmodel(md,'data',vx,'contourlevels',{0,20,40,60,60,100,120,140,160,180,-20,-40,-60,-80,-100,-120,-140,-160,-180}, ...
+#	'contourcolor','k')
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	printmodel('eismintdiag1vx','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
+#	system(['mv eismintdiag1vx.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']);
+
+#plotmodel(md,'data',vy,'contourlevels',{-100,-200,-300,-400,-500,-600,-700,-800,-900,-1000},...
+#	'contourcolor','k')
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	printmodel('eismintdiag1vy','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
+#	system(['mv eismintdiag1vy.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']);
+
+#Fields and tolerances to track changes
+field_names     =['Vx','Vy']
+field_tolerances=[1e-13,1e-13]
+field_values=[\
+	vx, \
+	vy, \
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test1203.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1203.m	(revision 14106)
+++ /issm/trunk-jpl/test/NightlyRun/test1203.m	(revision 14107)
@@ -2,5 +2,5 @@
 printingflag=false;
 
-%test 5 and 6 : 
+%test 5 and 6: 
 md=model();
 md=triangle(md,'../Exp/SquareEISMINT.exp',5100.); %test3
@@ -11,5 +11,5 @@
 %Impose a non zero velocity on the upper boundary condition (y=max(y))
 pos=find(md.mesh.y==max(md.mesh.y));
-md.diagnostic.spcvy(pos)=400*(((md.mesh.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.mesh.x(pos)-100000)/25000).^2);
+md.diagnostic.spcvy(pos)=400.*(((md.mesh.x(pos)-100000.)/25000.).^2-ones(size(pos,1),1)).*heaviside((1.+eps)*ones(size(pos,1),1)-((md.mesh.x(pos)-100000.)/25000.).^2);
 
 %Compute solution for MacAyeal's model 
@@ -23,5 +23,5 @@
 plotmodel(md,'data',vx,'contourlevels',{0,20,40,60,80,100,-20,-40,-60,-80,-100},...
 	'contourcolor','k')
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	printmodel('eismintdiag2vx','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
@@ -30,5 +30,5 @@
 plotmodel(md,'data',vy,'contourlevels',{-100,-200,-300,-400,-500,-600,-700,-800,-900,-1000},...
 	'contourcolor','k')
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	printmodel('eismintdiag2vy','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
Index: /issm/trunk-jpl/test/NightlyRun/test1203.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1203.py	(revision 14107)
+++ /issm/trunk-jpl/test/NightlyRun/test1203.py	(revision 14107)
@@ -0,0 +1,58 @@
+import numpy
+import sys
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+"""
+Test on the diagnostic model and the prognostic in 2d
+"""
+
+printingflag=False
+
+#test 5 and 6: 
+md=model()
+md=triangle(md,'../Exp/SquareEISMINT.exp',5100.)    #test3
+md=setmask(md,'all','')
+md=parameterize(md,'../Par/SquareEISMINT.py')
+md=setflowequation(md,'macayeal','all')    #MacAyeal's model and 2d
+
+#Impose a non zero velocity on the upper boundary condition (y=max(y))
+pos=numpy.nonzero(md.mesh.y==numpy.max(md.mesh.y))
+md.diagnostic.spcvy[pos]=400.*(((md.mesh.x[pos].reshape(-1,1)-100000.)/25000.)**2-numpy.ones((numpy.size(pos),1)))*heaviside((1.+sys.float_info.epsilon)*numpy.ones((numpy.size(pos),1))-((md.mesh.x[pos].reshape(-1,1)-100000.)/25000.)**2)
+
+#Compute solution for MacAyeal's model 
+md.cluster=generic('name',oshostname(),'np',8)
+md=solve(md,DiagnosticSolutionEnum())
+
+vx=md.results.DiagnosticSolution.Vx
+vy=md.results.DiagnosticSolution.Vy
+
+#plot results
+#plotmodel(md,'data',vx,'contourlevels',{0,20,40,60,80,100,-20,-40,-60,-80,-100},...
+#	'contourcolor','k')
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	printmodel('eismintdiag2vx','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
+#	system(['mv eismintdiag2vx.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']);
+#plotmodel(md,'data',vy,'contourlevels',{-100,-200,-300,-400,-500,-600,-700,-800,-900,-1000},...
+#	'contourcolor','k')
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	printmodel('eismintdiag2vy','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
+#	system(['mv eismintdiag2vy.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']);
+
+#Fields and tolerances to track changes
+field_names     =['Vx','Vy']
+field_tolerances=[1e-13,1e-13]
+field_values=[\
+	vx, \
+	vy, \
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test1204.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1204.m	(revision 14106)
+++ /issm/trunk-jpl/test/NightlyRun/test1204.m	(revision 14107)
@@ -11,5 +11,5 @@
 %Impose a non zero velocity on the upper boundary condition (y=max(y))
 pos=find(md.mesh.y==max(md.mesh.y));
-md.diagnostic.spcvy(pos)=400*(((md.mesh.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.mesh.x(pos)-100000)/25000).^2);
+md.diagnostic.spcvy(pos)=400.*(((md.mesh.x(pos)-100000.)/25000.).^2-ones(size(pos,1),1)).*heaviside((1.+eps)*ones(size(pos,1),1)-((md.mesh.x(pos)-100000.)/25000.).^2);
 
 %Compute solution for MacAyeal's model 
@@ -21,11 +21,11 @@
 md.initialization.vy=(md.results.DiagnosticSolution.Vy);
 
-md.timestepping.time_step=1;
-md.timestepping.final_time=5000;
+md.timestepping.time_step=1.;
+md.timestepping.final_time=5000.;
 md.prognostic.stabilization=1;
 md=solve(md,TransientSolutionEnum());
 
 plotmodel(md,'data',(md.results.TransientSolution(end).Vx))
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	printmodel('eisminttrans2vx','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
@@ -34,5 +34,5 @@
 
 plotmodel(md,'data',(md.results.TransientSolution(end).Vy))
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	printmodel('eisminttrans2vy','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
@@ -41,5 +41,5 @@
 
 plotmodel(md,'data',(md.results.TransientSolution(end).Thickness))
-if printingflag, 
+if printingflag,
 	set(gcf,'Color','w')
 	printmodel('eisminttrans2thickness','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
Index: /issm/trunk-jpl/test/NightlyRun/test1204.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1204.py	(revision 14107)
+++ /issm/trunk-jpl/test/NightlyRun/test1204.py	(revision 14107)
@@ -0,0 +1,70 @@
+import numpy
+import sys
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+"""
+Test on the diagnostic model and the prognostic in 2d
+"""
+
+printingflag=False
+
+#tests 3 and 4: using Glen's flow law
+md=model()
+md=triangle(md,'../Exp/SquareEISMINT.exp',3550.)
+md=setmask(md,'all','')
+md=parameterize(md,'../Par/SquareEISMINT.py')
+md=setflowequation(md,'macayeal','all')    #MacAyeal's model and 2d
+
+#Impose a non zero velocity on the upper boundary condition (y=max(y))
+pos=numpy.nonzero(md.mesh.y==max(md.mesh.y))
+md.diagnostic.spcvy[pos]=400.*(((md.mesh.x[pos].reshape(-1,1)-100000.)/25000.)**2-numpy.ones((numpy.size(pos),1)))*heaviside((1.+sys.float_info.epsilon)*numpy.ones((numpy.size(pos),1))-((md.mesh.x[pos].reshape(-1,1)-100000.)/25000.)**2)
+
+#Compute solution for MacAyeal's model 
+md.cluster=generic('name',oshostname(),'np',8)
+md=solve(md,DiagnosticSolutionEnum())
+
+#plot results
+md.initialization.vx=md.results.DiagnosticSolution.Vx
+md.initialization.vy=md.results.DiagnosticSolution.Vy
+
+md.timestepping.time_step=1.
+md.timestepping.final_time=5000.
+md.prognostic.stabilization=1
+md=solve(md,TransientSolutionEnum())
+
+#plotmodel(md,'data',(md.results.TransientSolution(end).Vx))
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	printmodel('eisminttrans2vx','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
+#	system(['mv eisminttrans2vx.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']);
+
+#plotmodel(md,'data',(md.results.TransientSolution(end).Vy))
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	printmodel('eisminttrans2vy','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
+#	system(['mv eisminttrans2vy.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']);
+
+#plotmodel(md,'data',(md.results.TransientSolution(end).Thickness))
+if printingflag:
+	pass
+#	set(gcf,'Color','w')
+#	printmodel('eisminttrans2thickness','png','margin','on','marginsize',25,'frame','off','resolution',2,'hardcopy','off');
+#	system(['mv eisminttrans2thickness.png ' ISSM_DIR '/website/doc_pdf/validation/Images/EISMINT/IceShelf ']);
+
+#Fields and tolerances to track changes
+field_names     =['Vx','Vy','Thickness']
+field_tolerances=[1e-13,1e-13,1e-13]
+field_values=[\
+	md.results.TransientSolution[-1].Vx, \
+	md.results.TransientSolution[-1].Vy, \
+	md.results.TransientSolution[-1].Thickness, \
+	]
Index: /issm/trunk-jpl/test/NightlyRun/test1208.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1208.m	(revision 14106)
+++ /issm/trunk-jpl/test/NightlyRun/test1208.m	(revision 14107)
@@ -1,5 +1,5 @@
 %EISMINT benchmark experiment A
 numlayers=8;
-resolution=50000;
+resolution=50000.;
 
 %To begin with the numerical model
@@ -14,12 +14,12 @@
 %Spc the nodes on the bed
 pos=find(md.mesh.vertexonbed);
-md.diagnostic.spcvx(pos)=0;
-md.diagnostic.spcvy(pos)=0;
-md.diagnostic.spcvz(pos)=0;
+md.diagnostic.spcvx(pos)=0.;
+md.diagnostic.spcvy(pos)=0.;
+md.diagnostic.spcvz(pos)=0.;
 
 %Adapt the time steps to the resolution
-md.timestepping.time_step=15;
+md.timestepping.time_step=15.;
 md.settings.output_frequency=500;
-md.timestepping.final_time=30000;
+md.timestepping.final_time=30000.;
 md.prognostic.stabilization=1;
 md.thermal.stabilization=1;
Index: /issm/trunk-jpl/test/NightlyRun/test1208.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test1208.py	(revision 14107)
+++ /issm/trunk-jpl/test/NightlyRun/test1208.py	(revision 14107)
@@ -0,0 +1,58 @@
+import numpy
+from model import *
+from triangle import *
+from setmask import *
+from parameterize import *
+from setflowequation import *
+from EnumDefinitions import *
+from solve import *
+from MatlabFuncs import *
+
+"""
+EISMINT benchmark experiment A
+"""
+
+numlayers=8
+resolution=50000.
+
+#To begin with the numerical model
+md=triangle(model(),'../Exp/SquareEISMINT750000.exp',resolution)
+md=setmask(md,'','')
+md=parameterize(md,'../Par/RoundSheetEISMINT.py')
+
+#We extrude the model to have a 3d model
+md.extrude(numlayers,1.)
+md=setflowequation(md,'hutter','all')
+
+#Spc the nodes on the bed
+pos=numpy.nonzero(md.mesh.vertexonbed)
+md.diagnostic.spcvx[pos]=0.
+md.diagnostic.spcvy[pos]=0.
+md.diagnostic.spcvz[pos]=0.
+
+#Adapt the time steps to the resolution
+md.timestepping.time_step=15.
+md.settings.output_frequency=500
+md.timestepping.final_time=30000.
+md.prognostic.stabilization=1
+md.thermal.stabilization=1
+
+#Now we can solve the problem 
+md.cluster=generic('name',oshostname(),'np',8)
+md=solve(md,TransientSolutionEnum())
+
+#Fields and tolerances to track changes
+field_names     =['Vx','Vy','Vz','Vel','Pressure','Thickness','Bed','Surface','Temperature','BasalforcingsMeltingRate']
+field_tolerances=[1e-08,1e-08,1e-07,1e-08,1e-08,1e-08,1e-08,1e-08,1e-07,1e-07]
+field_values=[\
+	md.results.TransientSolution[-1].Vx,\
+	md.results.TransientSolution[-1].Vy,\
+	md.results.TransientSolution[-1].Vz,\
+	md.results.TransientSolution[-1].Vel,\
+	md.results.TransientSolution[-1].Pressure,\
+	md.results.TransientSolution[-1].Thickness,\
+	md.results.TransientSolution[-1].Bed,\
+	md.results.TransientSolution[-1].Surface,\
+	md.results.TransientSolution[-1].Temperature,\
+	md.results.TransientSolution[-1].BasalforcingsMeltingRate,\
+	]
