8.281 UNPACK — Распаковка массива ранга один в массив
- Описание:
-
Сохранить элементы Вектора в массиве более высокого ранга.
- Стандарт:
-
Fortran 90 и более поздние версии
- Класс:
-
Функция преобразования
- Синтаксис:
-
RESULT = UNPACK(VECTOR, MASK, FIELD) - Аргументы:
-
Вектор Должен быть массивом любого типа и ранга один. Он должен иметь по крайней мере столько же элементов, сколько у Маски имеет TRUEзначений.Маска Должен быть массивом типа LOGICAL.Поле Должен быть того же типа, что и Вектор, и иметь ту же форму, что и Маска. - Возвращаемое значение:
-
Получившийся массив соответствует Поле с
TRUEэлементами Маски, замененными значениями из Вектора в порядке элементов массива. - Пример:
-
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
- См. также:
PACK— Упаковка массива в массив ранга один,SPREAD— Добавление размерности к массиву
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/UNPACK.html