RESHAPE (The GNU Fortran Compiler)

### 8.239 `RESHAPE` — Function to reshape an array ¶

Synopsis:

  `RESULT = RESHAPE(SOURCE, SHAPE[, PAD, ORDER])`

Description:

  Reshapes SOURCE to correspond to SHAPE. If necessary, the new array may be padded with elements from PAD or permuted as defined by ORDER.

Class:

  Transformational function

Arguments:

  SOURCE | Shall be an array of any type.
  SHAPE | Shall be of type `INTEGER` and an array of rank one. Its values must be positive or zero.
  PAD | (Optional) shall be an array of the same type as SOURCE.
  ORDER | (Optional) shall be of type `INTEGER` and an array of the same shape as SHAPE. Its values shall be a permutation of the numbers from 1 to n, where n is the size of SHAPE. If ORDER is absent, the natural ordering shall be assumed.

Return value:

  The result is an array of shape SHAPE with the same type as SOURCE.

Example:

      PROGRAM test_reshape
        INTEGER, DIMENSION(4) :: x
        WRITE(*,*) SHAPE(x)                       ! prints "4"
        WRITE(*,*) SHAPE(RESHAPE(x, (/2, 2/)))    ! prints "2 2"
      END PROGRAM

Standard:

  Fortran 90 and later

See also:

  `SHAPE` — Determine the shape of an array