unpack(3f) - [FORTRAN:INTRINSIC:ARRAY CONSTRUCTION] Store the elements of a vector in an array of higher rank
Syntax
Description
Arguments
Return Value
Example
Standard
Class
See Also
result = unpack(vector, mask, field)
Store the elements of VECTOR in an array of higher rank.
VECTOR - Shall be an array of any type and rank one. It shall have at least as many elements as MASK has TRUE values. MASK - Shall be an array of type LOGICAL. FIELD - Shall be of the same type as VECTOR and have the same shape as MASK.
The resulting array corresponds to FIELD with TRUE elements of MASK replaced by values from VECTOR in array element order.
Sample program:
program demo_unpack integer :: vector(2) = (/1,1/) logical :: mask(4) = (/ .true., .false., .false., .true. /) integer :: field(2,2) = 0, unity(2,2)! result: unity matrix unity = unpack(vector, reshape(mask, (/2,2/)), field) end program demo_unpack
Fortran 95 and later
Transformational function
[[pack]], [[spread]]
unpack (3) | March 19, 2019 |