Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 25770)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 25771)
@@ -2438,5 +2438,6 @@
 
 					/*Vector special case (maybe should go to specific analysis?)*/
-					case ChannelAreaEnum:{
+					case ChannelAreaEnum:
+					case ChannelDischargeEnum:{
 
 							/*Get Number of Channels*/
@@ -2455,5 +2456,13 @@
 								if(object->ObjectEnum()==ChannelEnum){
 									Channel* channel=(Channel*)object;
-									channel->WriteChannelCrossSection(values);
+									if(output_enum==ChannelAreaEnum){
+										channel->WriteChannelCrossSection(values);
+									}
+									else if(output_enum==ChannelDischargeEnum){
+										channel->WriteChannelDischarge(values);
+									}
+									else{
+										_error_("not supported");
+									}
 								}
 							}
Index: /issm/trunk-jpl/src/c/classes/Loads/Channel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Channel.cpp	(revision 25770)
+++ /issm/trunk-jpl/src/c/classes/Loads/Channel.cpp	(revision 25771)
@@ -53,4 +53,5 @@
 	this->S    = channelarea;
 	this->Sold = channelarea;
+	this->discharge = 0.;/*for output only*/
 
 	/*Get edge info*/
@@ -155,4 +156,7 @@
 	marshallhandle->call(this->id);
 	marshallhandle->call(this->S);
+	marshallhandle->call(this->Sold);
+	marshallhandle->call(this->boundary);
+	marshallhandle->call(this->discharge);
 
 	if(marshallhandle->OperationNumber()==MARSHALLING_LOAD){
@@ -511,5 +515,4 @@
 	IssmDouble rho_ice   = element->FindParam(MaterialsRhoIceEnum);
 	IssmDouble rho_water = element->FindParam(MaterialsRhoFreshwaterEnum);
-	IssmDouble kc        = element->FindParam(HydrologyChannelConductivityEnum);
 	IssmDouble g         = element->FindParam(ConstantsGEnum);
 	IssmDouble lc        = element->FindParam(HydrologyChannelSheetWidthEnum);
@@ -707,4 +710,8 @@
 	}
 
+	/*Compute new channel discharge for output only*/
+	IssmDouble Kc = kc * pow(this->S,ALPHA_C) * pow(Ngrad,BETA_C-2.);
+	this->discharge = -Kc*dphids;
+
 	/*Clean up and return*/
 	delete gauss;
@@ -712,7 +719,11 @@
 /*}}}*/
 void           Channel::WriteChannelCrossSection(IssmPDouble* values){/*{{{*/
-
 	_assert_(values);
 	values[this->sid] = reCast<IssmPDouble>(this->S);
 }
 /*}}}*/
+void           Channel::WriteChannelDischarge(IssmPDouble* values){/*{{{*/
+	_assert_(values);
+	values[this->sid] = reCast<IssmPDouble>(this->discharge);
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Loads/Channel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Channel.h	(revision 25770)
+++ /issm/trunk-jpl/src/c/classes/Loads/Channel.h	(revision 25771)
@@ -22,4 +22,7 @@
 		IssmDouble Sold;
 		bool       boundary;
+
+		/*output only*/
+		IssmDouble discharge;
 
 	public: 
@@ -83,4 +86,5 @@
 		ElementMatrix* CreateKMatrixHydrologyGlaDS(void);
 		void           WriteChannelCrossSection(IssmPDouble* values);
+		void           WriteChannelDischarge(IssmPDouble* values);
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/shared/Enum/Enum.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 25770)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 25771)
@@ -1044,4 +1044,5 @@
 syn keyword cConstant ChannelAreaEnum
 syn keyword cConstant ChannelAreaOldEnum
+syn keyword cConstant ChannelDischargeEnum
 syn keyword cConstant ClosedEnum
 syn keyword cConstant ColinearEnum
@@ -1391,4 +1392,5 @@
 syn keyword cType Cfsurfacesquare
 syn keyword cType Channel
+syn keyword cType classes
 syn keyword cType Constraint
 syn keyword cType Constraints
@@ -1397,6 +1399,6 @@
 syn keyword cType ControlInput
 syn keyword cType Covertree
+syn keyword cType DatasetInput
 syn keyword cType DataSetParam
-syn keyword cType DatasetInput
 syn keyword cType Definition
 syn keyword cType DependentObject
@@ -1411,6 +1413,6 @@
 syn keyword cType ElementInput
 syn keyword cType ElementMatrix
+syn keyword cType Elements
 syn keyword cType ElementVector
-syn keyword cType Elements
 syn keyword cType ExponentialVariogram
 syn keyword cType ExternalResult
@@ -1419,9 +1421,10 @@
 syn keyword cType Friction
 syn keyword cType Gauss
+syn keyword cType GaussianVariogram
+syn keyword cType gaussobjects
 syn keyword cType GaussPenta
 syn keyword cType GaussSeg
 syn keyword cType GaussTetra
 syn keyword cType GaussTria
