Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp	(revision 5524)
@@ -39,7 +39,4 @@
 
 	/*First fetch data: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
@@ -88,5 +85,4 @@
 	/*Clean fetched data: */
 	xfree((void**)&iomodel->elements);
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp	(revision 5524)
@@ -32,7 +32,4 @@
 
 	/*First fetch data: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -51,5 +48,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 5524)
@@ -32,7 +32,4 @@
 	
 	/*First fetch data: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -52,5 +49,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 5524)
@@ -41,7 +41,4 @@
 	IoModelFetchData(&iomodel->gridoniceshelf,NULL,NULL,iomodel_handle,"gridoniceshelf");
 	IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type");
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	
 	for (i=0;i<iomodel->numberofvertices;i++){
@@ -60,5 +57,4 @@
 	xfree((void**)&iomodel->gridonicesheet);
 	xfree((void**)&iomodel->gridoniceshelf);
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->vertices_type);	
 
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 5524)
@@ -35,7 +35,4 @@
 
 	/*First fetch data: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -59,5 +56,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp	(revision 5524)
@@ -36,5 +36,4 @@
 
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -56,5 +55,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 5524)
@@ -35,5 +35,4 @@
 	
 	/*First fetch data: */
-	IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -53,5 +52,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 5524)
@@ -32,7 +32,4 @@
 
 	/*First fetch data: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -52,5 +49,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 5524)
@@ -39,7 +39,4 @@
 
 	/*First fetch data: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements");
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
@@ -87,5 +84,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 5524)
@@ -32,7 +32,4 @@
 	
 	/*First fetch data: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -52,5 +49,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 5523)
+++ /issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 5524)
@@ -32,7 +32,4 @@
 
 	/*Create nodes and vertices: */
-	if (iomodel->dim==3){
-		IoModelFetchData(&iomodel->deadgrids,NULL,NULL,iomodel_handle,"deadgrids");
-	}
 	IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed");
 	IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface");
@@ -52,5 +49,4 @@
 
 	/*Clean fetched data: */
-	xfree((void**)&iomodel->deadgrids);
 	xfree((void**)&iomodel->gridonbed);
 	xfree((void**)&iomodel->gridonsurface);
Index: /issm/trunk/src/c/objects/IoModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/IoModel.cpp	(revision 5523)
+++ /issm/trunk/src/c/objects/IoModel.cpp	(revision 5524)
@@ -44,5 +44,4 @@
 	if (this->dim==3){
 		xfree((void**)&this->elements2d);
-		xfree((void**)&this->deadgrids);
 		xfree((void**)&this->upperelements);
 		xfree((void**)&this->lowerelements);
@@ -247,5 +246,4 @@
 	this->numberofvertices2d=0;
 	this->elements2d=NULL;
-	this->deadgrids=NULL;
 	this->numlayers=0;
 	this->upperelements=NULL;
Index: /issm/trunk/src/c/objects/IoModel.h
===================================================================
--- /issm/trunk/src/c/objects/IoModel.h	(revision 5523)
+++ /issm/trunk/src/c/objects/IoModel.h	(revision 5524)
@@ -38,5 +38,4 @@
 		int     numberofelements2d;
 		double* elements2d;
-		double* deadgrids;
 		int     numlayers;
 		double* upperelements;
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 5523)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 5524)
@@ -91,6 +91,7 @@
 		if (iomodel->dim==3){
 			/*We have a  3d mesh, we may have collapsed elements, hence dead grids. Freeze them out: */
-			if (!iomodel->deadgrids) ISSMERROR("iomodel->deadgrids is NULL");
-			if (iomodel->deadgrids[io_index]){
+			if (!iomodel->gridonbed) ISSMERROR("iomodel->gridonbed is NULL");
+			if (!iomodel->vertices_type) ISSMERROR("iomodel->vertices_type is NULL");
+			if (iomodel->vertices_type[io_index]==MacAyealApproximationEnum && !iomodel->gridonbed[io_index]){
 				for(k=1;k<=numdofs;k++){
 					this->FreezeDof(k);
Index: /issm/trunk/src/m/classes/@model/model.m
===================================================================
--- /issm/trunk/src/m/classes/@model/model.m	(revision 5523)
+++ /issm/trunk/src/m/classes/@model/model.m	(revision 5524)
@@ -94,5 +94,4 @@
 	md.lowerelements=NaN;
 	md.lowergrids=NaN;
-	md.deadgrids=NaN;
 	
 	%Extrusion
Index: /issm/trunk/src/m/classes/public/extrude.m
===================================================================
--- /issm/trunk/src/m/classes/public/extrude.m	(revision 5523)
+++ /issm/trunk/src/m/classes/public/extrude.m	(revision 5524)
@@ -182,9 +182,4 @@
 	md.gridonpattyn=project3d(md,md.gridonpattyn,'node');
 	md.gridonstokes=project3d(md,md.gridonstokes,'node');
-
-	%dead grids
-	md.deadgrids=ones(md.numberofgrids,1);
-	md.deadgrids(md.elements(md.elements_type~=MacAyealApproximationEnum,:))=0;%non macayeal grids are not dead
-	md.deadgrids(find(md.gridonbed))=0;%grids from elements on bed are not dead
 end
 
Index: /issm/trunk/src/m/classes/public/marshall.m
===================================================================
--- /issm/trunk/src/m/classes/public/marshall.m	(revision 5523)
+++ /issm/trunk/src/m/classes/public/marshall.m	(revision 5524)
@@ -40,5 +40,4 @@
 	WriteData(fid,md.numberofgrids2d,'Integer','numberofgrids2d');
 	WriteData(fid,md.elements2d,'Mat','elements2d');
-	WriteData(fid,md.deadgrids,'Mat','deadgrids');
 	WriteData(fid,md.numlayers,'Integer','numlayers');
 	WriteData(fid,md.gridonpattyn,'Mat','gridonpattyn');
Index: /issm/trunk/src/m/classes/public/setelementstype.m
===================================================================
--- /issm/trunk/src/m/classes/public/setelementstype.m	(revision 5523)
+++ /issm/trunk/src/m/classes/public/setelementstype.m	(revision 5524)
@@ -172,11 +172,4 @@
 end
 
-%flag dead grids (strictly in MacAyeal and not on bed -> not used in diagnostic horiz)
-nonmacayeal_el=find(~macayealflag);                   %non macayeal elements
-deadgrids=ones(md.numberofgrids,1);
-deadgrids(md.elements(nonmacayeal_el,:))=0;          %non macayeal grids are not dead
-deadgrids(find(md.gridonbed))=0;                      %grids from elements on bed are not dead
-md.deadgrids=deadgrids;
-
 %figure out solution types
 md.ishutter=double(any(md.elements_type==HutterApproximationEnum));
