Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 26984)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 26985)
@@ -819,6 +819,4 @@
 	IssmDouble  xyz_list[NUMVERTICES][3];
 	IssmDouble  epsilon[3]; /* epsilon=[exx,eyy,exy];*/
-	IssmDouble  calvingratex[NUMVERTICES];
-	IssmDouble  calvingratey[NUMVERTICES];
 	IssmDouble  calvingrate[NUMVERTICES];
 	IssmDouble  lambda1,lambda2,ex,ey,vx,vy,vel;
@@ -950,13 +948,10 @@
 			calvingrate[iv] = mrate*gamma;
 		}
-		calvingratex[iv] = calvingrate[iv]*vx/vel;
-		calvingratey[iv] = calvingrate[iv]*vy/vel;
 	}
 
 	/*Add input*/
-	this->AddInput(CalvingratexEnum,&calvingratex[0],P1DGEnum);
-	this->AddInput(CalvingrateyEnum,&calvingratey[0],P1DGEnum);
 	this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
 	this->AddInput(SigmaVMEnum,&sigma_vm[0],P1DGEnum);
+	this->CalvingFromRate();
 
 	/*Clean up and return*/
@@ -4311,31 +4306,16 @@
    Input *gr_input         = this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
 	Input *lsf_slopex_input = this->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
+	Input *lsf_slopey_input = this->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_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);
-	}
+	Input *vy_input         = this->GetInput(VyEnum); _assert_(vy_input);
 
 	switch(calvinglaw){
 		case DefaultCalvingEnum:
 		case CalvingVonmisesEnum:
+		case CalvingLevermannEnum:
+		case CalvingTestEnum:
+		case CalvingParameterizationEnum:
 			calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
 			calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
-			meltingrate_input = this->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
-			break;
-		case CalvingLevermannEnum:
-			switch(domaintype){
-				case Domain2DverticalEnum:
-					calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
-					break;
-				case Domain2DhorizontalEnum:
-            case Domain3DEnum:
-					calvingratex_input=this->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
-					calvingratey_input=this->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
-					break;
-				default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
-			}
 			meltingrate_input = this->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
 			break;
@@ -4350,12 +4330,4 @@
 			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;
-		case CalvingParameterizationEnum:
-			calvingrate_input = this->GetInput(CalvingCalvingrateEnum);     _assert_(calvingrate_input);
-			meltingrate_input = this->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
-			break;
 		default:
 			_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
@@ -4382,4 +4354,6 @@
 			case DefaultCalvingEnum:
 			case CalvingVonmisesEnum:
+			case CalvingTestEnum:
+			case CalvingParameterizationEnum:
 				calvingratex_input->GetInputValue(&c[0],&gauss);
 				calvingratey_input->GetInputValue(&c[1],&gauss);
@@ -4461,24 +4435,8 @@
 					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;
-			case CalvingParameterizationEnum:
-            calvingrate_input->GetInputValue(&calvingrate,&gauss);
-            meltingrate_input->GetInputValue(&meltingrate,&gauss);
-				meltingrate = 0.;
-
-            if(norm_dlsf>1.e-10)
-             for(i=0;i<dim;i++){
-                c[i]=calvingrate*dlsf[i]/norm_dlsf;
-                m[i]=meltingrate*dlsf[i]/norm_dlsf;
-             }
-            else
-             for(i=0;i<dim;i++){
-                c[i]=0.; m[i]=0.;
-             }
-            break;
 
 			default:
