You can also add this, although the OP said that it does not use IML if others find this useful search. IML is really the easiest way to solve this problem, since it is fundamentally a vector-matrix problem ...
proc iml; p={10 13 3 3 -4, 5 6 5 2 3}; r=j(2,5,.); print pr; do i = 1 to nrow(p); r[i,]=ranktie(p[i,]); end; print pr; quit;
It handles the attempts in a slightly different way than the OP, and therefore, some work will be required to make it exactly the same as the requested solution, but overall 1,2,5,2,5,4,5 [or 1,2 , 2,4, 5] is probably what you really want, not 1,2,2,3,4. 4 and 5 should remain 4 and 5, and not move to 3 and 4, when 2 and 3 ties.
source share