Index: /issm/trunk/src/c/parallel/diagnostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic.cpp	(revision 2491)
+++ /issm/trunk/src/c/parallel/diagnostic.cpp	(revision 2492)
@@ -113,5 +113,4 @@
 	_printf_("initialize results:\n");
 	results=new DataSet(ResultsEnum());
-
 	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
Index: /issm/trunk/src/c/parallel/prognostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/prognostic.cpp	(revision 2491)
+++ /issm/trunk/src/c/parallel/prognostic.cpp	(revision 2492)
@@ -46,4 +46,9 @@
 	Param*   param=NULL;
 
+	/*time*/
+	double   start, finish;
+	double   start_core, finish_core;
+	double   start_init, finish_init;
+
 	MODULEBOOT();
 
@@ -52,5 +57,7 @@
 	#endif
 
+	/*Initialize Petsc and get start time*/
 	PetscInitialize(&argc,&argv,(char *)0,"");  
+	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
 
 	/*Size and rank: */
@@ -64,4 +71,5 @@
 
 	/*Initialize model structure: */
+	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
 	model=new Model();
 
@@ -98,4 +106,5 @@
 	_printf_("initialize results:\n");
 	results=new DataSet(ResultsEnum());
+	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
 	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
@@ -104,5 +113,7 @@
 		/*run prognostic analysis: */
 		_printf_("call computational core:\n");
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 		prognostic_core(results,model,inputs);
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 
 	}
@@ -113,5 +124,7 @@
 	
 		#ifdef _HAVE_DAKOTA_ 
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 		Qmux(model,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum());
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
 		throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
@@ -140,4 +153,9 @@
 	delete inputs;
 
+	/*Get finish time and close*/
+	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
+	_printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
+	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
+	_printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
 	_printf_("closing MPI and Petsc\n");
 	PetscFinalize(); 
Index: /issm/trunk/src/c/parallel/steadystate.cpp
===================================================================
--- /issm/trunk/src/c/parallel/steadystate.cpp	(revision 2491)
+++ /issm/trunk/src/c/parallel/steadystate.cpp	(revision 2492)
@@ -47,4 +47,9 @@
 	Param*  param=NULL;
 
+	/*time*/
+	double   start, finish;
+	double   start_core, finish_core;
+	double   start_init, finish_init;
+
 	MODULEBOOT();
 
@@ -53,5 +58,7 @@
 	#endif
 
+	/*Initialize Petsc and get start time*/
 	PetscInitialize(&argc,&argv,(char *)0,"");  
+	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
 
 	/*Size and rank: */
@@ -68,4 +75,5 @@
 
 	/*Initialize model structure: */
+	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
 	model=new Model();
 
@@ -115,4 +123,5 @@
 	_printf_("initialize results:\n");
 	results=new DataSet(ResultsEnum());
+	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
 	/*are we running the solution sequence, or a qmu wrapper around it? : */
@@ -122,5 +131,7 @@
 			/*run diagnostic analysis: */
 			_printf_("call computational core:\n");
+			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 			steadystate_core(results,model,inputs);
+			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 
 			/*Add analysis_type to results: */
@@ -141,5 +152,7 @@
 			/*run control analysis: */
 			_printf_("call computational core:\n");
+			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 			control_core(results,model,inputs);
+			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 
 			/*Add analysis_type and control_type to results: */
@@ -163,5 +176,7 @@
 
 		#ifdef _HAVE_DAKOTA_ 
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 		Qmux(model,inputs,SteadystateAnalysisEnum(),NoneAnalysisEnum());
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
 		throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
@@ -183,4 +198,9 @@
 	delete inputs;
 
+	/*Get finish time and close*/
+	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
+	_printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
+	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
+	_printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
 	_printf_("closing MPI and Petsc\n");
 	PetscFinalize(); 
