Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 4396)
+++ /issm/trunk/src/c/Makefile.am	(revision 4397)
@@ -1111,7 +1111,5 @@
 					./solutions/balancedthickness2_core.cpp\
 					./solutions/balancedvelocities_core.cpp\
-					./solutions/surfaceslope.cpp\
 					./solutions/surfaceslope_core.cpp\
-					./solutions/bedslope.cpp\
 					./solutions/bedslope_core.cpp\
 					./solutions/transient2d_core.cpp\
@@ -1120,4 +1118,5 @@
 					./solutions/steadystateconvergence.cpp\
 					./solutions/ResetBoundaryConditions.cpp\
+					./solutions/SolutionConfiguration.cpp\
 					./solvers/solver_linear.cpp\
 					./solvers/solver_diagnostic_nonlinear.cpp\
@@ -1133,42 +1132,9 @@
 bin_PROGRAMS = 
 else 
-bin_PROGRAMS = DiagnosticSolution.exe ThermalSolution.exe PrognosticSolution.exe Prognostic2Solution.exe BalancedthicknessSolution.exe Balancedthickness2Solution.exe BalancedvelocitiesSolution.exe Transient2DSolution.exe Transient3DSolution.exe SteadystateSolution.exe SurfaceSlopeSolution.exe BedSlopeSolution.exe 
+bin_PROGRAMS = issm.exe 
 endif
 
 LDADD =    ./libpISSM.a $(PETSCLIB)    $(FLIBS)  $(PLAPACKLIB)  $(MUMPSLIB) $(SCALAPACKLIB)  $(BLACSLIB)  $(DAKOTALIB) $(METISLIB) $(BLASLAPACKLIB)  $(MKLLIB) $(MPILIB) $(MATHLIB) $(FORTRANLIB) $(GRAPHICSLIB) libOverload.a $(MULTITHREADINGLIB)
 
