Index: /issm/trunk/test/Validation/ControlMethods/runmeB.m
===================================================================
--- /issm/trunk/test/Validation/ControlMethods/runmeB.m	(revision 898)
+++ /issm/trunk/test/Validation/ControlMethods/runmeB.m	(revision 899)
@@ -72,6 +72,6 @@
 	md.np=8;
 	%md.cluster='wilkes';
-	%md=solve(md,'control','ice');
-	md=solve(md,'control','cielo');
-	%md=solve(md,'control','macayeal');
+	%md=solve(md,'analysis_type','control','package','ice');
+	md=solve(md,'analysis_type','control','package','cielo');
+	%md=solve(md,'analysis_type','control','package','macayeal');
 end
Index: /issm/trunk/test/Validation/ControlMethods/runmedrag.m
===================================================================
--- /issm/trunk/test/Validation/ControlMethods/runmedrag.m	(revision 898)
+++ /issm/trunk/test/Validation/ControlMethods/runmedrag.m	(revision 899)
@@ -69,6 +69,6 @@
 
 %md.cluster='wilkes';
-%md=solve(md,'control','ice');
-md=solve(md,'control','cielo');
-%md=solve(md,'control','macayeal');
+%md=solve(md,'analysis_type','control','package','ice');
+md=solve(md,'analysis_type','control','package','cielo');
+%md=solve(md,'analysis_type','control','package','macayeal');
 end
Index: /issm/trunk/test/Validation/EISMINT/Diagnostic1/Square.par
===================================================================
--- /issm/trunk/test/Validation/EISMINT/Diagnostic1/Square.par	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/Diagnostic1/Square.par	(revision 899)
@@ -85,5 +85,5 @@
 	disp('      boundary conditions for diagnostic model: ');
 	%Build gridonicefront, array of boundary grids belonging to the icefront:
-	gridinsideicefront=ArgusContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
+	gridinsideicefront=ContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
 	gridonicefront=double(md.gridonboundary & gridinsideicefront);
 
Index: /issm/trunk/test/Validation/EISMINT/Diagnostic1/runme.m
===================================================================
--- /issm/trunk/test/Validation/EISMINT/Diagnostic1/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/Diagnostic1/runme.m	(revision 899)
@@ -10,5 +10,5 @@
 
 %Compute solution for MacAyeal's model 
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
 %plot results
Index: /issm/trunk/test/Validation/EISMINT/Diagnostic2/Square.par
===================================================================
--- /issm/trunk/test/Validation/EISMINT/Diagnostic2/Square.par	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/Diagnostic2/Square.par	(revision 899)
@@ -85,5 +85,5 @@
 	disp('      boundary conditions for diagnostic model: ');
 	%Build gridonicefront, array of boundary grids belonging to the icefront:
-	gridinsideicefront=ArgusContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
+	gridinsideicefront=ContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
 	gridonicefront=double(md.gridonboundary & gridinsideicefront);
 
@@ -102,7 +102,4 @@
 	pos=find(md.y==max(md.y)); %grids on the upper boundary condition
 	md.dirichletvalues_diag(pos,2)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);
-	md.segmentonneumann_prog=md.segments(pos,:);
-	md.neumannvalues_prog=zeros(size(md.segmentonneumann_prog,1),1);
-	md.neumannvalues_prog(:)=NaN; %free radiation
 	
 	pos=find(gridonicefront(md.segments(:,1)) | gridonicefront(md.segments(:,2)));
Index: /issm/trunk/test/Validation/EISMINT/Diagnostic2/runme.m
===================================================================
--- /issm/trunk/test/Validation/EISMINT/Diagnostic2/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/Diagnostic2/runme.m	(revision 899)
@@ -10,5 +10,5 @@
 
 %Compute solution for MacAyeal's model 
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
 %plot results
Index: /issm/trunk/test/Validation/EISMINT/MassConservation/Square.par
===================================================================
--- /issm/trunk/test/Validation/EISMINT/MassConservation/Square.par	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/MassConservation/Square.par	(revision 899)
@@ -85,5 +85,5 @@
 	disp('      boundary conditions for diagnostic model: ');
 	%Build gridonicefront, array of boundary grids belonging to the icefront:
