bug report sent by nmozarto on Jan 27th
see forum topic 2156
From Brian:
The correct dimension is (M-R), in which R is the smallest of P, M-P, Q, and M-Q.
An M-by-M matrix is partitioned into a 2-by-2 block structure. The
dimensions of the blocks are P-by-Q, P-by-(M-Q), (M-P)-by-Q, and
(M-P)-by-(M-Q). IWORK is involved in the permutation of rows or
columns of these blocks, and it is the largest block, in terms of
number of rows or columns, that determines the size of IWORK.
* this value as the first entry of the work array, and no error
* message related to LRWORK is issued by XERBLA.
*
-* IWORK (workspace) INTEGER array, dimension (M-Q)
+* IWORK (workspace) INTEGER array, dimension (M-MIN(P, M-P, Q, M-Q))
*
* INFO (output) INTEGER
* = 0: successful exit.
* this value as the first entry of the work array, and no error
* message related to LWORK is issued by XERBLA.
*
-* IWORK (workspace) INTEGER array, dimension (M-Q)
+* IWORK (workspace) INTEGER array, dimension (M-MIN(P, M-P, Q, M-Q))
*
* INFO (output) INTEGER
* = 0: successful exit.
* this value as the first entry of the work array, and no error
* message related to LWORK is issued by XERBLA.
*
-* IWORK (workspace) INTEGER array, dimension (M-Q)
+* IWORK (workspace) INTEGER array, dimension (M-MIN(P, M-P, Q, M-Q))
*
* INFO (output) INTEGER
* = 0: successful exit.
* this value as the first entry of the work array, and no error
* message related to LRWORK is issued by XERBLA.
*
-* IWORK (workspace) INTEGER array, dimension (M-Q)
+* IWORK (workspace) INTEGER array, dimension (M-MIN(P, M-P, Q, M-Q))
*
* INFO (output) INTEGER
* = 0: successful exit.