Index: /issm/trunk-jpl/src/c/solutions/EnvironmentInit.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/EnvironmentInit.cpp	(revision 13531)
+++ /issm/trunk-jpl/src/c/solutions/EnvironmentInit.cpp	(revision 13532)
@@ -2,4 +2,10 @@
  * \brief: initialize Petsc, MPI, you name it
  */ 
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
 
 void EnvironmentInit(int argc,char** argv){
Index: /issm/trunk-jpl/src/c/solutions/issm.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/issm.cpp	(revision 13531)
+++ /issm/trunk-jpl/src/c/solutions/issm.cpp	(revision 13532)
@@ -35,7 +35,6 @@
 
 	/*time*/
-	IssmPDouble   start, finish;
+	IssmPDouble   finish;
 	IssmPDouble   start_core, finish_core;
-	IssmPDouble   start_init, finish_init;
 	int      ierr;
 
@@ -51,10 +50,6 @@
 	EnvironmentInit(argc,argv);
 	
-		#ifdef _HAVE_MPI_
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-	#else
-	start=(IssmPDouble)clock();
-	#endif
-
+	/*Some profiling: */
+	profiler=new Profiler(); profiler->Tag(Start);
 	
 	/*First process inputs*/
@@ -69,9 +64,6 @@
 
 	/*Create femmodel, using input file: */
-	#ifdef _HAVE_MPI_
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-	#else
-	start_init=(IssmPDouble)clock();
-	#endif
+	profiler->Tag(StartInit);
+	
 	femmodel=new FemModel(rootpath,binfilename,outbinfilename,solution_type,analyses,numanalyses);
 	
@@ -96,9 +88,6 @@
 	femmodel->parameters->FindParam(&autodiff,AutodiffIsautodiffEnum);
 
-	#ifdef _HAVE_MPI_
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-	#else
-	finish_init=(IssmPDouble)clock();
-	#endif
+	/*Profiling: */
+	profiler->Tag(FinishInit);
 	
 	/*If running AD, then initialize a placeholder with which to work: */
@@ -119,9 +108,5 @@
 
 	_pprintLine_("call computational core:");
-	#ifdef _HAVE_MPI_
-	MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-	#else
-	start_core=(IssmPDouble)clock();
-	#endif
+	profiler->Tag(StartCore);
 	
 	if(profiling)ProfilingStart(&Time_start,&Flops_start);
@@ -162,10 +147,6 @@
 	#endif
 
-
-	#ifdef _HAVE_MPI_
-	MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	#else
-	finish_core=(IssmPDouble)clock();
-	#endif
+	profiler->Tag(FinishCore);
+
 	
 	_pprintLine_("write results to disk:");
