One of many useful tips I've learned from this blog: As shown a few years ago, if you're willing to extract the diagonal elements, things get really simple. sqrvech also lets you create a complete square correlation matrix A by entering only the lower triangle V, including the 1's on the diagonal.

*http://blogs.sas.com/content/iml/2012/03/21/creating-symmetric-matrices-two-useful-functions-with-strange-names.html;
proc iml;
corr = {1.0 0.6 0.5 0.4,
0.6 1.0 0.3 0.2,
0.5 0.3 1.0 0.1,
0.4 0.2 0.1 1.0};

*extract the lower triangle;
v = vech(corr);
print v;

*reconstruct the original;
a=sqrvech(v);
print a;