Index: /issm/trunk/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp
===================================================================
--- /issm/trunk/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/ConfigureObjectsx/ConfigureObjectsx.cpp	(revision 6323)
@@ -24,10 +24,10 @@
 	parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
 	
-	//_printf_("      Configuring elements...\n");
+	ISSMPRINTF(VerboseMProcessor(),"      Configuring elements...\n");
 	for (i=0;i<elements->Size();i++){
 		element=(Element*)elements->GetObjectByOffset(i);
 		element->Configure(elements,loads,nodes,materials,parameters);
 	}
-	//_printf_("      Configuring loads...\n");
+	ISSMPRINTF(VerboseMProcessor(),"      Configuring loads...\n");
 	for (i=0;i<loads->Size();i++){
 		load=(Load*)loads->GetObjectByOffset(i);
@@ -36,5 +36,5 @@
 		}
 	}
-	//_printf_("      Configuring nodes...\n");
+	ISSMPRINTF(VerboseMProcessor(),"      Configuring nodes...\n");
 	for (i=0;i<nodes->Size();i++){
 		node=(Node*)nodes->GetObjectByOffset(i);
@@ -44,5 +44,5 @@
 	}
 	
-	//_printf_("      Configuring materials...\n");
+	ISSMPRINTF(VerboseMProcessor(),"      Configuring materials...\n");
 	for (i=0;i<materials->Size();i++){
 		material=(Material*)materials->GetObjectByOffset(i);
Index: /issm/trunk/src/c/modules/InputConvergencex/InputConvergencex.cpp
===================================================================
--- /issm/trunk/src/c/modules/InputConvergencex/InputConvergencex.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/InputConvergencex/InputConvergencex.cpp	(revision 6323)
@@ -17,9 +17,5 @@
 	double     *eps       = NULL;
 	Element*    element=NULL;
-	int         verbose;
 
-	/*retrieve parameters: */
-	parameters->FindParam(&verbose,VerboseEnum);
-	
 	/*allocate dynamic memory: */
 	eps=(double*)xmalloc(num_criterionenums*sizeof(double));
@@ -37,5 +33,5 @@
 	num_notconverged=total_notconverged;
 	#endif
-	_printf_("      #elements above convergence criterion = %i\n",num_notconverged);
+	ISSMPRINTF(VerboseConvergence(),"      #elements above convergence criterion = %i\n",num_notconverged);
 
 	/*Free ressources:*/
Index: /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp
===================================================================
--- /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 6323)
@@ -15,5 +15,4 @@
 	int     dummy;
 	
-	int     verbose;
 	int     numberofvertices;
 	int     qmu_npart;
@@ -26,5 +25,4 @@
 
 	/*retrieve parameters: */
-	parameters->FindParam(&verbose,VerboseEnum);
 	parameters->FindParam(&qmu_npart,QmuNPartEnum);
 	parameters->FindParam(&qmu_part,&dummy,QmuPartEnum);
Index: /issm/trunk/src/c/modules/Mergesolutionfromftogx/Mergesolutionfromftogx.cpp
===================================================================
--- /issm/trunk/src/c/modules/Mergesolutionfromftogx/Mergesolutionfromftogx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/Mergesolutionfromftogx/Mergesolutionfromftogx.cpp	(revision 6323)
@@ -13,6 +13,5 @@
 	
 	/*Display message*/
-	int verbose; parameters->FindParam(&verbose,VerboseEnum);
-	if (verbose) _printf_("   Merging solution vector from fset to gset\n");
+	ISSMPRINTF(VerboseModule(),"   Merging solution vector from fset to gset\n");
 
 	/*Merge f set back into g set: */
Index: /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 6323)
@@ -44,5 +44,4 @@
 	parameters->AddObject(new BoolParam(IsMacAyealPattynEnum,iomodel->ismacayealpattyn));
 	parameters->AddObject(new BoolParam(IsStokesEnum,iomodel->isstokes));
-	parameters->AddObject(new IntParam(VerboseEnum,iomodel->verbose));
 	parameters->AddObject(new IntParam(OutputFrequencyEnum,iomodel->output_frequency));
 	parameters->AddObject(new DoubleParam(EpsResEnum,iomodel->eps_res));
Index: /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
===================================================================
--- /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 6323)
@@ -30,9 +30,7 @@
 	Parameters* parameters=NULL;
 
-
 	/*intermediary: */
 	IoModel* iomodel=NULL;
 
-	_printf_("   fill model with matlab workspace data\n");
 	iomodel = new IoModel(IOMODEL);
 	SetVerbosityLevel(iomodel->verbose);
Index: /issm/trunk/src/c/modules/PenaltyConstraintsx/PenaltyConstraintsx.cpp
===================================================================
--- /issm/trunk/src/c/modules/PenaltyConstraintsx/PenaltyConstraintsx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/PenaltyConstraintsx/PenaltyConstraintsx.cpp	(revision 6323)
@@ -24,6 +24,5 @@
 
 	/*Display message*/
-	int verbose; parameters->FindParam(&verbose,VerboseEnum);
-	if (verbose) _printf_("   Constraining penalties\n");
+	ISSMPRINTF(VerboseModule(),"   Constraining penalties\n");
 
 	/*recover parameters: */
Index: /issm/trunk/src/c/modules/PenaltyConstraintsx/RiftConstraints.cpp
===================================================================
--- /issm/trunk/src/c/modules/PenaltyConstraintsx/RiftConstraints.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/PenaltyConstraintsx/RiftConstraints.cpp	(revision 6323)
@@ -55,5 +55,5 @@
 	}
 	else if(num_unstable_constraints<=min_mechanical_constraints){
-		_printf_("   freezing constraints\n");
+		ISSMPRINTF(VerboseModule(),"   freezing constraints\n");
 		RiftFreezeConstraints(loads,configuration_type);
 	}
Index: /issm/trunk/src/c/modules/Qmux/SpawnCoreParallel.cpp
===================================================================
--- /issm/trunk/src/c/modules/Qmux/SpawnCoreParallel.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/Qmux/SpawnCoreParallel.cpp	(revision 6323)
@@ -46,5 +46,4 @@
 	char    *string                    = NULL;
 	int      string_length;
-	int      verbose                   = 0;
 	int      solution_type;
 	bool     control_analysis          = false;
@@ -53,8 +52,7 @@
 	/*synchronize all cpus, as CPU 0 is probably late (it is starting the entire dakota strategy!) : */
 	MPI_Barrier(MPI_COMM_WORLD);
-	_printf_("qmu iteration: %i\n",counter);
+	ISSMPRINTF(VerboseQmu(),"qmu iteration: %i\n",counter);
 	
 	/*retrieve parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,ResponseDescriptorsEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
@@ -68,5 +66,5 @@
 
 	/*Determine solution sequence: */
-	if(verbose)_printf_("%s%s%s\n","Starting ",EnumToString(solution_type)," core:");
+	ISSMPRINTF(VerboseQmu(),"%s%s%s\n","Starting ",EnumToString(solution_type)," core:");
 	SolutionConfiguration(NULL,NULL,&solutioncore,solution_type); 
 	if(control_analysis)solutioncore=&control_core;
@@ -76,5 +74,5 @@
 
 	/*compute responses: */
-	if(verbose)_printf_("compute dakota responses:\n");
+	ISSMPRINTF(VerboseQmu(),"compute dakota responses:\n");
 	DakotaResponsesx(d_responses,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,responses_descriptors,numresponsedescriptors,d_numresponses);
 	
Index: /issm/trunk/src/c/modules/Reduceloadfromgtofx/Reduceloadfromgtofx.cpp
===================================================================
--- /issm/trunk/src/c/modules/Reduceloadfromgtofx/Reduceloadfromgtofx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/Reduceloadfromgtofx/Reduceloadfromgtofx.cpp	(revision 6323)
@@ -23,11 +23,9 @@
 
 	/*Parameters: */
-	int verbose; 
 	bool kffpartition=false;
 	bool fromlocalsize=true;
 
-	parameters->FindParam(&verbose,VerboseEnum);
 	parameters->FindParam(&kffpartition,KffEnum);
