Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 17635)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 17636)
@@ -666,9 +666,9 @@
 	parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
 
-	if(migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){ //Floating if all nodes are floating
+	if(migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum || migration_style==ContactEnum){ //Floating if all nodes are floating
 		if(this->inputs->Max(MaskGroundediceLevelsetEnum) <= 0.) shelf=true;
 		else shelf=false;
 	}
-	else if(migration_style==NoneEnum || migration_style==AgressiveMigrationEnum || migration_style==SoftMigrationEnum || migration_style==ContactEnum){ //Floating if all nodes are floating
+	else if(migration_style==NoneEnum || migration_style==AgressiveMigrationEnum || migration_style==SoftMigrationEnum){ //Floating if all nodes are floating
 		if(this->inputs->Min(MaskGroundediceLevelsetEnum) > 0.) shelf=false;
 		else shelf=true;
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17635)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 17636)
@@ -1345,4 +1345,6 @@
 	if(!IsFloating()){ 
 
+		if(this->inputs->Max(MaskGroundediceLevelsetEnum)==0.){
+
 		this->StrainRateSSA(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
 		this->ViscosityFS(&viscosity,2,xyz_list,gauss,vx_input,vy_input,NULL);
@@ -1370,4 +1372,8 @@
 		if (sigma_nn<water_pressure) grounded=true;
 		else                         grounded=false;
+		}
+		else{
+			grounded=true;
+		}
 	}
 	else{
@@ -1707,5 +1713,5 @@
 			xz_plane[1]=sin(theta);       xz_plane[4]=0.;  
 			xz_plane[2]=0.;               xz_plane[5]=1.;          
-			if(groundedice>0){
+			if(groundedice>=0){
 				this->nodes[i]->DofInSSet(1); //vy
 			}
