def _derY(self, x, y, z):
    '\n        Returns the derivative with respect to y of the interpolated function\n        at each value in x,y,z. Only called internally by HARKinterpolator3D.derivativeY.\n        '
    if _isscalar(x):
        z_pos = max(min(np.searchsorted(self.z_list, z), (self.z_n - 1)), 1)
        alpha = ((z - self.z_list[(z_pos - 1)]) / (self.z_list[z_pos] - self.z_list[(z_pos - 1)]))
        dfdy = (((1 - alpha) * self.xyInterpolators[(z_pos - 1)].derivativeY(x, y)) + (alpha * self.xyInterpolators[z_pos].derivativeY(x, y)))
    else:
        m = len(x)
        z_pos = np.searchsorted(self.z_list, z)
        z_pos[(z_pos > (self.z_n - 1))] = (self.z_n - 1)
        z_pos[(z_pos < 1)] = 1
        dfdy = (np.zeros(m) + np.nan)
        if (x.size > 0):
            for i in range(1, self.z_n):
                c = (z_pos == i)
                if np.any(c):
                    alpha = ((z[c] - self.z_list[(i - 1)]) / (self.z_list[i] - self.z_list[(i - 1)]))
                    dfdy[c] = (((1 - alpha) * self.xyInterpolators[(i - 1)].derivativeY(x[c], y[c])) + (alpha * self.xyInterpolators[i].derivativeY(x[c], y[c])))
    return dfdy
Returns the derivative with respect to y of the interpolated function
at each value in x,y,z. Only called internally by HARKinterpolator3D.derivativeY.
def _derY(self, x, y, z):
    '\n        Returns the derivative with respect to y of the interpolated function\n        at each value in x,y,z. Only called internally by HARKinterpolator3D.derivativeY.\n        '
    if _isscalar(x):
        z_pos = max(min(np.searchsorted(self.z_list, z), (self.z_n - 1)), 1)
        alpha = ((z - self.z_list[(z_pos - 1)]) / (self.z_list[z_pos] - self.z_list[(z_pos - 1)]))
        dfdy = (((1 - alpha) * self.xyInterpolators[(z_pos - 1)].derivativeY(x, y)) + (alpha * self.xyInterpolators[z_pos].derivativeY(x, y)))
    else:
        m = len(x)
        z_pos = np.searchsorted(self.z_list, z)
        z_pos[(z_pos > (self.z_n - 1))] = (self.z_n - 1)
        z_pos[(z_pos < 1)] = 1
        dfdy = (np.zeros(m) + np.nan)
        if (x.size > 0):
            for i in range(1, self.z_n):
                c = (z_pos == i)
                if np.any(c):
                    alpha = ((z[c] - self.z_list[(i - 1)]) / (self.z_list[i] - self.z_list[(i - 1)]))
                    dfdy[c] = (((1 - alpha) * self.xyInterpolators[(i - 1)].derivativeY(x[c], y[c])) + (alpha * self.xyInterpolators[i].derivativeY(x[c], y[c])))
    return dfdy