-DiagnosticSolution_exe_SOURCES = solutions/diagnostic.cpp
-DiagnosticSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-SteadystateSolution_exe_SOURCES = solutions/steadystate.cpp
-SteadystateSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-ThermalSolution_exe_SOURCES = solutions/thermal.cpp
-ThermalSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-PrognosticSolution_exe_SOURCES = solutions/prognostic.cpp
-PrognosticSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-Prognostic2Solution_exe_SOURCES = solutions/prognostic2.cpp
-Prognostic2Solution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-BalancedthicknessSolution_exe_SOURCES = solutions/balancedthickness.cpp
-BalancedthicknessSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-Balancedthickness2Solution_exe_SOURCES = solutions/balancedthickness2.cpp
-Balancedthickness2Solution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-BalancedvelocitiesSolution_exe_SOURCES = solutions/balancedvelocities.cpp
-BalancedvelocitiesSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-SurfaceSlopeSolution_exe_SOURCES = solutions/surfaceslope.cpp
-SurfaceSlopeSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-BedSlopeSolution_exe_SOURCES = solutions/bedslope.cpp
-BedSlopeSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-Transient2DSolution_exe_SOURCES = solutions/transient2d.cpp
-Transient2DSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
-
-Transient3DSolution_exe_SOURCES = solutions/transient3d.cpp
-Transient3DSolution_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
+issm_exe_SOURCES = issm.cpp
+issm_exe_CXXFLAGS= -fPIC -D_PARALLEL_ 
Index: /issm/trunk/src/c/issm.cpp
===================================================================
--- /issm/trunk/src/c/issm.cpp	(revision 4397)
+++ /issm/trunk/src/c/issm.cpp	(revision 4397)
@@ -0,0 +1,129 @@
+/*!\file:  issm.cpp
+ * \brief: ISSM main parallel program
+ */ 
+
+#include "./issm.h"
+
+int main(int argc,char* *argv){
+	
+	/*I/O: */
+	FILE     *fid              = NULL;
+	char     *inputfilename    = NULL;
+	char     *outputfilename   = NULL;
+	char     *lockname         = NULL;
+	bool      qmu_analysis     = false;
+	bool      control_analysis = false;
+	bool      waitonlock       = false;
+
+	/*FemModel: */
+	FemModel *femmodel         = NULL;
+
+	/*configuration: */
+	void (*solutioncore)(FemModel*)=NULL; //core solution function pointer
+	int* analyses=NULL;
+	int  numanalyses;
+	int  solution_type;
+
+	/*time*/
+	double   start, finish;
+	double   start_core, finish_core;
+	double   start_init, finish_init;
+
+	MODULEBOOT();
+
+	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
+	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
+	#endif
+
+	/*Initialize Petsc and get start time*/
+	PetscInitialize(&argc,&argv,(char *)0,"");  
+	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
+
+	/*Size and rank: */
+	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
+	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
+
+	_printf_("recover , input file name and output file name:\n");
+	solution_type=StringAsEnum(argv[3]);
+	inputfilename=argv[3];
+	outputfilename=argv[4];
+	lockname=argv[5];
+
+	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
+
+	/*out of solution_type, figure out solution core function pointer, 
+	 *and types of analyses needed: */
+	SolutionConfiguration(&analyses,&numanalyses,&solutioncore,solution_type);
+
+	/*Open handle to data on disk: */
+	fid=pfopen(inputfilename,"rb");
+
+	_printf_("create finite element model:\n");
+	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
+
+	/*add outputfilename in parameters: */
+	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
+	
+	/*get parameters: */
+	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
+	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
+	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
+
+	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
+
+	/*are we running the solution sequence, or a qmu wrapper around it? : */
+	if(!qmu_analysis){
+		if(!control_analysis){
+			
+			_printf_("call computational core:\n");
+			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
+			solutioncore(femmodel);
+			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
+
+		}
+		else{
+			/*run control analysis: */
+			_printf_("call computational core:\n");
+			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
+			control_core(femmodel);
+			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
+
+		}
+
+		_printf_("write results to disk:\n");
+		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
+	}
+	else{
+		/*run qmu analysis: */
+		_printf_("calling qmu analysis on diagnostic core:\n");
+
+		#ifdef _HAVE_DAKOTA_ 
+		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
+		Qmux(femmodel,DiagnosticAnalysisEnum,NoneAnalysisEnum);
+		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
+	 	#else
+		ISSMERROR(" Dakota not present, cannot do qmu!");
+		#endif
+	}
+
+	if (waitonlock>0){
+		_printf_("write lock file:\n");
+		WriteLockFile(lockname);
+	}
+
+	/*Free ressources */
+	delete femmodel;
+
+	/*Get finish time and close*/
+	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
+	_printf_("\n   %-34s %f seconds  \n","FemModel initialization elapsed time:",finish_init-start_init);
+	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
+	_printf_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
+	_printf_("closing MPI and Petsc\n");
+	PetscFinalize(); 
+	
+	/*end module: */
+	MODULEEND();
+
+	return 0; //unix success return;
+}
Index: /issm/trunk/src/c/issm.h
===================================================================
--- /issm/trunk/src/c/issm.h	(revision 4396)
+++ /issm/trunk/src/c/issm.h	(revision 4397)
@@ -6,7 +6,13 @@
 #define  _ISSM_H_
 
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
 #include "./include/include.h"
 #include "./shared/shared.h"
-#include "./objecs/objects.h"
+#include "./objects/objects.h"
 #include "./Container/Container.h"
 #include "./EnumDefinitions/EnumDefinitions.h"
@@ -14,4 +20,5 @@
 #include "./solutions/solutions.h"
 #include "./solvers/solvers.h"
+#include "./modules/modules.h"
 
 #endif //ifndef _ISSM_H_
