Index: /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 22993)
@@ -503,5 +503,5 @@
 
 	/*Intermediaries */
-	int         migration_style,point1;
+	int         melt_style,point1;
 	bool        mainlyfloating;
 	IssmDouble  fraction1,fraction2;
@@ -521,5 +521,5 @@
 	/*Retrieve all inputs and parameters*/
 	element->GetVerticesCoordinates(&xyz_list);
-	element->FindParam(&migration_style,GroundinglineMigrationEnum);
+	element->FindParam(&melt_style,GroundinglineMeltInterpolationEnum);
 	element->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* gmb_input           = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);  _assert_(gmb_input);
@@ -531,5 +531,5 @@
 	/*Recover portion of element that is grounded*/
 	phi=element->GetGroundedPortion(xyz_list);
-	if(migration_style==SubelementMigration2Enum){
+	if(melt_style==SubelementMelt2Enum){
 		gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
 		element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
@@ -553,20 +553,21 @@
 		thickness_input->GetInputValue(&thickness,gauss);
 
-		if(migration_style==SubelementMigrationEnum){
+		if(melt_style==SubelementMelt1Enum){
 			if (phi>0.999999999) mb=gmb;
 			else mb=(1-phi)*fmb+phi*gmb; // phi is the fraction of grounded ice so (1-phi) is floating
 		}
-		else if(migration_style==SubelementMigration2Enum){
+		else if(melt_style==SubelementMelt2Enum){
 			if(gllevelset>0.) mb=gmb;
 			else mb=fmb;
 		}
-		else if(migration_style==SubelementMigration3Enum){
+		else if(melt_style==NoMeltOnPartiallyFloatingEnum){
 			if (phi<0.00000001) mb=fmb;
 			else mb=gmb;
 		}
-		else{
-			if(gllevelset>0) mb=gmb;
+		else if(melt_style==FullMeltOnPartiallyFloatingEnum){
+			if (phi<0.99999999) mb=fmb;
 			else mb=fmb;
 		}
+		else{ _error_("melt interpolation not supported yet"); }
 
 		for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(thickness+dt*(ms-mb))*basis[i];
Index: /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 22993)
@@ -1292,5 +1292,5 @@
 	int         dim,domaintype;
 	bool        mainlyfloating;
-	int         migration_style,point1;
+	int         friction_style,point1;
 	IssmDouble  alpha2,Jdet,fraction1,fraction2;
 	IssmDouble  gllevelset,phi=1.;
@@ -1317,5 +1317,5 @@
 	/*Retrieve all inputs and parameters*/
 	element->GetVerticesCoordinates(&xyz_list);
-	element->FindParam(&migration_style,GroundinglineMigrationEnum);
+	element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum);
 	Input* surface_input    = element->GetInput(SurfaceEnum); _assert_(surface_input);
 	Input* gllevelset_input = NULL;
@@ -1325,6 +1325,6 @@
 
 	/*Recover portion of element that is grounded*/
-	if(migration_style==SubelementMigrationEnum) phi=element->GetGroundedPortion(xyz_list);
-	if(migration_style==SubelementMigration2Enum){
+	if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list);
+	if(friction_style==SubelementFriction2Enum){
 		gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
 		element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
@@ -1340,9 +1340,13 @@
 
 		friction->GetAlpha2(&alpha2,gauss);
-		if(migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;
-		if(migration_style==SubelementMigration2Enum){
+		if(friction_style==SubelementFriction1Enum) alpha2=phi*alpha2;
+		else if(friction_style==SubelementFriction2Enum){
 			gllevelset_input->GetInputValue(&gllevelset, gauss);
 			if(gllevelset<0.) alpha2=0.;
 		}
+		else if(friction_style==NoFrictionOnPartiallyFloatingEnum){
+			if (phi<0.99999999) alpha2=0.;
+		}
+		else  _error_("friction interpolation not implemented yet");
 
 		element->NodalFunctions(basis,gauss);
@@ -2333,5 +2337,5 @@
 	int         dim;
 	bool        mainlyfloating;
-	int         migration_style,point1;
+	int         friction_style,point1;
 	IssmDouble  alpha2,Jdet,fraction1,fraction2;
 	IssmDouble  gllevelset,phi=1.;
@@ -2352,5 +2356,5 @@
 	/*Retrieve all inputs and parameters*/
 	element->GetVerticesCoordinatesBase(&xyz_list_base);
-	element->FindParam(&migration_style,GroundinglineMigrationEnum);
+	element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum);
 	Input* gllevelset_input = NULL;
 
@@ -2359,6 +2363,6 @@
 
 	/*Recover portion of element that is grounded*/
-	if(migration_style==SubelementMigrationEnum) phi=element->GetGroundedPortion(xyz_list_base);
-	if(migration_style==SubelementMigration2Enum){
+	if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base);
+	if(friction_style==SubelementFriction2Enum){
 		gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
 		element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
@@ -2374,9 +2378,13 @@
 
 		friction->GetAlpha2(&alpha2,gauss);
-		if(migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;
-		if(migration_style==SubelementMigration2Enum){
+		if(friction_style==SubelementFriction1Enum) alpha2=phi*alpha2;
+		else if(friction_style==SubelementFriction2Enum){
 			gllevelset_input->GetInputValue(&gllevelset, gauss);
 			if(gllevelset<0.) alpha2=0.;
 		}
+		else if(friction_style==NoFrictionOnPartiallyFloatingEnum){
+			if (phi<0.99999999) alpha2=0.;
+		}
+		else  _error_("friction interpolation not implemented yet");
 
 		element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss);
@@ -3704,5 +3712,5 @@
 	bool        mainlyfloating;
 	int         dim,domaintype;
-	int         migration_style,point1;
+	int         friction_style,point1;
 	IssmDouble  alpha2,Jdet,fraction1,fraction2;
 	IssmDouble  gllevelset,phi=1.;
@@ -3725,5 +3733,5 @@
 	/*Retrieve all inputs and parameters*/
 	element->GetVerticesCoordinatesBase(&xyz_list_base);
-	element->FindParam(&migration_style,GroundinglineMigrationEnum);
+	element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum);
 	Input* gllevelset_input = NULL;
 
@@ -3732,7 +3740,7 @@
 
 	/*Recover portion of element that is grounded*/
-	if(migration_style==SubelementMigrationEnum) phi=element->GetGroundedPortion(xyz_list_base);
-	if(migration_style==SubelementMigration2Enum){
-		if(domaintype==Domain2DverticalEnum) _error_("Subelement Migration 2 not implemented yet for Flowline");
+	if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base);
+	if(friction_style==SubelementFriction2Enum){
+		if(domaintype==Domain2DverticalEnum) _error_("Subelement Friction 2 not implemented yet for Flowline");
 		gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
 		element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
@@ -3749,9 +3757,13 @@
 
 		friction->GetAlpha2(&alpha2,gauss);
-		if(migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;
-		if(migration_style==SubelementMigration2Enum){
+		if(friction_style==SubelementFriction1Enum) alpha2=phi*alpha2;
+		else if(friction_style==SubelementFriction2Enum){
 			gllevelset_input->GetInputValue(&gllevelset, gauss);
 			if(gllevelset<0.) alpha2=0.;
 		}
+		else if(friction_style==NoFrictionOnPartiallyFloatingEnum){
+			if (phi<0.99999999) alpha2=0.;
+		}
+		else  _error_("friction interpolation not implemented yet");
 
 		element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss);
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 22993)
@@ -2001,5 +2001,5 @@
 	parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
 
-	if(migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){ //Floating if all nodes are floating
+	if(migration_style==SubelementMigrationEnum){ //Floating if all nodes are floating
 		if(this->inputs->Max(MaskGroundediceLevelsetEnum) <= 0.) shelf=true;
 		else shelf=false;
@@ -2338,5 +2338,5 @@
 			if (bed_hydro>r[i]){
 				/*Unground only if the element is connected to the ice shelf*/
-				if(migration_style==AggressiveMigrationEnum || migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){
+				if(migration_style==AggressiveMigrationEnum || migration_style==SubelementMigrationEnum){
 					s[i]        = (1-density)*h[i]+sl[i];
 					b[i]        = -density*h[i]+sl[i];
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 22993)
@@ -663,4 +663,8 @@
 						this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
 					} else if(strcmp(record_name,"md.groundingline.migration")==0){
+						this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
+					} else if(strcmp(record_name,"md.groundingline.friction_interpolation")==0){
+						this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
+					} else if(strcmp(record_name,"md.groundingline.melt_interpolation")==0){
 						this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
 					} else if(strcmp(record_name,"md.masstransport.hydrostatic_adjustment")==0){
@@ -807,4 +811,8 @@
 						} else if(strcmp(record_name,"md.groundingline.migration")==0){
 							this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
+						} else if(strcmp(record_name,"md.groundingline.friction_interpolation")==0){
+							this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
+						} else if(strcmp(record_name,"md.groundingline.melt_interpolation")==0){
+							this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
 						} else if(strcmp(record_name,"md.masstransport.hydrostatic_adjustment")==0){
 							this->AddConstant(new IoConstant(StringToEnumx(string),record_name));
Index: /issm/trunk-jpl/src/c/cores/transient_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/cores/transient_core.cpp	(revision 22993)
@@ -363,5 +363,5 @@
 		if(VerboseSolution()) _printf0_("   computing requested outputs\n");
 		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,save_results);
-		if(isgroundingline && (groundingline_migration==SubelementMigrationEnum || groundingline_migration==SubelementMigration2Enum)){
+		if(isgroundingline && (groundingline_migration==AggressiveMigrationEnum || groundingline_migration==ContactEnum)){
 			int outputs[1] = {MaskGroundediceLevelsetEnum};
 			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1,save_results);
Index: /issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp	(revision 22993)
@@ -37,7 +37,6 @@
 			phi_ungrounding=ContactFSLevelset(elements,vertices);
 			break;
+		case SubelementMigrationEnum:
 		case AggressiveMigrationEnum:
-		case SubelementMigrationEnum:
-		case SubelementMigration2Enum:
 		case GroundingOnlyEnum:
 			/*Nothing additional to do here, MigrateGroundingLine takes care of everything*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 22993)
@@ -69,4 +69,6 @@
 		parameters->AddObject(iomodel->CopyConstantObject("md.steadystate.maxiter",SteadystateMaxiterEnum));
 		parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.migration",GroundinglineMigrationEnum));
+		parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.friction_interpolation",GroundinglineFrictionInterpolationEnum));
+		parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.melt_interpolation",GroundinglineMeltInterpolationEnum));
 		parameters->AddObject(iomodel->CopyConstantObject("md.transient.isstressbalance",TransientIsstressbalanceEnum));
 		parameters->AddObject(iomodel->CopyConstantObject("md.transient.ismasstransport",TransientIsmasstransportEnum));
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 22992)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 22993)
@@ -129,4 +129,6 @@
 	GiaCrossSectionShapeEnum,
 	GroundinglineMigrationEnum,
+	GroundinglineFrictionInterpolationEnum,
+	GroundinglineMeltInterpolationEnum,
 	HydrologydcEplflipLockEnum,
 	HydrologydcEplThickCompEnum,
@@ -762,4 +764,5 @@
 	FSSolverEnum,
 	FSvelocityEnum,
+	FullMeltOnPartiallyFloatingEnum,
 	GaussPentaEnum,
 	GaussSegEnum,
@@ -908,4 +911,6 @@
 	NodalvalueEnum,
 	NodeSIdEnum,
+	NoFrictionOnPartiallyFloatingEnum,
+	NoMeltOnPartiallyFloatingEnum,
 	NoneApproximationEnum,
 	NoneEnum,
@@ -1102,7 +1107,9 @@
 	StringExternalResultEnum,
 	StringParamEnum,
-	SubelementMigration2Enum,
-	SubelementMigration3Enum,
+	SubelementFriction1Enum,
+	SubelementFriction2Enum,
 	SubelementMigrationEnum,
+	SubelementMelt1Enum,
+	SubelementMelt2Enum,
 	SurfaceCrevasseEnum,
 	SurfaceSlopeSolutionEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 22993)
@@ -137,4 +137,6 @@
 		case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape";
 		case GroundinglineMigrationEnum : return "GroundinglineMigration";
+		case GroundinglineFrictionInterpolationEnum : return "GroundinglineFrictionInterpolation";
+		case GroundinglineMeltInterpolationEnum : return "GroundinglineMeltInterpolation";
 		case HydrologydcEplflipLockEnum : return "HydrologydcEplflipLock";
 		case HydrologydcEplThickCompEnum : return "HydrologydcEplThickComp";
@@ -766,4 +768,5 @@
 		case FSSolverEnum : return "FSSolver";
 		case FSvelocityEnum : return "FSvelocity";
+		case FullMeltOnPartiallyFloatingEnum : return "FullMeltOnPartiallyFloating";
 		case GaussPentaEnum : return "GaussPenta";
 		case GaussSegEnum : return "GaussSeg";
@@ -912,4 +915,6 @@
 		case NodalvalueEnum : return "Nodalvalue";
 		case NodeSIdEnum : return "NodeSId";
+		case NoFrictionOnPartiallyFloatingEnum : return "NoFrictionOnPartiallyFloating";
+		case NoMeltOnPartiallyFloatingEnum : return "NoMeltOnPartiallyFloating";
 		case NoneApproximationEnum : return "NoneApproximation";
 		case NoneEnum : return "None";
@@ -1106,7 +1111,9 @@
 		case StringExternalResultEnum : return "StringExternalResult";
 		case StringParamEnum : return "StringParam";
-		case SubelementMigration2Enum : return "SubelementMigration2";
-		case SubelementMigration3Enum : return "SubelementMigration3";
+		case SubelementFriction1Enum : return "SubelementFriction1";
+		case SubelementFriction2Enum : return "SubelementFriction2";
 		case SubelementMigrationEnum : return "SubelementMigration";
+		case SubelementMelt1Enum : return "SubelementMelt1";
+		case SubelementMelt2Enum : return "SubelementMelt2";
 		case SurfaceCrevasseEnum : return "SurfaceCrevasse";
 		case SurfaceSlopeSolutionEnum : return "SurfaceSlopeSolution";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 22992)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 22993)
@@ -140,5 +140,7 @@
    }
    if(stage==2){
-	      if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum;
+	      if (strcmp(name,"GroundinglineFrictionInterpolation")==0) return GroundinglineFrictionInterpolationEnum;
+	      else if (strcmp(name,"GroundinglineMeltInterpolation")==0) return GroundinglineMeltInterpolationEnum;
+	      else if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum;
 	      else if (strcmp(name,"HydrologydcEplThickComp")==0) return HydrologydcEplThickCompEnum;
 	      else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum;
@@ -258,10 +260,10 @@
 	      else if (strcmp(name,"SealevelRSLEustatic")==0) return SealevelRSLEustaticEnum;
 	      else if (strcmp(name,"SealevelUNorthEsa")==0) return SealevelUNorthEsaEnum;
-	      else if (strcmp(name,"SealevelUEastEsa")==0) return SealevelUEastEsaEnum;
-	      else if (strcmp(name,"SealevelNGiaRate")==0) return SealevelNGiaRateEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"SealevelUGiaRate")==0) return SealevelUGiaRateEnum;
+	      if (strcmp(name,"SealevelUEastEsa")==0) return SealevelUEastEsaEnum;
+	      else if (strcmp(name,"SealevelNGiaRate")==0) return SealevelNGiaRateEnum;
+	      else if (strcmp(name,"SealevelUGiaRate")==0) return SealevelUGiaRateEnum;
 	      else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum;
 	      else if (strcmp(name,"SealevelriseAngularVelocity")==0) return SealevelriseAngularVelocityEnum;
@@ -381,10 +383,10 @@
 	      else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
 	      else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
-	      else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
-	      else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum;
+	      if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
+	      else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;
+	      else if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum;
 	      else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum;
 	      else if (strcmp(name,"TransientIssmb")==0) return TransientIssmbEnum;
@@ -504,10 +506,10 @@
 	      else if (strcmp(name,"InversionVelObs")==0) return InversionVelObsEnum;
 	      else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum;
-	      else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum;
-	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
+	      if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum;
+	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
+	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
 	      else if (strcmp(name,"LoadingforceX")==0) return LoadingforceXEnum;
 	      else if (strcmp(name,"LoadingforceY")==0) return LoadingforceYEnum;
@@ -627,10 +629,10 @@
 	      else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum;
 	      else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
-	      else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
-	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
          else stage=6;
    }
    if(stage==6){
-	      if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
+	      if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
+	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
+	      else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
 	      else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
 	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
@@ -750,10 +752,10 @@
 	      else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
 	      else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
-	      else if (strcmp(name,"EplHeadStacked")==0) return EplHeadStackedEnum;
-	      else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum;
+	      if (strcmp(name,"EplHeadStacked")==0) return EplHeadStackedEnum;
+	      else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
+	      else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum;
 	      else if (strcmp(name,"EsaEmotion")==0) return EsaEmotionEnum;
 	      else if (strcmp(name,"EsaNmotion")==0) return EsaNmotionEnum;
@@ -784,4 +786,5 @@
 	      else if (strcmp(name,"FSSolver")==0) return FSSolverEnum;
 	      else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
+	      else if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;
 	      else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
 	      else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
@@ -872,11 +875,11 @@
 	      else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
 	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
-	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
-	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
-	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
+	      if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
+	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
+	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
+	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
 	      else if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum;
@@ -933,4 +936,6 @@
 	      else if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum;
 	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
+	      else if (strcmp(name,"NoFrictionOnPartiallyFloating")==0) return NoFrictionOnPartiallyFloatingEnum;
+	      else if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum;
 	      else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
 	      else if (strcmp(name,"None")==0) return NoneEnum;
@@ -993,13 +998,13 @@
 	      else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
 	      else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
-	      else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
+         else stage=9;
+   }
+   if(stage==9){
+	      if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
 	      else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
 	      else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
 	      else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
 	      else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
-         else stage=9;
-   }
-   if(stage==9){
-	      if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
+	      else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
 	      else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
 	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
@@ -1116,13 +1121,13 @@
 	      else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
 	      else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
-	      else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum;
+         else stage=10;
+   }
+   if(stage==10){
+	      if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum;
 	      else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum;
 	      else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum;
 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
 	      else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
-         else stage=10;
-   }
-   if(stage==10){
-	      if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
+	      else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
 	      else if (strcmp(name,"StressbalanceConvergenceNumSteps")==0) return StressbalanceConvergenceNumStepsEnum;
 	      else if (strcmp(name,"StressbalanceSIAAnalysis")==0) return StressbalanceSIAAnalysisEnum;
@@ -1133,7 +1138,9 @@
 	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
 	      else if (strcmp(name,"StringParam")==0) return StringParamEnum;
-	      else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
-	      else if (strcmp(name,"SubelementMigration3")==0) return SubelementMigration3Enum;
+	      else if (strcmp(name,"SubelementFriction1")==0) return SubelementFriction1Enum;
+	      else if (strcmp(name,"SubelementFriction2")==0) return SubelementFriction2Enum;
 	      else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
+	      else if (strcmp(name,"SubelementMelt1")==0) return SubelementMelt1Enum;
+	      else if (strcmp(name,"SubelementMelt2")==0) return SubelementMelt2Enum;
 	      else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
 	      else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
Index: /issm/trunk-jpl/src/m/classes/groundingline.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/groundingline.js	(revision 22992)
+++ /issm/trunk-jpl/src/m/classes/groundingline.js	(revision 22993)
@@ -8,11 +8,14 @@
 	this.setdefaultparameters = function(){// {{{
 		//Type of migration
-		this.migration='None';
+		this.migration='AggressiveMigration';
+		this.friction_interpolation='SubelementFriction1';
+		this.melt_interpolation='NoMeltOnPartiallyFloating';
 
 	}// }}}
 	this.disp= function(){// {{{
 		console.log(sprintf('   grounding line migration parameters:'));
-		fielddisplay(this,'migration',"type of grounding line migration: 'SoftMigration','AggressiveMigration','SubelementMigration','SubelementMigration2' or 'None'");
-
+		fielddisplay(this,'migration',"type of grounding line migration: 'SubelementMigration','SoftMigration','AggressiveMigration','Contact' or 'None'");
+		fielddisplay(this,'friction_interpolation',"type of friction interpolation forpartially floating elements: 'NoFrictionOnPartiallyFloating','SubelementFriction1' or 'SubelementFriction2'");
+		fielddisplay(this,'melt_interpolation',"type of melt interpolation forpartially floating elements: 'NoMeltOnPartiallyFloating','FullMeltOnPartiallyFloating','SubelementMelt1' or 'SubelementMelt2'");
 
 	}// }}}
@@ -22,5 +25,7 @@
 		this.checkconsistency = function(md,solution,analyses) {// {{{
 
-			checkfield(md,'fieldname','groundingline.migration','values',['None', 'AggressiveMigration', 'SoftMigration', 'SubelementMigration', 'SubelementMigration2', 'Contact', 'None', 'GroundingOnly']);
+			checkfield(md,'fieldname','groundingline.migration','values',['None', 'AggressiveMigration', 'SoftMigration', 'Contact', 'GroundingOnly']);
+			checkfield(md,'fieldname','groundingline.friction_interpolation','values',['NoFrictionOnPartiallyFloating', 'SubelementFriction1', 'SubelementFriction2']);
+			checkfield(md,'fieldname','groundingline.melt_interpolation','values',['NoMeltOnPartiallyFloating', 'SubelementMelt1', 'SubelementMelt2', 'FullMeltOnPartiallyFloating']);
 
 			if (this.migration !='None'){
@@ -42,4 +47,6 @@
 		this.marshall=function(md,prefix,fid) { //{{{
 			WriteData(fid,prefix,'data',this.migration,'name','md.groundingline.migration','format','String');
+			WriteData(fid,prefix,'data',this.migration,'name','md.groundingline.friction_interpolation','format','String');
+			WriteData(fid,prefix,'data',this.migration,'name','md.groundingline.melt_interpolation','format','String');
 		}//}}}
 		this.fix=function() { //{{{
@@ -47,5 +54,7 @@
 	//properties 
 	// {{{
-	this.migration    = '';
+	this.migration              = '';
+	this.friction_interpolation = '';
+	this.melt_interpolation     = '';
 	this.setdefaultparameters();
 	//}}}
Index: /issm/trunk-jpl/src/m/classes/groundingline.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/groundingline.m	(revision 22992)
+++ /issm/trunk-jpl/src/m/classes/groundingline.m	(revision 22993)
@@ -6,5 +6,7 @@
 classdef groundingline
 	properties (SetAccess=public) 
-		migration    = '';
+		migration              = '';
+		friction_interpolation = '';
+		melt_interpolation     = '';
 	end
 	methods
@@ -20,10 +22,14 @@
 
 			%Type of migration
-			self.migration='None';
+			self.migration             = 'SubelementMigration';
+			self.friction_interpolation= 'SubelementFriction1';
+			self.melt_interpolation    = 'NoMeltOnPartiallyFloating';
 
 		end % }}}
 		function md = checkconsistency(self,md,solution,analyses) % {{{
 
-			md = checkfield(md,'fieldname','groundingline.migration','values',{'None' 'AggressiveMigration' 'SoftMigration' 'SubelementMigration' 'SubelementMigration2' 'Contact' 'None' 'GroundingOnly'});
+			md = checkfield(md,'fieldname','groundingline.migration','values',{'None' 'SubelementMigration' 'AggressiveMigration' 'SoftMigration' 'Contact' 'GroundingOnly'});
+			md = checkfield(md,'fieldname','groundingline.friction_interpolation','values',{'NoFrictionOnPartiallyFloating' 'SubelementFriction1' 'SubelementFriction2'});
+			md = checkfield(md,'fieldname','groundingline.melt_interpolation','values',{'NoMeltOnPartiallyFloating' 'SubelementMelt1' 'SubelementMelt2' 'FullMeltOnPartiallyFloating'});
 
 			if ~strcmp(self.migration,'None'),
@@ -44,13 +50,19 @@
 		function disp(self) % {{{
 			disp(sprintf('   grounding line migration parameters:'));
-			fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''AggressiveMigration'',''SubelementMigration'',''SubelementMigration2'' or ''None''');
+			fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''SubelementMigration'',''AggressiveMigration'',''Contact'' or ''None''');
+			fielddisplay(self,'friction_interpolation','type of friction interpolation for partially floating elements: ''NoFrictionOnPartiallyFloating'',''SubelementFriction1'', or ''SubelementFriction2''');
+			fielddisplay(self,'melt_interpolation','type of melt interpolation for partially floating elements: ''NoMeltOnPartiallyFloating'',''SubelementMelt1'',''SubelementMelt2'', or ''FullMeltOnPartiallyFloating''');
 
 		end % }}}
 		function marshall(self,prefix,md,fid) % {{{
 			WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.migration','format','String');
+			WriteData(fid,prefix,'data',self.friction_interpolation,'name','md.groundingline.friction_interpolation','format','String');
+			WriteData(fid,prefix,'data',self.melt_interpolation,'name','md.groundingline.melt_interpolation','format','String');
 		end % }}}
 		function savemodeljs(self,fid,modelname) % {{{
 		
 			writejsstring(fid,[modelname '.groundingline.migration'],self.migration);
+			writejsstring(fid,[modelname '.groundingline.friction_interpolation'],self.migration);
+			writejsstring(fid,[modelname '.groundingline.melt_interpolation'],self.migration);
 
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/groundingline.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/groundingline.py	(revision 22992)
+++ /issm/trunk-jpl/src/m/classes/groundingline.py	(revision 22993)
@@ -15,4 +15,6 @@
 	def __init__(self): # {{{
 		self.migration=''
+		self.friction_interpolation=''
+		self.melt_interpolation=''
 
 		#set defaults
@@ -23,5 +25,7 @@
 		string='   grounding line migration parameters:'
 
-		string="%s\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''AggressiveMigration'',''SubelementMigration'',''SubelementMigration2'',''Contact'',''None'''))
+		string="%s\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''SubelementMigration'',''AggressiveMigration'',''Contact'',''None'''))
+		string="%s\n%s"%(string,fielddisplay(self,'migration','type of friction interpolation on partially floating elements: ''SubelementFriction1'',''SubelementFriction2'',''NoFrictionOnPartiallyFloating'''))
+		string="%s\n%s"%(string,fielddisplay(self,'migration','type of melt interpolation on partially floating elements: ''SubelementMelt1'',''SubelementMelt2'',''NoMeltOnPartiallyFloating'',''FullMeltOnPartiallyFloating'''))
 		return string
 		#}}}	
@@ -29,5 +33,7 @@
 
 		#Type of migration
-		self.migration='None'
+		self.migration='SubelementMigration'
+		self.friction_interpolation='SubelementFriction1'
+		self.melt_interpolation='NoMeltOnPartiallyFloating'
 
 		return self
@@ -35,5 +41,7 @@
 	def checkconsistency(self,md,solution,analyses):    # {{{
 
-		md = checkfield(md,'fieldname','groundingline.migration','values',['None','AggressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2','Contact','GroundingOnly'])
+		md = checkfield(md,'fieldname','groundingline.migration','values',['None','SubelementMigration','AggressiveMigration','SoftMigration','Contact','GroundingOnly'])
+		md = checkfield(md,'fieldname','groundingline.friction_interpolation','values',['SubelementFriction1','SubelementFriction2','NoFrictionOnPartiallyFloating'])
+		md = checkfield(md,'fieldname','groundingline.melt_interpolation','values',['SubelementMelt1','SubelementMelt2','NoMeltOnPartiallyFloating','FullMeltOnPartiallyFloating'])
 
 		if not m.strcmp(self.migration,'None'):
@@ -50,3 +58,5 @@
 	def marshall(self,prefix,md,fid):    # {{{
 		WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.migration','format','String')
+		WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.friction_interpolation','format','String')
+		WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.melt_interpolation','format','String')
 	# }}}
Index: /issm/trunk-jpl/test/NightlyRun/test105.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test105.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test105.m	(revision 22993)
@@ -5,4 +5,5 @@
 md=setflowequation(md,'SSA','all');
 md.cluster=generic('name',oshostname(),'np',3);
+md.cluster=generic('name',oshostname(),'np',1);
 md=solve(md,'Masstransport');
 
Index: /issm/trunk-jpl/test/NightlyRun/test423.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test423.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test423.m	(revision 22993)
@@ -38,9 +38,10 @@
 md.mask.groundedice_levelset=md.geometry.thickness + md.materials.rho_water/md.materials.rho_ice*md.geometry.bed;
 md.groundingline.migration='SubelementMigration';
+md.groundingline.friction_interpolation='SubelementFriction1';
 md=solve(md,'Transient');
 element_on_iceshelf_subelement=(md.results.TransientSolution.MaskGroundediceLevelset);
 vel_subelement=(md.results.TransientSolution.Vel);
 
-md.groundingline.migration='SubelementMigration2';
+md.groundingline.friction_interpolation='SubelementFriction2';
 md=solve(md,'Transient');
 element_on_iceshelf_subelement2=(md.results.TransientSolution.MaskGroundediceLevelset);
Index: /issm/trunk-jpl/test/NightlyRun/test423.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test423.py	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test423.py	(revision 22993)
@@ -49,9 +49,10 @@
 md.mask.groundedice_levelset=md.geometry.thickness + md.materials.rho_water/md.materials.rho_ice*md.geometry.bed
 md.groundingline.migration='SubelementMigration'
+md.groundingline.friction_interpolation='SubelementFriction1'
 md=solve(md,'Transient')
 element_on_iceshelf_subelement=md.results.TransientSolution[0].MaskGroundediceLevelset
 vel_subelement=md.results.TransientSolution[0].Vel
 
-md.groundingline.migration='SubelementMigration2'
+md.groundingline.friction_interpolation='SubelementFriction2'
 md=solve(md,'Transient')
 element_on_iceshelf_subelement2=md.results.TransientSolution[0].MaskGroundediceLevelset
Index: /issm/trunk-jpl/test/NightlyRun/test433.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test433.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test433.m	(revision 22993)
@@ -39,5 +39,6 @@
 element_on_iceshelf_subelement=(md.results.TransientSolution.MaskGroundediceLevelset);
 
-md.groundingline.migration='SubelementMigration2';
+md.groundingline.migration='SubelementMigration';
+md.groundingline.friction_interpolation='SubelementFriction2';
 md.transient.isstressbalance=1;
 md=setflowequation(md,'SSA','all');
Index: /issm/trunk-jpl/test/NightlyRun/test433.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test433.py	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test433.py	(revision 22993)
@@ -50,4 +50,9 @@
 element_on_iceshelf_subelement=md.results.TransientSolution[0].MaskGroundediceLevelset
 
+md.groundingline.migration='SubelementMigration'
+md.groundingline.friction_interpolation='SubelementMigration2'
+md=solve(md,'Transient')
+element_on_iceshelf_subelement2=md.results.TransientSolution[0].MaskGroundediceLevelset
+
 #Fields and tolerances to track changes
 field_names     =['ElementOnIceShelfAggressive','ElementOnIceShelfSoft','ElementOnIceShelfSubelement']
Index: /issm/trunk-jpl/test/NightlyRun/test441.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test441.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test441.m	(revision 22993)
@@ -39,5 +39,6 @@
 md.transient.issmb=1;
 md.transient.requested_outputs={'default','BasalforcingsFloatingiceMeltingRate'};
-md.groundingline.migration='SubelementMigration2';
+md.groundingline.migration='SubelementMigration';
+md.groundingline.friction_interpolation='SubelementFriction2';
 md.timestepping.final_time=30;
 md.timestepping.time_step=10;
Index: /issm/trunk-jpl/test/NightlyRun/test441.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test441.py	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test441.py	(revision 22993)
@@ -50,5 +50,6 @@
 md.transient.issmb = 1
 md.transient.requested_outputs = ['default','BasalforcingsFloatingiceMeltingRate']
-md.groundingline.migration = 'SubelementMigration2'
+md.groundingline.migration = 'SubelementMigration'
+md.groundingline.migration = 'SubelementFriction2'
 md.timestepping.final_time = 30.
 md.timestepping.time_step = 10.
Index: /issm/trunk-jpl/test/NightlyRun/test442.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test442.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test442.m	(revision 22993)
@@ -40,5 +40,6 @@
 md.transient.issmb=1;
 md.transient.requested_outputs={'default','BasalforcingsFloatingiceMeltingRate'};
-md.groundingline.migration='SubelementMigration2';
+md.groundingline.migration='SubelementMigration';
+md.groundingline.friction_interpolation='SubelementFriction2';
 md.timestepping.final_time=30;
 md.timestepping.time_step=10;
Index: /issm/trunk-jpl/test/NightlyRun/test442.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test442.py	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test442.py	(revision 22993)
@@ -51,5 +51,6 @@
 md.transient.issmb = 1
 md.transient.requested_outputs = ['default','BasalforcingsFloatingiceMeltingRate']
-md.groundingline.migration = 'SubelementMigration2'
+md.groundingline.migration = 'SubelementMigration'
+md.groundingline.friction_interpolation= 'SubelementFriction2'
 md.timestepping.final_time = 30
 md.timestepping.time_step = 10
Index: /issm/trunk-jpl/test/NightlyRun/test701.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test701.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test701.m	(revision 22993)
@@ -46,4 +46,5 @@
 md.verbose=verbose('convergence',true);
 md.cluster=generic('np',2);
+md.groundingline.migration='None';
 
 %Go solve
Index: /issm/trunk-jpl/test/NightlyRun/test701.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test701.py	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test701.py	(revision 22993)
@@ -53,4 +53,5 @@
 md.verbose = verbose('convergence',True)
 md.cluster = generic('np',2)
+md.groundingline.migration='None'
 
 #Go solve
Index: /issm/trunk-jpl/test/NightlyRun/test702.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test702.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test702.m	(revision 22993)
@@ -44,4 +44,5 @@
 md.initialization.pressure=md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.mesh.y);
 md.miscellaneous.name = 'test702';
+md.groundingline.migration='None';
 md.cluster=generic('np',2);
 
Index: /issm/trunk-jpl/test/NightlyRun/test703.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test703.m	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test703.m	(revision 22993)
@@ -57,4 +57,5 @@
 md.transient.isthermal=0;
 md.masstransport.isfreesurface=1;
+md.groundingline.migration='None';
 
 %Go solve
Index: /issm/trunk-jpl/test/NightlyRun/test703.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test703.py	(revision 22992)
+++ /issm/trunk-jpl/test/NightlyRun/test703.py	(revision 22993)
@@ -87,4 +87,5 @@
 md.transient.isthermal = 0
 md.masstransport.isfreesurface = 1
+md.groundline.migration='None'
 
 #Go solve
Index: /issm/trunk-jpl/test/Par/79North.par
===================================================================
--- /issm/trunk-jpl/test/Par/79North.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/79North.par	(revision 22993)
@@ -51,4 +51,5 @@
 md.steadystate.reltol=0.005;
 md.stressbalance.abstol=NaN;
+md.groundingline.migration='None';
 
 %Boundary conditions:
Index: /issm/trunk-jpl/test/Par/79North.py
===================================================================
--- /issm/trunk-jpl/test/Par/79North.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/79North.py	(revision 22993)
@@ -54,4 +54,5 @@
 md.steadystate.reltol=0.005
 md.stressbalance.abstol=float('NaN')
+md.groundingline.migration='None'
 
 #Boundary conditions:
Index: /issm/trunk-jpl/test/Par/IceCube.par
===================================================================
--- /issm/trunk-jpl/test/Par/IceCube.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/IceCube.par	(revision 22993)
@@ -37,4 +37,5 @@
 md.timestepping.time_step=1.;
 md.timestepping.final_time=3.;
+md.groundingline.migration='None';
 
 %Boundary conditions:
Index: /issm/trunk-jpl/test/Par/IceCube.py
===================================================================
--- /issm/trunk-jpl/test/Par/IceCube.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/IceCube.py	(revision 22993)
@@ -46,4 +46,5 @@
 md.timestepping.time_step=1.
 md.timestepping.final_time=3.
+md.groundingline.migration='None'
 
 #Boundary conditions:
Index: /issm/trunk-jpl/test/Par/Pig.par
===================================================================
--- /issm/trunk-jpl/test/Par/Pig.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/Pig.par	(revision 22993)
@@ -51,4 +51,5 @@
 md.steadystate.reltol=1;
 md.stressbalance.abstol=NaN;
+md.groundingline.migration='None';
 
 %Boundary conditions:
Index: /issm/trunk-jpl/test/Par/Pig.py
===================================================================
--- /issm/trunk-jpl/test/Par/Pig.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/Pig.py	(revision 22993)
@@ -51,4 +51,5 @@
 md.steadystate.reltol=1.
 md.stressbalance.abstol=float('nan')
+md.groundingline.migration='None'
 
 #Boundary conditions:
Index: /issm/trunk-jpl/test/Par/SquareSheetConstrained.par
===================================================================
--- /issm/trunk-jpl/test/Par/SquareSheetConstrained.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareSheetConstrained.par	(revision 22993)
@@ -57,4 +57,5 @@
 md.timestepping.time_step=1.;
 md.timestepping.final_time=3.;
+md.groundingline.migration='None';
 
 %GIA: 
Index: /issm/trunk-jpl/test/Par/SquareSheetConstrained.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareSheetConstrained.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareSheetConstrained.py	(revision 22993)
@@ -59,4 +59,5 @@
 md.timestepping.time_step=1.
 md.timestepping.final_time=3.
+md.groundingline.migration='None'
 
 #GIA:
Index: /issm/trunk-jpl/test/Par/SquareSheetShelf.par
===================================================================
--- /issm/trunk-jpl/test/Par/SquareSheetShelf.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareSheetShelf.par	(revision 22993)
@@ -59,4 +59,5 @@
 md.timestepping.time_step=1.;
 md.timestepping.final_time=3.;
+md.groundingline.migration='None';
 
 %Deal with boundary conditions:
Index: /issm/trunk-jpl/test/Par/SquareSheetShelf.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareSheetShelf.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareSheetShelf.py	(revision 22993)
@@ -63,4 +63,5 @@
 md.timestepping.time_step=1.
 md.timestepping.final_time=3.
+md.groundingline.migration='None'
 
 #Deal with boundary conditions:
Index: /issm/trunk-jpl/test/Par/SquareShelf.par
===================================================================
--- /issm/trunk-jpl/test/Par/SquareShelf.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareShelf.par	(revision 22993)
@@ -51,4 +51,5 @@
 md.timestepping.time_step=1;
 md.timestepping.final_time=3;
+md.groundingline.migration='None';
 
 %Boundary conditions:
Index: /issm/trunk-jpl/test/Par/SquareShelf.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareShelf.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareShelf.py	(revision 22993)
@@ -72,4 +72,5 @@
 md.timestepping.time_step = 1.
 md.timestepping.final_time = 3.
+md.groundingline.migration = 'None'
 
 #Boundary conditions:
Index: /issm/trunk-jpl/test/Par/SquareShelf2.par
===================================================================
--- /issm/trunk-jpl/test/Par/SquareShelf2.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareShelf2.par	(revision 22993)
@@ -51,4 +51,5 @@
 md.timestepping.time_step=1;
 md.timestepping.final_time=3;
+md.groundingline.migration='None';
 
 %Boundary conditions:
Index: /issm/trunk-jpl/test/Par/SquareShelf2.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareShelf2.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareShelf2.py	(revision 22993)
@@ -71,4 +71,5 @@
 md.timestepping.time_step = 1.
 md.timestepping.final_time = 3.
+md.groundingline.migration= 'None'
 
 #Boundary conditions:
Index: /issm/trunk-jpl/test/Par/SquareThermal.par
===================================================================
--- /issm/trunk-jpl/test/Par/SquareThermal.par	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareThermal.par	(revision 22993)
@@ -2,4 +2,5 @@
 
 md.timestepping.time_step=0;
+md.groundingline.migration='None';
 
 disp('      creating thickness');
Index: /issm/trunk-jpl/test/Par/SquareThermal.py
===================================================================
--- /issm/trunk-jpl/test/Par/SquareThermal.py	(revision 22992)
+++ /issm/trunk-jpl/test/Par/SquareThermal.py	(revision 22993)
@@ -6,4 +6,5 @@
 
 md.timestepping.time_step=0
+md.groundingline.migration='None'
 
 print "      creating thickness"
