Index: /issm/trunk/etc/cluster.rc
===================================================================
--- /issm/trunk/etc/cluster.rc	(revision 2187)
+++ /issm/trunk/etc/cluster.rc	(revision 2188)
@@ -47,16 +47,14 @@
 
 cluster_name=gemini
-cluster_codepath=/workg/acm/larour/issm-1.0/bin
-cluster_executionpath=/workg/acm/larour/Testing/Execution
+cluster_codepath=/workg/edw/larour/issm-2.0/bin
+cluster_executionpath=/workg/edw/larour/Testing/Execution
 
 cluster_name=castor
-cluster_codepath=/workc/acm/larour/issm-1.0/bin
-cluster_executionpath=/workc/acm/larour/Testing/Execution
+cluster_codepath=/workc/edw/larour/issm-2.0/bin
+cluster_executionpath=/workc/edw/larour/Testing/Execution
 
 cluster_name=pollux
-cluster_codepath=/workp/acm/larour/issm-1.0/bin
-cluster_executionpath=/workp/acm/larour/Testing/Execution
-
-
+cluster_codepath=/workp/edw/larour/issm-2.0/bin
+cluster_executionpath=/workp/edw/larour/Testing/Execution
 
 end
Index: /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 2187)
+++ /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 2188)
@@ -24,4 +24,5 @@
 
 	double* fit=NULL;
+	double* cmjump=NULL;
 	double* optscal=NULL;
 	double* maxiter=NULL; 
@@ -107,4 +108,5 @@
 		/*Now, recover fit, optscal and maxiter as vectors: */
 		IoModelFetchData((void**)&iomodel->fit,NULL,NULL,iomodel_handle,"fit","Matrix","Mat");
+		IoModelFetchData((void**)&iomodel->cmjump,NULL,NULL,iomodel_handle,"cmjump","Matrix","Mat");
 		IoModelFetchData((void**)&iomodel->optscal,NULL,NULL,iomodel_handle,"optscal","Matrix","Mat");
 		IoModelFetchData((void**)&iomodel->maxiter,NULL,NULL,iomodel_handle,"maxiter","Matrix","Mat");
@@ -113,4 +115,9 @@
 		param= new Param(count,"fit",DOUBLEVEC);
 		param->SetDoubleVec(iomodel->fit,iomodel->nsteps);
+		parameters->AddObject(param);
+
+		count++;
+		param= new Param(count,"cmjump",DOUBLEVEC);
+		param->SetDoubleVec(iomodel->cmjump,iomodel->nsteps);
 		parameters->AddObject(param);
 
@@ -126,4 +133,5 @@
 
 		xfree((void**)&iomodel->fit);
+		xfree((void**)&iomodel->cmjump);
 		xfree((void**)&iomodel->optscal);
 		xfree((void**)&iomodel->maxiter);
Index: /issm/trunk/src/c/ModelProcessorx/IoModel.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/IoModel.cpp	(revision 2187)
+++ /issm/trunk/src/c/ModelProcessorx/IoModel.cpp	(revision 2188)
@@ -108,4 +108,5 @@
 	/*!solution parameters: */
 	iomodel->fit=NULL;
+	iomodel->cmjump=NULL;
 	iomodel->meanvel=0;
 	iomodel->epsvel=0;
@@ -238,4 +239,5 @@
 	xfree((void**)&iomodel->n);
 	xfree((void**)&iomodel->fit);
+	xfree((void**)&iomodel->cmjump);
 	xfree((void**)&iomodel->optscal);
 	xfree((void**)&iomodel->maxiter);
Index: /issm/trunk/src/c/ModelProcessorx/IoModel.h
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/IoModel.h	(revision 2187)
+++ /issm/trunk/src/c/ModelProcessorx/IoModel.h	(revision 2188)
@@ -107,4 +107,5 @@
 	/*solution parameters: */
 	double* fit;
+	double* cmjump;
 	double  meanvel,epsvel;
 	int     artificial_diffusivity;