Index: /issm/trunk/src/c/solutions/SolutionConfiguration.cpp
===================================================================
--- /issm/trunk/src/c/solutions/SolutionConfiguration.cpp	(revision 4397)
+++ /issm/trunk/src/c/solutions/SolutionConfiguration.cpp	(revision 4397)
@@ -0,0 +1,143 @@
+/*!\file:  SolutionConfiguration.cpp
+ * \brief: return type of analyses, number of analyses and core solution function.
+ */ 
+
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "../toolkits/toolkits.h"
+#include "../objects/objects.h"
+#include "../shared/shared.h"
+#include "../EnumDefinitions/EnumDefinitions.h"
+#include "./solutions.h"
+#include "../modules/modules.h"
+#include "../include/include.h"
+#include "../solvers/solvers.h"
+
+
+void SolutionConfiguration(int** panalyses,int* pnumanalyses, void (**psolutioncore)(FemModel*),int solutiontype){
+
+	/*output: */
+	int  numanalyses;
+	int* analyses=NULL;
+	void (*solutioncore)(FemModel*)=NULL;
+
+	switch(solutiontype){
+	
+		case DiagnosticSolutionEnum:
+			numanalyses=6;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=DiagnosticHorizAnalysisEnum;
+			analyses[1]=DiagnosticVertAnalysisEnum;
+			analyses[2]=DiagnosticStokesAnalysisEnum;
+			analyses[3]=DiagnosticHutterAnalysisEnum;
+			analyses[4]=SurfaceSlopeAnalysisEnum;
+			analyses[5]=BedSlopeAnalysisEnum;
+			solutioncore=&diagnostic_core;
+			break;
+
+		case SteadystateSolutionEnum:
+			numanalyses=8;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=DiagnosticHorizAnalysisEnum;
+			analyses[1]=DiagnosticVertAnalysisEnum;
+			analyses[2]=DiagnosticStokesAnalysisEnum;
+			analyses[3]=DiagnosticHutterAnalysisEnum;
+			analyses[4]=SurfaceSlopeAnalysisEnum;
+			analyses[5]=BedSlopeAnalysisEnum;
+			analyses[6]=ThermalAnalysisEnum;
+			analyses[7]=MeltingAnalysisEnum;
+			solutioncore=&steadystate_core;
+			break;
+
+		case ThermalSolutionEnum:
+			numanalyses=2;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=ThermalAnalysisEnum;
+			analyses[1]=MeltingAnalysisEnum;
+			solutioncore=&thermal_core;
+
+		case PrognosticSolutionEnum:
+			numanalyses=1;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=PrognosticAnalysisEnum;
+			solutioncore=&prognostic_core;
+
+		case Prognostic2SolutionEnum:
+			numanalyses=1;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=Prognostic2AnalysisEnum;
+			solutioncore=&prognostic2_core;
+
+		case BalancedthicknessSolutionEnum:
+			numanalyses=1;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=BalancedthicknessAnalysisEnum;
+			solutioncore=&balancedthickness_core;
+
+		case Balancedthickness2SolutionEnum:
+			numanalyses=1;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=Balancedthickness2AnalysisEnum;
+			solutioncore=&balancedthickness2_core;
+
+		case BalancedvelocitiesSolutionEnum:
+			numanalyses=1;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=BalancedvelocitiesAnalysisEnum;
+			solutioncore=&balancedvelocities_core;
+
+		case SurfaceSlopeSolutionEnum:
+			numanalyses=1;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=SurfaceSlopeAnalysisEnum;
+			solutioncore=&surfaceslope_core;
+
+		case BedSlopeSolutionEnum:
+			numanalyses=1;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=BedSlopeAnalysisEnum;
+			solutioncore=&bedslope_core;
+
+		case Transient2DSolutionEnum:
+			numanalyses=7;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=DiagnosticHorizAnalysisEnum;
+			analyses[1]=DiagnosticVertAnalysisEnum;
+			analyses[2]=DiagnosticStokesAnalysisEnum;
+			analyses[3]=DiagnosticHutterAnalysisEnum;
+			analyses[4]=SurfaceSlopeAnalysisEnum;
+			analyses[5]=BedSlopeAnalysisEnum;
+			analyses[6]=PrognosticAnalysisEnum;
+			solutioncore=&transient2d_core;
+			break;
+		
+		case Transient3DSolutionEnum:
+			numanalyses=9;
+			analyses=(int*)xmalloc(numanalyses*sizeof(int));
+			analyses[0]=DiagnosticHorizAnalysisEnum;
+			analyses[1]=DiagnosticVertAnalysisEnum;
+			analyses[2]=DiagnosticStokesAnalysisEnum;
+			analyses[3]=DiagnosticHutterAnalysisEnum;
+			analyses[4]=SurfaceSlopeAnalysisEnum;
+			analyses[5]=BedSlopeAnalysisEnum;
+			analyses[6]=PrognosticAnalysisEnum;
+			analyses[7]=ThermalAnalysisEnum;
+			analyses[8]=MeltingAnalysisEnum;
+			solutioncore=&transient3d_core;
+			break;
+
+		default:
+			ISSMERROR("%s%s%s"," solution type: ",EnumAsString(solutiontype)," not supported yet!");
+			break;
+	}
+	
+	/*Assign output pointers:*/
+	*pnumanalyses=numanalyses;
+	*panalyses=analyses;
+	*psolutioncore=solutioncore;
+
+}
Index: sm/trunk/src/c/solutions/balancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedthickness.cpp	(revision 4396)
+++ 	(revision )
@@ -1,123 +1,0 @@
-/*!\file:  balancedthickness.cpp
- * \brief: balancedthickness solution
- */ 
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	bool  qmu_analysis=false;
-	char* lockname=NULL;
-	bool  waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=1;
-	const int analyses[numanalyses]={BalancedthicknessAnalysisEnum};
-	const int solution_type=BalancedthicknessSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize model structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-	
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run balancedthickness analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		balancedthickness_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-	}
-	else{
-
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on balancedthickness core:\n");
-	
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,BalancedthicknessAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources:*/
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/balancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedthickness2.cpp	(revision 4396)
+++ 	(revision )
@@ -1,122 +1,0 @@
-/*!\file:  balancedthickness2.cpp
- * \brief: balancedthickness2 solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	bool  qmu_analysis=false;
-	char* lockname=NULL;
-	bool  waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=1;
-	const int analyses[numanalyses]={Balancedthickness2AnalysisEnum};
-	const int solution_type=Balancedthickness2SolutionEnum;
-
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize model structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run balancedthickness2 analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		balancedthickness2_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-
-	}
-	else{
-
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on balancedthickness2 core:\n");
-	
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,Balancedthickness2AnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources:*/
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/balancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedvelocities.cpp	(revision 4396)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/*!\file:  balancedvelocities.cpp
- * \brief: balancedvelocities solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	bool   qmu_analysis;
-	char* lockname=NULL;
-	char* outputfilename=NULL;
-	bool  waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=1;
-	const int analyses[numanalyses]={BalancedvelocitiesAnalysisEnum};
-	const int solution_type=BalancedvelocitiesSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize model structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-	
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run balancedvelocities analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		balancedvelocities_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-
-	}
-	else{
-
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on balancedvelocities core:\n");
-	
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,BalancedvelocitiesAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources:*/
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/bedslope.cpp
===================================================================
--- /issm/trunk/src/c/solutions/bedslope.cpp	(revision 4396)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/*!\file:  bedslope.cpp
- * \brief: bedslope computation solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool  qmu_analysis=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*Results: */
-	bool waitonlock=false;
-	
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=1;
-	const int analyses[numanalyses]={BedSlopeAnalysisEnum};
-	const int solution_type=BedSlopeSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize femmodel structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model, using analyses types statically defined above:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-	
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solution sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-			
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		bedslope_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-	}
-	else{
-		
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on bed slope core:\n");
-
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,BedSlopeAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources */
-	delete femmodel;
-
-	/*Get finish time and close*/
-	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
-	_printf_("\n   %-34s %f seconds  \n","FemModel initialization elapsed time:",finish_init-start_init);
-	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
-	_printf_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-	
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/diagnostic.cpp
===================================================================
--- /issm/trunk/src/c/solutions/diagnostic.cpp	(revision 4396)
+++ 	(revision )
@@ -1,134 +1,0 @@
-/*!\file:  diagnostic.cpp
- * \brief: diagnostic solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool  qmu_analysis=false;
-	bool  control_analysis=false;
-	bool waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=6;
-	const int analyses[numanalyses]={DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SurfaceSlopeAnalysisEnum,BedSlopeAnalysisEnum};
-	const int solution_type=DiagnosticSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-	
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solution sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-		if(!control_analysis){
-			
-			_printf_("call computational core:\n");
-			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-			diagnostic_core(femmodel);
-			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		}
-		else{
-			/*run control analysis: */
-			_printf_("call computational core:\n");
-			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-			control_core(femmodel);
-			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		}
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-	}
-	else{
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on diagnostic core:\n");
-
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,DiagnosticAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources */
-	delete femmodel;
-
-	/*Get finish time and close*/
-	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
-	_printf_("\n   %-34s %f seconds  \n","FemModel initialization elapsed time:",finish_init-start_init);
-	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
-	_printf_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-	
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/prognostic.cpp
===================================================================
--- /issm/trunk/src/c/solutions/prognostic.cpp	(revision 4396)
+++ 	(revision )
@@ -1,127 +1,0 @@
-/*!\file:  prognostic.cpp
- * \brief: prognostic solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool  qmu_analysis=false;
-	bool  waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=1;
-	const int analyses[numanalyses]={PrognosticAnalysisEnum};
-	const int solution_type=PrognosticSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize model structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run prognostic analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		prognostic_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-		
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-
-	}
-	else{
-
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on prognostic core:\n");
-	
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,PrognosticAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-		
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources:*/
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/prognostic2.cpp
===================================================================
--- /issm/trunk/src/c/solutions/prognostic2.cpp	(revision 4396)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/*!\file:  prognostic2.cpp
- * \brief: prognostic2 solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool  qmu_analysis=false;
-	bool  waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=1;
-	const int analyses[numanalyses]={Prognostic2AnalysisEnum};
-	const int solution_type=Prognostic2SolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize model structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run prognostic2 analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		prognostic2_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-
-	}
-	else{
-
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on prognostic2 core:\n");
-	
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,Prognostic2AnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources:*/
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: /issm/trunk/src/c/solutions/solutions.h
===================================================================
--- /issm/trunk/src/c/solutions/solutions.h	(revision 4396)
+++ /issm/trunk/src/c/solutions/solutions.h	(revision 4397)
@@ -48,3 +48,6 @@
 void ResetBoundaryConditions(FemModel* femmodel, int analysis_type, int sub_analysis_type);
 
+//solution configuration
+void SolutionConfiguration(int** panalyses,int* pnumanalyses, void (**psolutioncore)(FemModel*),int solutiontype);
+
 #endif
Index: sm/trunk/src/c/solutions/steadystate.cpp
===================================================================
--- /issm/trunk/src/c/solutions/steadystate.cpp	(revision 4396)
+++ 	(revision )
@@ -1,142 +1,0 @@
-/*!\file:  steadystate.cpp
- * \brief: steadystate solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool  qmu_analysis=false;
-	bool  control_analysis=false;
-	bool waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	/*intermediary: */
-	BoolParam* param=NULL;
-
-	const int numanalyses=8;
-	const int analyses[numanalyses]={DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SurfaceSlopeAnalysisEnum,BedSlopeAnalysisEnum,ThermalAnalysisEnum,MeltingAnalysisEnum};
-	const int solution_type=SteadystateSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize model structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solution sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		if(!control_analysis){
-			/*run diagnostic analysis: */
-			_printf_("call computational core:\n");
-			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-			steadystate_core(femmodel);
-			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		}
-		else{
-			/*change control_steady to 1 to know we are doing steadystate*/
-			param=(BoolParam*)femmodel->parameters->FindParamObject(ControlSteadyEnum); param->value=true;
-
-			/*run control analysis: */
-			_printf_("call computational core:\n");
-			MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-			control_core(femmodel);
-			MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-		}
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-
-	}
-	else{
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on steadystate core:\n");
-
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,SteadystateAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	_printf_("write lock file:\n");
-	if (waitonlock){
-		WriteLockFile(lockname);
-	}
-	
-	/*Free ressources */
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/surfaceslope.cpp
===================================================================
--- /issm/trunk/src/c/solutions/surfaceslope.cpp	(revision 4396)
+++ 	(revision )
@@ -1,125 +1,0 @@
-/*!\file:  surfaceslope.cpp
- * \brief: surfaceslope computation solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool  qmu_analysis=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*Results: */
-	bool waitonlock=false;
-	
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=1;
-	const int analyses[numanalyses]={SurfaceSlopeAnalysisEnum};
-	const int solution_type=SurfaceSlopeSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize femmodel structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model, using analyses types statically defined above:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-	
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solution sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-			
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		surfaceslope_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-	}
-	else{
-		
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on surface slope core:\n");
-
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,SurfaceSlopeAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources */
-	delete femmodel;
-
-	/*Get finish time and close*/
-	MPI_Barrier(MPI_COMM_WORLD); finish = MPI_Wtime( );
-	_printf_("\n   %-34s %f seconds  \n","FemModel initialization elapsed time:",finish_init-start_init);
-	_printf_("   %-34s %f seconds  \n","Core solution elapsed time:",finish_core-start_core);
-	_printf_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-	
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/thermal.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal.cpp	(revision 4396)
+++ 	(revision )
@@ -1,128 +1,0 @@
-/*!\file:  thermal.cpp
- * \brief: thermal solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-
-	int i,n;
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool  qmu_analysis=false;
-	bool  waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-	
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=2;
-	const int analyses[numanalyses]={ThermalAnalysisEnum,MeltingAnalysisEnum};
-	const int solution_type=ThermalSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	/*Initialize femmodel structure: */
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run thermal analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		thermal_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-		
-		
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-
-	}
-	else{
-	
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on thermal core:\n");
-	
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(model,ThermalAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources */
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-
-	/*end module: */
-	MODULEEND();
-
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/transient2d.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient2d.cpp	(revision 4396)
+++ 	(revision )
@@ -1,122 +1,0 @@
-/*!\file:  transient2d.cpp
- * \brief: transient2d solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool qmu_analysis=false;
-	bool waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=7;
-	const int analyses[numanalyses]={DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SurfaceSlopeAnalysisEnum,BedSlopeAnalysisEnum,PrognosticAnalysisEnum};
-	const int solution_type=Transient2DSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solution sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run diagnostic analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		transient2d_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-	}
-	else{
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on transient2d core:\n");
-
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,Transient2DAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources:*/
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-	
-	/*end module: */
-	MODULEEND();
-	
-	return 0; //unix success return;
-}
Index: sm/trunk/src/c/solutions/transient3d.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient3d.cpp	(revision 4396)
+++ 	(revision )
@@ -1,122 +1,0 @@
-/*!\file:  transient.cpp
- * \brief: transient solution
- */ 
-
-#ifdef HAVE_CONFIG_H
-	#include "config.h"
-#else
-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
-#endif
-
-#include "../objects/objects.h"
-#include "../shared/shared.h"
-#include "../Container/Container.h"
-#include "../EnumDefinitions/EnumDefinitions.h"
-#include "../include/include.h"
-#include "../modules/modules.h"
-#include "./solutions.h"
-
-int main(int argc,char* *argv){
-	
-	/*I/O: */
-	FILE* fid=NULL;
-	char* inputfilename=NULL;
-	char* outputfilename=NULL;
-	char* lockname=NULL;
-	bool qmu_analysis=false;
-	bool waitonlock=false;
-
-	/*FemModel: */
-	FemModel* femmodel=NULL;
-
-	/*time*/
-	double   start, finish;
-	double   start_core, finish_core;
-	double   start_init, finish_init;
-
-	const int numanalyses=9;
-	const int analyses[numanalyses]={DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SurfaceSlopeAnalysisEnum,BedSlopeAnalysisEnum,PrognosticAnalysisEnum,ThermalAnalysisEnum,MeltingAnalysisEnum};
-	const int solution_type=Transient3DSolutionEnum;
-
-	MODULEBOOT();
-
-	#if !defined(_PARALLEL_) || (defined(_PARALLEL_) && !defined(_HAVE_PETSC_))
-	ISSMERROR(" parallel executable was compiled without support of parallel libraries!");
-	#endif
-
-	/*Initialize Petsc and get start time*/
-	PetscInitialize(&argc,&argv,(char *)0,"");  
-	MPI_Barrier(MPI_COMM_WORLD); start=MPI_Wtime();
-
-	/*Size and rank: */
-	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);  
-	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
-
-	_printf_("recover , input file name and output file name:\n");
-	inputfilename=argv[2];
-	outputfilename=argv[3];
-	lockname=argv[4];
-
-	MPI_Barrier(MPI_COMM_WORLD); start_init=MPI_Wtime();
-
-	/*Open handle to data on disk: */
-	fid=pfopen(inputfilename,"rb");
-
-	_printf_("create finite element model:\n");
-	femmodel=new FemModel(fid,solution_type,analyses,numanalyses);
-
-	/*add outputfilename in parameters: */
-	femmodel->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
-
-	/*get parameters: */
-	femmodel->parameters->FindParam(&qmu_analysis,QmuAnalysisEnum);
-	femmodel->parameters->FindParam(&waitonlock,WaitOnLockEnum);
-
-	MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime();
-
-	/*are we running the solution sequence, or a qmu wrapper around it? : */
-	if(!qmu_analysis){
-
-		/*run diagnostic analysis: */
-		_printf_("call computational core:\n");
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		transient3d_core(femmodel);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	
-		_printf_("write results to disk:\n");
-		OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,femmodel->results);
-	}
-	else{
-		/*run qmu analysis: */
-		_printf_("calling qmu analysis on transient core:\n");
-
-		#ifdef _HAVE_DAKOTA_ 
-		MPI_Barrier(MPI_COMM_WORLD); start_core=MPI_Wtime( );
-		Qmux(femmodel,Transient3DAnalysisEnum,NoneAnalysisEnum);
-		MPI_Barrier(MPI_COMM_WORLD); finish_core=MPI_Wtime( );
-	 	#else
-		ISSMERROR(" Dakota not present, cannot do qmu!");
-		#endif
-	}
-
-	if (waitonlock>0){
-		_printf_("write lock file:\n");
-		WriteLockFile(lockname);
-	}
-
-	/*Free ressources:*/
-	delete femmodel;
-
-	/*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_("\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
-	_printf_("closing MPI and Petsc\n");
-	PetscFinalize(); 
-	
-	/*end module: */
-	MODULEEND();
-	
-	return 0; //unix success return;
-}
Index: /issm/trunk/src/m/classes/public/plot/applyoptions.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/applyoptions.m	(revision 4396)
+++ /issm/trunk/src/m/classes/public/plot/applyoptions.m	(revision 4397)
@@ -227,4 +227,15 @@
 	set(gca,'XTickLabel',getfieldvalue(options,'XTickLabel'));
 end
