`SHAPE`

— Determine the shape of an array ¶*Description*:Determines the shape of an array.

*Standard*:Fortran 90 and later, with

`KIND`argument Fortran 2003 and later*Class*:Inquiry function

*Syntax*:`RESULT = SHAPE(SOURCE [, KIND])`

*Arguments*:`SOURCE`Shall be an array or scalar of any type. If `SOURCE`is a pointer it must be associated and allocatable arrays must be allocated.`KIND`(Optional) An `INTEGER`

initialization expression indicating the kind parameter of the result.*Return value*:An

`INTEGER`

array of rank one with as many elements as`SOURCE`has dimensions. The elements of the resulting array correspond to the extend of`SOURCE`along the respective dimensions. If`SOURCE`is a scalar, the result is the rank one array of size zero. If`KIND`is absent, the return value has the default integer kind otherwise the specified kind.*Example*:PROGRAM test_shape INTEGER, DIMENSION(-1:1, -1:2) :: A WRITE(*,*) SHAPE(A) ! (/ 3, 4 /) WRITE(*,*) SIZE(SHAPE(42)) ! (/ /) END PROGRAM

*See also*:`RESHAPE`

— Function to reshape an array,`SIZE`

— Determine the size of an array