Index: /issm/trunk/src/c/objects/OptPars.h
===================================================================
--- /issm/trunk/src/c/objects/OptPars.h	(revision 2187)
+++ /issm/trunk/src/c/objects/OptPars.h	(revision 2188)
@@ -11,4 +11,5 @@
 	double xmax;
 	double tolerance;
+	double cmjump;
 	int maxiter;
 
Index: /issm/trunk/src/c/parallel/control_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/control_core.cpp	(revision 2187)
+++ /issm/trunk/src/c/parallel/control_core.cpp	(revision 2188)
@@ -29,4 +29,5 @@
 	int     gsize;
 	double* maxiter=NULL;
+	double* cmjump=NULL;
 	double  tolx;
 	double* param_g=NULL;
@@ -59,4 +60,5 @@
 	model->FindParam(&optscal,"optscal");
 	model->FindParam(&maxiter,"maxiter");
+	model->FindParam(&cmjump,"cmjump");
 	model->FindParam(&tolx,"tolx");
 	model->FindParam(&mincontrolconstraint,"mincontrolconstraint");
@@ -105,5 +107,5 @@
 		optargs.model=model;
 		optargs.param_g=param_g; optargs.grad_g=grad_g_double; optargs.inputs=inputs;optargs.n=n;
-		optpars.xmin=0; optpars.xmax=1; optpars.tolerance=tolx; optpars.maxiter=(int)maxiter[n];
+		optpars.xmin=0; optpars.xmax=1; optpars.tolerance=tolx; optpars.maxiter=(int)maxiter[n];optpars.cmjump=cmjump[n];
 		BrentSearch(&search_scalar,J+n,&optpars,&objectivefunctionC,&optargs);
 		_printf_("%s\n","      done.");
@@ -155,4 +157,5 @@
 	xfree((void**)&optscal);
 	xfree((void**)&maxiter);
+	xfree((void**)&cmjump);
 	VecFree(&new_grad_g); //do not VecFree grad_g and grad_g_old, they point to new_grad_g
 	xfree((void**)&grad_g_double);
Index: /issm/trunk/src/c/shared/Numerics/BrentSearch.cpp
===================================================================
--- /issm/trunk/src/c/shared/Numerics/BrentSearch.cpp	(revision 2187)
+++ /issm/trunk/src/c/shared/Numerics/BrentSearch.cpp	(revision 2188)
@@ -39,4 +39,5 @@
 	double tol1,tol2,seps,tolerance;
 	int    maxiter;
+	double cmjump;
 
 	/*counters: */
@@ -68,5 +69,5 @@
 
 		//test ration between fxmin and fxmax. if < criterion, return
