Index: /issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp	(revision 27534)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp	(revision 27535)
@@ -133,4 +133,5 @@
 	iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.geothermalflux",BasalforcingsGeothermalfluxEnum);
 	iomodel->FetchDataToInput(inputs,elements,"md.basalforcings.groundedice_melting_rate",BasalforcingsGroundediceMeltingRateEnum);
+	iomodel->FetchDataToInput(inputs,elements,"md.smb.runoff",SmbRunoffEnum);
 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
 		iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
@@ -313,7 +314,7 @@
 
 	/*Intermediaries */
-	bool        meltflag;
+	int         meltflag;
 	IssmDouble  Jdet,w,v2,vx,vy,ub,h,h_r;
-	IssmDouble  G,m,frictionheat,alpha2;
+	IssmDouble  G,m,melt,RO,frictionheat,alpha2;
 	IssmDouble  A,B,n,phi_old,phi,phi_0;
 	IssmDouble  H,b;
@@ -342,5 +343,6 @@
 	Input* b_input      = element->GetInput(BedEnum); _assert_(b_input);
 	Input* G_input      = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(G_input);
-	Input* m_input      = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);_assert_(m_input);
+	Input* melt_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);_assert_(melt_input);
+	Input* RO_input     = element->GetInput(SmbRunoffEnum);_assert_(RO_input);
 	Input* B_input      = element->GetInput(MaterialsRheologyBEnum);         _assert_(B_input);
 	Input* n_input      = element->GetInput(MaterialsRheologyNEnum);         _assert_(n_input);
@@ -367,5 +369,7 @@
 		b_input->GetInputValue(&b,gauss);
 		H_input->GetInputValue(&H,gauss);
-		
+		melt_input->GetInputValue(&melt,gauss);
+		RO_input->GetInputValue(&RO,gauss);
+
 		/*Hard code B*/
 		B = Cuffey(273.15-2);
@@ -384,9 +388,12 @@
 
 		/*Compute melt (if necessary)*/
-		if(!meltflag){
+		if(meltflag = 0){
 			m = (G + frictionheat)/(rho_ice*L);
 		}
+		if(meltflag = 1){
+			m = melt;
+		}
 		else{
-			m_input->GetInputValue(&m,gauss);
+			m = RO;
 		}
 
@@ -643,5 +650,5 @@
 
 		/*Get A from B and n*/
-		A=pow(B,-n);
+		A = pow(B,-n);
 
 		/*Define alpha and beta*/
Index: /issm/trunk-jpl/src/m/classes/hydrologyglads.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/hydrologyglads.m	(revision 27534)
+++ /issm/trunk-jpl/src/m/classes/hydrologyglads.m	(revision 27535)
@@ -80,6 +80,6 @@
 			md = checkfield(md,'fieldname','hydrology.neumannflux','timeseries',1,'NaN',1,'Inf',1);
 			md = checkfield(md,'fieldname','hydrology.requested_outputs','stringrow',1);
-			md = checkfield(md,'fieldname','hydrology.melt_flag','numel',[1],'values',[0 1]);
-			if self.melt_flag
+			md = checkfield(md,'fieldname','hydrology.melt_flag','numel',[1],'values',[0 1 2]);
+			if self.melt_flag==1 || self.melt_flag==2
 				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
 			end
@@ -126,5 +126,5 @@
 			WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','moulin_input','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
 			WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','englacial_void_ratio','format','Double');
-			WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','melt_flag','format','Boolean');
+			WriteData(fid,prefix,'object',self,'class','hydrology','fieldname','melt_flag','format','Integer');
 			outputs = self.requested_outputs;
 			pos  = find(ismember(outputs,'default'));
