Функция «PACK» в Фортране используется для извлечения элементов из массива на основе указанной маски или логического условия. Он создает новый массив, выбирая только те элементы, которые удовлетворяют условию.
Вот пример использования функции «PACK» в Фортране:
program pack_example
implicit none
integer, dimension(5) :: array = [1, 2, 3, 4, 5]
logical, dimension(5) :: mask = [.true., .false., .true., .false., .true.]
integer, dimension(:), allocatable :: packed_array
packed_array = pack(array, mask)
print *, "Packed Array: ", packed_array
end program pack_example
В этом примере у нас есть массив целых чисел arrayиз пяти элементов. У нас также есть логическая маска maskтого же размера, что и массив, указывающая, какие элементы выбирать. Функция packиспользуется для создания нового массива packed_array, который содержит только элементы из array, где соответствующее значение маски — .true..
Выход этой программы будет:
Packed Array: 1 3 5
Полученный упакованный массив содержит элементы 1, 3 и 5, которые соответствуют позициям, где маска имеет значение .true..