Index: /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27008)
+++ /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27009)
@@ -146,4 +146,5 @@
 		case FrontalForcingsDefaultEnum:
 			iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.meltingrate",CalvingMeltingrateEnum);
+			iomodel->FetchDataToInput(inputs,elements,"md.frontalforcings.ablationrate",CalvingAblationrateEnum);
 			break;
 		case FrontalForcingsRignotEnum:
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 27008)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 27009)
@@ -824,5 +824,5 @@
 	IssmDouble  B,sigma_max,sigma_max_floating,sigma_max_grounded,n;
 	IssmDouble  epse_2,groundedice,bed,sealevel;
-	IssmDouble  mrate, rho_ice, rho_water, thickness, paramX, Hab;
+	IssmDouble  arate, rho_ice, rho_water, thickness, paramX, Hab;
 	int			use_parameter=0;
 	int			nonlinear_law=0;
@@ -843,5 +843,5 @@
 	Input *n_input       = this->GetInput(MaterialsRheologyNEnum);                _assert_(n_input);
 	Input *sl_input      = this->GetInput(SealevelEnum);                          _assert_(sl_input);
-	Input *mrate_input   = this->GetInput(CalvingMeltingrateEnum);                _assert_(mrate_input);
+	Input *arate_input   = this->GetInput(CalvingAblationrateEnum);               _assert_(arate_input);
 
 	/* Ice and sea water density */
@@ -873,5 +873,5 @@
 		vel=sqrt(vx*vx+vy*vy)+1.e-14;
 		sl_input->GetInputValue(&sealevel,gauss);
-		mrate_input->GetInputValue(&mrate,gauss);
+		arate_input->GetInputValue(&arate,gauss);
 
 		/*Compute strain rate and viscosity: */
@@ -916,5 +916,5 @@
 				break;
 			case -1:
-				/* use nothing, just the mrate*/
+				/* use nothing, just the arate*/
 				break;
 			default:
@@ -937,5 +937,5 @@
 		if (nonlinear_law) {
 			/*This von Mises type has too strong positive feedback with vel included
-			 * calvingrate[iv] = (mrate+sigma_vm[iv]*vel/sigma_max)*gamma;
+			 * calvingrate[iv] = (arate+sigma_vm[iv]*vel/sigma_max)*gamma;
 			 */
 			Hab = thickness - (rho_water/rho_ice) * (sealevel-bed);
@@ -943,8 +943,8 @@
 			if (bed > sealevel) Hab = 0.;
 
-			calvingrate[iv] = (mrate+Hab/sigma_max)*gamma;
+			calvingrate[iv] = (arate+Hab/sigma_max)*gamma;
 		}
 		else {
-			calvingrate[iv] = mrate*gamma;
+			calvingrate[iv] = arate*gamma;
 		}
 	}
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 27008)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 27009)
@@ -654,4 +654,5 @@
 	CalvingCalvingrateEnum,
 	CalvingHabFractionEnum,
+	CalvingAblationrateEnum,
 	CalvingMeltingrateEnum,
 	CalvingStressThresholdFloatingiceEnum,
Index: /issm/trunk-jpl/src/m/classes/calvingparameterization.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/calvingparameterization.m	(revision 27008)
+++ /issm/trunk-jpl/src/m/classes/calvingparameterization.m	(revision 27009)
@@ -66,5 +66,5 @@
 			md = checkfield(md,'fieldname','calving.min_thickness','>=',0,'NaN',1,'Inf',1,'numel',1);
 			md = checkfield(md,'fieldname','calving.use_param','values',[-1, 0, 1, 2, 3, 4]);
-			md = checkfield(md,'fieldname','calving.scale_theta','>=',0,'NaN',1,'Inf',1,'numel',1);
+			md = checkfield(md,'fieldname','calving.scale_theta','NaN',1,'Inf',1,'numel',1);
 			md = checkfield(md,'fieldname','calving.amp_alpha','<>',0,'NaN',1,'Inf',1,'numel',1);
 			md = checkfield(md,'fieldname','calving.midp','NaN',1,'Inf',1,'numel',1);
Index: /issm/trunk-jpl/src/m/classes/frontalforcings.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/frontalforcings.m	(revision 27008)
+++ /issm/trunk-jpl/src/m/classes/frontalforcings.m	(revision 27009)
@@ -7,4 +7,5 @@
 	properties (SetAccess=public) 
 		meltingrate   = NaN;
+		ablationrate   = NaN;
 	end
 	methods
@@ -29,8 +30,10 @@
 		function self = extrude(self,md) % {{{
 			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+			self.ablationrate=project3d(md,'vector',self.ablationrate,'type','node');
 		end % }}}
 		function self = setdefaultparameters(self) % {{{
 
 			meltingrate   = NaN;
+			ablationrate   = NaN;
 		end % }}}
 		function md = checkconsistency(self,md,solution,analyses) % {{{
@@ -39,4 +42,5 @@
 
 			md = checkfield(md,'fieldname','frontalforcings.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0);
+			md = checkfield(md,'fieldname','frontalforcings.ablationrate','NaN',1,'Inf',1,'timeseries',1);
 
 		end % }}}
@@ -44,4 +48,5 @@
 			disp(sprintf('   Frontalforcings parameters:'));
 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+			fielddisplay(self,'ablationrate','frontal ablation rate at given location [m/a], it contains both calving and melting');
 		end % }}}
 		function marshall(self,prefix,md,fid) % {{{
@@ -49,4 +54,5 @@
 			WriteData(fid,prefix,'name','md.frontalforcings.parameterization','data',1,'format','Integer');
 			WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
+			WriteData(fid,prefix,'object',self,'fieldname','ablationrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
 		end % }}}
 	end
