Index: /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27287)
@@ -132,4 +132,6 @@
 			iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
 			iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
+			break;
+		case CalvingPollardEnum:
 			break;
 
@@ -228,4 +230,7 @@
 			parameters->AddObject(iomodel->CopyConstantObject("md.calving.vel_threshold",CalvingVelThresholdEnum));
 			parameters->AddObject(iomodel->CopyConstantObject("md.calving.vel_upperbound",CalvingVelUpperboundEnum));
+			break;
+		case CalvingPollardEnum:
+			parameters->AddObject(iomodel->CopyConstantObject("md.calving.rc",CalvingRcEnum));
 			break;
 		default:
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 27287)
@@ -297,5 +297,5 @@
    this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,&values[0],P1Enum);
 }/*}}}*/
-void       Element::CalvingFromRate(){/*{{{*/
+void       Element::CalvingRateToVector(){/*{{{*/
 
 	/*We are provided a calving rate, figure out the x/y components*/
@@ -3694,4 +3694,7 @@
 													  case CalvingLevermannEnum:
 														  this->CalvingRateLevermann();
+														  break;
+													  case CalvingPollardEnum:
+														  this->CalvingPollard();
 														  break;
 													  case CalvingVonmisesEnum:
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 27286)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 27287)
@@ -72,5 +72,5 @@
 		void               BasinLinearFloatingiceMeltingRate(IssmDouble* deepwaterel,IssmDouble* upperwatermelt,IssmDouble* upperwaterel,IssmDouble* perturbation);
 		void               CalvingSetZeroRate(void);
-		void               CalvingFromRate(void);
+		void               CalvingRateToVector(void);
 		void               ComputeLambdaS(void);
 		void               ComputeNewDamage();
@@ -238,4 +238,5 @@
 		virtual void       CalvingCrevasseDepth(void){_error_("not implemented yet");};
 		virtual void	    CalvingRateLevermann(void)=0;
+		virtual void	    CalvingPollard(void){_error_("not implemented yet");};
 		virtual void       CalvingFluxLevelset(void){_error_("not implemented yet");};
 		virtual void       CalvingMeltingFluxLevelset(void){_error_("not implemented yet");};
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 27287)
@@ -324,5 +324,5 @@
 	/*Add input*/
 	this->AddBasalInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
-	this->CalvingFromRate();
+	this->CalvingRateToVector();
 
 	/*Extrude*/
@@ -365,5 +365,5 @@
 	/*Add input*/
 	this->AddBasalInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
-	this->CalvingFromRate();
+	this->CalvingRateToVector();
 }/*}}}*/
 void       Penta::CalvingFluxLevelset(){/*{{{*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 27287)
@@ -364,5 +364,5 @@
 	/*Add input*/
 	this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
-   this->CalvingFromRate();
+   this->CalvingRateToVector();
 }
 /*}}}*/
@@ -558,5 +558,93 @@
 	/*Add input*/
 	this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
