UNPACK — Unpack an array of rank one into an array#
-
UNPACK(VECTOR, MASK, FIELD)#
Store the elements of
VECTOR
in an array of higher rank.- Parameters
VECTOR – Shall be an array of any type and rank one. It shall have at least as many elements as
MASK
hasTRUE
values.MASK – Shall be an array of type
LOGICAL
.FIELD – Shall be of the same type as
VECTOR
and have the same shape asMASK
.
- Returns
The resulting array corresponds to
FIELD
withTRUE
elements ofMASK
replaced by values fromVECTOR
in array element order.
- Standard:
Fortran 90 and later
- Class:
Transformational function
- Syntax:
RESULT = UNPACK(VECTOR, MASK, FIELD)
- Example:
PROGRAM test_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
- See also:
PACK — Pack an array into an array of rank one, SPREAD — Add a dimension to an array