-		if((fxmin/fxmax)<cmjump){
+		if((fxmax/fxmin)<cmjump){
 
 			/*Assign output pointers: */
Index: /issm/trunk/src/m/classes/@model/model.m
===================================================================
--- /issm/trunk/src/m/classes/@model/model.m	(revision 2187)
+++ /issm/trunk/src/m/classes/@model/model.m	(revision 2188)
@@ -183,4 +183,5 @@
 	md.maxcontrolconstraint=0;
 	md.fit=[];
+	md.cmjump=[];
 	md.epsvel=0;
 	md.meanvel=0;
Index: /issm/trunk/src/m/classes/@model/setdefaultparameters.m
===================================================================
--- /issm/trunk/src/m/classes/@model/setdefaultparameters.m	(revision 2187)
+++ /issm/trunk/src/m/classes/@model/setdefaultparameters.m	(revision 2188)
@@ -189,4 +189,7 @@
 md.fit=0*ones(md.nsteps,1);
 
+%cmjump
+md.cmjump=.7*ones(md.nsteps,1); %30 % decrement.
+
 %minimum velocity to avoid the misfit to be singular
 md.epsvel=eps;
Index: /issm/trunk/src/m/classes/public/display/displaycontrol.m
===================================================================
--- /issm/trunk/src/m/classes/public/display/displaycontrol.m	(revision 2187)
+++ /issm/trunk/src/m/classes/public/display/displaycontrol.m	(revision 2188)
@@ -15,4 +15,5 @@
 	fielddisplay(md,'optscal','scaling factor on gradient direction during optimization, for each optimization step');
 	fielddisplay(md,'fit','''absolute: 0'', ''relative: 1'', or ''logarithmic: 2''. default is ''absolute: 0'', for each optimization steps');
+	fielddisplay(md,'cmjump','decrease threshold for misfit, default is 30%');
 	fielddisplay(md,'maxiter','maximum iterations during each optimization step');
 	fielddisplay(md,'tolx','minimum tolerance which will stop one optimization search');
Index: /issm/trunk/src/m/classes/public/extrude.m
===================================================================
--- /issm/trunk/src/m/classes/public/extrude.m	(revision 2187)
+++ /issm/trunk/src/m/classes/public/extrude.m	(revision 2188)
@@ -183,6 +183,6 @@
 
 %increase connectivity if less than 25:
-if md.connectivity<25,
-	md.connectivity=70;
+if md.connectivity<=25,
+	md.connectivity=100;
 end
 
Index: /issm/trunk/src/m/classes/public/loadresultsfromcluster.m
===================================================================
--- /issm/trunk/src/m/classes/public/loadresultsfromcluster.m	(revision 2187)
+++ /issm/trunk/src/m/classes/public/loadresultsfromcluster.m	(revision 2188)
@@ -16,5 +16,7 @@
 	packages{end+1}=[md.name '.qmu.err'];
 	packages{end+1}=[md.name '.qmu.out'];
-	%packages{end+1}='dakota_tabular.dat'; not for now.
+	if md.qmu_params.tabular_graphics_data==true,
+		packages{end+1}='dakota_tabular.dat'; 
+	end
 else
 	packages{end+1}=[md.name '.outbin'];
Index: /issm/trunk/src/m/classes/public/marshall.m
===================================================================
--- /issm/trunk/src/m/classes/public/marshall.m	(revision 2187)
+++ /issm/trunk/src/m/classes/public/marshall.m	(revision 2188)
@@ -101,4 +101,5 @@
 %Write solution parameters
 WriteData(fid,md.fit,'Mat','fit');
+WriteData(fid,md.cmjump,'Mat','cmjump');
 WriteData(fid,md.yts,'Scalar','yts');
 WriteData(fid,md.meanvel,'Scalar','meanvel');
Index: /issm/trunk/src/m/classes/public/plot/plot_manager.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_manager.m	(revision 2187)
+++ /issm/trunk/src/m/classes/public/plot/plot_manager.m	(revision 2188)
@@ -29,7 +29,4 @@
 		case 'segmentnumbering',
 			plot_segmentnumbering(md,options_structure,width,i);
-			return;
-		case 'importancefactors',
-			plot_qmuimportancefactors(md,options_structure,width,i);
 			return;
 		case 'normplot',
Index: /issm/trunk/src/m/solutions/cielo/control_core.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/control_core.m	(revision 2187)
+++ /issm/trunk/src/m/solutions/cielo/control_core.m	(revision 2188)
@@ -63,5 +63,5 @@
 
 	displaystring(debug,'\n%s',['      optimizing along gradient direction...']);
-	[search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,models,inputs,param_g,c(n).grad_g,n,model.parameters.analysis_type,model.parameters.sub_analysis_type);
+	[search_scalar c(n).J]=ControlOptimization('objectivefunctionC',0,1,options,models,inputs,param_g,c(n).grad_g,n,model.parameters);
 
 	displaystring(debug,'\n%s',['      updating parameter using optimized search scalar...']);
Index: /issm/trunk/src/m/solutions/dakota/dakota_out_parse.m
===================================================================
--- /issm/trunk/src/m/solutions/dakota/dakota_out_parse.m	(revision 2187)
+++ /issm/trunk/src/m/solutions/dakota/dakota_out_parse.m	(revision 2188)
@@ -375,4 +375,7 @@
 
     while ~isempty(fline)
+		if fline==-1,
+			break
+		end
         [ntokens,tokens]=fltokens(fline);
 
@@ -403,5 +406,8 @@
         while ~isempty(fline) && ...
               ~strncmpi(fline,'Cumulative Distribution Function',32)
-            [ntokens,tokens]=fltokens(fline);
+			  if fline==-1,
+				  break
+			  end
+			  [ntokens,tokens]=fltokens(fline);
             icdf=icdf+1;
             dresp(idresp).cdf(icdf,1)=tokens{1}{ 1};
Index: /issm/trunk/src/mex/ControlOptimization/ControlOptimization.cpp
===================================================================
--- /issm/trunk/src/mex/ControlOptimization/ControlOptimization.cpp	(revision 2187)
+++ /issm/trunk/src/mex/ControlOptimization/ControlOptimization.cpp	(revision 2188)
@@ -28,4 +28,6 @@
 	mxArray* grad_g=NULL;
 	mxArray* n=NULL;
+	int      n_value;
+	double*  cmjump=NULL;
 
 	/*Boot module: */
@@ -42,4 +44,8 @@
 	FetchData((void**)&maxiter,NULL,NULL,mxGetField(OPTIONS,0,"MaxIter"),"Integer",NULL);
 
+	/*Parameters: */
+	FetchData((void**)&cmjump,NULL,NULL,mxGetField(PARAMETERS,0,"cmjump"),"Matrix","Mat");
+	FetchData((void**)&n_value,NULL,NULL,STEP,"Integer",NULL);
+
 	optargs.function_name=function_name;
 	optargs.models=MODELS;
@@ -48,6 +54,6 @@
 	optargs.grad_g=GRADIENT;
 	optargs.n=STEP;
-	optargs.analysis_type=ANALYSIS;
-	optargs.sub_analysis_type=SUBANALYSIS;
+	optargs.analysis_type=mxGetField(PARAMETERS,0,"analysis_type");
+	optargs.sub_analysis_type=mxGetField(PARAMETERS,0,"sub_analysis_type");
 
 	optpars.xmin=xmin;
@@ -55,4 +61,5 @@
 	optpars.tolerance=tolerance;
 	optpars.maxiter=maxiter;
+	optpars.cmjump=cmjump[n_value-1];
 
 	BrentSearch(&search_scalar,&J,&optpars,&OptFunc,&optargs);
@@ -64,4 +71,5 @@
 	/*Free ressources: */
 	xfree((void**)&function_name);
+	xfree((void**)&cmjump);
 
 	/*end module: */
@@ -72,5 +80,5 @@
 {
 	_printf_("\n");
-	_printf_("   usage: [search_scalar J] = %s(function_name,xmin,xmax,options,m,inputs,p_g,grad_g,step,analysis_type,sub_analysis_type)\n",__FUNCT__);
+	_printf_("   usage: [search_scalar J] = %s(function_name,xmin,xmax,options,m,inputs,p_g,grad_g,step,parameters)\n",__FUNCT__);
 	_printf_("\n");
 }
Index: /issm/trunk/src/mex/ControlOptimization/ControlOptimization.h
===================================================================
--- /issm/trunk/src/mex/ControlOptimization/ControlOptimization.h	(revision 2187)
+++ /issm/trunk/src/mex/ControlOptimization/ControlOptimization.h	(revision 2188)
@@ -26,6 +26,5 @@
 #define GRADIENT (mxArray*)prhs[7]
 #define STEP (mxArray*)prhs[8]
-#define ANALYSIS (mxArray*)prhs[9]
-#define SUBANALYSIS (mxArray*)prhs[10]
+#define PARAMETERS (mxArray*)prhs[9]
 
 /* serial output macros: */
@@ -37,5 +36,5 @@
 #define NLHS  2
 #undef NRHS
-#define NRHS  11
+#define NRHS  10
 
 
Index: /issm/trunk/test/Verification/IceSheetIceFrontM2dDakota_25/Square.par
===================================================================
--- /issm/trunk/test/Verification/IceSheetIceFrontM2dDakota_25/Square.par	(revision 2187)
+++ /issm/trunk/test/Verification/IceSheetIceFrontM2dDakota_25/Square.par	(revision 2188)
@@ -54,4 +54,5 @@
 md.qmu_params.evaluation_concurrency=1;
 md.qmu_params.interval_type='forward';
+md.qmu_params.tabular_graphics_data=true
 
 md.part=0:1:md.numberofgrids-1;
