Call routines SORTN and SORTC can order an array in ascending order only. What if you want to order it in descending order? Here is an easy way!
data _null_;
array arr[*] v1-v5 (1 2 3 4 5);
put "before:" (v1-v5) (= +1);
/* reverse the variable list in a new array definition and sort */
array rev[*] v5-v1;
call sortn(of rev[*]);
put "after :" (v1-v5) (= +1);
run;
/* on log
before: v1=1 v2=2 v3=3 v4=4 v5=5
after : v1=5 v2=4 v3=3 v4=2 v5=1
*/
For a detailed discussion on variable lists, see Using SAS Variable Lists Effectively |Schreier (2011).
Thanks to chang_y_chung for sharing this tip on sasCommunity.org.