-	gridinsideicefront=ArgusContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
+	gridinsideicefront=ContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
 	gridonicefront=double(md.gridonboundary & gridinsideicefront);
 
Index: /issm/trunk/test/Validation/EISMINT/MassConservation/runme.m
===================================================================
--- /issm/trunk/test/Validation/EISMINT/MassConservation/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/MassConservation/runme.m	(revision 899)
@@ -15,8 +15,8 @@
 
 %launch transient solution
-md=solve(md,'transient');
+md=solve(md,'analysis_type','transient','package','ice');
 
 %plot results
-plotmodel(md,'data',md.transient_results(end).thickness,'sectionvalue','CrossLine.exp')
+plotmodel(md,'data',md.results.transient(end).thickness,'sectionvalue','CrossLine.exp')
 
 %Don't forget to add these lines in icetransient2d.m, just before the computation of the thickness to change the thickness on the upper boundary condition
Index: /issm/trunk/test/Validation/EISMINT/Transient/Square.par
===================================================================
--- /issm/trunk/test/Validation/EISMINT/Transient/Square.par	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/Transient/Square.par	(revision 899)
@@ -85,5 +85,5 @@
 	disp('      boundary conditions for diagnostic model: ');
 	%Build gridonicefront, array of boundary grids belonging to the icefront:
-	gridinsideicefront=ArgusContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
+	gridinsideicefront=ContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
 	gridonicefront=double(md.gridonboundary & gridinsideicefront);
 
@@ -102,5 +102,4 @@
 	pos=find(md.y==max(md.y)); %grids on the upper boundary condition
 	md.dirichletvalues_diag(pos,2)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);
-	md.segmentonneumann_prog=md.segments(pos,:);
 	md.neumannvalues_prog=zeros(size(md.segmentonneumann_prog,1),1);
 	md.neumannvalues_prog(:)=NaN; %free radiation
Index: /issm/trunk/test/Validation/EISMINT/Transient/runme.m
===================================================================
--- /issm/trunk/test/Validation/EISMINT/Transient/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/EISMINT/Transient/runme.m	(revision 899)
@@ -9,11 +9,11 @@
 
 %Compute solution for MacAyeal's model 
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
 %Launch transient solution
 md.ndt=5000*md.yts; %time of evolution
 md.dt=500*md.yts; %time vetween two iterations
-md=solve(md,'transient');
+md=solve(md,'analysis_type','transient');
 
 %plot results
-plotmodel(md,'data',md.transient_results(end).vx,'data',md.transient_results(end).vy,'data',md.transient_results(end).thickness)
+plotmodel(md,'data',md.results.transient(end).vx,'data',md.results.transient(end).vy,'data',md.results.transient(end).thickness)
Index: /issm/trunk/test/Validation/ISMIP/TestA/Square.par
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestA/Square.par	(revision 898)
+++ /issm/trunk/test/Validation/ISMIP/TestA/Square.par	(revision 899)
@@ -38,5 +38,4 @@
 
 	%control
-	md.control_type={'drag'}; %'drag', 'B'
 	md.nsteps=5;
 	md.tolx=10^-4;
@@ -88,5 +87,5 @@
 	disp('      boundary conditions for diagnostic model: ');
 	%Build gridonicefront, array of boundary grids belonging to the icefront:
-	gridinsideicefront=ArgusContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
+	gridinsideicefront=ContourToMesh(md.elements,md.x,md.y,expread('Front.exp',1),'node',2);
 	gridonicefront=double(md.gridonboundary & gridinsideicefront);
 
