Index: /issm/trunk-jpl/src/c/shared/Elements/DrainageFunctionWaterfraction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/DrainageFunctionWaterfraction.cpp	(revision 15891)
+++ /issm/trunk-jpl/src/c/shared/Elements/DrainageFunctionWaterfraction.cpp	(revision 15891)
@@ -0,0 +1,27 @@
+/*!\file DrainageFunctionWaterfraction.cpp
+ * \brief: drain excess water fraction
+ */
+
+#include <math.h>
+#include "../Numerics/types.h"
+#include "../Exceptions/exceptions.h"
+
+/*FUNCTION IssmDouble DrainageFunctionWaterfraction()*/
+IssmDouble DrainageFunctionWaterfraction(IssmDouble waterfraction){
+    /* DrainageFunctionWaterfraction returns how much of the waterfraction is drained per year */
+    _assert_(waterfraction>0);
+
+    IssmDouble w0=0.01, w1=0.02, w2=0.03;
+    IssmDouble D0=0, D1=0.005, D2=0.05;
+
+    if((w0==w1)||(w1==w2)||(w0==w2))
+        perror ("error in DrainageFunctionWaterfraction. Abort");
+    if(waterfraction<=w0)
+        return D0;
+    if((waterfraction>w0) && (waterfraction<=w1))
+        return (D1-D0)/(w1-w0)*(waterfraction-w0)+D0;
+    if((waterfraction>w1) && (waterfraction<=w2))
+        return (D2-D1)/(w2-w1)*(waterfraction-w1)+D1;
+    else 
+        return D2;
+}
