Index: /issm/trunk-jpl/src/c/classes/AmrBamg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/AmrBamg.cpp	(revision 21929)
+++ /issm/trunk-jpl/src/c/classes/AmrBamg.cpp	(revision 21930)
@@ -17,5 +17,5 @@
 
 /*Constructor, copy, clean up and destructor*/
-AmrBamg::AmrBamg(IssmDouble hmin,IssmDouble hmax,int fieldenum_in,IssmDouble err_in,int keepmetric_in,
+AmrBamg::AmrBamg(IssmDouble hmin,IssmDouble hmax,int fieldenum_in,IssmDouble err_in,int keepmetric_in,IssmDouble gradation_in,
 						IssmDouble groundingline_resolution_in,IssmDouble groundingline_distance_in,
 						IssmDouble icefront_resolution_in,IssmDouble icefront_distance_in,
@@ -43,5 +43,5 @@
 	this->options->coeff             = 1;
 	this->options->errg              = 0.1;
-	this->options->gradation         = 1.5;
+	this->options->gradation         = gradation_in;
 	this->options->Hessiantype       = 0;
 	this->options->maxnbv            = 1e6;
Index: /issm/trunk-jpl/src/c/classes/AmrBamg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/AmrBamg.h	(revision 21929)
+++ /issm/trunk-jpl/src/c/classes/AmrBamg.h	(revision 21930)
@@ -25,5 +25,5 @@
 
 		/* Constructor, destructor etc*/
-		AmrBamg(IssmDouble hmin,IssmDouble hmax,int fieldenum_in,IssmDouble err_in,int keepmetric_in,
+		AmrBamg(IssmDouble hmin,IssmDouble hmax,int fieldenum_in,IssmDouble err_in,int keepmetric_in,IssmDouble gradation_in,
             		IssmDouble groundingline_resolution_in,IssmDouble groundingline_distance_in,
                   IssmDouble icefront_resolution_in,IssmDouble icefront_distance_in,
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 21929)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 21930)
@@ -2720,7 +2720,6 @@
 void FemModel::WriteMeshInResults(void){/*{{{*/
 
-	#if defined(_HAVE_NEOPZ_) && !defined(_HAVE_ADOLC_)
+	/*Write the erros estimators*/
 	this->WriteErrorEstimatorsInResults();
-	#endif
 
 	int step					= -1;
@@ -4419,5 +4418,5 @@
 	IssmDouble* z             = NULL;
 	int* elements             = NULL;
-	IssmDouble hmin,hmax,err;
+	IssmDouble hmin,hmax,err,gradation;
 	IssmDouble groundingline_resolution,groundingline_distance,icefront_resolution,icefront_distance;
 	IssmDouble thicknesserror_resolution,thicknesserror_threshold,deviatoricerror_resolution,deviatoricerror_threshold;
@@ -4439,4 +4438,5 @@
 	this->parameters->FindParam(&err,AmrErrEnum);
 	this->parameters->FindParam(&keepmetric,AmrKeepMetricEnum);
+	this->parameters->FindParam(&gradation,AmrGradationEnum);
 	this->parameters->FindParam(&groundingline_resolution,AmrGroundingLineResolutionEnum);
 	this->parameters->FindParam(&groundingline_distance,AmrGroundingLineDistanceEnum);
@@ -4449,5 +4449,5 @@
 
 	/*Create bamg data structures for bamg*/
-	this->amrbamg = new AmrBamg(hmin,hmax,fieldenum,err,keepmetric,
+	this->amrbamg = new AmrBamg(hmin,hmax,fieldenum,err,keepmetric,gradation,
 										 groundingline_resolution,groundingline_distance,
 										 icefront_resolution,icefront_distance,
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 21929)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 21930)
@@ -115,4 +115,5 @@
 				parameters->AddObject(iomodel->CopyConstantObject("md.amr.err",AmrErrEnum));
 				parameters->AddObject(iomodel->CopyConstantObject("md.amr.keepmetric",AmrKeepMetricEnum));
+				parameters->AddObject(iomodel->CopyConstantObject("md.amr.gradation",AmrGradationEnum));
 				parameters->AddObject(iomodel->CopyConstantObject("md.amr.groundingline_resolution",AmrGroundingLineResolutionEnum));
 				parameters->AddObject(iomodel->CopyConstantObject("md.amr.groundingline_distance",AmrGroundingLineDistanceEnum));
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 21929)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 21930)
@@ -850,4 +850,5 @@
 	AmrErrEnum,
 	AmrKeepMetricEnum,
+	AmrGradationEnum,
 	AmrGroundingLineResolutionEnum,
 	AmrGroundingLineDistanceEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 21929)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 21930)
