Index: /issm/trunk/src/m/model/bedslope.m
===================================================================
--- /issm/trunk/src/m/model/bedslope.m	(revision 7645)
+++ /issm/trunk/src/m/model/bedslope.m	(revision 7645)
@@ -0,0 +1,32 @@
+function [bx,by,b]=slope(md)
+%SLOPE - compute the bed slope
+%
+%   Usage:
+%      [bx,by,s]=slope(md)
+
+%load some variables (it is much faster if the variab;es are loaded from md once for all) 
+if (md.dim==2),
+	numberofelements=md.numberofelements;
+	numberofgrids=md.numberofgrids;
+	index=md.elements;
+	x=md.x; y=md.y; z=md.z;
+else
+	numberofelements=md.numberofelements2d;
+	numberofgrids=md.numberofgrids2d;
+	index=md.elements2d;
+	x=md.x2d; y=md.y2d; z=md.z2d;
+end
+
+%compute nodal functions coefficients N(x,y)=alpha x + beta y + gamma
+[alpha beta]=GetNodalFunctionsCoeff(index,x,y);
+
+summation=[1;1;1];
+bx=(md.bed(index).*alpha)*summation;
+by=(md.bed(index).*beta)*summation;
+b=sqrt(bx.^2+by.^2);
+
+if md.dim==3,
+	bx=project3d(md,bx,'element');
+	by=project3d(md,by,'element');
+	b=sqrt(bx.^2+by.^2);
+end
Index: /issm/trunk/src/m/model/divergence.m
===================================================================
--- /issm/trunk/src/m/model/divergence.m	(revision 7645)
+++ /issm/trunk/src/m/model/divergence.m	(revision 7645)
@@ -0,0 +1,24 @@
+function div=divergence(md,a,b)
+%DIVERGENCE    return divergence of [a;b] vector, using model's triangulation.
+
+if (md.dim==2),
+	numberofelements=md.numberofelements;
+	numberofgrids=md.numberofgrids;
+	index=md.elements;
+	x=md.x; y=md.y; z=md.z;
+else
+	numberofelements=md.numberofelements2d;
+	numberofgrids=md.numberofgrids2d;
+	index=md.elements2d;
+	x=md.x2d; y=md.y2d; z=md.z2d;
+end
+
+%compute nodal functions coefficients N(x,y)=alpha x + beta y + gamma
+[alpha beta]=GetNodalFunctionsCoeff(index,x,y);
+
+summation=[1;1;1];
+dx=(a(index).*alpha)*summation;
+dy=(b(index).*beta)*summation;
+
+div=dx+dy;
+div=averaging(md,div,1);
