### 8.231 `SPREAD` — Add a dimension to an array

Description:
  Replicates a SOURCE array NCOPIES times along a specified dimension DIM.
Standard:
  Fortran 95 and later
Class:
  Transformational function
Syntax:
  `RESULT = SPREAD(SOURCE, DIM, NCOPIES)`
Arguments:

  SOURCE | Shall be a scalar or an array of any type and a rank less than seven.
  DIM | Shall be a scalar of type `INTEGER` with a value in the range from 1 to n+1, where n equals the rank of SOURCE.
  NCOPIES | Shall be a scalar of type `INTEGER`.

Return value:
  The result is an array of the same type as SOURCE and has rank n+1 where n equals the rank of SOURCE.
Example:

                PROGRAM test_spread
                  INTEGER :: a = 1, b(2) = (/ 1, 2 /)
                  WRITE(*,*) SPREAD(A, 1, 2)            ! "1 1"
                  WRITE(*,*) SPREAD(B, 1, 2)            ! "1 1 2 2"
                END PROGRAM

See also:
  UNPACK