# ?trbr2d

Receives and participates in a broadcast along a scope for a trapezoidal matrix.

## Syntax

call itrbr2d( icontxt, scope, top, uplo, diag, m, n, a, lda, rsrc, csrc )

call strbr2d( icontxt, scope, top, uplo, diag, m, n, a, lda, rsrc, csrc )

call dtrbr2d( icontxt, scope, top, uplo, diag, m, n, a, lda, rsrc, csrc )

call ctrbr2d( icontxt, scope, top, uplo, diag, m, n, a, lda, rsrc, csrc )

call ztrbr2d( icontxt, scope, top, uplo, diag, m, n, a, lda, rsrc, csrc )

## Input Parameters

icontxt | INTEGER. Integer handle that indicates the context.
scope | CHARACTER*1. Indicates what scope the broadcast should proceed on. Limited to 'Row', 'Column', or 'All'.
top | CHARACTER*1. Indicates the communication pattern to use for the broadcast.
uplo, diag, m, n, lda | Describe the matrix to be sent. See Matrix Shapes for details.
rsrc | INTEGER. The process row coordinate of the process that called broadcast/send.
csrc | INTEGER. The process column coordinate of the process that called broadcast/send.

## Output Parameters

a | An array of dimension `(lda,n)` to receive the incoming message into.

## Description

This routine receives and participates in a broadcast along a scope. At the end of a broadcast, all processes within the scope will possess the data in the trapezoidal matrix A. Broadcasts may be globally-blocking. This means no process is guaranteed to return from a broadcast until all processes in the scope have called the appropriate routine (broadcast/send or broadcast/receive).

Parent topic: BLACS Broadcast Routines