Index: /issm/trunk-jpl/src/m/classes/levelset.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/levelset.js	(revision 24038)
+++ /issm/trunk-jpl/src/m/classes/levelset.js	(revision 24039)
@@ -21,8 +21,8 @@
 
 	}// }}}
-    this.extrude = function(md) {//{{{
-        this.spclevelset=project3d(md,'vector',this.spclevelset,'type','node');
-        return this;
-    }//}}}
+	this.extrude = function(md) {//{{{
+		this.spclevelset=project3d(md,'vector',this.spclevelset,'type','node');
+		return this;
+	}//}}}
 	this.classname= function(){// {{{
 		return "levelset";
@@ -41,7 +41,7 @@
 
 	}//}}}
-		this.fix=function() { //{{{
-			this.spclevelset=NullFix(this.spclevelset,NaN);
-		}//}}}
+	this.fix=function() { //{{{
+		this.spclevelset=NullFix(this.spclevelset,NaN);
+	}//}}}
 	//properties 
 	// {{{
Index: /issm/trunk-jpl/src/m/classes/levelset.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/levelset.m	(revision 24038)
+++ /issm/trunk-jpl/src/m/classes/levelset.m	(revision 24039)
@@ -9,4 +9,5 @@
 		spclevelset			= NaN;
 		reinit_frequency	= 5;
+		kill_icebergs     = 0;
 		calving_max       = 0.;
 		fe                = 'P1';
@@ -40,4 +41,5 @@
 			self.stabilization    = 1;
 			self.reinit_frequency = 5;
+			self.kill_icebergs    = true;
 			self.calving_max      = 3000.;
 
@@ -52,4 +54,5 @@
 			md = checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1);
 			md = checkfield(md,'fieldname','levelset.stabilization','values',[0 1 2]);
+			md = checkfield(md,'fieldname','levelset.kill_icebergs','numel',1,'values',[0 1]);
 			md = checkfield(md,'fieldname','levelset.calving_max','numel',1,'NaN',1,'Inf',1,'>',0);
 			md = checkfield(md,'fieldname','levelset.fe','values',{'P1','P2'});
@@ -60,4 +63,5 @@
 			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
 			fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized');
+			fielddisplay(self,'kill_icebergs','remove floating icebergs to prevent rigid body motions (1: true, 0: false)');
 			fielddisplay(self,'calving_max','maximum allowed calving rate (m/a)');
 			fielddisplay(self,'fe','Finite Element type: ''P1'' (default), or ''P2''');
@@ -70,14 +74,14 @@
 			WriteData(fid,prefix,'object',self,'fieldname','spclevelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
 			WriteData(fid,prefix,'object',self,'fieldname','reinit_frequency','format','Integer');
+			WriteData(fid,prefix,'object',self,'fieldname','kill_icebergs','format','Boolean');
 			WriteData(fid,prefix,'object',self,'fieldname','calving_max','format','Double','scale',1./yts);
 			WriteData(fid,prefix,'object',self,'fieldname','fe','format','String');
 		end % }}}
 		function savemodeljs(self,fid,modelname) % {{{
-		
 			writejsdouble(fid,[modelname '.levelset.stabilization'],self.stabilization);
 			writejs1Darray(fid,[modelname '.levelset.spclevelset'],self.spclevelset);
 			writejs1Darray(fid,[modelname '.levelset.reinit_frequency'],self.reinit_frequency);
+			writejsdouble(fid,[modelname '.levelset.kill_icebergs'],self.kill_icebergs);
 			writejsdouble(fid,[modelname '.levelset.calving_max'],self.calving_max);
-
 		end % }}}
 	end
Index: /issm/trunk-jpl/src/m/classes/levelset.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/levelset.py	(revision 24038)
+++ /issm/trunk-jpl/src/m/classes/levelset.py	(revision 24039)
@@ -17,4 +17,5 @@
 		self.spclevelset      = float('NaN')
 		self.reinit_frequency = 0
+                self.kill_icebergs    = 0
 		self.calving_max      = 0.
 		self.fe               = 'P1'
@@ -29,4 +30,5 @@
 		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
 		string="%s\n%s"%(string,fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized'))
+                string="%s\n%s"%(string,fielddisplay(self,'kill_icebergs','remove floating icebergs to prevent rigid body motions (1: true, 0: false)'))
 		string="%s\n%s"%(string,fielddisplay(self,'calving_max','maximum allowed calving rate (m/a)'))
 		string="%s\n%s"%(string,fielddisplay(self,'fe','Finite Element type: ''P1'' (default), or ''P2'''))
@@ -43,4 +45,5 @@
 		self.stabilization		= 1
 		self.reinit_frequency = 5
+                self.kill_icebergs    = 1
 		self.calving_max      = 3000.
 
@@ -57,6 +60,7 @@
 
 		md = checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1)
-		md = checkfield(md,'fieldname','levelset.stabilization','values',[0,1,2]);
-		md = checkfield(md,'fieldname','levelset.calving_max','NaN',1,'Inf',1,'>',0);
+		md = checkfield(md,'fieldname','levelset.stabilization','numel',[1],'values',[0,1,2]);
+                md = checkfield(md,'fieldname','levelset.kill_icebergs','numel',[1],'values',[0,1]);
+		md = checkfield(md,'fieldname','levelset.calving_max','numel',[1],'NaN',1,'Inf',1,'>',0);
 		md = checkfield(md,'fieldname','levelset.fe','values',['P1','P2']);
 
@@ -70,4 +74,5 @@
 		WriteData(fid,prefix,'object',self,'fieldname','spclevelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
 		WriteData(fid,prefix,'object',self,'fieldname','reinit_frequency','format','Integer');
+                WriteData(fid,prefix,'object',self,'fieldname','kill_icebergs','format','Boolean');
 		WriteData(fid,prefix,'object',self,'fieldname','calving_max','format','Double','scale',1./yts);
 		WriteData(fid,prefix,'object',self,'fieldname','fe','format','String');
