Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 21223)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 21224)
@@ -2246,6 +2246,6 @@
 
 	/*Intermediary variables: {{{*/
-    IssmDouble isinitialized;
-    IssmDouble isrestart;
+    bool isinitialized;
+    bool isrestart;
     IssmDouble zTop,dzTop,zMax,zMin,zY,dzMin;
 	IssmDouble Tmean; 
@@ -2331,4 +2331,5 @@
 	parameters->FindParam(&isturbulentflux,SmbIsturbulentfluxEnum);
 	parameters->FindParam(&init_scaling,SmbInitDensityScalingEnum);
+
 	/*}}}*/
 	/*Retrieve inputs: {{{*/
@@ -2366,6 +2367,6 @@
 	Tz_input->GetInputValue(&Tz,gauss);
 	Vz_input->GetInputValue(&Vz,gauss);
-    isinitialized_input->GetInputValue(&isinitialized,gauss);
-    isrestart_input->GetInputValue(&isrestart,gauss);
+    isinitialized_input->GetInputValue(&isinitialized);
+    isrestart_input->GetInputValue(&isrestart);
 	/*}}}*/
 
@@ -2391,5 +2392,5 @@
         
         /*Flag the initialization:*/
-        this->AddInput(new DoubleInput(SmbIsInitializedEnum,false));
+        this->AddInput(new BoolInput(SmbIsInitializedEnum,false));
     }
     else if(isrestart){ //Retrieve the snow properties from previous run
@@ -2435,8 +2436,7 @@
         
         /*Flag the initialization:*/
-        this->AddInput(new DoubleInput(SmbIsrestartEnum,false));//*CL* add
+         this->AddInput(new BoolInput(SmbIsrestartEnum,false));
     }
     else{ 
- 
 		/*Recover inputs: */
 		DoubleArrayInput* dz_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDzEnum)); _assert_(dz_input);
@@ -2449,8 +2449,8 @@
 		DoubleArrayInput* a_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbAEnum));_assert_(a_input);
 		DoubleArrayInput* T_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbTEnum));_assert_(T_input);
-		
-		/*Recover arrays: */
+
+        /*Recover arrays: */
 		dz_input->GetValues(&dz,&m);
-		d_input->GetValues(&d,&m);
+        d_input->GetValues(&d,&m);
 		re_input->GetValues(&re,&m);
 		gdn_input->GetValues(&gdn,&m);
@@ -2460,9 +2460,9 @@
 		a_input->GetValues(&a,&m);
 		T_input->GetValues(&T,&m);
-		
-		//fixed lower temperatuer bounday condition - T is fixed
+
+        //fixed lower temperatuer bounday condition - T is fixed
 		T_bottom=T[m-1];
 
-	} /*}}}*/
+    } /*}}}*/
 
 	// determine initial mass [kg]
@@ -2578,6 +2578,6 @@
 		count++;
 	} //for (t=time;t<time+dt;t=t+smb_dt)
-    
-	/*Save generated inputs: */
+
+    /*Save generated inputs: */
 	this->AddInput(new DoubleArrayInput(SmbDzEnum,dz,m));
 	this->AddInput(new DoubleArrayInput(SmbDEnum,d,m));
@@ -2595,5 +2595,5 @@
     this->AddInput(new DoubleInput(SmbM_addEnum,sumMassAdd/yts));
 
-	/*Free allocations:{{{*/
+    /*Free allocations:{{{*/
 	xDelete<IssmDouble>(dz);
 	xDelete<IssmDouble>(d);
Index: /issm/trunk-jpl/src/m/classes/SMBgemb.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/SMBgemb.m	(revision 21223)
+++ /issm/trunk-jpl/src/m/classes/SMBgemb.m	(revision 21224)
@@ -22,6 +22,6 @@
 		isdensification;
 		isturbulentflux;
-        isInitialized = NaN;
-        isrestart = NaN;      
+        isInitialized;
+        isrestart;    
 
 		%inputs: 
@@ -131,6 +131,6 @@
 		self.isdensification=1;
 		self.isturbulentflux=1;
-        self.isInitialized = 1*ones(mesh.numberofelements,1);
-        self.isrestart = 0*ones(mesh.numberofelements,1);
+        self.isInitialized = true*ones(mesh.numberofelements,1);
+        self.isrestart = false*ones(mesh.numberofelements,1);
 	
 		self.aIdx = 1;
@@ -178,6 +178,6 @@
 			md = checkfield(md,'fieldname','smb.isdensification','values',[0 1]);
 			md = checkfield(md,'fieldname','smb.isturbulentflux','values',[0 1]);
-            md = checkfield(md,'fieldname','smb.isInitialized','values',[0 1]);
-            md = checkfield(md,'fieldname','smb.isrestart','values',[0 1]);
+            md = checkfield(md,'fieldname','smb.isInitialized','values',[false true]);
+            md = checkfield(md,'fieldname','smb.isrestart','values',[false true]);
 
 			md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'Inf',1,'>',273-100,'<',273+100); %-100/100 celsius min/max value
@@ -317,7 +317,5 @@
 			WriteData(fid,prefix,'object',self,'class','smb','fieldname','isdensification','format','Boolean');
 			WriteData(fid,prefix,'object',self,'class','smb','fieldname','isturbulentflux','format','Boolean');
-			WriteData(fid,prefix,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean');
-			WriteData(fid,prefix,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean');
-			
+            
 			WriteData(fid,prefix,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts);
 			WriteData(fid,prefix,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1,'yts',md.constants.yts);
@@ -344,6 +342,6 @@
 			WriteData(fid,prefix,'object',self,'class','smb','fieldname','InitDensityScaling','format','Double');
             
-            WriteData(fid,prefix,'object',self,'class','smb','fieldname','isInitialized','format','DoubleMat','mattype',2);
-            WriteData(fid,prefix,'object',self,'class','smb','fieldname','isrestart','format','DoubleMat','mattype',2); 
+            WriteData(fid,prefix,'object',self,'class','smb','fieldname','isInitialized','format','BooleanMat','mattype',2);
+            WriteData(fid,prefix,'object',self,'class','smb','fieldname','isrestart','format','BooleanMat','mattype',2); 
 
 			WriteData(fid,prefix,'object',self,'class','smb','fieldname','outputFreq','format','Double');
