def _getfaces(self, ind):
        res = []
        for f in range(self._nf):
            shape = tuple(np.isscalar(d) and d or d[f] for d in self.shape)
            a = np.zeros(shape, self.typecode())
            res.append(a)
        s = [slice(None) for d in self.shape]
        for i,nc in enumerate(self.nc):
            fn = self._fn[i]
            if self._Xdim is not None:
                s[self._Xdim] = slice(self._i0[i], self._ie[i])
            if self._Ydim is not None:
                s[self._Ydim] = slice(self._j0[i], self._je[i])
            res[fn][s] = nc.variables[self._name][:]
        for f in range(self._nf):
            res[f] = res[f][ind]

        return res