Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 17758)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 17759)
@@ -2133,5 +2133,5 @@
 
 	this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
-	this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
+	if(this->material->IsDamage())this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
 	if(this->inputs->GetInput(VxEnum)) this->InputDepthAverageAtBase(VxEnum,VxAverageEnum);
 	if(this->inputs->GetInput(VyEnum)) this->InputDepthAverageAtBase(VyEnum,VyAverageEnum);
@@ -3425,5 +3425,5 @@
 	/*Depth Average B*/
 	this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
-	this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
+	if(this->material->IsDamage())this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
 
 	/*Collapse element to the base*/
@@ -3445,5 +3445,5 @@
 	/*Depth Average B and D*/
 	this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
-	this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
+	if(this->material->IsDamage())this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
 
 	/*Collapse element to the base*/
@@ -3464,5 +3464,5 @@
 	/*Depth Average B and D*/
 	this->InputDepthAverageAtBase(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
-	this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
+	if(this->material->IsDamage())this->InputDepthAverageAtBase(DamageDEnum,DamageDbarEnum);
 
 	/*Collapse element to the base*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17758)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17759)
@@ -3114,5 +3114,7 @@
 	Input* adjointx_input=inputs->GetInput(AdjointxEnum);                       _assert_(adjointx_input);
 	Input* adjointy_input=inputs->GetInput(AdjointyEnum);                       _assert_(adjointy_input);
-	Input* rheologyd_input=inputs->GetInput(DamageDbarEnum); _assert_(rheologyd_input);
+	if(this->material->IsDamage()){
+		Input* rheologyd_input=inputs->GetInput(DamageDbarEnum); _assert_(rheologyd_input);
+	}
 
 	/* Start  looping on the number of gaussian points: */
Index: /issm/trunk-jpl/src/c/classes/Materials/Material.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Material.h	(revision 17758)
+++ /issm/trunk-jpl/src/c/classes/Materials/Material.h	(revision 17759)
@@ -39,4 +39,5 @@
 		virtual IssmDouble GetD()=0;
 		virtual IssmDouble GetDbar()=0;
+		virtual bool       IsDamage()=0;
 
 };
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 17758)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 17759)
@@ -31,4 +31,5 @@
 	this->helement=NULL;
 	this->element=NULL;
+	this->isdamaged=NULL;
 	return;
 }
@@ -51,6 +52,6 @@
    int    materialtype;
    iomodel->Constant(&materialtype,MaterialsEnum);
-   if(materialtype==MatdamageiceEnum) this->isdamage = true;
-   else if(materialtype==MaticeEnum) this->isdamage = false;
+   if(materialtype==MatdamageiceEnum) this->isdamaged = true;
+   else if(materialtype==MaticeEnum) this->isdamaged = false;
    else _error_("Material type not recognized");
 
@@ -206,8 +207,8 @@
 IssmDouble Matice::GetD(){
 
-	_assert_(this->isdamage);
+	_assert_(this->isdamaged);
 	/*Output*/
 	IssmDouble D;
-	element->inputs->GetInputAverage(&D,DamageDEnum);
+	if(this->isdamaged)element->inputs->GetInputAverage(&D,DamageDEnum);
 	return D;
 }
@@ -216,9 +217,15 @@
 IssmDouble Matice::GetDbar(){
 
-	_assert_(this->isdamage);
+	_assert_(this->isdamaged);
 	/*Output*/
 	IssmDouble Dbar;
-	element->inputs->GetInputAverage(&Dbar,DamageDbarEnum);
+	if(this->isdamaged)element->inputs->GetInputAverage(&Dbar,DamageDbarEnum);
 	return Dbar;
+}
+/*}}}*/
+/*FUNCTION Matice::IsDamage() {{{*/
+bool Matice::IsDamage(){
+
+	return this->isdamaged;
 }
 /*}}}*/
@@ -246,5 +253,5 @@
 	B=GetB(); _assert_(B>0.);
 	n=GetN(); _assert_(n>0.);
-	if(this->isdamage){
+	if(this->isdamaged){
 		D=GetD();
 		_assert_(D>=0. && D<1.);
@@ -299,5 +306,5 @@
 	B=GetBbar(); _assert_(B>0.);
 	n=GetN();    _assert_(n>0.);
-	if(this->isdamage){
+	if(this->isdamaged){
 		D=GetDbar();
 		_assert_(D>=0. && D<1.);
@@ -351,5 +358,5 @@
 
 	/*Get D and n*/
-	if(this->isdamage){
+	if(this->isdamaged){
 		D=GetDbar(); /* GetD()? */
 		_assert_(D>=0. && D<1.);
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.h	(revision 17758)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.h	(revision 17759)
@@ -24,5 +24,5 @@
 	private: 
 		int      mid;
-		bool     isdamage;
+		bool     isdamaged;
 		Hook    *helement;
 		Element *element;
@@ -68,4 +68,5 @@
 		IssmDouble GetDbar();
 		IssmDouble GetN();
+		bool       IsDamage();
 		/*}}}*/
 };
Index: /issm/trunk-jpl/src/c/classes/Materials/Matpar.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 17758)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 17759)
@@ -96,4 +96,5 @@
 		IssmDouble GetD(){_error_("not supported");};
 		IssmDouble GetDbar(){_error_("not supported");};
+		bool       IsDamage(){_error_("not supported");};
 		/*}}}*/
 		/*Numerics: {{{*/
