Index: /issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp	(revision 27536)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp	(revision 27537)
@@ -113,5 +113,7 @@
 	int    hydrology_model;
 	iomodel->FindConstant(&hydrology_model,"md.hydrology.model");
-
+	int    meltflag;	
+	iomodel->FindConstant(&meltflag,"md.hydrology.melt_flag");
+	
 	/*Now, do we really want GlaDS?*/
 	if(hydrology_model!=HydrologyGlaDSEnum) return;
@@ -133,5 +135,7 @@
 	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(meltflag==2){
+		iomodel->FetchDataToInput(inputs,elements,"md.smb.runoff",SmbRunoffEnum);
+	}
 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
 		iomodel->FetchDataToInput(inputs,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
@@ -344,5 +348,5 @@
 	Input* G_input      = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(G_input);
 	Input* melt_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);_assert_(melt_input);
-	Input* RO_input     = element->GetInput(SmbRunoffEnum);_assert_(RO_input);
+	Input* RO_input     = NULL;
 	Input* B_input      = element->GetInput(MaterialsRheologyBEnum);         _assert_(B_input);
 	Input* n_input      = element->GetInput(MaterialsRheologyNEnum);         _assert_(n_input);
@@ -370,5 +374,4 @@
 		H_input->GetInputValue(&H,gauss);
 		melt_input->GetInputValue(&melt,gauss);
-		RO_input->GetInputValue(&RO,gauss);
 
 		/*Hard code B*/
@@ -388,12 +391,14 @@
 
 		/*Compute melt (if necessary)*/
-		if(meltflag = 0){
+		if(meltflag == 0){
 			m = (G + frictionheat)/(rho_ice*L);
 		}
-		if(meltflag = 1){
+		else if(meltflag == 1){
 			m = melt;
 		}
 		else{
-			m = RO;
+			Input* RO_input = element->GetInput(SmbRunoffEnum);_assert_(RO_input);
+			RO_input->GetInputValue(&melt,gauss);
+			m = melt + RO;
 		}
 