-	if (verbose) _printf_("   Reducing Load vector from gset to fset\n");
+	ISSMPRINTF(VerboseModule(),"   Reducing Load vector from gset to fset\n");
 
 	if(!pg){
Index: /issm/trunk/src/c/modules/Reduceloadx/Reduceloadx.cpp
===================================================================
--- /issm/trunk/src/c/modules/Reduceloadx/Reduceloadx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/Reduceloadx/Reduceloadx.cpp	(revision 6323)
@@ -21,6 +21,5 @@
 	int         verbose;
 
-	parameters->FindParam(&verbose,VerboseEnum);
-	if (verbose) _printf_("   Dirichlet lifting applied to load vector\n");
+	ISSMPRINTF(VerboseModule(),"   Dirichlet lifting applied to load vector\n");
 	
 	if(pf && Kfs){
Index: /issm/trunk/src/c/modules/Reducematrixfromgtofx/Reducematrixfromgtofx.cpp
===================================================================
--- /issm/trunk/src/c/modules/Reducematrixfromgtofx/Reducematrixfromgtofx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/Reducematrixfromgtofx/Reducematrixfromgtofx.cpp	(revision 6323)
@@ -11,6 +11,5 @@
 
 	/*Display message*/
-	int verbose; parameters->FindParam(&verbose,VerboseEnum);
-	if (verbose) _printf_("   Reducing Stiffness Matrix from gset to fset\n");
+	ISSMPRINTF(VerboseModule(),"   Reducing Stiffness Matrix from gset to fset\n");
 
 	//Reduce matrix from g-size to f-size
Index: /issm/trunk/src/c/modules/Solverx/Solverx.cpp
===================================================================
--- /issm/trunk/src/c/modules/Solverx/Solverx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/Solverx/Solverx.cpp	(revision 6323)
@@ -30,10 +30,9 @@
 	int        solver_type;
 	bool       fromlocalsize    = true;
-	int        verbose;
 
 
 	/*Display message*/
-	parameters->FindParam(&verbose,VerboseEnum); if (verbose) _printf_("   Solving\n");
-	if(verbose==2)PetscOptionsPrint(stdout);
+	ISSMPRINTF(VerboseModule(),"   Solving\n");
+	if(VerboseSolver())PetscOptionsPrint(stdout);
 
 	/*First, check that f-set is not NULL, ie model is fully constrained: */
@@ -108,5 +107,5 @@
 	}
 	
-	if(verbose==2)KSPView(ksp,PETSC_VIEWER_STDOUT_WORLD);
+	if(VerboseSolver())KSPView(ksp,PETSC_VIEWER_STDOUT_WORLD);
 
 	/*Solve: */
Index: /issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp
===================================================================
--- /issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp	(revision 6322)
+++ /issm/trunk/src/c/modules/SystemMatricesx/SystemMatricesx.cpp	(revision 6323)
@@ -29,6 +29,5 @@
 
 	/*Display message*/
-	int verbose; parameters->FindParam(&verbose,VerboseEnum);
-	if (verbose) _printf_("   Generating matrices\n");
+	ISSMPRINTF(VerboseModule(),"   Generating matrices\n");
 
 	/*retrive parameters: */
Index: /issm/trunk/src/c/objects/FemModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/FemModel.cpp	(revision 6322)
+++ /issm/trunk/src/c/objects/FemModel.cpp	(revision 6323)
@@ -125,9 +125,4 @@
 void FemModel::SetCurrentConfiguration(int configuration_type,int analysis_type){
 
-	int verbose=0;
-
-	/*retrieve parameters: */
-	this->parameters->FindParam(&verbose,VerboseEnum);
-	
 	/*Use configuration_type to setup the analysis counter, the configurations of objects etc ... but use 
 	 * analysis_type to drive the element numerics. This allows for use of 1 configuration_type for several 
@@ -161,9 +156,5 @@
 	/*take care of petsc options, that depend on this analysis type: */
 	PetscOptionsFromAnalysis(this->parameters,analysis_type);
-
-	if(verbose){
-		_printf_("      petsc Options set for analysis type: %s\n",EnumToString(analysis_type));
-	}
-
+	ISSMPRINTF(VerboseSolver(),"      petsc Options set for analysis type: %s\n",EnumToString(analysis_type));
 
 }
Index: /issm/trunk/src/c/shared/Numerics/BrentSearch.cpp
===================================================================
--- /issm/trunk/src/c/shared/Numerics/BrentSearch.cpp	(revision 6322)
+++ /issm/trunk/src/c/shared/Numerics/BrentSearch.cpp	(revision 6323)
@@ -59,11 +59,11 @@
 
 	//display result
-	_printf_("\n        Iteration         x           f(x)       Tolerance         Procedure\n\n");
-	_printf_("        %s    %12.6g  %12.6g  %s","   N/A",xmin,fxmin,"         N/A         boundary\n");
+	ISSMPRINTF(VerboseControl(),"\n        Iteration         x           f(x)       Tolerance         Procedure\n\n");
+	ISSMPRINTF(VerboseControl(),"        %s    %12.6g  %12.6g  %s","   N/A",xmin,fxmin,"         N/A         boundary\n");
 
 	//get the value of the function at the first boundary xmax and display result
 	fxmax = (*f)(xmax,optargs);
 	if isnan(fxmax) ISSMERROR("Function evaluation returned NaN");
-	_printf_("        %s    %12.6g  %12.6g  %s","   N/A",xmax,fxmax,"         N/A         boundary\n");
+	ISSMPRINTF(VerboseControl(),"        %s    %12.6g  %12.6g  %s","   N/A",xmax,fxmax,"         N/A         boundary\n");
 
 	//test if jump option activated and xmin==0
@@ -109,5 +109,5 @@
 
 	//4: print result
-	_printf_("         %5i    %12.6g  %12.6g  %12.6g  %s\n",iter,xbest,fxbest,pow(pow(xbest-xm,2),0.5),"       initial");
+	ISSMPRINTF(VerboseControl(),"         %5i    %12.6g  %12.6g  %12.6g  %s\n",iter,xbest,fxbest,pow(pow(xbest-xm,2),0.5),"       initial");
 
 	//Main Loop
@@ -230,17 +230,17 @@
 		//print result
 		if (goldenflag){
-			_printf_("         %5i    %12.6g  %12.6g  %12.6g  %s\n",iter,x,fx,pow(pow(xbest-xm,2),0.5),"       golden");
-		}
-		else{
-			_printf_("         %5i    %12.6g  %12.6g  %12.6g  %s\n",iter,x,fx,pow(pow(xbest-xm,2),0.5),"       parabolic");
+			ISSMPRINTF(VerboseControl(),"         %5i    %12.6g  %12.6g  %12.6g  %s\n",iter,x,fx,pow(pow(xbest-xm,2),0.5),"       golden");
+		}
+		else{
+			ISSMPRINTF(VerboseControl(),"         %5i    %12.6g  %12.6g  %12.6g  %s\n",iter,x,fx,pow(pow(xbest-xm,2),0.5),"       parabolic");
 		}
 
 		//Stop the optimization?
 		if (sqrt(pow(xbest-xm,2)) < (tol2-0.5*(xmax-xmin))){
-			_printf_("      %s%g\n","optimization terminated: the current x satisfies the termination criteria using 'tolx' of" ,tolerance);
+			ISSMPRINTF(VerboseControl(),"      %s%g\n","optimization terminated: the current x satisfies the termination criteria using 'tolx' of" ,tolerance);
 			loop=0;
 		}
 		else if (iter>=maxiter){
-			_printf_("      %s\n","exiting: Maximum number of iterations has been exceeded  - increase 'maxiter'\n");
+			ISSMPRINTF(VerboseControl(),"      %s\n","exiting: Maximum number of iterations has been exceeded  - increase 'maxiter'\n");
 			loop=0;
 		}
Index: /issm/trunk/src/c/shared/Numerics/OptimalSearch.cpp
===================================================================
--- /issm/trunk/src/c/shared/Numerics/OptimalSearch.cpp	(revision 6322)
+++ /issm/trunk/src/c/shared/Numerics/OptimalSearch.cpp	(revision 6323)
@@ -41,6 +41,6 @@
 	fx1= (*f)(x1,optargs);
 	if isnan(fx1) ISSMERROR("Function evaluation returned NaN");
-	_printf_("\n        Iteration         x           f(x)       Tolerance\n\n");
-	_printf_("        %s    %12.6g  %12.6g  %s","   N/A",x1,fx1,"         N/A\n");
+	ISSMPRINTF(VerboseControl(),"\n        Iteration         x           f(x)       Tolerance\n\n");
+	ISSMPRINTF(VerboseControl(),"        %s    %12.6g  %12.6g  %s","   N/A",x1,fx1,"         N/A\n");
 
 	//update tolerances
@@ -54,13 +54,13 @@
 		fx2 = (*f)(x2,optargs);
 		if isnan(fx2) ISSMERROR("Function evaluation returned NaN");
-		_printf_("         %5i    %12.6g  %12.6g  %12.6g\n",iter,x2,fx2,fabs(x2-x1)>fabs(fx2-fx1)?fabs(fx2-fx1):fabs(x2-x1));
+		ISSMPRINTF(VerboseControl(),"         %5i    %12.6g  %12.6g  %12.6g\n",iter,x2,fx2,fabs(x2-x1)>fabs(fx2-fx1)?fabs(fx2-fx1):fabs(x2-x1));
 
 		//Stop the optimization?
 		if ((fabs(x2-x1)+seps)<tolerance || (fabs(fx2-fx1)+seps)<tolerance){
-			_printf_("      %s%g\n","optimization terminated: the current x satisfies the termination criteria using 'tolx' of " ,tolerance);
+			ISSMPRINTF(VerboseControl(),"      %s%g\n","optimization terminated: the current x satisfies the termination criteria using 'tolx' of " ,tolerance);
 			loop=false;
 		}
 		else if (iter>=maxiter){
-			_printf_("      %s\n","exiting: Maximum number of iterations has been exceeded  - increase 'maxiter'\n");
+			ISSMPRINTF(VerboseControl(),"      %s\n","exiting: Maximum number of iterations has been exceeded  - increase 'maxiter'\n");
 			loop=false;
 		}
Index: /issm/trunk/src/c/shared/Numerics/Verbosity.cpp
===================================================================
--- /issm/trunk/src/c/shared/Numerics/Verbosity.cpp	(revision 6322)
+++ /issm/trunk/src/c/shared/Numerics/Verbosity.cpp	(revision 6323)
@@ -24,8 +24,11 @@
 
 /*Verbosityt levels*/
-bool VerboseModule(void){return (GetVerbosityLevel() & 1);} /* 2^0*/
-bool VerboseConvergence(void){return (GetVerbosityLevel() & 2);} /* 2^1*/
-bool VerboseMProcessor(void){return (GetVerbosityLevel() & 4);} /* 2^2*/
+bool VerboseMProcessor(void){return (GetVerbosityLevel() & 1);} /* 2^0*/
+bool VerboseModule(void){return (GetVerbosityLevel() & 2);} /* 2^1*/
+bool VerboseSolution(void){return (GetVerbosityLevel() & 4);} /* 2^2*/
 bool VerboseSolver(void){return (GetVerbosityLevel() & 8);} /* 2^3*/
+bool VerboseConvergence(void){return (GetVerbosityLevel() & 16);} /* 2^4*/
+bool VerboseControl(void){return (GetVerbosityLevel() & 32);} /* 2^5*/
+bool VerboseQmu(void){return (GetVerbosityLevel() & 64);} /* 2^6*/
 
 /*Verbosity Setup*/
Index: /issm/trunk/src/c/shared/Numerics/Verbosity.h
===================================================================
--- /issm/trunk/src/c/shared/Numerics/Verbosity.h	(revision 6322)
+++ /issm/trunk/src/c/shared/Numerics/Verbosity.h	(revision 6323)
@@ -7,8 +7,11 @@
 
 /*List of Verbosity levels (Add your own and Synchronize: must begin with "Verb")*/
+bool VerboseMProcessor(void);
 bool VerboseModule(void);
+bool VerboseSolution(void);
+bool VerboseSolver(void);
 bool VerboseConvergence(void);
-bool VerboseMProcessor(void);
-bool VerboseSolver(void);
+bool VerboseControl(void);
+bool VerboseQmu(void);
 
 /*Setup Verbosity level*/
Index: /issm/trunk/src/c/solutions/ResetBoundaryConditions.cpp
===================================================================
--- /issm/trunk/src/c/solutions/ResetBoundaryConditions.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/ResetBoundaryConditions.cpp	(revision 6323)
@@ -9,11 +9,9 @@
 void ResetBoundaryConditions(FemModel* femmodel, int analysis_type){
 	
-	int verbose=0;
 	Vec yg=NULL;
 	Vec ys=NULL;
 	int analysis_counter;
 			
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
-	if(verbose)_printf_("%s\n"," updating boundary conditions...");
+	ISSMPRINTF(VerboseSolution(),"%s\n","   updating boundary conditions...");
 			
 	/*set current analysis: */
Index: /issm/trunk/src/c/solutions/adjointbalancedthickness_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/adjointbalancedthickness_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/adjointbalancedthickness_core.cpp	(revision 6323)
@@ -16,14 +16,12 @@
 	/*parameters: */
 	bool control_analysis;
-	int  verbose = 0;
 	int  solution_type;
 
 	/*retrieve parameters:*/
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
 	/*compute thickness */
-	_printf_("%s\n","      computing thickness");
+	ISSMPRINTF(VerboseSolution(),"%s\n","   computing thickness");
 	femmodel->SetCurrentConfiguration(BalancedthicknessAnalysisEnum);
 	solver_linear(femmodel);
@@ -33,5 +31,5 @@
 
 	/*compute adjoint*/
-	_printf_("%s\n","      computing adjoint");
+	ISSMPRINTF(VerboseSolution(),"%s\n","   computing adjoint");
 	femmodel->SetCurrentConfiguration(BalancedthicknessAnalysisEnum,AdjointBalancedthicknessAnalysisEnum);
 	solver_adjoint_linear(femmodel);
@@ -39,5 +37,5 @@
 	/*Save results*/
 	if(solution_type==AdjointSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,AdjointEnum);
 	}
Index: /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp	(revision 6323)
@@ -18,9 +18,7 @@
 	bool control_analysis;
 	bool conserve_loads   = true;
-	int  verbose          = 0;
 	int  solution_type;
 
 	/*retrieve parameters:*/
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&isstokes,IsStokesEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
@@ -28,5 +26,5 @@
 
 	/*Compute velocities*/
-	_printf_("%s\n","      computing velocities");
+	ISSMPRINTF(VerboseSolution(),"%s\n","   computing velocities");
 	femmodel->SetCurrentConfiguration(DiagnosticHorizAnalysisEnum);
 	solver_diagnostic_nonlinear(femmodel,conserve_loads); 
@@ -36,5 +34,5 @@
 
 	/*Compute adjoint*/
-	_printf_("%s\n","      computing adjoint");
+	ISSMPRINTF(VerboseSolution(),"%s\n","   computing adjoint");
 	femmodel->SetCurrentConfiguration(DiagnosticHorizAnalysisEnum,AdjointHorizAnalysisEnum);
 	solver_adjoint_linear(femmodel);
@@ -42,5 +40,5 @@
 	/*Save results*/
 	if(solution_type==AdjointSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,AdjointxEnum);
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,AdjointyEnum);
Index: /issm/trunk/src/c/solutions/balancedthickness_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedthickness_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/balancedthickness_core.cpp	(revision 6323)
@@ -15,5 +15,4 @@
 
 	/*parameters: */