Index: /issm/trunk/test/Validation/ISMIP/TestA/runme.m
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestA/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ISMIP/TestA/runme.m	(revision 899)
@@ -34,5 +34,5 @@
 
 %Compute the diagnostic
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
-plotmodel(md,'data','vx','data','vy','data','vz','layer#all',md.numlayers,'contourlevels',{9.2,18.4,27.6,46,73.6,82.8},'contourlevels',{0,-1.2,-0.9,-0.6,-0.3,1.2},'contourlevels',{-5.2,-3.9,-1.3,0,1.3,3.9,5.2})
+plotmodel(md,'data',md.results.diagnostic.vx,'data',md.results.diagnostic.vy,'data',md.results.diagnostic.vz,'layer#all',md.numlayers,'contourlevels',{9.2,18.4,27.6,46,73.6,82.8},'contourlevels',{0,-1.2,-0.9,-0.6,-0.3,1.2},'contourlevels',{-5.2,-3.9,-1.3,0,1.3,3.9,5.2})
Index: /issm/trunk/test/Validation/ISMIP/TestB/runme.m
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestB/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ISMIP/TestB/runme.m	(revision 899)
@@ -34,5 +34,5 @@
 
 %Compute the diagnostic
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
-plotmodel(md,'data','vx','data','vy','data','vz','layer#all',md.numlayers)
+plotmodel(md,'data',md.results.diagnostic.vx,'data',md.results.diagnostic.vy,'data',md.results.diagnostic.vz,'layer#all',md.numlayers)
Index: /issm/trunk/test/Validation/ISMIP/TestC/runme.m
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestC/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ISMIP/TestC/runme.m	(revision 899)
@@ -31,5 +31,5 @@
 
 %Compute the diagnostic
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
-plotmodel(md,'data','vx','data','vy','data','vz','layer#all',md.numlayers,'contourlevels',{10.878,16.317,21.756,43.51,59.829},'contourlevels',{-2.421,-1.614,-0.807,3.228},'contourlevels',{-2.48,-1.86,0,0.62,1.24,1.86,2.48})
+plotmodel(md,'data',md.results.diagnostic.vx,'data',md.results.diagnostic.vy,'data',md.results.diagnostic.vz,'layer#all',md.numlayers,'contourlevels',{10.878,16.317,21.756,43.51,59.829},'contourlevels',{-2.421,-1.614,-0.807,3.228},'contourlevels',{-2.48,-1.86,0,0.62,1.24,1.86,2.48})
Index: /issm/trunk/test/Validation/ISMIP/TestD/runme.m
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestD/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ISMIP/TestD/runme.m	(revision 899)
@@ -34,7 +34,6 @@
 %md.penalties=[posx,posx2;posy,posy2];
 
-error
 %Compute the diagnostic
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
-plotmodel(md,'data','vx','data','vy','data','vz','layer#all',md.numlayers)
+plotmodel(md,'data',md.results.diagnostic.vx,'data',md.results.diagnostic.vy,'data',md.results.diagnostic.vz,'layer#all',md.numlayers)
Index: /issm/trunk/test/Validation/ISMIP/TestE/runme.m
===================================================================
--- /issm/trunk/test/Validation/ISMIP/TestE/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ISMIP/TestE/runme.m	(revision 899)
@@ -27,5 +27,5 @@
 
 %Compute the diagnostic
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
-plotmodel(md,'data','vx','data','vy','data','vz','layer#all',md.numlayers)
+plotmodel(md,'data',md.results.diagnostic.vx,'data',md.results.diagnostic.vy,'data',md.results.diagnostic.vz,'layer#all',md.numlayers)
Index: /issm/trunk/test/Validation/MacAyealVsPattyn/test1_iceshelf/runme.m
===================================================================
--- /issm/trunk/test/Validation/MacAyealVsPattyn/test1_iceshelf/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/MacAyealVsPattyn/test1_iceshelf/runme.m	(revision 899)
@@ -10,11 +10,11 @@
 
 %Compute solution for a 2d model
-md=solve(md,'diagnostic','ice');
-vel_2d=md.vel;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_2d=md.results.diagnostic.vel;
 
 %Compute solution for a 3d model
 md=extrude(md,5,3);
 md=setelementstype(md,'Pattyn','Pattyn.exp','fill','Macayeal');
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
 %Calculate the average velocity on each grid
@@ -24,5 +24,5 @@
 for i=1:md.numberofgrids2d
 	for j=1:(md.numlayers-1)
-		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.vel(i+j*md.numberofgrids2d,1)+md.vel(i+(j-1)*md.numberofgrids2d,1));
+		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.results.diagnostic.veli+j*md.numberofgrids2d,1)+md.results.diagnostic.vel(i+(j-1)*md.numberofgrids2d,1));
 	end
 	vel_3d(i,1)=grid_vel;