-	this->CalvingFromRate();
+	this->CalvingRateToVector();
+}/*}}}*/
+void       Tria::CalvingPollard(){/*{{{*/
+
+	/*Intermediaries*/
+	IssmDouble calvingrate[NUMVERTICES];
+	IssmDouble xyz_list[NUMVERTICES][3];
+	IssmDouble dvx[2], dvy[2];
+	IssmDouble B, n, H, bed, vx, vy, vel, smb;
+	IssmDouble ds, db, da, dt, dw, r, R;
+
+	/*Retrieve all inputs and parameters we will need*/
+	IssmDouble rc        = FindParam(CalvingRcEnum);
+	IssmDouble rho_ice   = FindParam(MaterialsRhoIceEnum);
+	IssmDouble rho_water = FindParam(MaterialsRhoSeawaterEnum);
+	IssmDouble gravity   = FindParam(ConstantsGEnum);
+   IssmDouble mig_max   = FindParam(MigrationMaxEnum);
+
+	/*Retrieve all inputs and parameters we will need */
+	Input *bs_input  = this->GetInput(BaseEnum);                  _assert_(bs_input);
+	Input *vx_input  = this->GetInput(VxEnum);                    _assert_(vx_input);
+	Input *vy_input  = this->GetInput(VyEnum);                    _assert_(vy_input);
+	Input *B_input   = this->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
+	Input *n_input   = this->GetInput(MaterialsRheologyNEnum);    _assert_(n_input);
+	Input *H_input   = this->GetInput(ThicknessEnum);             _assert_(H_input);
+	Input *smb_input = this->GetInput(SmbMassBalanceEnum);        _assert_(smb_input);
+
+	/* Start looping on the number of vertices: */
+	GaussTria gauss;
+	for (int iv=0;iv<NUMVERTICES;iv++){
+		gauss.GaussVertex(iv);
+
+		/* Get the value we need*/
+		bs_input->GetInputValue(&bed,&gauss);
+
+		/*Only calve if bed is below sea level, as always*/
+		if(bed<=0.){
+
+			/*Get Triangle node coordinates*/
+			::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+
+			/*Get strain rates*/
+			vx_input->GetInputDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss);
+			vy_input->GetInputDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss);
+
+			/*Get other inputs*/
+			B_input->GetInputValue(&B,&gauss);
+         n_input->GetInputValue(&n,&gauss);
+         H_input->GetInputValue(&H,&gauss);
+         vx_input->GetInputValue(&vx,&gauss);
+         vy_input->GetInputValue(&vy,&gauss);
+         smb_input->GetInputValue(&smb,&gauss);
+
+			/*1. with surface crevasses, ds*/
+			ds = 2./(rho_ice*gravity) * B * pow( max(0.,dvx[0]) + max(0.,dvy[1]) , 1./n);
+
+         /*2. basal crevasses*/
+         db = (rho_ice)/(rho_water - rho_ice) * ds;
+
+         /*3. "Additional" crevasse opening*/
+         vel = sqrt(vx*vx + vy*vy)/(365.25*24*3600);
+         da = H* max(0., log(vel/1600.))/log(1.2);
+
+         /*4. deal with shallow ice*/
+         dt = H* max(0., min(1., (150. - H)/50.));
+
+         /*5. water induced opening*/
+         dw = 0.;
+         R = smb*365.25*24*3600; //convert from m/s to m/yr
+         if(R>1.5 && R<=3.){
+            dw = 4*1.5*(R - 1.5);
+         }
+         else if(R>3.){
+            dw = R*R;
+         }
+
+         /*Total calving rate*/
+         r = (ds+db+da+dt+dw)/H;
+			calvingrate[iv]= mig_max * max(0., min(1., (r - rc)/(1 - rc))); //P&DC: mig_max = 3000 m/yr
+			_assert_(!xIsNan<IssmDouble>(calvingrate[iv]));
+			_assert_(!xIsInf<IssmDouble>(calvingrate[iv]));
+		}
+		else
+		 calvingrate[iv]=0.;
+	}
+
+	/*Add input*/
+	this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
+	this->CalvingRateToVector();
 }/*}}}*/
 void       Tria::CalvingFluxLevelset(){/*{{{*/
@@ -951,5 +1039,5 @@
 	this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
 	this->AddInput(SigmaVMEnum,&sigma_vm[0],P1DGEnum);
-	this->CalvingFromRate();
+	this->CalvingRateToVector();
 
 	/*Clean up and return*/
@@ -4312,4 +4400,5 @@
 		case CalvingVonmisesEnum:
 		case CalvingLevermannEnum:
+		case CalvingPollardEnum:
 		case CalvingTestEnum:
 		case CalvingParameterizationEnum:
@@ -4357,4 +4446,5 @@
 			case CalvingParameterizationEnum:
 			case CalvingLevermannEnum:
+			case CalvingPollardEnum:
 				calvingratex_input->GetInputValue(&c[0],&gauss);
 				calvingratey_input->GetInputValue(&c[1],&gauss);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 27286)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 27287)
@@ -58,4 +58,5 @@
 		void        CalvingCrevasseDepth();
 		void			CalvingRateLevermann();
+		void			CalvingPollard();
 		void			CalvingFluxLevelset();
 		void			CalvingMeltingFluxLevelset();
Index: /issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp	(revision 27287)
@@ -20,5 +20,5 @@
 			break;
 		case DefaultCalvingEnum:
-			femmodel->ElementOperationx(&Element::CalvingFromRate);
+			femmodel->ElementOperationx(&Element::CalvingRateToVector);
 			break;
 		case CalvingCrevasseDepthEnum:
@@ -31,5 +31,4 @@
 			break;
 		case CalvingLevermannEnum:
-			if(VerboseModule()) _printf0_("   computing Levermann's calving rate\n");
 			femmodel->StrainRateparallelx();
 			femmodel->StrainRateperpendicularx();
@@ -46,4 +45,7 @@
 			femmodel->ElementOperationx(&Element::CalvingRateParameterization);
 			break;
+		case CalvingPollardEnum:
+			femmodel->ElementOperationx(&Element::CalvingPollard);
+			break;
 		default:
 			_error_("Caving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
Index: /issm/trunk-jpl/src/c/shared/Enum/Enum.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 27286)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 27287)
@@ -129,4 +129,5 @@
 syn keyword cConstant CalvingVelThresholdEnum
 syn keyword cConstant CalvingVelUpperboundEnum
+syn keyword cConstant CalvingRcEnum
 syn keyword cConstant ConfigurationTypeEnum
 syn keyword cConstant ConstantsGEnum