-	int  verbose = 0;
 	int  dim;
 	int  solution_type;
@@ -24,14 +23,13 @@
 	
 	/*recover parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
-	_printf_("call computational core:\n");
+	ISSMPRINTF(VerboseSolution(),"call computational core:\n");
 	solver_linear(femmodel);
 
 	if(solution_type==BalancedthicknessSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ThicknessEnum);
 	}
Index: /issm/trunk/src/c/solutions/balancedvelocities_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedvelocities_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/balancedvelocities_core.cpp	(revision 6323)
@@ -14,5 +14,4 @@
 
 	/*flags: */
-	int  verbose          = 0;
 	int  dim;
 	bool control_analysis;
@@ -23,14 +22,13 @@
 	
 	/*recover parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
-	_printf_("call computational core:\n");
+	ISSMPRINTF(VerboseSolution(),"   call computational core\n");
 	solver_linear(femmodel);
 
 	if(solution_type==BalancedvelocitiesSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VelEnum);
 	}
Index: /issm/trunk/src/c/solutions/bedslope_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/bedslope_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/bedslope_core.cpp	(revision 6323)
@@ -13,5 +13,4 @@
 
 	/*parameters: */
-	int  verbose;
 	int  dim;
 	bool isstokes;
@@ -21,10 +20,9 @@
 
 	/*Recover some parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
-	if(verbose)_printf_("%s\n","computing slope...");
+	ISSMPRINTF(VerboseSolution(),"%s\n","   computing slope");
 
 	/*Call on core computations: */
@@ -35,5 +33,5 @@
 	
 	if(solution_type==BedSlopeSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedSlopeXEnum);
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BedSlopeYEnum);
Index: /issm/trunk/src/c/solutions/control_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/control_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/control_core.cpp	(revision 6323)
@@ -17,5 +17,4 @@
 	
 	/*parameters: */
-	int     verbose=0;
 	int     num_controls;
 	int     nsteps;
@@ -67,5 +66,5 @@
 
 	/*Launch once a complete solution to set up all inputs*/
-	_printf_("%s\n","      preparing initial solution");
+	ISSMPRINTF(VerboseControl(),"%s\n","   preparing initial solution");
 	if (isstokes) solutioncore(femmodel);
 
@@ -81,5 +80,5 @@
 
 		/*Display info*/
-		_printf_("\n%s%i%s%i\n","   control method step ",n+1,"/",nsteps);
+		ISSMPRINTF(VerboseControl(),"\n%s%i%s%i\n","   control method step ",n+1,"/",nsteps);
 		InputUpdateFromConstantx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,(int)responses[n],CmResponseEnum);
 		
@@ -87,8 +86,7 @@
 		if (solution_type==SteadystateSolutionEnum) solutioncore(femmodel);
 
-		_printf_("%s\n","      compute adjoint state:");
+		ISSMPRINTF(VerboseControl(),"%s\n","   compute adjoint state:");
 		adjointcore(femmodel);
 	
-		_printf_("%s\n","      computing gradJ...");
 		gradient_core(femmodel,n,search_scalar);
 
@@ -99,10 +97,10 @@
 		}
 
-		_printf_("%s\n","      optimizing along gradient direction");
+		ISSMPRINTF(VerboseControl(),"%s\n","   optimizing along gradient direction");
 		optargs.n=n; optpars.maxiter=(int)maxiter[n]; optpars.cm_jump=cm_jump[n];
 		BrentSearch(&search_scalar,J+n,&optpars,&objectivefunctionC,&optargs);
 		//OptimalSearch(&search_scalar,J+n,&optpars,&objectivefunctionC,&optargs);
 
-		_printf_("%s\n","      updating parameter using optimized search scalar..."); //true means update save controls
+		ISSMPRINTF(VerboseControl(),"%s\n","   updating parameter using optimized search scalar"); //true means update save controls
 		InputControlUpdatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,search_scalar,true);
 		
@@ -111,10 +109,10 @@
 		/*Temporary saving every 5 control steps: */
 		if (((n+1)%5)==0){
-			_printf_("%s\n","      saving temporary results...");
+			ISSMPRINTF(VerboseControl(),"%s\n","   saving temporary results");
 			controlrestart(femmodel,J);
 		}
 	}
 
-	_printf_("%s\n","      preparing final solution");
+	ISSMPRINTF(VerboseControl(),"%s\n","   preparing final solution");
 	femmodel->parameters->SetParam(false,ControlAnalysisEnum); //needed to turn control result output in solutioncore
 	solutioncore(femmodel);
Index: /issm/trunk/src/c/solutions/controlconvergence.cpp
===================================================================
--- /issm/trunk/src/c/solutions/controlconvergence.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/controlconvergence.cpp	(revision 6323)
@@ -32,8 +32,8 @@
 					//convergence if convergence criteria fullfilled
 					converged=true;
-					_printf_("%s%g%s%g\n","      Convergence criterion: dJ/J = ",(J[i]-J[n])/J[n],"<",eps_cm);
+					ISSMPRINTF(VerboseConvergence(),"%s%g%s%g\n","      Convergence criterion: dJ/J = ",(J[i]-J[n])/J[n],"<",eps_cm);
 				}
 				else{
-					_printf_("%s%g%s%g\n","      Convergence criterion: dJ/J = ",(J[i]-J[n])/J[n],">",eps_cm);
+					ISSMPRINTF(VerboseConvergence(),"%s%g%s%g\n","      Convergence criterion: dJ/J = ",(J[i]-J[n])/J[n],">",eps_cm);
 				}
 				break;
Index: /issm/trunk/src/c/solutions/diagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/diagnostic_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/diagnostic_core.cpp	(revision 6323)
@@ -15,5 +15,4 @@
 
 	/*parameters: */
-	int    verbose              = 0;
 	bool   qmu_analysis         = false;
 	int    dim                  = -1;
