Index: /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticHoriz.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticHoriz.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticHoriz.m	(revision 1024)
@@ -143,4 +143,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticHutter.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticHutter.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticHutter.m	(revision 1024)
@@ -102,4 +102,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticStokes.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticStokes.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticStokes.m	(revision 1024)
@@ -97,4 +97,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticVert.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticVert.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorDiagnosticVert.m	(revision 1024)
@@ -89,4 +89,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/ModelProcessorMelting.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorMelting.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorMelting.m	(revision 1024)
@@ -86,4 +86,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/ModelProcessorPrognostic.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorPrognostic.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorPrognostic.m	(revision 1024)
@@ -79,4 +79,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/ModelProcessorSlopeCompute.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorSlopeCompute.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorSlopeCompute.m	(revision 1024)
@@ -79,4 +79,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/ModelProcessorThermal.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/ModelProcessorThermal.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/ModelProcessorThermal.m	(revision 1024)
@@ -103,4 +103,5 @@
 grids(pos)=SetStructureField(grids(pos),'grid','y',md.y(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','z',md.z(pos));
+grids(pos)=SetStructureField(grids(pos),'grid','s',(md.z(pos)-md.bed(pos))./md.thickness(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','onbed',md.gridonbed(pos));
 grids(pos)=SetStructureField(grids(pos),'grid','border',bordergrids(pos));
Index: /issm/trunk/src/m/solutions/ice/UpdateGridPosition.m
===================================================================
--- /issm/trunk/src/m/solutions/ice/UpdateGridPosition.m	(revision 1023)
+++ /issm/trunk/src/m/solutions/ice/UpdateGridPosition.m	(revision 1024)
@@ -10,15 +10,8 @@
 count2d=[1:md.numberofgrids2d]';
 
-%for i=1:md.numlayers,
-%	count=count2d+(i-1)*md.numberofgrids2d;
-%	for j=1:size(count,1),
-%		grids(count(j)).grid.z=bed(count(j))+(i-1)/(md.numlayers-1)*(thickness(count(j)));
-%	end
-%end
-
-%Only update the lower and upper layer.
-count=md.numberofgrids2d*(md.numlayers-1);
-for i=1:md.numberofgrids2d,
-	grids(i).grid.z=bed(i);
-	grids(count+i).grid.z=bed(i)+ thickness(i);
+for i=1:md.numlayers,
+	count=count2d+(i-1)*md.numberofgrids2d;
+	for j=1:size(count,1),
+		grids(count(j)).grid.z=bed(count(j))+grids(count(j)).grid.s*thickness(count(j));
+	end
 end
