Index: /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 26783)
+++ /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 26784)
@@ -116,4 +116,6 @@
 			iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum);
 			break;
+		case CalvingTestEnum:
+			break;
 		default:
 			_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
@@ -167,4 +169,7 @@
 		case CalvingDev2Enum:
 			parameters->AddObject(iomodel->CopyConstantObject("md.calving.height_above_floatation",CalvingHeightAboveFloatationEnum));
+			break;
+		case CalvingTestEnum:
+			parameters->AddObject(iomodel->CopyConstantObject("md.calving.speedfactor",CalvingTestSpeedfactorEnum));
 			break;
 		default:
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 26783)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 26784)
@@ -228,4 +228,5 @@
 		virtual void		 BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement){_error_("not implemented yet");};
 		virtual void       CalvingRateVonmises(void){_error_("not implemented yet");};
+		virtual void       CalvingRateTest(void){_error_("not implemented yet");};
 		virtual void       CalvingCrevasseDepth(void){_error_("not implemented yet");};
 		virtual void	    CalvingRateLevermann(void)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 26783)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 26784)
@@ -398,4 +398,37 @@
 	this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
 	this->AddInput(SigmaVMEnum,&sigma_vm[0],P1DGEnum);
+}
+/*}}}*/
+void       Tria::CalvingRateTest(){/*{{{*/
+
+	IssmDouble  calvingratex[NUMVERTICES];
+	IssmDouble  calvingratey[NUMVERTICES];
+	IssmDouble  calvingrate[NUMVERTICES];
+	IssmDouble  vx,vy;
+
+	/*Retrieve all inputs and parameters we will need*/
+	IssmDouble coeff = parameters->FindParam(CalvingTestSpeedfactorEnum);
+	Input* vx_input = this->GetInput(VxEnum); _assert_(vx_input);
+	Input* vy_input = this->GetInput(VyEnum); _assert_(vy_input);
+
+	/* Start looping on the number of vertices: */
+	GaussTria gauss;
+	for(int iv=0;iv<NUMVERTICES;iv++){
+		gauss.GaussVertex(iv);
+
+		/*Get velocity components and thickness*/
+		vx_input->GetInputValue(&vx,&gauss);
+		vy_input->GetInputValue(&vy,&gauss);
+
+		calvingratex[iv]= coeff*vx;
+		calvingratey[iv]= coeff*vy;
+		calvingrate[iv] = sqrt(calvingratex[iv]*calvingratex[iv] + calvingratey[iv]*calvingratey[iv]);
+
+	}
+
+	/*Add input*/
+	this->AddInput(CalvingratexEnum,&calvingratex[0],P1DGEnum);
+	this->AddInput(CalvingrateyEnum,&calvingratey[0],P1DGEnum);
+	this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
 }
 /*}}}*/
@@ -4194,4 +4227,8 @@
 			meltingrate_input = this->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
 			break;
+		case CalvingTestEnum:
+			calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+			calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
+			break;
 		default:
 			_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
@@ -4351,4 +4388,9 @@
 					break;
 				  }
+			case CalvingTestEnum:
+				calvingratex_input->GetInputValue(&c[0],&gauss);
+				if(dim==2) calvingratey_input->GetInputValue(&c[1],&gauss);
+				for(i=0;i<dim;i++) m[i]=0.;
+				break;
 
 			default:
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 26783)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 26784)
@@ -55,4 +55,5 @@
 		void        AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
 		void			CalvingRateVonmises();
+		void			CalvingRateTest();
 		void        CalvingCrevasseDepth();
 		void			CalvingRateLevermann();
Index: /issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp	(revision 26783)
+++ /issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp	(revision 26784)
@@ -35,4 +35,7 @@
 			femmodel->ElementOperationx(&Element::CalvingRateVonmises);
 			break;
+		case CalvingTestEnum:
+			femmodel->ElementOperationx(&Element::CalvingRateTest);
+			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 26783)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 26784)
@@ -105,4 +105,5 @@
 syn keyword cConstant CalvingLawEnum
 syn keyword cConstant CalvingMinthicknessEnum
+syn keyword cConstant CalvingTestSpeedfactorEnum
 syn keyword cConstant ConfigurationTypeEnum
 syn keyword cConstant ConstantsGEnum
@@ -1221,4 +1222,5 @@
 syn keyword cConstant CalvingHabEnum
 syn keyword cConstant CalvingLevermannEnum
+syn keyword cConstant CalvingTestEnum
 syn keyword cConstant CalvingVonmisesEnum
 syn keyword cConstant CfdragcoeffabsgradEnum
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 26783)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 26784)
@@ -99,4 +99,5 @@
 	CalvingLawEnum,
 	CalvingMinthicknessEnum,
+	CalvingTestSpeedfactorEnum,
 	ConfigurationTypeEnum,
 	ConstantsGEnum,
@@ -1220,4 +1221,5 @@
 	CalvingHabEnum,
 	CalvingLevermannEnum,
+	CalvingTestEnum,
 	CalvingVonmisesEnum,
 	CfdragcoeffabsgradEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 26783)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 26784)
@@ -107,4 +107,5 @@
 		case CalvingLawEnum : return "CalvingLaw";
 		case CalvingMinthicknessEnum : return "CalvingMinthickness";
+		case CalvingTestSpeedfactorEnum : return "CalvingTestSpeedfactor";
 		case ConfigurationTypeEnum : return "ConfigurationType";
 		case ConstantsGEnum : return "ConstantsG";
@@ -1223,4 +1224,5 @@
 		case CalvingHabEnum : return "CalvingHab";
 		case CalvingLevermannEnum : return "CalvingLevermann";
+		case CalvingTestEnum : return "CalvingTest";
 		case CalvingVonmisesEnum : return "CalvingVonmises";
 		case CfdragcoeffabsgradEnum : return "Cfdragcoeffabsgrad";
Index: /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 26783)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim	(revision 26784)
@@ -98,4 +98,5 @@
 syn keyword juliaConstC CalvingLawEnum
 syn keyword juliaConstC CalvingMinthicknessEnum
+syn keyword juliaConstC CalvingTestSpeedfactorEnum
 syn keyword juliaConstC ConfigurationTypeEnum
 syn keyword juliaConstC ConstantsGEnum
@@ -1214,4 +1215,5 @@
 syn keyword juliaConstC CalvingHabEnum
 syn keyword juliaConstC CalvingLevermannEnum
+syn keyword juliaConstC CalvingTestEnum
 syn keyword juliaConstC CalvingVonmisesEnum
 syn keyword juliaConstC CfdragcoeffabsgradEnum
Index: /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp	(revision 26783)
+++ /issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp	(revision 26784)
@@ -267,4 +267,5 @@
 		case 6: return CalvingCrevasseDepthEnum;
 		case 7: return CalvingDev2Enum;
+		case 8: return CalvingTestEnum;
 		default: _error_("Marshalled Calving law code \""<<enum_in<<"\" not supported yet");
 	}
