# NAG Library Routine Document

## 1Purpose

f06qff performs the matrix-copy operation
 $B←A$
where $A$ and $B$ are $m$ by $n$ real general or trapezoidal matrices.

## 2Specification

Fortran Interface
 Subroutine f06qff ( m, n, a, lda, b, ldb)
 Integer, Intent (In) :: m, n, lda, ldb Real (Kind=nag_wp), Intent (In) :: a(lda,*) Real (Kind=nag_wp), Intent (Inout) :: b(ldb,*) Character (1), Intent (In) :: matrix
#include nagmk26.h
 void f06qff_ (const char *matrix, const Integer *m, const Integer *n, const double a[], const Integer *lda, double b[], const Integer *ldb, const Charlen length_matrix)

None.
None.

## 5Arguments

1:     $\mathbf{matrix}$ – Character(1)Input
On entry: the matrix type.
${\mathbf{matrix}}=\text{'G'}$
General matrix.
${\mathbf{matrix}}=\text{'U'}$
Upper trapezoidal matrix (upper triangular if $m=n$).
${\mathbf{matrix}}=\text{'L'}$
Lower trapezoidal matrix (lower triangular if $m=n$).
Constraint: ${\mathbf{matrix}}=\text{'G'}$, $\text{'U'}$ or $\text{'L'}$.
2:     $\mathbf{m}$ – IntegerInput
On entry: $m$, the number of rows of the matrices $A$ and $B$.
Constraint: ${\mathbf{m}}\ge 0$.
3:     $\mathbf{n}$ – IntegerInput
On entry: $n$, the number of columns of the matrices $A$ and $B$.
Constraint: ${\mathbf{n}}\ge 0$.
4:     $\mathbf{a}\left({\mathbf{lda}},*\right)$ – Real (Kind=nag_wp) arrayInput
Note: the second dimension of the array a must be at least ${\mathbf{n}}$.
On entry: the $m$ by $n$ general or trapezoidal matrix $A$.
• If ${\mathbf{matrix}}=\text{'U'}$, $A$ is upper trapezoidal and the elements of the array below the diagonal are not referenced.
• If ${\mathbf{matrix}}=\text{'L'}$, $A$ is lower trapezoidal and the elements of the array above the diagonal are not referenced.
5:     $\mathbf{lda}$ – IntegerInput
On entry: the first dimension of the array a as declared in the (sub)program from which f06qff is called.
Constraint: ${\mathbf{lda}}\ge \mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$.
6:     $\mathbf{b}\left({\mathbf{ldb}},*\right)$ – Real (Kind=nag_wp) arrayOutput
Note: the second dimension of the array b must be at least ${\mathbf{n}}$.
On exit: the $m$ by $n$ general or trapezoidal matrix $B$.
• If ${\mathbf{matrix}}=\text{'U'}$, $B$ is upper trapezoidal and the elements of the array below the diagonal are not referenced.
• If ${\mathbf{matrix}}=\text{'L'}$, $B$ is lower trapezoidal and the elements of the array above the diagonal are not referenced.
7:     $\mathbf{ldb}$ – IntegerInput
On entry: the first dimension of the array b as declared in the (sub)program from which f06qff is called.
Constraint: ${\mathbf{ldb}}\ge \mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{m}}\right)$.

None.

Not applicable.

## 8Parallelism and Performance

f06qff is not threaded in any implementation.