Index: /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 26876)
+++ /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 26877)
@@ -88,4 +88,6 @@
    iomodel->FindConstant(&isstochastic,"md.stochasticforcing.isstochasticforcing");
    switch(calvinglaw){
+
+		/*"Continuous" calving laws*/
       case DefaultCalvingEnum:
          iomodel->FetchDataToInput(inputs,elements,"md.calving.calvingrate",CalvingCalvingrateEnum);
@@ -103,13 +105,4 @@
 			iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
 			break;
-		case CalvingMinthicknessEnum:
-			iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
-			break;
-		case CalvingHabEnum:
-			iomodel->FetchDataToInput(inputs,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
-			break;
-		case CalvingCrevasseDepthEnum:
-			iomodel->FetchDataToInput(inputs,elements,"md.calving.water_height",WaterheightEnum);
-			break;
 		case CalvingDev2Enum:
 			iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
@@ -123,4 +116,22 @@
 			iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
 			break;
+
+		/*"Discrete" calving laws (need to specify rate as 0 so that we can still solve the level set equation)*/
+		case CalvingMinthicknessEnum:
+			iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
+			iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
+			iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
+			break;
+		case CalvingHabEnum:
+			iomodel->FetchDataToInput(inputs,elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
+			iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
+			iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
+			break;
+		case CalvingCrevasseDepthEnum:
+			iomodel->FetchDataToInput(inputs,elements,"md.calving.water_height",WaterheightEnum);
+			iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
+			iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
+			break;
+
 		default:
 			_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 26876)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 26877)
@@ -4316,13 +4316,8 @@
 	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
 
-	Input* vx_input           = NULL;
-	Input* vy_input           = NULL;
 	Input* calvingratex_input = NULL;
 	Input* calvingratey_input = NULL;
-	Input* lsf_slopey_input   = NULL;
 	Input* calvingrate_input  = NULL;
 	Input* meltingrate_input  = NULL;
-	Input* gr_input           = NULL;
-
 
 	/*Get problem dimension and whether there is moving front or not*/
@@ -4338,23 +4333,12 @@
 
 	/*Load levelset function gradients*/
-	Input* lsf_slopex_input  = this->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
-	if(dim==2){lsf_slopey_input  = this->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);}
-
-	/*Load velocities*/
-	switch(domaintype){
-		case Domain2DverticalEnum:
-			vx_input=this->GetInput(VxEnum); _assert_(vx_input);
-			break;
-		case Domain2DhorizontalEnum:
-			vx_input=this->GetInput(VxEnum); _assert_(vx_input);
-			vy_input=this->GetInput(VyEnum); _assert_(vy_input);
-			gr_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
-			break;
-		case Domain3DEnum:
-			vx_input=this->GetInput(VxAverageEnum); _assert_(vx_input);
-			vy_input=this->GetInput(VyAverageEnum); _assert_(vy_input);
-			gr_input=this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
-			break;
-		default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
+   Input *gr_input         = this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
+	Input *lsf_slopex_input = this->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
+	Input *vx_input         = this->GetInput(VxEnum);                     _assert_(vx_input);
+	Input *lsf_slopey_input = NULL;
+	Input *vy_input         = NULL;
+	if(dim==2){
+		lsf_slopey_input = this->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
+		vy_input         = this->GetInput(VyEnum); _assert_(vy_input);
 	}
 
