!!!
Gaussian elimination also gives you the Schubert cell decomposition
of the Grassmannian!
Given a k-dimensional subspace of K^n,
pick a basis (any basis),
write it as a matrix of row vectors,
then apply Gaussian elimination (*not* Gauss-Jordan) to put it in row echelon form;
[remember, Gaussian elimination is mathematically slicker, as it's
orbits of a Borel group?]
The column numbers of the pivots are which Schubert cell you're in;
the other entries are the degrees of freedom.
BTW, if you want the oriented Grassmannian, take an oriented basis and be careful
with row ops (don't multiply by negatives, and if you swap rows,
remember a negative).