spread(3I)

SPREAD - Constructs an array from several copies of an argument

As shipped in IRIX 6.5.15. Last changed in IRIX 6.5.5.

NAME
     SPREAD - Constructs an array from several copies of an argument

SYNOPSIS
     SPREAD ([SOURCE=]source, [DIM=]dim, [NCOPIES=]ncopies)

IMPLEMENTATION
     UNICOS, UNICOS/mk, IRIX systems

     CF90, MIPSpro 7 Fortran 90

STANDARDS
     Fortran

DESCRIPTION
     The SPREAD intrinsic function constructs an array from several copies
     of an argument.  This intrinsic function can be used for array
     construction.  It replicates an array by adding a dimension.  It
     broadcasts several copies of source along a specified dimension and
     thus forms an array of rank one greater.  SPREAD accepts the following
     arguments:

     source    May be of any type.  It may be scalar or array valued.  The
               rank of source must be less than 7.

     dim       Must be scalar and an integer with value in the range of
               1 <= dim <= n + 1, where n is the rank of source.

     ncopies   Must be scalar and an integer.

     SPREAD is a transformational intrinsic function.  The name of this
     intrinsic cannot be passed as an argument.

RETURN VALUES
     The result is an array of the same type as source and of rank n+1,
     where n is the rank of source.

     If source is scalar, the shape of the result is MAX(ncopies,0).  If
     source is array valued with shape
     (d , d , ..., d ),
       1   2        n
     the shape of the result is
     (d , d , ..., d     , MAX(ncopies, 0), d   , ..., d ).
       1   2        dim-1                    dim        n

     If source is scalar, each element of the result has a value equal to
     source.

     If source is array valued, the element of the result with subscripts
     (r , r , ..., r   )
       1   2        n+1
     has the value
     source(r , r , ..., r     , r     , ..., r   )).
             1   2        dim-1   dim+1        n+1

EXAMPLES
     Example 1:  Assume that ISCALR is the scalar value of 8.  The
     following statements are then true:

     * The value of SPREAD( ISCALR, DIM = 1, NCOPIES = 0) is a zero-sized
       array.

     * The value of SPREAD( ISCALR, DIM = 1, NCOPIES = 2) is (/8, 8/).

     Example 2:  Assume that A is the array [2, 3, 4].  The following
     statements are then true:

     * The value of SPREAD( A, DIM = 1, NCOPIES = 0 ) is a zero-sized
       array.

     * The value of SPREAD( A, DIM = 1, NCOPIES = 3 ) is as follows:

     | 2 3 4 |

     | 2 3 4 |

     | 2 3 4 |

     * The value of SPREAD( A, DIM = 2, NCOPIES = 3 ) is as follows:

     | 2 2 2 |

     | 3 3 3 |

     | 4 4 4 |

SEE ALSO
     Intrinsic Procedures Reference Manual for the printed version of this
     man page.