Index: /issm/trunk/test/Validation/MacAyealVsPattyn/test2_icesheet/runme.m
===================================================================
--- /issm/trunk/test/Validation/MacAyealVsPattyn/test2_icesheet/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/MacAyealVsPattyn/test2_icesheet/runme.m	(revision 899)
@@ -10,11 +10,11 @@
 %Compute solution for a 2d model
 md=setelementstype(md,'Macayeal','all');
-md=solve(md,'diagnostic','ice');
-vel_2d=md.vel;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_2d=md.results.diagnostic.vel;
 
 %Compute solution for a 3d model
 md=extrude(md,5,3);
 md=setelementstype(md,'Pattyn','all');
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
 %Calculate the average velocity on each grid
@@ -24,5 +24,5 @@
 for i=1:md.numberofgrids2d
 	for j=1:(md.numlayers-1)
-		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.vel(i+j*md.numberofgrids2d,1)+md.vel(i+(j-1)*md.numberofgrids2d,1));
+		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.results.diagnostic.vel(i+j*md.numberofgrids2d,1)+md.results.diagnostic.vel(i+(j-1)*md.numberofgrids2d,1));
 	end
 	vel_3d(i,1)=grid_vel;
Index: /issm/trunk/test/Validation/MacAyealVsPattyn/test3_icesheet_iceshelf/runme.m
===================================================================
--- /issm/trunk/test/Validation/MacAyealVsPattyn/test3_icesheet_iceshelf/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/MacAyealVsPattyn/test3_icesheet_iceshelf/runme.m	(revision 899)
@@ -10,11 +10,11 @@
 %Compute solution for a 2d model
 md=setelementstype(md,'Macayeal','all');
-md=solve(md,'diagnostic','ice');
-vel_2d=md.vel;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_2d=md.results.diagnostic.vel;
 
 %Compute solution for a 3d model
 md=extrude(md,5,3);
 md=setelementstype(md,'Pattyn','all');
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
 %Calculate the average velocity on each grid
@@ -24,5 +24,5 @@
 for i=1:md.numberofgrids2d
 	for j=1:(md.numlayers-1)
-		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.vel(i+j*md.numberofgrids2d,1)+md.vel(i+(j-1)*md.numberofgrids2d,1));
+		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.results.diagnostic.vel(i+j*md.numberofgrids2d,1)+md.results.diagnostic.vel(i+(j-1)*md.numberofgrids2d,1));
 	end
 	vel_3d(i,1)=grid_vel;
Index: /issm/trunk/test/Validation/PattynStokes/test1_iceshelf/runme.m
===================================================================
--- /issm/trunk/test/Validation/PattynStokes/test1_iceshelf/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/PattynStokes/test1_iceshelf/runme.m	(revision 899)
@@ -11,10 +11,10 @@
 md=setelementstype(md,'Pattyn','all');
 
-md=solve(md,'diagnostic','ice');
-vel_pattyn=md.vel;
-vx_pattyn=md.vx;
-vy_pattyn=md.vy;
-vz_pattyn=md.vz;
-pressure_pattyn=md.pressure;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_pattyn=md.results.diagnostic.vel;
+vx_pattyn=md.results.diagnostic.vx;
+vy_pattyn=md.results.diagnostic.vy;
+vz_pattyn=md.results.diagnostic.vz;
+pressure_pattyn=md.results.diagnostic.pressure;
 
 mdpattyn=md;
@@ -29,5 +29,5 @@
 md=setelementstype(md,'Stokes','all','Pattyn','all');
 
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 vel_stokes=md.vel;
 vx_stokes=md.vx;
@@ -38,48 +38,2 @@
 mdstokes=md;
 save modelstokes mdstokes;
