For $G=Sp(n,q)$, I can take an arbitrary element $S$ and find its Bruhat decomposition according to the Borel subgroup (in this case lower triangular symplectic matrices). This is thanks to a previously asked and answered question Bruhat decomposition in GAP. So I'm able to express $S=L_1 W L_2$. $L_i$ are lower triangular and $W$ is monomial (diagonal times permutation). Now I'd like to find a decomposition of $S$ using a different (larger,parabolic but not borel) subgroup of "block triangular" symplectic matrices : these are zero in the upper right quandrant so the have a form $[[A,0],[C,D]]$; so $S=T_1 V T_2$ where $T_i$ are block triangular. $V$ should end up being a monomial matrix is some canonical form. Is there a way to derive the second decomposition from the first?
Here's an example of how I use the GAP package BruhatDecomposition per the request in the comments (it's not redistributed with GAP so you'd have to install it yourself).
LoadPackage("BruhatDecomposition","0");
SetInfoLevel(InfoBruhat,0);
p:=2; n:=4;
grp:=SymplecticGroup(2*n,p);
if(\mod(p,2)=0)then
stdgens:=LGOStandardGensSpEvenChar(2*n,p);
else
stdgens:=LGOStandardGensSp(2*n,p);
fi;
A:=Random(grp);
slp:=BruhatDecompositionSp(stdgens,A);
slpx:=ResultOfStraightLineProgram(slp[1],stdgens);
L1:=slpx[1]^-1;
W:=slpx[3]*slpx[4];
L2:=slpx[2]^-1;
Print("check A=L1WL2 ",A=L1*W*L2,"\n");
Print("L1=\n");Display(L1);
Print("W=\n");Display(W);
Print("L2=\n");Display(L2);