@@ -28,5 +27,4 @@
 
 	/* recover parameters:*/
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&ishutter,IsHutterEnum);
@@ -52,5 +50,5 @@
 	if(ishutter){
 			
-		if(verbose)_printf_("%s\n"," computing hutter velocities...");
+		ISSMPRINTF(VerboseControl(),"%s\n","   computing hutter velocities");
 
 		//Take the last velocity into account so that the velocity on the MacAyeal domain is not zero
@@ -65,5 +63,5 @@
 	if (ismacayealpattyn^isstokes){
 		
-		if(verbose)_printf_("%s\n"," computing horizontal velocities...");
+		ISSMPRINTF(VerboseControl(),"%s\n","   computing velocities");
 		femmodel->SetCurrentConfiguration(DiagnosticHorizAnalysisEnum);
 		solver_diagnostic_nonlinear(femmodel,modify_loads); 
@@ -72,5 +70,5 @@
 	if (ismacayealpattyn && isstokes){
 
-		if(verbose)_printf_("%s\n"," computing coupling macayealpattyn and stokes velocities and pressure ...");
+		ISSMPRINTF(VerboseControl(),"%s\n","   computing coupling macayealpattyn and stokes velocities and pressure ");
 		solver_stokescoupling_nonlinear(femmodel,conserve_loads);
 	}
@@ -78,5 +76,5 @@
 	if (dim==3 & (ishutter || ismacayealpattyn)){
 
-		if(verbose)_printf_("%s\n"," computing vertical velocities...");
+		ISSMPRINTF(VerboseControl(),"%s\n","   computing vertical velocities");
 		femmodel->SetCurrentConfiguration(DiagnosticVertAnalysisEnum);
 		solver_linear(femmodel);
@@ -85,5 +83,5 @@
 
 	if(solution_type==DiagnosticSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseControl(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum);
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum);
Index: /issm/trunk/src/c/solutions/gradient_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/gradient_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/gradient_core.cpp	(revision 6323)
@@ -17,5 +17,4 @@
 	/*parameters: */
 	bool    control_steady;
-	int     verbose;
 	int     num_controls;
 	int    *control_type   = NULL;
@@ -33,10 +32,9 @@
 	femmodel->parameters->FindParam(&control_type,NULL,ControlTypeEnum);
 	femmodel->parameters->FindParam(&optscal_list,NULL,NULL,OptScalEnum);
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 
 	/*Compute and norm gradient of all controls*/
 	for (int i=0;i<num_controls;i++){
 
-		if(verbose)_printf_("      compute gradient of J with respect to %s\n",EnumToString(control_type[i]));
+		ISSMPRINTF(VerboseControl(),"   compute gradient of J with respect to %s\n",EnumToString(control_type[i]));
 		Gradjx(&gradient, femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters, control_type[i]);
 
@@ -44,10 +42,10 @@
 
 		if (step>0 && search_scalar==0){
-			_printf_("%s","      orthogonalization...\n");
+			ISSMPRINTF(VerboseControl(),"   orthogonalization\n");
 			ControlInputGetGradientx(&old_gradient,femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,femmodel->parameters,control_type[i]);
 			Orthx(&new_gradient,gradient,old_gradient); VecFree(&old_gradient); VecFree(&gradient);
 		}
 		else{ 
-			_printf_("%s","      normalizing directions...\n");
+			ISSMPRINTF(VerboseControl(),"   normalizing directions\n");
 			Orthx(&new_gradient,gradient,NULL); VecFree(&gradient);
 		}
Index: /issm/trunk/src/c/solutions/issm.cpp
===================================================================
--- /issm/trunk/src/c/solutions/issm.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/issm.cpp	(revision 6323)
@@ -51,5 +51,5 @@
 	MPI_Comm_size(MPI_COMM_WORLD,&num_procs); 
 
-	_printf_("recover solution and file names:\n");
+	_printf_("Launching solution sequence\n");
 	solution_type=StringToEnum(argv[1]);
 	inputfilename=argv[3];
@@ -69,5 +69,4 @@
 	output_fid=pfopen(outputfilename,"wb");
 
-	_printf_("create finite element model:\n");
 	femmodel=new FemModel(input_fid,solution_type,analyses,numanalyses);
 
Index: /issm/trunk/src/c/solutions/prognostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/prognostic_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/prognostic_core.cpp	(revision 6323)
@@ -14,5 +14,4 @@
 
 	/*parameters: */
-	int verbose=0;
 	int solution_type;
 	bool control_analysis;
@@ -22,13 +21,12 @@
 	
 	/*recover parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
-	_printf_("call computational core:\n");
+	ISSMPRINTF(VerboseSolution(),"   call computational core\n");
 	solver_linear(femmodel);
 		
 	if(solution_type==PrognosticSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ThicknessEnum);
 	}
Index: /issm/trunk/src/c/solutions/steadystate_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/steadystate_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/steadystate_core.cpp	(revision 6323)
@@ -18,5 +18,4 @@
 
 	/*parameters: */
-	int verbose;
 	int dim;
 	int solution_type;
@@ -24,5 +23,4 @@
 	
 	/* recover parameters:*/
-	femmodel->parameters->FindParam(&verbose,VerboseEnum); 
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
@@ -34,16 +32,16 @@
 	for(;;){
 	
-		if(verbose)_printf_("%s%i\n","   computing temperature and velocity for step: ",step);
+		ISSMPRINTF(VerboseSolution(),"%s%i\n","   computing temperature and velocity for step: ",step);
 		thermal_core(femmodel);
 
-		if(verbose)_printf_("%s\n","computing new velocity");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   computing new velocity");
 		diagnostic_core(femmodel);
 
 		if (step>1){
-			if(verbose)_printf_("%s\n","checking velocity, temperature and pressure convergence");
+			ISSMPRINTF(VerboseSolution(),"%s\n","   checking velocity, temperature and pressure convergence");
 			if(steadystateconvergence(femmodel)) break;
 		}
 		
-		if(verbose)_printf_("%s\n","saving velocity, temperature and pressure to check for convergence at next step");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   saving velocity, temperature and pressure to check for convergence at next step");
 		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum,VxOldEnum);
 		InputDuplicatex(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum,VyOldEnum);
@@ -57,5 +55,5 @@
 	
 	if(solution_type==SteadystateSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"   saving results\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum);
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum);
Index: /issm/trunk/src/c/solutions/surfaceslope_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/surfaceslope_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/surfaceslope_core.cpp	(revision 6323)
@@ -13,5 +13,4 @@
 
 	/*parameters: */
-	int verbose;
 	int dim;
 	bool isstokes;
@@ -21,10 +20,9 @@
 
 	/*Recover some parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&dim,DimEnum);
 	femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum);
 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
 
-	if(verbose)_printf_("%s\n","computing slope...");
+	ISSMPRINTF(VerboseSolution(),"%s\n","computing slope...");
 
 	/*Call on core computations: */
@@ -35,5 +33,5 @@
 	
 	if(solution_type==SurfaceSlopeSolutionEnum && !control_analysis){
-		if(verbose)_printf_("saving results:\n");
+		ISSMPRINTF(VerboseSolution(),"saving results:\n");
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceSlopeXEnum);
 		InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,SurfaceSlopeYEnum);
Index: /issm/trunk/src/c/solutions/thermal_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 6323)
@@ -18,5 +18,4 @@
 	/*intermediary*/
 	double time;
-	int    verbose;
 	int    nsteps;
 	double ndt;
@@ -27,5 +26,4 @@
 
 	//first recover parameters common to all solutions
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&ndt,NdtEnum);
 	femmodel->parameters->FindParam(&dt,DtEnum);
@@ -43,5 +41,5 @@
 	for(i=0;i<nsteps;i++){
 		
-		if(verbose)_printf_("time step: %i/%i\n",i+1,nsteps);
+		if(nsteps)ISSMPRINTF(VerboseSolution(),"time step: %i/%i\n",i+1,nsteps);
 		time=(i+1)*dt;
 
@@ -50,5 +48,5 @@
 
 		if(solution_type==ThermalSolutionEnum && !control_analysis){
-			if(verbose)_printf_("saving results:\n");
+			ISSMPRINTF(VerboseSolution(),"   saving results\n");
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum,i+1,time);
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,MeltingRateEnum,i+1,time);
Index: /issm/trunk/src/c/solutions/thermal_core_step.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal_core_step.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/thermal_core_step.cpp	(revision 6323)
@@ -14,14 +14,9 @@
 void thermal_core_step(FemModel* femmodel,int step, double time){
 
-	int verbose;
-
-	//first recover parameters common to all solutions
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
-
-	if(verbose)_printf_("computing temperatures:\n");
+	ISSMPRINTF(VerboseSolution(),"   computing temperatures\n");
 	femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);
 	solver_thermal_nonlinear(femmodel);
 
-	if(verbose)_printf_("computing melting:\n");
+	ISSMPRINTF(VerboseSolution(),"   computing melting\n");
 	femmodel->SetCurrentConfiguration(MeltingAnalysisEnum);
 	solver_linear(femmodel);
Index: /issm/trunk/src/c/solutions/transient2d_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient2d_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/transient2d_core.cpp	(revision 6323)
@@ -16,5 +16,4 @@
 
 	/*parameters: */
-	int    verbose          = 0;
 	double finaltime;
 	double dt                 ,yts;
@@ -29,5 +28,4 @@
 
 	/* recover parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&finaltime,NdtEnum);
 	femmodel->parameters->FindParam(&dt,DtEnum);
@@ -49,17 +47,17 @@
 		step+=1;
 
-		_printf_("%s%g%s%i%s%g%s%g\n","time [yr]: ",time/yts,"    iteration number: ",step,"/",floor(finaltime/dt)," dt [yr]: ",dt/yts);
+		ISSMPRINTF(VerboseSolution(),"%s%g%s%i%s%g%s%g\n","time [yr]: ",time/yts,"    iteration number: ",step,"/",floor(finaltime/dt)," dt [yr]: ",dt/yts);
 
-		if(verbose)_printf_("%s\n","computing new velocity");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   computing new velocity");
 		diagnostic_core(femmodel);
 
-		if(verbose)_printf_("%s\n","computing new thickness");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   computing new thickness");
 		prognostic_core(femmodel);
 	
-		if(verbose)_printf_("%s\n","updating geometry");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   updating geometry");
 		UpdateGeometryx(femmodel->elements, femmodel->nodes,femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 
 
 		if(solution_type==Transient2DSolutionEnum && !control_analysis && (step%output_frequency==0)){
-			if(verbose)_printf_("%s\n","saving results:\n");
+			ISSMPRINTF(VerboseSolution(),"%s\n","   saving results\n");
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum,step,time); 
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum,step,time);
@@ -71,5 +69,5 @@
 
 			/*unload results*/
-			if(verbose)_printf_("%s","      saving temporary results...");
+			ISSMPRINTF(VerboseSolution(),"%s","   saving temporary results");
 			OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,&femmodel->results,step,time);
 		}
Index: /issm/trunk/src/c/solutions/transient3d_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient3d_core.cpp	(revision 6322)
+++ /issm/trunk/src/c/solutions/transient3d_core.cpp	(revision 6323)
@@ -16,5 +16,4 @@
 
 	/*parameters: */
-	int    verbose       = 0;
 	double finaltime;
 	double dt,yts;
@@ -29,5 +28,4 @@
 
 	//first recover parameters common to all solutions
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&finaltime,NdtEnum);
 	femmodel->parameters->FindParam(&dt,DtEnum);
@@ -49,23 +47,23 @@
 		time+=dt;
 
-		_printf_("%s%g%s%i%s%g%s%g\n","time [yr]: ",time/yts,"    iteration number: ",step,"/",floor(finaltime/dt)," dt [yr]: ",dt/yts);
+		ISSMPRINTF(VerboseSolution(),"%s%g%s%i%s%g%s%g\n","time [yr]: ",time/yts,"    iteration number: ",step,"/",floor(finaltime/dt)," dt [yr]: ",dt/yts);
 
-		if(verbose)_printf_("computing temperatures:\n");
+		ISSMPRINTF(VerboseSolution(),"   computing temperatures:\n");
 		thermal_core_step(femmodel,step,time);
 
-		if(verbose)_printf_("%s\n","computing new velocity");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   computing new velocity");
 		diagnostic_core(femmodel);
 
-		if(verbose)_printf_("%s\n","computing new thickness");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   computing new thickness");
 		prognostic_core(femmodel);
 	
-		if(verbose)_printf_("   updating geometry\n");
+		ISSMPRINTF(VerboseSolution(),"   updating geometry\n");
 		UpdateGeometryx(femmodel->elements, femmodel->nodes,femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 
 		
-		if(verbose)_printf_("%s\n","updating vertices positions");
+		ISSMPRINTF(VerboseSolution(),"%s\n","   updating vertices positions");
 		UpdateVertexPositionsx(femmodel->elements, femmodel->nodes,femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters); 
 
 		if(solution_type==Transient3DSolutionEnum && !control_analysis && (step%output_frequency==0)){
-			if(verbose)_printf_("%s\n","saving results:\n");
+			ISSMPRINTF(VerboseSolution(),"%s\n","   saving results\n");
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VxEnum,step,time);
 			InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VyEnum,step,time);