-
-error('debug')
-
-
-
-%Calculate the average velocity on each grid
-vel_3d=zeros(md.numberofgrids2d,1);
-grid_vel=0;
-
-for i=1:md.numberofgrids2d
-	for j=1:(md.numlayers-1)
-		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.vel(i+j*md.numberofgrids2d,1)+md.vel(i+(j-1)*md.numberofgrids2d,1));
-	end
-	vel_3d(i,1)=grid_vel;
-	grid_vel=0;
-end
-
-vel_diff=(vel_2d-vel_3d)./vel_2d;
-vel_diff(find(vel_2d==vel_3d))=0;
-
-%Plot of the velocity from the stokes and pattyn model 
-figure(1)
-subplot(2,2,1)
-p1=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-vel_pattyn,'FaceColor','interp','EdgeColor','none');
-title('MacAyeal model [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar; 
-   
-subplot(2,2,2)
-p2=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-vel_stokes,'FaceColor','interp','EdgeColor','none');
-title('Pattyn model [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar; 
-
-subplot(2,2,3)
-p3=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-(vel_pattyn-vel_stokes),'FaceColor','interp','EdgeColor','none');
-title('Relative misfit [%]','FontSize',14,'FontWeight','bold')
-colorbar;
-
-subplot(2,2,4)
-p3=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-(vel_pattyn-vel_stokes)*100,'FaceColor','interp','EdgeColor','none');
-title('Absolute misfit [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar;
-
Index: /issm/trunk/test/Validation/PattynStokes/test2_icesheet/runme.m
===================================================================
--- /issm/trunk/test/Validation/PattynStokes/test2_icesheet/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/PattynStokes/test2_icesheet/runme.m	(revision 899)
@@ -11,10 +11,10 @@
 md=extrude(md,'Pattyn','all');
 
-md=solve(md,'diagnostic','ice');
-vel_pattyn=md.vel;
-vx_pattyn=md.vx;
-vy_pattyn=md.vy;
-vz_pattyn=md.vz;
-pressure_pattyn=md.pressure;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_pattyn=md.results.diagnostic.vel;
+vx_pattyn=md.results.diagnostic.vx;
+vy_pattyn=md.results.diagnostic.vy;
+vz_pattyn=md.results.diagnostic.vz;
+pressure_pattyn=md.results.diagnostic.pressure;
 
 mdpattyn=md;
@@ -29,57 +29,12 @@
 md=extrude(md,'Pattyn','all','Stokes','all');
 
-md=solve(md,'diagnostic','ice');
-vel_stokes=md.vel;
-vx_stokes=md.vx;
-vy_stokes=md.vy;
-vz_stokes=md.vz;
-pressure_stokes=md.pressure;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_stokes=md.results.diagnostic.vel;
+vx_stokes=md.results.diagnostic.vx;
+vy_stokes=md.results.diagnostic.vy;
+vz_stokes=md.results.diagnostic.vz;
+pressure_stokes=md.results.diagnostic.pressure;
 
 mdstokes=md;
 save modelstokes mdstokes;
 
-error('debug')
-
-
-
-%Calculate the average velocity on each grid
-vel_3d=zeros(md.numberofgrids2d,1);
-grid_vel=0;
-
-for i=1:md.numberofgrids2d
-	for j=1:(md.numlayers-1)
-		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.vel(i+j*md.numberofgrids2d,1)+md.vel(i+(j-1)*md.numberofgrids2d,1));
-	end
-	vel_3d(i,1)=grid_vel;
-	grid_vel=0;
-end
-
-vel_diff=(vel_2d-vel_3d)./vel_2d;
-vel_diff(find(vel_2d==vel_3d))=0;
-
-%Plot of the velocity from the stokes and pattyn model 
-figure(1)
-subplot(2,2,1)
-p1=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-vel_pattyn,'FaceColor','interp','EdgeColor','none');
-title('MacAyeal model [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar; 
-   
-subplot(2,2,2)
-p2=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-vel_stokes,'FaceColor','interp','EdgeColor','none');
-title('Pattyn model [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar; 
-
-subplot(2,2,3)
-p3=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-(vel_pattyn-vel_stokes),'FaceColor','interp','EdgeColor','none');
-title('Relative misfit [%]','FontSize',14,'FontWeight','bold')
-colorbar;
-
-subplot(2,2,4)
-p3=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-(vel_pattyn-vel_stokes)*100,'FaceColor','interp','EdgeColor','none');
-title('Absolute misfit [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar;
-
Index: /issm/trunk/test/Validation/PattynStokes/test3_icesheet_iceshelf/runme.m
===================================================================
--- /issm/trunk/test/Validation/PattynStokes/test3_icesheet_iceshelf/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/PattynStokes/test3_icesheet_iceshelf/runme.m	(revision 899)
@@ -9,12 +9,12 @@
 md=parameterize(md,'Square.par');
 md=extrude(md,5,3);
-md=extrude(md,'Pattyn','all');
+md=setelementstype(md,'Pattyn','all');
 
-md=solve(md,'diagnostic','ice');
-vel_pattyn=md.vel;
-vx_pattyn=md.vx;
-vy_pattyn=md.vy;
-vz_pattyn=md.vz;
-pressure_pattyn=md.pressure;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_pattyn=md.results.diagnostic.vel;
+vx_pattyn=md.results.diagnostic.vx;
+vy_pattyn=md.results.diagnostic.vy;
+vz_pattyn=md.results.diagnostic.vz;
+pressure_pattyn=md.results.diagnostic.pressure;
 
 mdpattyn=md;
@@ -27,59 +27,13 @@
 md=parameterize(md,'Square.par');
 md=extrude(md,5,3);
-md=extrude(md,'Pattyn','all','Stokes','all');
+md=setelementstype(md,'Pattyn','all','Stokes','all');
 
-md=solve(md,'diagnostic','ice');
-vel_stokes=md.vel;
-vx_stokes=md.vx;
-vy_stokes=md.vy;
-vz_stokes=md.vz;
-pressure_stokes=md.pressure;
+md=solve(md,'analysis_type','diagnostic','package','ice');
+vel_stokes=md.results.diagnostic.vel;
+vx_stokes=md.results.diagnostic.vx;
+vy_stokes=md.results.diagnostic.vy;
+vz_stokes=md.results.diagnostic.vz;
+pressure_stokes=md.results.diagnostic.pressure;
 
 mdstokes=md;
 save modelstokes mdstokes;
-
-error('debug')
-
-
-
-%Calculate the average velocity on each grid
-vel_3d=zeros(md.numberofgrids2d,1);
-grid_vel=0;
-
-for i=1:md.numberofgrids2d
-	for j=1:(md.numlayers-1)
-		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(md.vel(i+j*md.numberofgrids2d,1)+md.vel(i+(j-1)*md.numberofgrids2d,1));
-	end
-	vel_3d(i,1)=grid_vel;
-	grid_vel=0;
-end
-
-vel_diff=(vel_2d-vel_3d)./vel_2d;
-vel_diff(find(vel_2d==vel_3d))=0;
-
-%Plot of the velocity from the stokes and pattyn model 
-figure(1)
-subplot(2,2,1)
-p1=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-vel_pattyn,'FaceColor','interp','EdgeColor','none');
-title('MacAyeal model [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar; 
-   
-subplot(2,2,2)
-p2=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-vel_stokes,'FaceColor','interp','EdgeColor','none');
-title('Pattyn model [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar; 
-
-subplot(2,2,3)
-p3=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-(vel_pattyn-vel_stokes),'FaceColor','interp','EdgeColor','none');
-title('Relative misfit [%]','FontSize',14,'FontWeight','bold')
-colorbar;
-
-subplot(2,2,4)
-p3=patch('Faces',md.elements2d,'Vertices',[md.x2d md.y2d],'FaceVertexCData',...
-(vel_pattyn-vel_stokes)*100,'FaceColor','interp','EdgeColor','none');
-title('Absolute misfit [m/yr]','FontSize',14,'FontWeight','bold')
-colorbar;
-
Index: /issm/trunk/test/Validation/RoundIceSheet/runme.m
===================================================================
--- /issm/trunk/test/Validation/RoundIceSheet/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/RoundIceSheet/runme.m	(revision 899)
@@ -48,5 +48,5 @@
 
 %Now we can solve the problem 