+
+%xtick
+if exist(options,'xtick'),
+	set(gca,'xtick',getfieldvalue(options,'xtick'));
+end
+
+%ytick
+if exist(options,'ytick'),
+	set(gca,'ytick',getfieldvalue(options,'ytick'));
+end
+
 
 %position of figure
Index: /issm/trunk/src/m/classes/public/queue/BuildQueueingScript.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/BuildQueueingScript.m	(revision 4396)
+++ /issm/trunk/src/m/classes/public/queue/BuildQueueingScript.m	(revision 4397)
@@ -21,3 +21,2 @@
 %close file
 fclose(fid);
-
Index: /issm/trunk/src/m/classes/public/queue/ClusterScript.m
===================================================================
--- /issm/trunk/src/m/classes/public/queue/ClusterScript.m	(revision 4396)
+++ /issm/trunk/src/m/classes/public/queue/ClusterScript.m	(revision 4397)
@@ -24,5 +24,5 @@
 	fprintf(fid,'ulimit -s unlimited\n');
 	fprintf(fid,'ulimit -c 0\n');
-	fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np,codepath,EnumAsString(analysis_type),executionpath,name,name,name);
+	fprintf(fid,'/opt/mpich/gm/intel10.1/bin/mpirun -np %i %s/issm.exe %s %s %s.bin %s.outbin %s.lock',np,codepath,EnumAsString(analysis_type),executionpath,name,name,name);
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -39,7 +39,7 @@
 	fprintf(fid,'rm -rf %s/%s.lock\n',executionpath,name);
 	if mem_debug==0,
-		fprintf(fid,'mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',np,codepath,EnumAsString(analysis_type),executionpath,name,name,name,name,name);
+		fprintf(fid,'mpirun -np %i %s/issm.exe %s %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',np,codepath,EnumAsString(analysis_type),executionpath,name,name,name,name,name);
 	else
-		fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --suppressions=%s %s/%s.exe %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],[ISSM_DIR '/externalpackages/valgrind/issm.supp'], codepath,EnumAsString(analysis_type),executionpath,name,name,name,name,name);
+		fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s.bin %s.outbin %s.lock  2> %s.errlog >%s.outlog & ',[ISSM_DIR '/externalpackages/valgrind/install/lib/libmpidebug.so'],np,[ISSM_DIR '/externalpackages/valgrind/install/bin/valgrind'],[ISSM_DIR '/externalpackages/valgrind/issm.supp'], codepath,EnumAsString(analysis_type),executionpath,name,name,name,name,name);
 	end
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -64,5 +64,5 @@
 	fprintf(fid,'cd $PBS_O_WORKDIR\n');
 	fprintf(fid,'export OMP_NUM_THREADS=1\n');
-	fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/%s.exe %s %s.bin %s.outbin %s.lock',np-1,np,codepath,EnumAsString(analysis_type),executionpath,name,name,name);
+	fprintf(fid,'dplace -s1 -c0-%i mpirun -np %i %s/issm.exe %s %s %s.bin %s.outbin %s.lock',np-1,np,codepath,EnumAsString(analysis_type),executionpath,name,name,name);
 	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