@@ -80,5 +78,5 @@
 
 			/*unload results*/
-			if(verbose)_printf_("%s","      saving temporary results...");
+			ISSMPRINTF(VerboseSolution(),"%s","   saving temporary results");
 			OutputResultsx(femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,&femmodel->results,step,time);
 		}
Index: /issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp	(revision 6322)
+++ /issm/trunk/src/c/solvers/solver_diagnostic_nonlinear.cpp	(revision 6323)
@@ -23,5 +23,4 @@
 
 	/*parameters:*/
-	int  verbose=0;
 	bool kffpartitioning=false;
 	int min_mechanical_constraints;
@@ -29,5 +28,4 @@
 
 	/*Recover parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&kffpartitioning,KffEnum);
 	femmodel->parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum);
@@ -71,5 +69,5 @@
 
 		PenaltyConstraintsx(&constraints_converged, &num_unstable_constraints, femmodel->elements,femmodel->nodes,femmodel->vertices,loads,femmodel->materials,femmodel->parameters);
-		if(verbose)_printf_("   number of unstable constraints: %i\n",num_unstable_constraints);
+		ISSMPRINTF(VerboseConvergence(),"   number of unstable constraints: %i\n",num_unstable_constraints);
 
 		convergence(&converged,Kff,pf,uf,old_uf,femmodel->parameters); MatFree(&Kff);VecFree(&pf);
Index: /issm/trunk/src/c/solvers/solver_stokescoupling_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/solvers/solver_stokescoupling_nonlinear.cpp	(revision 6322)
+++ /issm/trunk/src/c/solvers/solver_stokescoupling_nonlinear.cpp	(revision 6323)
@@ -25,5 +25,4 @@
 
 	/*parameters:*/
-	int  verbose=0;
 	bool kffpartitioning=false;
 	int min_mechanical_constraints;
@@ -31,5 +30,4 @@
 
 	/*Recover parameters: */
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&kffpartitioning,KffEnum);
 	femmodel->parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum);
Index: /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp	(revision 6322)
+++ /issm/trunk/src/c/solvers/solver_thermal_nonlinear.cpp	(revision 6323)
@@ -32,5 +32,4 @@
 	/*parameters:*/
 	int kflag,pflag;
-	int verbose=0;
 	bool lowmem=0;
 	bool kffpartitioning;
@@ -39,5 +38,4 @@
 	kflag=1; pflag=1;
 	femmodel->parameters->FindParam(&kffpartitioning,KffEnum);
-	femmodel->parameters->FindParam(&verbose,VerboseEnum);
 	femmodel->parameters->FindParam(&lowmem,LowmemEnum);
 	femmodel->parameters->FindParam(&min_thermal_constraints,MinThermalConstraintsEnum);
@@ -46,5 +44,5 @@
 	converged=false;
 
-	if(verbose)_printf_("%s\n","starting direct shooting method");
+	ISSMPRINTF(VerboseSolution(),"%s\n","starting direct shooting method");
 	InputUpdateFromConstantx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,reset_penalties,ResetPenaltiesEnum);
 	InputUpdateFromConstantx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,false,ConvergedEnum);
@@ -73,5 +71,5 @@
 
 		if (!converged){
-			if(verbose)_printf_("%s%i\n","   #unstable constraints = ",num_unstable_constraints);
+			ISSMPRINTF(VerboseConvergence(),"%s%i\n","   #unstable constraints = ",num_unstable_constraints);
 			if (num_unstable_constraints <= min_thermal_constraints)converged=true;
 		}
Index: /issm/trunk/src/m/classes/@model/setdefaultparameters.m
===================================================================
--- /issm/trunk/src/m/classes/@model/setdefaultparameters.m	(revision 6322)
+++ /issm/trunk/src/m/classes/@model/setdefaultparameters.m	(revision 6323)
@@ -88,5 +88,5 @@
 %parameter used to print temporary results (convergence criterion,
 %current step,...)
-md.verbose=verbose;
+md.verbose=verbose('solution',true,'qmu',true,'control',true);
 
 %Stokes mesh
Index: /issm/trunk/src/m/classes/verbose.m
===================================================================
--- /issm/trunk/src/m/classes/verbose.m	(revision 6322)
+++ /issm/trunk/src/m/classes/verbose.m	(revision 6323)
@@ -14,8 +14,11 @@
 		% {{{1
 		%BEGINFIELDS
+		mprocessor=false;
 		module=false;
+		solution=false;
+		solver=false;
 		convergence=false;
-		mprocessor=false;
-		solver=false;
+		control=false;
+		qmu=false;
 		%ENDFIELDS
 		% }}}
@@ -53,8 +56,11 @@
 		%BEGINVERB2BIN
 		binary=0;
-		if (verbose.module), binary=bitor(binary,1); end
-		if (verbose.convergence), binary=bitor(binary,2); end
-		if (verbose.mprocessor), binary=bitor(binary,4); end
+		if (verbose.mprocessor), binary=bitor(binary,1); end
+		if (verbose.module), binary=bitor(binary,2); end
+		if (verbose.solution), binary=bitor(binary,4); end
 		if (verbose.solver), binary=bitor(binary,8); end
+		if (verbose.convergence), binary=bitor(binary,16); end
+		if (verbose.control), binary=bitor(binary,32); end
+		if (verbose.qmu), binary=bitor(binary,64); end
 		%ENDVERB2BIN
 
@@ -64,8 +70,11 @@
 
 		%BEGINBIN2VERB
-		if bitand(binary,1), verbose.module=true; else verbose.module=false; end
-		if bitand(binary,2), verbose.convergence=true; else verbose.convergence=false; end
-		if bitand(binary,4), verbose.mprocessor=true; else verbose.mprocessor=false; end
+		if bitand(binary,1), verbose.mprocessor=true; else verbose.mprocessor=false; end
+		if bitand(binary,2), verbose.module=true; else verbose.module=false; end
+		if bitand(binary,4), verbose.solution=true; else verbose.solution=false; end
 		if bitand(binary,8), verbose.solver=true; else verbose.solver=false; end
+		if bitand(binary,16), verbose.convergence=true; else verbose.convergence=false; end
+		if bitand(binary,32), verbose.control=true; else verbose.control=false; end
+		if bitand(binary,64), verbose.qmu=true; else verbose.qmu=false; end
 		%ENDBIN2VERB
 
@@ -76,8 +85,11 @@
 		%BEGINDISP
 		disp(sprintf('class ''%s''  = ',class(verbose)));
+		disp(sprintf('   %10s : %s','mprocessor',mat2str(verbose.mprocessor)));
 		disp(sprintf('   %10s : %s','module',mat2str(verbose.module)));
+		disp(sprintf('   %10s : %s','solution',mat2str(verbose.solution)));
+		disp(sprintf('   %10s : %s','solver',mat2str(verbose.solver)));
 		disp(sprintf('   %10s : %s','convergence',mat2str(verbose.convergence)));
-		disp(sprintf('   %10s : %s','mprocessor',mat2str(verbose.mprocessor)));
-		disp(sprintf('   %10s : %s','solver',mat2str(verbose.solver)));
+		disp(sprintf('   %10s : %s','control',mat2str(verbose.control)));
+		disp(sprintf('   %10s : %s','qmu',mat2str(verbose.qmu)));
 		%ENDDISP
 
Index: /issm/trunk/src/m/model/solve.m
===================================================================
--- /issm/trunk/src/m/model/solve.m	(revision 6322)
+++ /issm/trunk/src/m/model/solve.m	(revision 6323)
@@ -43,6 +43,4 @@
 assignin('base',inputname(1),md);
 
-disp('launching solution sequence');
-
 %If running in parallel, we have a different way of launching the solution
 %sequences. 
Index: /issm/trunk/src/m/shared/VerboseControl.m
===================================================================
--- /issm/trunk/src/m/shared/VerboseControl.m	(revision 6323)
+++ /issm/trunk/src/m/shared/VerboseControl.m	(revision 6323)
@@ -0,0 +1,11 @@
+function bool=VerboseControl()
+%VERBOSECONTROL - Return true if control level is activated
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Numerics/Synchronize.sh
+%            Please read src/c/shared/Numerics/README for more information
+%
+%   Usage:
+%      bool=VerboseControl()
+
+bool=logical(bitand(GetVerbosityLevel(),32));
Index: /issm/trunk/src/m/shared/VerboseConvergence.m
===================================================================
--- /issm/trunk/src/m/shared/VerboseConvergence.m	(revision 6322)
+++ /issm/trunk/src/m/shared/VerboseConvergence.m	(revision 6323)
@@ -9,3 +9,3 @@
 %      bool=VerboseConvergence()
 
-bool=logical(bitand(GetVerbosityLevel(),2));
+bool=logical(bitand(GetVerbosityLevel(),16));
Index: /issm/trunk/src/m/shared/VerboseMProcessor.m
===================================================================
--- /issm/trunk/src/m/shared/VerboseMProcessor.m	(revision 6322)
+++ /issm/trunk/src/m/shared/VerboseMProcessor.m	(revision 6323)
@@ -9,3 +9,3 @@
 %      bool=VerboseMProcessor()
 
-bool=logical(bitand(GetVerbosityLevel(),4));
+bool=logical(bitand(GetVerbosityLevel(),1));
Index: /issm/trunk/src/m/shared/VerboseModule.m
===================================================================
--- /issm/trunk/src/m/shared/VerboseModule.m	(revision 6322)
+++ /issm/trunk/src/m/shared/VerboseModule.m	(revision 6323)
@@ -9,3 +9,3 @@
 %      bool=VerboseModule()
 
