Функция Fortran PACK: извлечение элементов из массивов с примерами

Функция «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..