-md=solve(md,'diagnostic','ice');
+md=solve(md,'analysis_type','diagnostic','package','ice');
 
 %Calculate the depth averaged velocity field (2d):
@@ -56,5 +56,7 @@
 for i=1:md.numberofgrids2d
 	for j=1:(md.numlayers-1)
-		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(sqrt(md.vx(i+j*md.numberofgrids2d,1).^2+md.vy(i+j*md.numberofgrids2d,1).^2)+sqrt(md.vx(i+(j-1)*md.numberofgrids2d,1).^2+md.vy(i+(j-1)*md.numberofgrids2d,1).^2));
+		grid_vel=grid_vel+1/(2*(md.numlayers-1))*(sqrt(md.results.diagnostic.vx(i+j*md.numberofgrids2d,1).^2+...
+			md.results.diagnostic.vy(i+j*md.numberofgrids2d,1).^2)+...
+			sqrt(md.results.diagnostic.vx(i+(j-1)*md.numberofgrids2d,1).^2+md.results.diagnostic.vy(i+(j-1)*md.numberofgrids2d,1).^2));
 	end
 	vel(i,1)=grid_vel;
@@ -95,3 +97,2 @@
 colorbar;
 caxis([0 100]);
-
Index: /issm/trunk/test/Validation/ThermalTests/Melting/runme.m
===================================================================
--- /issm/trunk/test/Validation/ThermalTests/Melting/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ThermalTests/Melting/runme.m	(revision 899)
@@ -26,5 +26,5 @@
 
 %plot results
