9.257 SPREAD — Add a dimension to an array

Description:

Replicates a SOURCE array NCOPIES times along a specified dimension DIM.

Standard:

Fortran 90 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

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gfortran/SPREAD.html