# Returns the value of the gradient of basis function at depth 'zlvl' function [ v ] = bfungrad( ind, zlvl ) global z nlayers; layer = 1; z0 = 0.0; while ( z(layer) < zlvl ) z0 = z(layer); ++layer; if ( layer >= nlayers ) v = 0.0; return; endif endwhile x = (zlvl - z0)/(z(layer) - z0); v = polyval(bfunpoly(layer,ind,1),x); endfunction