-relative=abs((md.melting-melting)./melting)*100;
-relative(find(md.melting==melting))=0;
-plotmodel(md,'data','melting','title','modeled melting','data',melting,'title','analytical melting','data',md.melting-melting,'title','absolute error','data',relative,'title','relative error [%]','layer#all',1)
+relative=abs((md.results.thermal.melting-melting)./melting)*100;
+relative(find(md.results.thermal.melting==melting))=0;
+plotmodel(md,'data','melting','title','modeled melting','data',melting,'title','analytical melting','data',md.results.thermal.melting-melting,'title','absolute error','data',relative,'title','relative error [%]','layer#all',1)
Index: /issm/trunk/test/Validation/ThermalTests/Simpleadvection/runme.m
===================================================================
--- /issm/trunk/test/Validation/ThermalTests/Simpleadvection/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ThermalTests/Simpleadvection/runme.m	(revision 899)
@@ -26,5 +26,5 @@
 
 %plot results
-relative=abs((md.temperature-md.observed_temperature)./md.observed_temperature)*100;
-relative(find(md.temperature==md.observed_temperature))=0;
-plotmodel(md,'data','temperature','title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3)
+relative=abs((md.results.thermal.temperature-md.observed_temperature)./md.observed_temperature)*100;
+relative(find(md.results.thermal.temperature==md.observed_temperature))=0;
+plotmodel(md,'data',md.results.thermal.temperature,'title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.results.thermal.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3)
Index: /issm/trunk/test/Validation/ThermalTests/Simpleconduction/runme.m
===================================================================
--- /issm/trunk/test/Validation/ThermalTests/Simpleconduction/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ThermalTests/Simpleconduction/runme.m	(revision 899)
@@ -25,5 +25,5 @@
 
 %plot results
-relative=abs((md.temperature-md.observed_temperature)./md.observed_temperature)*100;
-relative(find(md.temperature==md.observed_temperature))=0;
-plotmodel(md,'data','temperature','title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3)
+relative=abs((md.results.thermal.temperature-md.observed_temperature)./md.observed_temperature)*100;
+relative(find(md.results.thermal.temperature==md.observed_temperature))=0;
+plotmodel(md,'data','temperature','title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.results.thermal.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3)
Index: /issm/trunk/test/Validation/ThermalTests/Simplegeothermalflux/runme.m
===================================================================
--- /issm/trunk/test/Validation/ThermalTests/Simplegeothermalflux/runme.m	(revision 898)
+++ /issm/trunk/test/Validation/ThermalTests/Simplegeothermalflux/runme.m	(revision 899)
@@ -25,5 +25,5 @@
 
 %plot results
-relative=abs((md.temperature-md.observed_temperature)./md.observed_temperature)*100;
-relative(find(md.temperature==md.observed_temperature))=0;
-plotmodel(md,'data','temperature','title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3)
+relative=abs((md.results.thermal.temperature-md.observed_temperature)./md.observed_temperature)*100;
+relative(find(md.results.thermal.temperature==md.observed_temperature))=0;
+plotmodel(md,'data','temperature','title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.results.thermal.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3)
