Index: /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27015)
+++ /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 27016)
@@ -649,14 +649,12 @@
 	IssmDouble dt      = femmodel->parameters->FindParam(TimesteppingTimeStepEnum);
 
-
    /*Get current distance to terminus*/
    InputDuplicatex(femmodel,MaskIceLevelsetEnum,DistanceToCalvingfrontEnum);
    femmodel->DistanceToFieldValue(MaskIceLevelsetEnum,0,DistanceToCalvingfrontEnum);
 
-
 	if(calvinglaw==CalvingMinthicknessEnum || calvinglaw==CalvingVonmisesEnum){
 
 		/*Intermediaries*/
-		IssmDouble thickness,bed,sealevel,distance;
+		IssmDouble thickness,bed,sealevel,distance,levelset;
 		IssmDouble min_thickness = femmodel->parameters->FindParam(CalvingMinthicknessEnum);
 
@@ -665,10 +663,12 @@
 			Element* element  = xDynamicCast<Element*>(object);
 
-			int      numnodes = element->GetNumberOfNodes();
-			Gauss*   gauss    = element->NewGauss();
-			Input*   H_input  = element->GetInput(ThicknessEnum); _assert_(H_input);
-			Input*   b_input  = element->GetInput(BedEnum); _assert_(b_input);
-			Input*   sl_input = element->GetInput(SealevelEnum); _assert_(sl_input);
-			Input*   dis_input = element->GetInput(DistanceToCalvingfrontEnum); _assert_(dis_input);
+			int      numnodes     = element->GetNumberOfNodes();
+			Gauss*   gauss        = element->NewGauss();
+
+			Input *H_input        = element->GetInput(ThicknessEnum);              _assert_(H_input);
+			Input *b_input        = element->GetInput(BedEnum);                    _assert_(b_input);
+			Input *sl_input       = element->GetInput(SealevelEnum);               _assert_(sl_input);
+			Input *dis_input      = element->GetInput(DistanceToCalvingfrontEnum); _assert_(dis_input);
+			Input *levelset_input = element->GetInput(MaskIceLevelsetEnum);        _assert_(levelset_input);
 
 			/*Potentially constrain nodes of this element*/
@@ -682,8 +682,9 @@
 				sl_input->GetInputValue(&sealevel,gauss);
 				dis_input->GetInputValue(&distance,gauss);
-				if(thickness<min_thickness && bed<sealevel && fabs(distance)<mig_max*dt){
+				levelset_input->GetInputValue(&levelset,gauss);
+				if(thickness<min_thickness && bed<sealevel && fabs(distance)<mig_max*dt && levelset<0){
 					node->ApplyConstraint(0,+1.);
 				}
-				else {
+				else{
 					/* no ice, set no spc */
 					node->DofInFSet(0);