-bool=logical(bitand(GetVerbosityLevel(),1));
+bool=logical(bitand(GetVerbosityLevel(),2));
Index: /issm/trunk/src/m/shared/VerboseQmu.m
===================================================================
--- /issm/trunk/src/m/shared/VerboseQmu.m	(revision 6323)
+++ /issm/trunk/src/m/shared/VerboseQmu.m	(revision 6323)
@@ -0,0 +1,11 @@
+function bool=VerboseQmu()
+%VERBOSEQMU - Return true if qmu level is activated
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Numerics/Synchronize.sh
+%            Please read src/c/shared/Numerics/README for more information
+%
+%   Usage:
+%      bool=VerboseQmu()
+
+bool=logical(bitand(GetVerbosityLevel(),64));
Index: /issm/trunk/src/m/shared/VerboseSolution.m
===================================================================
--- /issm/trunk/src/m/shared/VerboseSolution.m	(revision 6323)
+++ /issm/trunk/src/m/shared/VerboseSolution.m	(revision 6323)
@@ -0,0 +1,11 @@
+function bool=VerboseSolution()
+%VERBOSESOLUTION - Return true if solution level is activated
+%
+%   WARNING: DO NOT MODIFY THIS FILE
+%            this file has been automatically generated by src/c/shared/Numerics/Synchronize.sh
+%            Please read src/c/shared/Numerics/README for more information
+%
+%   Usage:
+%      bool=VerboseSolution()
+
+bool=logical(bitand(GetVerbosityLevel(),4));
Index: sm/trunk/src/m/solutions/FemModelUpdateInputsFromVector.m
===================================================================
--- /issm/trunk/src/m/solutions/FemModelUpdateInputsFromVector.m	(revision 6322)
+++ 	(revision )
@@ -1,13 +1,0 @@
-function FemModelUpdateInputsFromVector(model, vector, enum, typeenum);
-%INPUT FemModelUpdateInputsFromVector(model, vector, enum, typeenum);
-%
-% Update inputs using a vector, just calls the UpdateInputsFromVector routine for FemModel
-% 
-% Usage: FemModelUpdateInputsFromVector(model, vector, enum, typeenum);
-%
-% ex:    FemModelUpdateInputsFromVector(model, vx, VxEnum, VertexEnum);
-%        FemModelUpdateInputsFromVector(model, vxelem, VxEnum, ElementEnum);
-%
-%
-
-
Index: /issm/trunk/src/m/solutions/ResetBoundaryConditions.m
===================================================================
--- /issm/trunk/src/m/solutions/ResetBoundaryConditions.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/ResetBoundaryConditions.m	(revision 6323)
@@ -7,9 +7,5 @@
 %      femmodel=ResetBoundaryConditions(femmodel,analysis_type)
 
-
-	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
-
-	issmprintf(verbose,'\n%s',['updating boundary condition ...']);
+	issmprintf(VerboseSolution,'\n%s',['   updating boundary condition ...']);
 
 	%set current analysis: 
Index: /issm/trunk/src/m/solutions/SpawnCore.m
===================================================================
--- /issm/trunk/src/m/solutions/SpawnCore.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/SpawnCore.m	(revision 6323)
@@ -7,10 +7,9 @@
 
 %retrieve parameters
-verbose=femmodel.parameters.Verbose;
 responsedescriptors=femmodel.parameters.ResponseDescriptors; 
 solution_type=femmodel.parameters.SolutionType;
 control_analysis=femmodel.parameters.ControlAnalysis;
 
-issmprintf(1,'%s%i',['   qmu iteration:'],counter);
+issmprintf(VerboseQmu(),'%s%i',['   qmu iteration:'],counter);
 
 %first update the inputs to the femmodel using the variables provided to us by dakota.
Index: /issm/trunk/src/m/solutions/adjointbalancedthickness_core.m
===================================================================
--- /issm/trunk/src/m/solutions/adjointbalancedthickness_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/adjointbalancedthickness_core.m	(revision 6323)
@@ -6,10 +6,9 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	control_analysis=femmodel.parameters.ControlAnalysis;
 	solution_type=femmodel.parameters.SolutionType;
 
 	%set analysis type to compute velocity:
-	issmprintf('\n%s',['      computing thickness']);
+	issmprintf(VerboseSolution,'   computing thickness');
 	femmodel=SetCurrentConfiguration(femmodel,BalancedthicknessAnalysisEnum);
 	femmodel=solver_linear(femmodel);
@@ -19,5 +18,5 @@
 
 	%compute adjoint
-	issmprintf('\n%s',['      computing adjoint']);
+	issmprintf(VerboseSolution,'   computing adjoint');
 	femmodel=SetCurrentConfiguration(femmodel,BalancedthicknessAnalysisEnum,AdjointBalancedthicknessAnalysisEnum);
 	femmodel=solver_adjoint_linear(femmodel);
@@ -26,5 +25,5 @@
 	femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointEnum);
 	if(solution_type==AdjointSolutionEnum & ~control_analysis)
-		issmprintf(verbose,'\n%s',['      saving results...']);
+		issmprintf(VerboseSolution,'   saving results');
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointEnum);
 	end
Index: /issm/trunk/src/m/solutions/adjointdiagnostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/adjointdiagnostic_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/adjointdiagnostic_core.m	(revision 6323)
@@ -6,5 +6,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	isstokes=femmodel.parameters.IsStokes;
 	dim=femmodel.parameters.Dim;
@@ -14,5 +13,5 @@
 
 	%set analysis type to compute velocity:
-	issmprintf('\n%s',['      computing velocities']);
+	issmprintf(VerboseSolution,'   computing velocities');
 	femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum);
 	femmodel=solver_diagnostic_nonlinear(femmodel,conserve_loads);
@@ -22,5 +21,5 @@
 
 	%compute adjoint
-	issmprintf('\n%s',['      computing adjoint']);
+	issmprintf(VerboseSolution,'   computing adjoint');
 	femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum,AdjointHorizAnalysisEnum);
 	femmodel=solver_adjoint_linear(femmodel);
@@ -28,5 +27,5 @@
 	%save results
 	if(solution_type==AdjointSolutionEnum & ~control_analysis)
-		issmprintf(verbose,'\n%s',['      saving results...']);
+		issmprintf(VerboseSolution,'   saving results');
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointxEnum);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,AdjointyEnum);
Index: /issm/trunk/src/m/solutions/balancedthickness_core.m
===================================================================
--- /issm/trunk/src/m/solutions/balancedthickness_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/balancedthickness_core.m	(revision 6323)
@@ -6,5 +6,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	dim=femmodel.parameters.Dim;
 	control_analysis=femmodel.parameters.ControlAnalysis;
@@ -14,9 +13,9 @@
 	femmodel=SetCurrentConfiguration(femmodel,BalancedthicknessAnalysisEnum);
 
-	issmprintf(verbose,'\n%s',['call computational core...']);
+	issmprintf(VerboseSolution,'   call computational core');
 	femmodel=solver_linear(femmodel);
 
 	if (solution_type==BalancedthicknessSolutionEnum & ~control_analysis),
-		issmprintf(verbose,'\n%s',['saving results...']);
+		issmprintf(VerboseSolution,'   saving results');
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,ThicknessEnum);
 	end
Index: /issm/trunk/src/m/solutions/balancedvelocities_core.m
===================================================================
--- /issm/trunk/src/m/solutions/balancedvelocities_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/balancedvelocities_core.m	(revision 6323)
@@ -6,5 +6,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	dim=femmodel.parameters.Dim;
 	control_analysis=femmodel.parameters.ControlAnalysis;
@@ -14,9 +13,9 @@
 	femmodel=SetCurrentConfiguration(femmodel,BalancedvelocitiesAnalysisEnum);
 
-	issmprintf(verbose,'\n%s',['call computational core...']);
+	issmprintf(VerboseSolution,'   call computational core');
 	femmodel=solver_linear(femmodel);
 	
 	if (solution_type==BalancedvelocitiesSolutionEnum & ~control_analysis),
-		issmprintf(verbose,'\n%s',['saving results...']);
+		issmprintf(VerboseSolution,'   saving results');
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VelEnum);
 	end
Index: /issm/trunk/src/m/solutions/bedslope_core.m
===================================================================
--- /issm/trunk/src/m/solutions/bedslope_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/bedslope_core.m	(revision 6323)
@@ -7,10 +7,9 @@
 
 	%Recover some parameters:
-	verbose=femmodel.parameters.Verbose;
 	dim=femmodel.parameters.Dim;
 	control_analysis=femmodel.parameters.ControlAnalysis;
 	solution_type=femmodel.parameters.SolutionType;
 
-	issmprintf(verbose,'\n%s',['computing bed slope...']);
+	issmprintf(VerboseSolution,'   computing bed slope');
 
 	%Call on core computations: 
@@ -21,5 +20,5 @@
 	
 	if (solution_type==BedSlopeSolutionEnum & ~control_analysis),
-		issmprintf(verbose,'\n%s',['saving results...']);
+		issmprintf(VerboseSolution,'   saving results');
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BedSlopeXEnum);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,BedSlopeYEnum);
Index: /issm/trunk/src/m/solutions/control_core.m
===================================================================
--- /issm/trunk/src/m/solutions/control_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/control_core.m	(revision 6323)
@@ -7,5 +7,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	nsteps=femmodel.parameters.NSteps;
 	num_controls=femmodel.parameters.NumControls;
@@ -34,5 +33,5 @@
 
 	%Launch once a complete solution to set up all inputs
-	disp('      preparing initial solution');
+	issmprintf(VerboseControl,'   preparing initial solution');
 	if isstokes,
 		eval(['femmodel=' solutioncore '(femmodel);']);
@@ -41,5 +40,5 @@
 	for n=1:nsteps,
 
-		disp(sprintf('\n%s%s%s%s\n',['   control method step ' num2str(n) '/' num2str(femmodel.parameters.NSteps)]));
+		issmprintf(VerboseControl(),['control method step ' num2str(n) '/' num2str(femmodel.parameters.NSteps)]);
 		[femmodel.elements,femmodel.loads]=InputUpdateFromConstant(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,responses(n),CmResponseEnum);
 
@@ -49,8 +48,7 @@
 		end
 
-		issmprintf(verbose,'\n%s',['      compute adjoint state...']);
+		issmprintf(VerboseControl,'   compute adjoint state');
 		eval(['femmodel=' adjointcore '(femmodel);']);
 
-		issmprintf(verbose,'\n%s',['      computing gradJ...']);
 		femmodel=gradient_core(femmodel,n,search_scalar);
 
@@ -61,11 +59,10 @@
 		end
 
-		issmprintf(verbose,'\n%s',['      optimizing along gradient direction...']);
+		issmprintf(VerboseControl,'   optimizing along gradient direction');
 		[search_scalar J(n)]=ControlOptimization('objectivefunctionC',0,1,options,femmodel,n,femmodel.parameters);
 