@@ -1289,4 +1290,5 @@
 syn keyword cConstant CalvingParameterizationEnum
 syn keyword cConstant CalvingVonmisesEnum
+syn keyword cConstant CalvingPollardEnum
 syn keyword cConstant CfdragcoeffabsgradEnum
 syn keyword cConstant CfsurfacelogvelEnum
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 27286)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 27287)
@@ -123,4 +123,5 @@
 	CalvingVelThresholdEnum,
 	CalvingVelUpperboundEnum,
+	CalvingRcEnum,
 	ConfigurationTypeEnum,
 	ConstantsGEnum,
@@ -1288,4 +1289,5 @@
 	CalvingParameterizationEnum,
 	CalvingVonmisesEnum,
+	CalvingPollardEnum,
 	CfdragcoeffabsgradEnum,
 	CfsurfacelogvelEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 27287)
@@ -131,4 +131,5 @@
 		case CalvingVelThresholdEnum : return "CalvingVelThreshold";
 		case CalvingVelUpperboundEnum : return "CalvingVelUpperbound";
+		case CalvingRcEnum : return "CalvingRc";
 		case ConfigurationTypeEnum : return "ConfigurationType";
 		case ConstantsGEnum : return "ConstantsG";
@@ -1291,4 +1292,5 @@
 		case CalvingParameterizationEnum : return "CalvingParameterization";
 		case CalvingVonmisesEnum : return "CalvingVonmises";
+		case CalvingPollardEnum : return "CalvingPollard";
 		case CfdragcoeffabsgradEnum : return "Cfdragcoeffabsgrad";
 		case CfsurfacelogvelEnum : return "Cfsurfacelogvel";
Index: /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 27286)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 27287)
@@ -122,4 +122,5 @@
 syn keyword juliaConstC CalvingVelThresholdEnum
 syn keyword juliaConstC CalvingVelUpperboundEnum
+syn keyword juliaConstC CalvingRcEnum
 syn keyword juliaConstC ConfigurationTypeEnum
 syn keyword juliaConstC ConstantsGEnum
@@ -1282,4 +1283,5 @@
 syn keyword juliaConstC CalvingParameterizationEnum
 syn keyword juliaConstC CalvingVonmisesEnum
+syn keyword juliaConstC CalvingPollardEnum
 syn keyword juliaConstC CfdragcoeffabsgradEnum
 syn keyword juliaConstC CfsurfacelogvelEnum
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 27287)
@@ -131,4 +131,5 @@
 	      else if (strcmp(name,"CalvingVelThreshold")==0) return CalvingVelThresholdEnum;
 	      else if (strcmp(name,"CalvingVelUpperbound")==0) return CalvingVelUpperboundEnum;
+	      else if (strcmp(name,"CalvingRc")==0) return CalvingRcEnum;
 	      else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
 	      else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
@@ -136,9 +137,9 @@
 	      else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum;
 	      else if (strcmp(name,"ConstantsYts")==0) return ConstantsYtsEnum;
-	      else if (strcmp(name,"ControlInputSizeM")==0) return ControlInputSizeMEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum;
+	      if (strcmp(name,"ControlInputSizeM")==0) return ControlInputSizeMEnum;
+	      else if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum;
 	      else if (strcmp(name,"ControlInputInterpolation")==0) return ControlInputInterpolationEnum;
 	      else if (strcmp(name,"CumBslc")==0) return CumBslcEnum;
@@ -259,9 +260,9 @@
 	      else if (strcmp(name,"HydrologyStepAdapt")==0) return HydrologyStepAdaptEnum;
 	      else if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum;
-	      else if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
+	      if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum;
+	      else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
 	      else if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum;
 	      else if (strcmp(name,"Index")==0) return IndexEnum;
@@ -382,9 +383,9 @@
 	      else if (strcmp(name,"QmuVariableDescriptors")==0) return QmuVariableDescriptorsEnum;
 	      else if (strcmp(name,"QmuVariablePartitions")==0) return QmuVariablePartitionsEnum;
-	      else if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum;
+	      if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum;
+	      else if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum;
 	      else if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum;
 	      else if (strcmp(name,"QmuResponsePartitionsNpart")==0) return QmuResponsePartitionsNpartEnum;
@@ -505,9 +506,9 @@
 	      else if (strcmp(name,"SmbCldFrac")==0) return SmbCldFracEnum;
 	      else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
-	      else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
+	      if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
+	      else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
 	      else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
 	      else if (strcmp(name,"Smb")==0) return SmbEnum;
@@ -628,9 +629,9 @@
 	      else if (strcmp(name,"Velocity")==0) return VelocityEnum;
 	      else if (strcmp(name,"Xxe")==0) return XxeEnum;
