###
Reversing the order of rows and/or columns of a matrix

**[Specification]**
**[Arguments]**
**[Method]**
**[References]**
**[Comments]**
**[Example]**
**Purpose**

To reverse the order of rows and/or columns of a given matrix A
by pre-multiplying and/or post-multiplying it, respectively, with
a permutation matrix P, where P is a square matrix of appropriate
order, with ones down the secondary diagonal.

**Specification**
SUBROUTINE MA02BD( SIDE, M, N, A, LDA )
C .. Scalar Arguments ..
CHARACTER SIDE
INTEGER LDA, M, N
C .. Array Arguments ..
DOUBLE PRECISION A(LDA,*)

**Arguments**
**Mode Parameters**

SIDE CHARACTER*1
Specifies the operation to be performed, as follows:
= 'L': the order of rows of A is to be reversed by
pre-multiplying A with P;
= 'R': the order of columns of A is to be reversed by
post-multiplying A with P;
= 'B': both the order of rows and the order of columns
of A is to be reversed by pre-multiplying and
post-multiplying A with P.

**Input/Output Parameters**
M (input) INTEGER
The number of rows of the matrix A. M >= 0.
N (input) INTEGER
The number of columns of the matrix A. N >= 0.
A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
On entry, the leading M-by-N part of this array must
contain the given matrix whose rows and/or columns are to
be permuted.
On exit, the leading M-by-N part of this array contains
the matrix P*A if SIDE = 'L', or A*P if SIDE = 'R', or
P*A*P if SIDE = 'B'.
LDA INTEGER
The leading dimension of the array A. LDA >= max(1,M).

**Further Comments**
None

**Example**
**Program Text**

None

**Program Data**
None

**Program Results**
None

**Return to Supporting Routines index**