### 8.207 `RESHAPE` — Function to reshape an array

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.
Standard:
  Fortran 95 and later
Class:
  Transformational function
Syntax:
  `RESULT = RESHAPE(SOURCE, SHAPE[, PAD, ORDER])`
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

See also:
  SHAPE