-	      else if (strcmp(name,"Yye")==0) return YyeEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"Zze")==0) return ZzeEnum;
+	      if (strcmp(name,"Yye")==0) return YyeEnum;
+	      else if (strcmp(name,"Zze")==0) return ZzeEnum;
 	      else if (strcmp(name,"Areae")==0) return AreaeEnum;
 	      else if (strcmp(name,"WorldComm")==0) return WorldCommEnum;
@@ -751,9 +752,9 @@
 	      else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
 	      else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
-	      else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"Dummy")==0) return DummyEnum;
+	      if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
+	      else if (strcmp(name,"Dummy")==0) return DummyEnum;
 	      else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum;
 	      else if (strcmp(name,"EffectivePressureSubstep")==0) return EffectivePressureSubstepEnum;
@@ -874,9 +875,9 @@
 	      else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
 	      else if (strcmp(name,"Misfit")==0) return MisfitEnum;
-	      else if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
+	      if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum;
+	      else if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
 	      else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
 	      else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
@@ -997,9 +998,9 @@
 	      else if (strcmp(name,"SmbCcsnowValue")==0) return SmbCcsnowValueEnum;
 	      else if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum;
-	      else if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"SmbD")==0) return SmbDEnum;
+	      if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum;
+	      else if (strcmp(name,"SmbD")==0) return SmbDEnum;
 	      else if (strcmp(name,"SmbDailyairdensity")==0) return SmbDailyairdensityEnum;
 	      else if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
@@ -1120,9 +1121,9 @@
 	      else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
 	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
-	      else if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
+	      if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
+	      else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
 	      else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
 	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
@@ -1243,9 +1244,9 @@
 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
 	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
-	      else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
          else stage=11;
    }
    if(stage==11){
-	      if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
+	      if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
+	      else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
 	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
 	      else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
@@ -1321,4 +1322,5 @@
 	      else if (strcmp(name,"CalvingParameterization")==0) return CalvingParameterizationEnum;
 	      else if (strcmp(name,"CalvingVonmises")==0) return CalvingVonmisesEnum;
+	      else if (strcmp(name,"CalvingPollard")==0) return CalvingPollardEnum;
 	      else if (strcmp(name,"Cfdragcoeffabsgrad")==0) return CfdragcoeffabsgradEnum;
 	      else if (strcmp(name,"Cfsurfacelogvel")==0) return CfsurfacelogvelEnum;
@@ -1365,10 +1367,10 @@
 	      else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum;
 	      else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;
-	      else if (strcmp(name,"Element")==0) return ElementEnum;
-	      else if (strcmp(name,"ElementHook")==0) return ElementHookEnum;
          else stage=12;
    }
    if(stage==12){
-	      if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
+	      if (strcmp(name,"Element")==0) return ElementEnum;
+	      else if (strcmp(name,"ElementHook")==0) return ElementHookEnum;
+	      else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
 	      else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
 	      else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum;
@@ -1488,10 +1490,10 @@
 	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
 	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
-	      else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
-	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
          else stage=13;
    }
    if(stage==13){
-	      if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
+	      if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
+	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
+	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
 	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
@@ -1611,10 +1613,10 @@
 	      else if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
 	      else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
-	      else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
-	      else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
          else stage=14;
    }
    if(stage==14){
-	      if (strcmp(name,"SpatialLinearFloatingMeltRate")==0) return SpatialLinearFloatingMeltRateEnum;
+	      if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
+	      else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
+	      else if (strcmp(name,"SpatialLinearFloatingMeltRate")==0) return SpatialLinearFloatingMeltRateEnum;
 	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
 	      else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
Index: /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp	(revision 27286)
+++ /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp	(revision 27287)
@@ -261,13 +261,14 @@
 int IoCodeToEnumCalving(int enum_in){/*{{{*/
 	switch(enum_in){
-		case 1: return DefaultCalvingEnum;
-		case 2: return CalvingVonmisesEnum;
-		case 3: return CalvingLevermannEnum;
-		case 4: return CalvingMinthicknessEnum;
-		case 5: return CalvingHabEnum;
-		case 6: return CalvingCrevasseDepthEnum;
-		case 7: return CalvingDev2Enum;
-		case 9: return CalvingParameterizationEnum;
-		case 8: return CalvingTestEnum;
+		case 1:  return DefaultCalvingEnum;
+		case 2:  return CalvingVonmisesEnum;
+		case 3:  return CalvingLevermannEnum;
+		case 4:  return CalvingMinthicknessEnum;
+		case 5:  return CalvingHabEnum;
+		case 6:  return CalvingCrevasseDepthEnum;
+		case 7:  return CalvingDev2Enum;
+		case 8:  return CalvingTestEnum;
+		case 9:  return CalvingParameterizationEnum;
+		case 10: return CalvingPollardEnum;
 		default: _error_("Marshalled Calving law code \""<<enum_in<<"\" not supported yet");
 	}