-syn keyword cType GaussianVariogram
 syn keyword cType GenericExternalResult
 syn keyword cType GenericOption
@@ -1438,4 +1441,5 @@
 syn keyword cType IssmDirectApplicInterface
 syn keyword cType IssmParallelDirectApplicInterface
+syn keyword cType krigingobjects
 syn keyword cType Load
 syn keyword cType Loads
@@ -1448,4 +1452,5 @@
 syn keyword cType Matice
 syn keyword cType Matlitho
+syn keyword cType matrixobjects
 syn keyword cType MatrixParam
 syn keyword cType Misfit
@@ -1460,6 +1465,6 @@
 syn keyword cType Observations
 syn keyword cType Option
+syn keyword cType Options
 syn keyword cType OptionUtilities
-syn keyword cType Options
 syn keyword cType Param
 syn keyword cType Parameters
@@ -1475,11 +1480,11 @@
 syn keyword cType Regionaloutput
 syn keyword cType Results
+syn keyword cType Riftfront
 syn keyword cType RiftStruct
-syn keyword cType Riftfront
 syn keyword cType SealevelMasks
 syn keyword cType Seg
 syn keyword cType SegInput
+syn keyword cType Segment
 syn keyword cType SegRef
-syn keyword cType Segment
 syn keyword cType SpcDynamic
 syn keyword cType SpcStatic
@@ -1500,8 +1505,4 @@
 syn keyword cType Vertex
 syn keyword cType Vertices
-syn keyword cType classes
-syn keyword cType gaussobjects
-syn keyword cType krigingobjects
-syn keyword cType matrixobjects
 syn keyword cType AdjointBalancethickness2Analysis
 syn keyword cType AdjointBalancethicknessAnalysis
@@ -1522,6 +1523,6 @@
 syn keyword cType FreeSurfaceBaseAnalysis
 syn keyword cType FreeSurfaceTopAnalysis
+syn keyword cType GiaAnalysis
 syn keyword cType GLheightadvectionAnalysis
-syn keyword cType GiaAnalysis
 syn keyword cType HydrologyDCEfficientAnalysis
 syn keyword cType HydrologyDCInefficientAnalysis
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 25770)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 25771)
@@ -1043,4 +1043,5 @@
 	ChannelAreaEnum,
 	ChannelAreaOldEnum,
+	ChannelDischargeEnum,
 	ClosedEnum,
 	ColinearEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 25770)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 25771)
@@ -1046,4 +1046,5 @@
 		case ChannelAreaEnum : return "ChannelArea";
 		case ChannelAreaOldEnum : return "ChannelAreaOld";
+		case ChannelDischargeEnum : return "ChannelDischarge";
 		case ClosedEnum : return "Closed";
 		case ColinearEnum : return "Colinear";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 25770)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 25771)
@@ -1070,4 +1070,5 @@
 	      else if (strcmp(name,"ChannelArea")==0) return ChannelAreaEnum;
 	      else if (strcmp(name,"ChannelAreaOld")==0) return ChannelAreaOldEnum;
+	      else if (strcmp(name,"ChannelDischarge")==0) return ChannelDischargeEnum;
 	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
 	      else if (strcmp(name,"Colinear")==0) return ColinearEnum;
@@ -1120,9 +1121,9 @@
 	      else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
 	      else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
-	      else if (strcmp(name,"FemModel")==0) return FemModelEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"FileParam")==0) return FileParamEnum;
+	      if (strcmp(name,"FemModel")==0) return FemModelEnum;
+	      else if (strcmp(name,"FileParam")==0) return FileParamEnum;
 	      else if (strcmp(name,"FixedTimestepping")==0) return FixedTimesteppingEnum;
 	      else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
@@ -1243,9 +1244,9 @@
 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
 	      else if (strcmp(name,"MeshX")==0) return MeshXEnum;
-	      else if (strcmp(name,"MeshY")==0) return MeshYEnum;
          else stage=11;
    }
    if(stage==11){
-	      if (strcmp(name,"MinVel")==0) return MinVelEnum;
+	      if (strcmp(name,"MeshY")==0) return MeshYEnum;
+	      else if (strcmp(name,"MinVel")==0) return MinVelEnum;
 	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
 	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
@@ -1366,9 +1367,9 @@
 	      else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum;
 	      else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum;
-	      else if (strcmp(name,"ThicknessErrorEstimator")==0) return ThicknessErrorEstimatorEnum;
          else stage=12;
    }
    if(stage==12){
-	      if (strcmp(name,"TotalCalvingFluxLevelset")==0) return TotalCalvingFluxLevelsetEnum;
+	      if (strcmp(name,"ThicknessErrorEstimator")==0) return ThicknessErrorEstimatorEnum;
+	      else if (strcmp(name,"TotalCalvingFluxLevelset")==0) return TotalCalvingFluxLevelsetEnum;
 	      else if (strcmp(name,"TotalCalvingMeltingFluxLevelset")==0) return TotalCalvingMeltingFluxLevelsetEnum;
 	      else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum;
