Hello,

1- yes that's kind of it, if you really want to work in row-major format, you declare and initialize your matrix in row format, then convert it to column major and let LAPACK do its business. Input/output format for LAPACK routines is the same (column-major), so you can plug several routines on the top of each other, once you are done with LAPACK you come back to your row major format if you wish.

After some practice, I think most of the people does everything in column major from beginning to end and avoid row major.

2- ESSL is an implementation of LAPACK. Their interface and ours is not 100% compatible. LAPACK does not support the LWORK=0 trick, ESSL does. If you are working with LAPACK, calling DGEQRF with LWORK=0 returns you an error. This is not allowed.

3- Well once more, you really need to take the habit to open the LAPACK routines to have a look at the interface and the header comments. For example have a look at:

http://www.netlib.org/lapack/double/dormqr.f

I hope that now what I meant by A and C is clearer.

Come back if you have more questions.

Julie