-		issmprintf('\n%s',['      updating parameter using optimized search scalar:']);
+		issmprintf(VerboseControl,'   updating parameter using optimized search scalar');
 		[femmodel.elements,femmodel.nodes,femmmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=InputControlUpdate(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,search_scalar,1);
-
-		disp(['      value of misfit J after optimization #' num2str(n) ':' num2str(J(n))]);
+		issmprintf(VerboseControl,['   value of misfit J after optimization #' num2str(n) ':' num2str(J(n))]);
 
 		%Has convergence been reached?
@@ -78,5 +75,5 @@
 
 	%generate output
-	issmprintf(verbose,'\n%s',['      preparing final velocity solution...']);
+	issmprintf(VerboseControl,'   preparing final velocity solution');
 	femmodel.parameters.ControlAnalysis=0;
 	eval(['femmodel=' solutioncore '(femmodel);']);
Index: /issm/trunk/src/m/solutions/controlconvergence.m
===================================================================
--- /issm/trunk/src/m/solutions/controlconvergence.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/controlconvergence.m	(revision 6323)
@@ -15,7 +15,7 @@
 					%convergence if convergence criteria fullfilled
 					convergence=true;
-					issmprintf('\n%s%g%s%g\n','      Convergence criterion: dJ/J = ',(J(i)-J(n))/J(n),'<',eps_cm);
+					issmprintf(VerboseConvergence(),'\n%s%g%s%g\n','      Convergence criterion: dJ/J = ',(J(i)-J(n))/J(n),'<',eps_cm);
 				else
-					issmprintf('\n%s%g%s%g\n','      Convergence criterion: dJ/J = ',(J(i)-J(n))/J(n),'>',eps_cm);
+					issmprintf(VerboseConvergence(),'\n%s%g%s%g\n','      Convergence criterion: dJ/J = ',(J(i)-J(n))/J(n),'>',eps_cm);
 				end
 				break;
Index: /issm/trunk/src/m/solutions/diagnostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/diagnostic_core.m	(revision 6323)
@@ -11,5 +11,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	dim=femmodel.parameters.Dim;
 	ishutter=femmodel.parameters.IsHutter;
@@ -35,5 +34,5 @@
 	if ishutter,
 
-		issmprintf(verbose,'\n%s',['computing hutter velocities...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing hutter velocities']);
 
 		%Take the last velocity into account so that the velocity on the MacAyeal domain is not zero
@@ -49,5 +48,5 @@
 	if xor(ismacayealpattyn,isstokes), %if macayealpattyn and stokes, we must use stokescoupling
 
-		issmprintf(verbose,'\n%s',['computing horizontal velocities...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing horizontal velocities']);
 		femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum);
 		femmodel=solver_diagnostic_nonlinear(femmodel,modify_loads); 
@@ -56,5 +55,5 @@
 	if ismacayealpattyn & isstokes,
 
-		issmprintf(verbose,'\n%s',['computing coupling velocities for macayealpattyn and stokes...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing coupling velocities for macayealpattyn and stokes']);
 		femmodel=SetCurrentConfiguration(femmodel,DiagnosticHorizAnalysisEnum);
 		femmodel=solver_stokescoupling_nonlinear(femmodel,conserve_loads); 
@@ -63,5 +62,5 @@
 	if dim==3 & (ismacayealpattyn | ishutter) & ~isstokes,
 	
-		issmprintf(verbose,'\n%s',['computing vertical velocities...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing vertical velocities']);
 		femmodel=SetCurrentConfiguration(femmodel,DiagnosticVertAnalysisEnum);
 		femmodel=solver_linear(femmodel);
@@ -69,5 +68,5 @@
 
 	if (solution_type==DiagnosticSolutionEnum & ~control_analysis)
-		issmprintf(verbose,'\n%s',['saving results...']);
+		issmprintf(VerboseSolution,'\n%s',['   saving results']);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum);
Index: sm/trunk/src/m/solutions/dofsetgen.m
===================================================================
--- /issm/trunk/src/m/solutions/dofsetgen.m	(revision 6322)
+++ 	(revision )
@@ -1,19 +1,0 @@
-function dofset=dofsetgen(doflist,numdofs,dofsize)
-%DOFSETGEN - generate a dof  set to index a solution vector
-%
-%   Usage:
-%      dofset=dofsetgen(doflist,numdofs,dofsize)
-%
-%   ex: 
-%      dof1set=dofsetgen([1],3,10); will generate 1,4,7,10
-%      dof2set=dofsetgen([2],4,10); will generate 2,6,10
-%      dof12set=dofsetgen([1,2],5,15); will generate 1,2,6,7,11,12
-
-
-flags=zeros(dofsize,1);
-
-for i=1:length(doflist),
-	flags(doflist(i):numdofs:end)=1;
-end
-
-dofset=find(flags);
Index: /issm/trunk/src/m/solutions/gradient_core.m
===================================================================
--- /issm/trunk/src/m/solutions/gradient_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/gradient_core.m	(revision 6323)
@@ -21,5 +21,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	num_controls=femmodel.parameters.NumControls;
 	control_type=femmodel.parameters.ControlType;
@@ -29,5 +28,5 @@
 	for i=1:num_controls,
 
-		issmprintf(verbose,['      compute gradient of J with respect to %s\n'],EnumToString(control_type(i)));
+		issmprintf(VerboseControl,['   compute gradient of J with respect to %s'],EnumToString(control_type(i)));
 		grad=Gradj(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,control_type(i));
 
@@ -37,9 +36,9 @@
 
 		if (step>1 && search_scalar==0),
-			issmprintf(verbose,'%s\n',['      orthogonalization...']);
+			issmprintf(VerboseControl,'%s',['   orthogonalization']);
 			old_gradient=ControlInputGetGradient(femmodel.elements,femmodel.nodes, femmodel.vertices,femmodel.loads, femmodel.materials,femmodel.parameters,control_type(i));
 			new_gradient=Orth(grad,old_gradient);
 		else
-			issmprintf(verbose,'%s\n',['      normalizing direction...']);
+			issmprintf(VerboseControl,'%s',['   normalizing direction']);
 			new_gradient=Orth(grad,[]);
 		end
Index: /issm/trunk/src/m/solutions/issm.m
===================================================================
--- /issm/trunk/src/m/solutions/issm.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/issm.m	(revision 6323)
@@ -7,13 +7,13 @@
 	%timing
 	t1=clock;
+	disp('launching solution sequence');
 
 	%out of solution_type, figure out solution core function pointer, and types of analyses needed:
 	[analyses,numanalyses,solutioncore]=SolutionConfiguration(solution_type);
 
-	disp('create finite element model');
+	%create finite element model
 	femmodel=NewFemModel(md,solution_type,analyses,numanalyses);
 
 	%retrieve parameters
-	verbose=femmodel.parameters.Verbose;
 	qmu_analysis=femmodel.parameters.QmuAnalysis;
 	control_analysis=femmodel.parameters.ControlAnalysis;
@@ -25,8 +25,8 @@
 	if ~qmu_analysis,
 			
-		issmprintf(verbose,'%s',['call computational core']);
+		issmprintf(VerboseSolution,'%s',['call computational core']);
 		eval(['femmodel=' solutioncore '(femmodel);']);
 
-		issmprintf(verbose,'%s',['write results'])
+		issmprintf(VerboseSolution,'%s',['write results'])
 		md.results.(EnumToString(solution_type))=OutputResults(femmodel.elements, femmodel.nodes , femmodel.vertices , femmodel.loads , femmodel.materials, femmodel.parameters, femmodel.results);
 	else
Index: sm/trunk/src/m/solutions/plot_direction.m
===================================================================
--- /issm/trunk/src/m/solutions/plot_direction.m	(revision 6322)
+++ 	(revision )
@@ -1,1 +1,0 @@
-plotmodel(md,'data',c(n).grad_g(1:2:end),'title',['Normalized Direction for ' m.parameters.control_type],'figure',1,'colorbar#all','on'); pause(1);
Index: sm/trunk/src/m/solutions/plot_newdistribution.m
===================================================================
--- /issm/trunk/src/m/solutions/plot_newdistribution.m	(revision 6322)
+++ 	(revision )
@@ -1,1 +1,0 @@
-plotmodel(md,'data',p_g(1:2:end),'title',['Distribution of ' m.parameters.control_type ' at iteration ' num2str(n)],'figure',2,'colorbar#all','on'); pause(1);
Index: /issm/trunk/src/m/solutions/prognostic_core.m
===================================================================
--- /issm/trunk/src/m/solutions/prognostic_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/prognostic_core.m	(revision 6323)
@@ -6,5 +6,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	control_analysis=femmodel.parameters.ControlAnalysis;
 	solution_type=femmodel.parameters.SolutionType;
@@ -13,9 +12,9 @@
 	femmodel=SetCurrentConfiguration(femmodel,PrognosticAnalysisEnum);
 
-	issmprintf(verbose,'\n%s',['call computational core...']);
+	issmprintf(VerboseSolution,'\n%s',['   call computational core']);
 	femmodel=solver_linear(femmodel);
 	
 	if (solution_type==PrognosticSolutionEnum & ~control_analysis)
-		issmprintf(verbose,'\n%s',['saving results...']);
+		issmprintf(VerboseSolution,'\n%s',['   saving results']);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,ThicknessEnum);
 	end
Index: /issm/trunk/src/m/solutions/steadystate_core.m
===================================================================
--- /issm/trunk/src/m/solutions/steadystate_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/steadystate_core.m	(revision 6323)
@@ -7,5 +7,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	dim=femmodel.parameters.Dim;
 	control_analysis=femmodel.parameters.ControlAnalysis;
@@ -17,16 +16,16 @@
 	while true,
 
-		issmprintf(verbose,'\n%s%i\n','computing velocities and temperatures for step: ',step);
+		issmprintf(VerboseSolution,'\n%s%i\n','   computing velocities and temperatures for step: ',step);
 		femmodel=thermal_core(femmodel); 
 
-		issmprintf(verbose,'\n%s',['computing new velocity...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing new velocity']);
 		femmodel=diagnostic_core(femmodel); 
 
 		if step>1,
-			issmprintf(verbose,'\n%s',['checking temperature, velocity and pressure convergence...']);
+			issmprintf(VerboseSolution,'\n%s',['   checking temperature, velocity and pressure convergence']);
 			if steadystateconvergence(femmodel), break; end
 		end 
 
-		issmprintf(verbose,'\n%s',['saving velocities, temperature and pressure for convergence...']);
+		issmprintf(VerboseSolution,'\n%s',['   saving velocities, temperature and pressure for convergence']);
 		femmodel.elements=InputDuplicate(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum,VxOldEnum);
 		femmodel.elements=InputDuplicate(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum,VyOldEnum);
@@ -40,5 +39,5 @@
 
 	if (solution_type==SteadystateSolutionEnum & ~control_analysis),
-		issmprintf(verbose,'\n%s',['saving results...']);
+		issmprintf(VerboseSolution,'\n%s',['   saving results']);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum);
Index: /issm/trunk/src/m/solutions/surfaceslope_core.m
===================================================================
--- /issm/trunk/src/m/solutions/surfaceslope_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/surfaceslope_core.m	(revision 6323)
@@ -7,12 +7,10 @@
 
 	%Recover some parameters:
-	verbose=femmodel.parameters.Verbose;
 	dim=femmodel.parameters.Dim;
 	control_analysis=femmodel.parameters.ControlAnalysis;
 	solution_type=femmodel.parameters.SolutionType;
 
