Index: /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 17641)
+++ /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 17642)
@@ -27,4 +27,5 @@
 	iomodel->FetchData(&requestedoutputs,&numoutputs,DamageEvolutionRequestedOutputsEnum);
 	parameters->AddObject(new IntParam(DamageEvolutionNumRequestedOutputsEnum,numoutputs));
+	_printf0_("numoutputs = " << numoutputs << ", requestedoutputs = " << requestedoutputs);
 	if(numoutputs)parameters->AddObject(new StringArrayParam(DamageEvolutionRequestedOutputsEnum,requestedoutputs,numoutputs));
 	iomodel->DeleteData(&requestedoutputs,numoutputs,DamageEvolutionRequestedOutputsEnum);
Index: /issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp	(revision 17641)
+++ /issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp	(revision 17642)
@@ -117,5 +117,5 @@
 
 		case TransientSolutionEnum:
-			numanalyses=15;
+			numanalyses=16;
 			analyses=xNew<int>(numanalyses);
 			analyses[ 0]=StressbalanceAnalysisEnum;
@@ -134,4 +134,5 @@
 			analyses[13]=ExtrapolationAnalysisEnum;
 			analyses[14]=LsfReinitializationAnalysisEnum;
+			analyses[15]=DamageEvolutionAnalysisEnum;
 			break;
 
Index: /issm/trunk-jpl/src/c/cores/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 17641)
+++ /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 17642)
@@ -22,5 +22,5 @@
 	int    i;
 	IssmDouble starttime,finaltime,dt,yts;
-	bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset;
+	bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution;
 	bool   save_results,dakota_analysis;
 	bool   time_adapt=false;
@@ -51,4 +51,5 @@
 	femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
 	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+	femmodel->parameters->FindParam(&isdamageevolution,TransientIsdamageevolutionEnum);
 	femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
 	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
@@ -122,5 +123,10 @@
 			stressbalance_core(femmodel);
 		}
-		
+
+		if(isdamageevolution){
+			if(VerboseSolution()) _printf0_("   computing damage\n");
+			damage_core(femmodel);
+		}
+
 		if(islevelset){
 			if(VerboseSolution()) _printf0_("   computing movement of ice boundaries\n");
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 17641)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 17642)
@@ -69,4 +69,5 @@
 	parameters->AddObject(iomodel->CopyConstantObject(TransientIsgiaEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(TransientIslevelsetEnum));
+	parameters->AddObject(iomodel->CopyConstantObject(TransientIsdamageevolutionEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(MaterialsRheologyLawEnum));
 	parameters->AddObject(iomodel->CopyConstantObject(AutodiffIsautodiffEnum));
@@ -145,4 +146,9 @@
 	iomodel->DeleteData(&requestedoutputs,numoutputs,SteadystateRequestedOutputsEnum);
 
+	iomodel->FetchData(&requestedoutputs,&numoutputs,DamageEvolutionRequestedOutputsEnum);
+	parameters->AddObject(new IntParam(DamageEvolutionNumRequestedOutputsEnum,numoutputs));
+	if(numoutputs)parameters->AddObject(new StringArrayParam(DamageEvolutionRequestedOutputsEnum,requestedoutputs,numoutputs));
+	iomodel->DeleteData(&requestedoutputs,numoutputs,DamageEvolutionRequestedOutputsEnum);
+
 	/*Deal with mass flux segments: {{{*/
 	iomodel->FetchData(&qmu_mass_flux_present,QmuMassFluxSegmentsPresentEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 17641)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 17642)
@@ -16,5 +16,5 @@
 
 	int   i,analysis_enum,verbose;
-	bool  isthermal,ismasstransport,isstressbalance,isgroundingline,isenthalpy,islevelset;
+	bool  isthermal,ismasstransport,isstressbalance,isgroundingline,isenthalpy,islevelset,isdamage;
 
 	/*Initialize datasets*/
@@ -38,4 +38,5 @@
 	iomodel->Constant(&isstressbalance,TransientIsstressbalanceEnum);
 	iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
+	iomodel->Constant(&isdamage,TransientIsdamageevolutionEnum);
 
 	SetVerbosityLevel(verbose);
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 17641)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 17642)
@@ -279,5 +279,5 @@
 	TransientIsthermalEnum,
 	TransientIsgiaEnum,
