Index: /issm/trunk-jpl/src/m/classes/SMBgemb.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBgemb.m	(revision 19558)
+++ /issm/trunk-jpl/src/m/classes/SMBgemb.m	(revision 19559)
@@ -70,4 +70,7 @@
 		t0dry = NaN; % warm snow timescale (30) 
 		K     = NaN; % time scale temperature coef. (7) 
+
+		%densities:
+		InitDensityScaling= NaN; %initial scaling factor multiplying the density of ice, which describes the density of the snowpack.
 		
 		requested_outputs      = {};
@@ -121,4 +124,5 @@
 		self.dzTop = .05* ones (mesh.numberofelements,1);
 		self.dzMin = self.dzTop/2;
+		self.InitDensityScaling = 1.0;
 		
 		he=sum(geometry.thickness(mesh.elements),2)/size(mesh.elements,2);
@@ -170,4 +174,5 @@
 		md = checkfield(md,'fieldname','smb.zY','NaN',1,'>=',1);
 		md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'>',0,'<',10*365); %10 years max 
+		md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'>=',0,'<=',1);
 		
 		switch self.aIdx,
@@ -220,4 +225,5 @@
 			fielddisplay(self,'zMin','initial min model depth (default is min(thickness,30)) [m]');
 			fielddisplay(self,'zY','strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]');
+			fielddisplay(self,'InitDensityScaling',{'initial scaling factor multiplying the density of ice','which describes the density of the snowpack.'});
 			fielddisplay(self,'outputFreq','output frequency in days (default is monthly, 30)');
 			fielddisplay(self,'aIdx',{'method for calculating albedo and subsurface absorption (default is 1)',...
@@ -289,5 +295,5 @@
 			WriteData(fid,'object',self,'class','smb','fieldname','swIdx','format','Integer','scale',1);
 			WriteData(fid,'object',self,'class','smb','fieldname','denIdx','format','Integer','scale',1);
-
+			WriteData(fid,'object',self,'class','smb','fieldname','InitDensityScaling','format','Double');
 
 			WriteData(fid,'object',self,'class','smb','fieldname','outputFreq','format','Double','scale',1);
Index: /issm/trunk-jpl/src/m/classes/mask.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.m	(revision 19558)
+++ /issm/trunk-jpl/src/m/classes/mask.m	(revision 19559)
@@ -72,5 +72,9 @@
 			isice=md.mask.ice_levelset<=0.;
 			vlist = zeros(md.mesh.numberofvertices,1);
-			pos=find(sum(isice(md.mesh.elements),2)>0);
+			if md.mesh.numberofelements==1,
+				pos=find(sum(isice(md.mesh.elements),1)>0);
+			else
+				pos=find(sum(isice(md.mesh.elements),2)>0);
+			end
 			vlist(md.mesh.elements(pos,:))=1;
 			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
Index: /issm/trunk-jpl/src/m/classes/verbose.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/verbose.m	(revision 19558)
+++ /issm/trunk-jpl/src/m/classes/verbose.m	(revision 19559)
@@ -10,4 +10,5 @@
 %      qmu         : sensitivity analysis
 %      autodiff    : AD analysis
+%      smb         : smb analysis
 %
 %   Usage:
@@ -33,4 +34,5 @@
 		qmu=false;
 		autodiff=false;
+		smb=false;
 		%ENDFIELDS
 		% }}}
@@ -104,4 +106,5 @@
 		if (verbose.qmu), binary=bitor(binary,64); end
 		if (verbose.autodiff), binary=bitor(binary,128); end
+		if (verbose.smb), binary=bitor(binary,256); end
 		%ENDVERB2BIN
 
@@ -119,4 +122,5 @@
 		if bitand(binary,64), verbose.qmu=true; else verbose.qmu=false; end
 		if bitand(binary,128), verbose.autodiff=true; else verbose.autodiff=false; end
+		if bitand(binary,256), verbose.smb=true; else verbose.smb=false; end
 		%ENDBIN2VERB
 
@@ -138,4 +142,5 @@
 		disp(sprintf('   %15s : %s','qmu',mat2str(verbose.qmu)));
 		disp(sprintf('   %15s : %s','autodiff',mat2str(verbose.autodiff)));
+		disp(sprintf('   %15s : %s','smb',mat2str(verbose.smb)));
 		%ENDDISP
 
Index: /issm/trunk-jpl/src/m/classes/verbose.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/verbose.py	(revision 19558)
+++ /issm/trunk-jpl/src/m/classes/verbose.py	(revision 19559)
@@ -17,4 +17,5 @@
 	      qmu         : sensitivity analysis
 	      autodiff    : AD analysis
+	      smb         : SMB analysis
 
 	   Usage:
@@ -38,4 +39,5 @@
 		self.qmu         = False
 		self.autodiff    = False
+		self.smb         = False
 		#ENDFIELDS
 
@@ -84,4 +86,5 @@
 		s+="   %15s : %s\n" % ('qmu',self.qmu)
 		s+="   %15s : %s\n" % ('autodiff',self.autodiff)
+		s+="   %15s : %s\n" % ('smb',self.smb)
 		#ENDDISP
 
@@ -108,4 +111,6 @@
 		if self.autodiff:
 			binary=binary | 128
+		if self.smb:
+			binary=binary | 256
 		#ENDVERB2BIN
 
@@ -123,4 +128,5 @@
 		self.qmu        =bool(binary &  64)
 		self.autodiff   =bool(binary & 128)
+		self.smb        =bool(binary & 256)
 		#ENDBIN2VERB
 	# }}}