Index: /issm/trunk/src/c/parallel/thermal.cpp
===================================================================
--- /issm/trunk/src/c/parallel/thermal.cpp	(revision 2491)
+++ /issm/trunk/src/c/parallel/thermal.cpp	(revision 2492)
@@ -26,4 +26,5 @@
 	int   qmu_analysis=0;
 	int   numberofnodes;
+	int    waitonlock=0;
 
 	/*Model: */
@@ -44,5 +45,8 @@
 	double  yts;
 
-	int    waitonlock=0;
+	/*time*/
+	double   start, finish;
+	double   start_core, finish_core;
+	double   start_init, finish_init;
 		
 	MODULEBOOT();
@@ -52,5 +56,7 @@
 	#endif
 
+	/*Initialize Petsc and get start time*/
 	PetscInitialize(&argc,&argv,(char *)0,"");  
+	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
 
 	/*Size and rank: */
@@ -66,4 +72,5 @@
 
 	/*Initialize model structure: */
+	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
 	model=new Model();
 
@@ -92,4 +99,5 @@
 	_printf_("initialize results:\n");
 	results=new DataSet(ResultsEnum());
+	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
 	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
@@ -98,5 +106,7 @@
 		/*run thermal analysis: */
 		_printf_("call computational core:\n");
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 		thermal_core(results,model,inputs);
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 
 		/*Add analysis_type to results: */
@@ -115,5 +125,7 @@
 	
 		#ifdef _HAVE_DAKOTA_ 
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 		Qmux(model,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
 		throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
@@ -134,4 +146,9 @@
 	delete inputs;
 
+	/*Get finish time and close*/
+	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
+	_printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
+	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
+	_printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
 	_printf_("closing MPI and Petsc\n");
 	PetscFinalize(); 
Index: /issm/trunk/src/c/parallel/transient.cpp
===================================================================
--- /issm/trunk/src/c/parallel/transient.cpp	(revision 2491)
+++ /issm/trunk/src/c/parallel/transient.cpp	(revision 2492)
@@ -25,4 +25,5 @@
 	int   numberofnodes;
 	int   qmu_analysis=0;
+	int waitonlock=0;
 
 	/*Model: */
@@ -36,5 +37,4 @@
 	
 	ParameterInputs* inputs=NULL;
-	int waitonlock=0;
 	
 	/*inputs: */
@@ -46,4 +46,9 @@
 	Param*  param=NULL;
 
+	/*time*/
+	double   start, finish;
+	double   start_core, finish_core;
+	double   start_init, finish_init;
+
 	MODULEBOOT();
 
@@ -52,5 +57,7 @@
 	#endif
 
+	/*Initialize Petsc and get start time*/
 	PetscInitialize(&argc,&argv,(char *)0,"");  
+	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
 
 	/*Size and rank: */
@@ -67,4 +74,5 @@
 
 	/*Initialize model structure: */
+	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
 	model=new Model();
 
@@ -118,4 +126,5 @@
 	_printf_("initialize results:\n");
 	results=new DataSet(ResultsEnum());
+	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
 
 	/*are we running the solution sequence, or a qmu wrapper around it? : */
@@ -124,5 +133,7 @@
 		/*run diagnostic analysis: */
 		_printf_("call computational core:\n");
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 		transient_core(results,model,inputs);
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	
 		/*Add analysis_type to results: */
@@ -141,5 +152,7 @@
 
 		#ifdef _HAVE_DAKOTA_ 
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
 		Qmux(model,inputs,TransientAnalysisEnum(),NoneAnalysisEnum());
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
 	 	#else
 		throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
@@ -159,5 +172,10 @@
 	xfree((void**)&m_g);
 	xfree((void**)&a_g);
-		
+
+	/*Get finish time and close*/
+	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
+	_printf_("\n   %-34s %f seconds  \n","Model initialization elapsed time:",finish_init-start_init);
+	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
+	_printf_("   %-34s %f seconds\n\n","Total elapsed time:",finish-start);
 	_printf_("closing MPI and Petsc\n");
 	PetscFinalize(); 