-	TransientIsdamageEnum,
+	TransientIsdamageevolutionEnum,
 	TransientNumRequestedOutputsEnum,
 	TransientRequestedOutputsEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 17641)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 17642)
@@ -285,5 +285,5 @@
 		case TransientIsthermalEnum : return "TransientIsthermal";
 		case TransientIsgiaEnum : return "TransientIsgia";
-		case TransientIsdamageEnum : return "TransientIsdamage";
+		case TransientIsdamageevolutionEnum : return "TransientIsdamageevolution";
 		case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
 		case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 17641)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 17642)
@@ -291,5 +291,5 @@
 	      else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
 	      else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
-	      else if (strcmp(name,"TransientIsdamage")==0) return TransientIsdamageEnum;
+	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
 	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
 	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
Index: /issm/trunk-jpl/src/m/classes/transient.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/transient.py	(revision 17641)
+++ /issm/trunk-jpl/src/m/classes/transient.py	(revision 17642)
@@ -18,4 +18,5 @@
 		self.isgroundingline   = False
 		self.isgia             = False
+		self.isdamageevolution = False
 		self.islevelset        = False
 		self.requested_outputs = []
@@ -32,4 +33,5 @@
 		string="%s\n%s"%(string,fielddisplay(self,'isgroundingline','indicates if a groundingline migration is used in the transient'))
 		string="%s\n%s"%(string,fielddisplay(self,'isgia','indicates if a postglacial rebound is used in the transient'))
+		string="%s\n%s"%(string,fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient'))
 		string="%s\n%s"%(string,fielddisplay(self,'islevelset','LEVELSET METHOD DESCRIPTION'))
 		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))
@@ -52,5 +54,6 @@
 		self.isgroundingline = False
 		self.isgia           = False
-		self.islevelset           = False
+		self.isdamageevolution = False
+		self.islevelset      = False
 
 		#default output
@@ -69,4 +72,5 @@
 		md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0,1])
+		md = checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0,1])
 		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
@@ -80,4 +84,5 @@
 		WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','isgia','format','Boolean')
+		WriteData(fid,'object',self,'fieldname','isdamageevolution','format','Boolean')
 		WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean')
 
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 17641)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 17642)
@@ -277,5 +277,5 @@
 def TransientIsthermalEnum(): return StringToEnum("TransientIsthermal")[0]
 def TransientIsgiaEnum(): return StringToEnum("TransientIsgia")[0]
-def TransientIsdamageEnum(): return StringToEnum("TransientIsdamage")[0]
+def TransientIsdamageevolutionEnum(): return StringToEnum("TransientIsdamageevolution")[0]
 def TransientNumRequestedOutputsEnum(): return StringToEnum("TransientNumRequestedOutputs")[0]
 def TransientRequestedOutputsEnum(): return StringToEnum("TransientRequestedOutputs")[0]
Index: sm/trunk-jpl/src/m/enum/TransientIsdamageEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/TransientIsdamageEnum.m	(revision 17641)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=TransientIsdamageEnum()
-%TRANSIENTISDAMAGEENUM - Enum of TransientIsdamage
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=TransientIsdamageEnum()
-
-macro=StringToEnum('TransientIsdamage');
Index: /issm/trunk-jpl/src/m/enum/TransientIsdamageevolutionEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/TransientIsdamageevolutionEnum.m	(revision 17642)
+++ /issm/trunk-jpl/src/m/enum/TransientIsdamageevolutionEnum.m	(revision 17642)
@@ -0,0 +1,11 @@
+function macro=TransientIsdamageevolutionEnum()
+%TRANSIENTISDAMAGEEVOLUTIONENUM - Enum of TransientIsdamageevolution
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+%            Please read src/c/shared/Enum/README for more information
+%
+%   Usage:
+%      macro=TransientIsdamageevolutionEnum()
+
+macro=StringToEnum('TransientIsdamageevolution');
Index: /issm/trunk-jpl/src/m/interp/averaging.py
===================================================================
--- /issm/trunk-jpl/src/m/interp/averaging.py	(revision 17641)
+++ /issm/trunk-jpl/src/m/interp/averaging.py	(revision 17642)
@@ -2,4 +2,5 @@
 from GetAreas import GetAreas
 from scipy.sparse import csc_matrix
+import MatlabFuncs as m
 
 def averaging(md,data,iterations,layer=0):
