Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 23232)
@@ -865,8 +865,15 @@
 		_printf0_("Individual core profiling\n");
 		if(profiler->Used(THERMALCORE)) _printf0_("   "<<setw(40)<<left<<"Thermal core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(THERMALCORE) << " sec\n");
+		if(profiler->Used(HYDROLOGYCORE)) _printf0_("   "<<setw(40)<<left<<"Hydrology core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(HYDROLOGYCORE) << " sec\n");
 		if(profiler->Used(STRESSBALANCECORE)) _printf0_("   "<<setw(40)<<left<<"Stress balance core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(STRESSBALANCECORE) << " sec\n");
+		if(profiler->Used(DAMAGECORE)) _printf0_("   "<<setw(40)<<left<<"Damage core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(DAMAGECORE) << " sec\n");
+		if(profiler->Used(MOVINGFRONTCORE)) _printf0_("   "<<setw(40)<<left<<"Moving front core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(MOVINGFRONTCORE) << " sec\n");
 		if(profiler->Used(MASSTRANSPORTCORE)) _printf0_("   "<<setw(40)<<left<<"Mass transport core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(MASSTRANSPORTCORE) << " sec\n");
+		if(profiler->Used(SMBCORE)) _printf0_("   "<<setw(40)<<left<<"SMB core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(SMBCORE) << " sec\n");
+		if(profiler->Used(GROUNDINGLINECORE)) _printf0_("   "<<setw(40)<<left<<"Groundingline migration core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(GROUNDINGLINECORE) << " sec\n");
+		if(profiler->Used(GIACORE)) _printf0_("   "<<setw(40)<<left<<"GIA core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(GIACORE) << " sec\n");
+		if(profiler->Used(ESACORE)) _printf0_("   "<<setw(40)<<left<<"ESA core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(ESACORE) << " sec\n");
+		if(profiler->Used(SLRCORE)) _printf0_("   "<<setw(40)<<left<<"SLR core elapsed time:"<<setw(7)<<setprecision(6)<<profiler->TotalTime(SLRCORE) << " sec\n");
 		
-
 		/*Add to results: */
 		results->AddObject(new GenericExternalResult<IssmDouble>(results->Size()+1, ProfilingSolutionTimeEnum,  solution_time));
Index: /issm/trunk-jpl/src/c/classes/Profiler.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Profiler.h	(revision 23231)
+++ /issm/trunk-jpl/src/c/classes/Profiler.h	(revision 23232)
@@ -16,8 +16,16 @@
 #define SOLVER             3 /*Profiling solution */
 #define ADCORE             4 /*Profiling AD */
-#define THERMALCORE	   5 /*Profiling THERMAL */
-#define STRESSBALANCECORE  6 /*Profiling STRESSBALANCE */
-#define MASSTRANSPORTCORE  7 /*Profiling MASSTRANSPORT */
-#define MAXPROFSIZE        8 /*Used to initialize static arrays*/
+#define THERMALCORE			5 /*Profiling THERMAL */
+#define HYDROLOGYCORE		6 /*Profiling HYDROLOGY */
+#define STRESSBALANCECORE	7 /*Profiling STRESSBALANCE */
+#define DAMAGECORE			8 /*Profiling DAMAGE */
+#define MOVINGFRONTCORE		9 /*Profiling MOVINGFRONT */
+#define MASSTRANSPORTCORE	10 /*Profiling MASSTRANSPORT */
+#define SMBCORE				11 /*Profiling SMB */
+#define GROUNDINGLINECORE	12 /*Profiling GROUDINGLINE MIGRATION */
+#define GIACORE				13 /*Profiling GIA */
+#define ESACORE				14 /*Profiling ESA */
+#define SLRCORE				15 /*Profiling SLR */
+#define MAXPROFSIZE			16 /*Used to initialize static arrays*/
 
 class Profiler: public Object{
Index: /issm/trunk-jpl/src/c/cores/damage_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/damage_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/damage_core.cpp	(revision 23232)
@@ -11,5 +11,8 @@
 
 void damage_core(FemModel* femmodel){
-
+	
+	/*Start profiler*/
+	femmodel->profiler->Start(DAMAGECORE);
+        
 	/*intermediary*/
 	bool   save_results;
@@ -48,3 +51,6 @@
 		xDelete<char*>(requested_outputs);
 	}
+	
+	/*End profiler*/
+	femmodel->profiler->Stop(DAMAGECORE);
 }
Index: /issm/trunk-jpl/src/c/cores/esa_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/esa_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/esa_core.cpp	(revision 23232)
@@ -11,4 +11,7 @@
 
 void esa_core(FemModel* femmodel){ /*{{{*/
+
+	/*Start profiler*/
+	femmodel->profiler->Start(ESACORE);
 
 	Vector<IssmDouble> *U_radial  = NULL; 
@@ -112,4 +115,7 @@
 		if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
 	}
+	
+	/*End profiler*/
+	femmodel->profiler->Stop(ESACORE);
 
 } 
Index: /issm/trunk-jpl/src/c/cores/gia_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/gia_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/gia_core.cpp	(revision 23232)
@@ -10,4 +10,7 @@
 #include "../solutionsequences/solutionsequences.h"
 void gia_core(FemModel* femmodel){
+
+	/*Start profiler*/
+	femmodel->profiler->Start(GIACORE);
 
 	Vector<IssmDouble> *wg    = NULL;
@@ -56,3 +59,6 @@
 	xDelete<IssmDouble>(x);
 	xDelete<IssmDouble>(y);
+	
+	/*End profiler*/
+	femmodel->profiler->Stop(GIACORE);
 }
Index: /issm/trunk-jpl/src/c/cores/hydrology_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 23232)
@@ -12,4 +12,7 @@
 void hydrology_core(FemModel* femmodel){
 
+	/*Start profiler*/
+	femmodel->profiler->Start(HYDROLOGYCORE);
+        
 	/*intermediary*/
 	int          hydrology_model;
@@ -150,3 +153,6 @@
 		xDelete<char*>(requested_outputs);
 	}
+	
+	/*End profiler*/
+	femmodel->profiler->Stop(HYDROLOGYCORE);
 }
Index: /issm/trunk-jpl/src/c/cores/movingfront_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/movingfront_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/movingfront_core.cpp	(revision 23232)
@@ -11,4 +11,7 @@
 
 void movingfront_core(FemModel* femmodel){
+	
+	/*Start profiler*/
+	femmodel->profiler->Start(MOVINGFRONTCORE);
 
 	/* intermediaries */
@@ -98,3 +101,6 @@
 		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
 	}
+	
+	/*End profiler*/
+	femmodel->profiler->Stop(MOVINGFRONTCORE);
 }
Index: /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 23232)
@@ -13,4 +13,7 @@
 void sealevelrise_core(FemModel* femmodel){ /*{{{*/
 
+	/*Start profiler*/
+	femmodel->profiler->Start(SLRCORE);
+
 	/*Parameters, variables:*/
 	bool save_results;
@@ -54,4 +57,7 @@
 	/*requested dependents: */
 	if(solution_type==SealevelriseSolutionEnum)femmodel->RequestedDependentsx();
+	
+	/*End profiler*/
+	femmodel->profiler->Stop(SLRCORE);
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/cores/smb_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/smb_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/smb_core.cpp	(revision 23232)
@@ -11,5 +11,8 @@
 
 void smb_core(FemModel* femmodel){
-
+	
+	/*Start profiler*/
+	femmodel->profiler->Start(SMBCORE);
+	
 	/*parameters: */
 	Analysis* analysis=NULL;
@@ -45,3 +48,6 @@
 	/*Free ressources:*/
 	if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
+
+	/*End profiler*/
+	femmodel->profiler->Stop(SMBCORE);
 }
Index: /issm/trunk-jpl/src/c/cores/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 23231)
+++ /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 23232)
@@ -401,4 +401,8 @@
 
 		if(isgroundingline){
+		
+			/*Start profiler*/
+			femmodel->profiler->Start(GROUNDINGLINECORE);
+		
 			if(VerboseSolution()) _printf0_("   computing new grounding line position\n");
 			GroundinglineMigrationx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
@@ -410,4 +414,7 @@
 			femmodel->parameters->SetParam(SurfaceEnum,InputToExtrudeEnum);
 			extrudefrombase_core(femmodel);
+			
+			/*Stop profiler*/
+			femmodel->profiler->Stop(GROUNDINGLINECORE);
 
 			if(save_results){