@@ -826,4 +826,5 @@
 		case AmrErrEnum : return "AmrErr";
 		case AmrKeepMetricEnum : return "AmrKeepMetric";
+		case AmrGradationEnum : return "AmrGradation";
 		case AmrGroundingLineResolutionEnum : return "AmrGroundingLineResolution";
 		case AmrGroundingLineDistanceEnum : return "AmrGroundingLineDistance";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 21929)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 21930)
@@ -844,4 +844,5 @@
 	      else if (strcmp(name,"AmrErr")==0) return AmrErrEnum;
 	      else if (strcmp(name,"AmrKeepMetric")==0) return AmrKeepMetricEnum;
+	      else if (strcmp(name,"AmrGradation")==0) return AmrGradationEnum;
 	      else if (strcmp(name,"AmrGroundingLineResolution")==0) return AmrGroundingLineResolutionEnum;
 	      else if (strcmp(name,"AmrGroundingLineDistance")==0) return AmrGroundingLineDistanceEnum;
@@ -874,9 +875,9 @@
 	      else if (strcmp(name,"Hook")==0) return HookEnum;
 	      else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum;
-	      else if (strcmp(name,"FileParam")==0) return FileParamEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"Input")==0) return InputEnum;
+	      if (strcmp(name,"FileParam")==0) return FileParamEnum;
+	      else if (strcmp(name,"Input")==0) return InputEnum;
 	      else if (strcmp(name,"IntInput")==0) return IntInputEnum;
 	      else if (strcmp(name,"IntParam")==0) return IntParamEnum;
@@ -997,9 +998,9 @@
 	      else if (strcmp(name,"MinVel")==0) return MinVelEnum;
 	      else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
-	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
+	      if (strcmp(name,"MinVx")==0) return MinVxEnum;
+	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
 	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
 	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
Index: /issm/trunk-jpl/src/m/classes/amrbamg.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/amrbamg.m	(revision 21929)
+++ /issm/trunk-jpl/src/m/classes/amrbamg.m	(revision 21930)
@@ -11,4 +11,5 @@
 		err = 0.;
 		keepmetric = 0;
+		gradation = 0.;
 		groundingline_resolution = 0.;
 		groundingline_distance = 0.;
@@ -42,4 +43,7 @@
 			self.keepmetric=1;
 
+			%control of element lengths
+			self.gradation=1.5;
+
 			%other criterias
 			self.groundingline_resolution=500.;
@@ -59,4 +63,5 @@
 			%md = checkfield(md,'fieldname','amr.fieldname','string',[1]);
 			md = checkfield(md,'fieldname','amr.keepmetric','numel',[1],'>=',0,'<=',1,'NaN',1);
+			md = checkfield(md,'fieldname','amr.gradation','numel',[1],'>=',1.1,'<=',5,'NaN',1);
 			md = checkfield(md,'fieldname','amr.groundingline_resolution','numel',[1],'>',0,'<',self.hmax,'NaN',1);
 			md = checkfield(md,'fieldname','amr.groundingline_distance','numel',[1],'>=',0,'NaN',1,'Inf',1);
@@ -75,4 +80,5 @@
 			fielddisplay(self,'fieldname',['name of input that will be used to compute the metric (should be an input of FemModel)']);
 			fielddisplay(self,'keepmetric',['indicates whether the metric should be kept every remeshing time']);
+			fielddisplay(self,'gradation',['maximum ratio between two adjacent edges']);
 			fielddisplay(self,'groundingline_resolution',['element length near the grounding line']);
 			fielddisplay(self,'groundingline_distance',['distance around the grounding line which elements will be refined']);
@@ -93,4 +99,5 @@
 			WriteData(fid,prefix,'object',self,'class','amr','fieldname','err','format','Double');
 			WriteData(fid,prefix,'object',self,'class','amr','fieldname','keepmetric','format','Integer');
+			WriteData(fid,prefix,'object',self,'class','amr','fieldname','gradation','format','Double');
 			WriteData(fid,prefix,'object',self,'class','amr','fieldname','groundingline_resolution','format','Double');
 			WriteData(fid,prefix,'object',self,'class','amr','fieldname','groundingline_distance','format','Double');