-	issmprintf(verbose,'\n%s',['computing surface slope...']);
-
 	%Call on core computations: 
+	issmprintf(VerboseSolution,'\n%s',['   computing surface slope']);
 	femmodel=SetCurrentConfiguration(femmodel,SurfaceSlopeAnalysisEnum,SurfaceSlopeXAnalysisEnum);
 	femmodel=solver_linear(femmodel);
@@ -21,5 +19,5 @@
 	
 	if (solution_type==SurfaceSlopeSolutionEnum),
-		issmprintf(verbose,'\n%s',['saving results...']);
+		issmprintf(VerboseSolution,'\n%s',['   saving results']);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,SurfaceSlopeXEnum);
 		femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,SurfaceSlopeYEnum);
Index: /issm/trunk/src/m/solutions/thermal_core.m
===================================================================
--- /issm/trunk/src/m/solutions/thermal_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/thermal_core.m	(revision 6323)
@@ -7,5 +7,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	ndt=femmodel.parameters.Ndt;
 	dt=femmodel.parameters.Dt;
@@ -23,12 +22,12 @@
 	%Loop through time
 	for i=1:nsteps,
-		issmprintf(verbose,'\n%s%i/%i\n','time step: ',i,nsteps);
+		issmprintf(VerboseSolution,'\n%s%i/%i\n','time step: ',i,nsteps);
 		time=(i+1)*dt;
 
-		issmprintf(verbose,'\n%s',['computing temperature...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing temperature']);
 		femmodel=thermal_core_step(femmodel,i,time); 
 
 		if (solution_type==ThermalSolutionEnum & ~control_analysis),
-			issmprintf(verbose,'\n%s',['saving results...']);
+			issmprintf(VerboseSolution,'\n%s',['   saving results']);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,TemperatureEnum,i,time);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,MeltingRateEnum,i,time);
Index: /issm/trunk/src/m/solutions/thermal_core_step.m
===================================================================
--- /issm/trunk/src/m/solutions/thermal_core_step.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/thermal_core_step.m	(revision 6323)
@@ -5,12 +5,9 @@
 %      femmodel=thermal_core_step(femmodel,step,time)
 
-	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
-
-	issmprintf(verbose,'\n%s',['computing temperature...']);
+	issmprintf(VerboseSolution,'\n%s',['   computing temperature']);
 	femmodel=SetCurrentConfiguration(femmodel,ThermalAnalysisEnum);
 	femmodel=solver_thermal_nonlinear(femmodel);
 
-	issmprintf(verbose,'\n%s',['compute melting...']);
+	issmprintf(VerboseSolution,'\n%s',['   computing melting']);
 	femmodel=SetCurrentConfiguration(femmodel,MeltingAnalysisEnum);
 	femmodel=solver_linear(femmodel);
Index: /issm/trunk/src/m/solutions/transient2d_core.m
===================================================================
--- /issm/trunk/src/m/solutions/transient2d_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/transient2d_core.m	(revision 6323)
@@ -6,5 +6,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	ndt=femmodel.parameters.Ndt;
 	dt=femmodel.parameters.Dt;
@@ -27,17 +26,17 @@
 		time=time+dt;
 
-		issmprintf(verbose,'\n%s%g%s%i%s%g\n','time [yr]: ',time,' iteration number: ',step,'/',floor(ndt/dt));
+		issmprintf(VerboseSolution,'\n%s%g%s%i%s%g\n','time [yr]: ',time,' iteration number: ',step,'/',floor(ndt/dt));
 
-		issmprintf(verbose,'\n%s',['computing new velocities...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing new velocities']);
 		femmodel=diagnostic_core(femmodel); 
 
-		issmprintf(verbose,'\n%s',['computing new thickness...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing new thickness']);
 		femmodel=prognostic_core(femmodel); 
 
-		issmprintf(verbose,'\n%s',['updating geometry...']);
+		issmprintf(VerboseSolution,'\n%s',['   updating geometry']);
 		[femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=UpdateGeometry(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters);
 
 		if (solution_type==Transient2DSolutionEnum & ~control_analysis & mod(step,output_frequency)==0),
-			issmprintf(verbose,'\n%s',['saving results...']);
+			issmprintf(VerboseSolution,'\n%s',['   saving results']);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum,step,time);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum,step,time);
Index: /issm/trunk/src/m/solutions/transient3d_core.m
===================================================================
--- /issm/trunk/src/m/solutions/transient3d_core.m	(revision 6322)
+++ /issm/trunk/src/m/solutions/transient3d_core.m	(revision 6323)
@@ -6,5 +6,4 @@
 
 	%recover parameters common to all solutions
-	verbose=femmodel.parameters.Verbose;
 	ndt=femmodel.parameters.Ndt;
 	dt=femmodel.parameters.Dt;
@@ -27,23 +26,23 @@
 		time=time+dt;
 
-		issmprintf(verbose,'\n%s%g%s%i%s%g\n','time [yr] ',time,' iteration number: ',step,'/',floor(ndt/dt));
+		issmprintf(VerboseSolution,'\n%s%g%s%i%s%g\n','time [yr] ',time,' iteration number: ',step,'/',floor(ndt/dt));
 
-		issmprintf(verbose,'\n%s',['computing temperature...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing temperature']);
 		femmodel=thermal_core_step(femmodel); 
 
-		issmprintf(verbose,'\n%s',['computing new velocities...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing new velocities']);
 		femmodel=diagnostic_core(femmodel); 
 
-		issmprintf(verbose,'\n%s',['computing new thickness...']);
+		issmprintf(VerboseSolution,'\n%s',['   computing new thickness']);
 		femmodel=prognostic_core(femmodel); 
 
-		issmprintf(verbose,'\n%s',['updating geometry...']);
+		issmprintf(VerboseSolution,'\n%s',['   updating geometry']);
 		[femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=UpdateGeometry(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters);
 
-		issmprintf(verbose,'\n%s',['updating vertices position...']);
+		issmprintf(VerboseSolution,'\n%s',['   updating vertices position']);
 		[femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=UpdateVertexPositions(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters);
 
 		if (solution_type==Transient3DSolutionEnum & ~control_analysis & mod(step,output_frequency)==0),
-			issmprintf(verbose,'\n%s',['saving results...']);
+			issmprintf(VerboseSolution,'\n%s',['   saving results']);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VxEnum,step,time);
 			femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,VyEnum,step,time);
Index: /issm/trunk/src/m/solvers/solver_adjoint_linear.m
===================================================================
--- /issm/trunk/src/m/solvers/solver_adjoint_linear.m	(revision 6322)
+++ /issm/trunk/src/m/solvers/solver_adjoint_linear.m	(revision 6323)
@@ -17,5 +17,5 @@
 	end
 
-	issmprintf(femmodel.parameters.Verbose>1,'%s%g','      condition number of stiffness matrix: ',condest(K_ff));
+	issmprintf(VerboseSolver(),'%s%g','      condition number of stiffness matrix: ',condest(K_ff));
 	u_f=Solver(K_ff,p_f,[],femmodel.parameters);
 	u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodesets,femmodel.parameters,true); 
Index: /issm/trunk/src/m/solvers/solver_diagnostic_nonlinear.m
===================================================================
--- /issm/trunk/src/m/solvers/solver_diagnostic_nonlinear.m	(revision 6322)
+++ /issm/trunk/src/m/solvers/solver_diagnostic_nonlinear.m	(revision 6323)
@@ -43,5 +43,5 @@
 		[loads,constraints_converged,num_unstable_constraints] =PenaltyConstraints( femmodel.elements,femmodel.nodes,femmodel.vertices,loads, femmodel.materials,femmodel.parameters);
 
-		issmprintf(femmodel.parameters.Verbose,'%s%i','      number of unstable constraints: ',num_unstable_constraints);
+		issmprintf(VerboseConvergence(),'%s%i','      number of unstable constraints: ',num_unstable_constraints);
 
 		%Figure out if convergence have been reached
@@ -66,5 +66,5 @@
 		if(converged==1)break;
 			if(count>max_nonlinear_iterations),
-				issmprintf(femmodel.parameters.Verbose,'%s%i%s','      maximum number of iterations ',max_nonlinear_iterations,' exceeded');
+				issmprintf(true,'%s%i%s','      maximum number of iterations ',max_nonlinear_iterations,' exceeded');
 			end
 		end
Index: /issm/trunk/src/m/solvers/solver_linear.m
===================================================================
--- /issm/trunk/src/m/solvers/solver_linear.m	(revision 6322)
+++ /issm/trunk/src/m/solvers/solver_linear.m	(revision 6323)
@@ -17,5 +17,5 @@
 	end
 
-	issmprintf(femmodel.parameters.Verbose>1,'%s%g','      condition number of stiffness matrix: ',condest(K_ff));
+	issmprintf(VerboseSolver()>1,'%s%g','      condition number of stiffness matrix: ',condest(K_ff));
 	u_f=Solver(K_ff,p_f,[],femmodel.parameters);
 	u_g= Mergesolutionfromftog( u_f, femmodel.ys, femmodel.nodesets,femmodel.parameters); 
Index: /issm/trunk/src/m/solvers/solver_thermal_nonlinear.m
===================================================================
--- /issm/trunk/src/m/solvers/solver_thermal_nonlinear.m	(revision 6322)
+++ /issm/trunk/src/m/solvers/solver_thermal_nonlinear.m	(revision 6323)
@@ -15,5 +15,5 @@
 	femmodel.parameters.Kflag=1; femmodel.parameters.Pflag=1;
 
-	issmprintf(femmodel.parameters.Verbose,'\n%s',['   starting direct shooting method']);
+	issmprintf(VerboseConvergence(),'\n%s',['   starting direct shooting method']);
 
 	%Reset penalties and initialize convergence as false
@@ -32,5 +32,5 @@
 		end
 
-		issmprintf(femmodel.parameters.Verbose,'%s%g','   condition number of stiffness matrix: ',condest(K_ff));
+		issmprintf(VerboseSolver(),'%s%g','   condition number of stiffness matrix: ',condest(K_ff));
 		t_f=Solver(K_ff,p_f,[],femmodel.parameters);
 		t_g= Mergesolutionfromftog( t_f, femmodel.ys, femmodel.nodesets,femmodel.parameters); 
@@ -40,5 +40,5 @@
 	
 		if ~converged,
-			issmprintf(femmodel.parameters.Verbose,'%s%i','   #unstable constraints ',num_unstable_constraints);
+			issmprintf(VerboseConvergence(),'%s%i','   #unstable constraints ',num_unstable_constraints);
 			if num_unstable_constraints<=femmodel.parameters.MinThermalConstraints,
 				converged=1;
