Spec-Zone.ru › GNU Fortran 14

8.93 EOSHIFT — Сдвиг элементов массива с обрезанием

Описание:

EOSHIFT(ARRAY, SHIFT[, BOUNDARY, DIM]) выполняет сдвиг элементов массива ARRAY вдоль размерности DIM. Если DIM опущена, она принимается как 1. DIM — скаляр типа INTEGER в диапазоне 1 \leq DIM \leq n), где n — ранг массива ARRAY. Если ранг ARRAY равен одному, все элементы ARRAY сдвигаются на SHIFT позиций. Если ранг больше единицы, все полные одномерные секции ARRAY вдоль заданной размерности сдвигаются. Элементы, сдвинутые с одного конца каждой одномерной секции, отбрасываются. Если присутствует BOUNDARY, соответствующее значение из BOUNDARY копируется на другой конец. Если BOUNDARY отсутствует, в зависимости от типа ARRAY копируются следующие значения.

Тип массива Значение границы
Числовой 0 того же типа и размера, что и ARRAY.
Логический .FALSE..
Символьный(len) len пробелов.
Стандарт:

Fortran 90 и более поздние версии

Класс:

Функция преобразования

Синтаксис:

RESULT = EOSHIFT(ARRAY, SHIFT [, BOUNDARY, DIM])

Аргументы:
ARRAY Может быть любого типа, не скаляр.
SHIFT Тип должен быть INTEGER.
BOUNDARY Того же типа, что и ARRAY.
DIM Тип должен быть INTEGER.
Возвращаемое значение:

Возвращает массив того же типа и ранга, что и аргумент ARRAY.

Пример:
program test_eoshift
    integer, dimension(3,3) :: a
    a = reshape( (/ 1, 2, 3, 4, 5, 6, 7, 8, 9 /), (/ 3, 3 /))
    print '(3i3)', a(1,:)
    print '(3i3)', a(2,:)
    print '(3i3)', a(3,:)    
    a = EOSHIFT(a, SHIFT=(/1, 2, 1/), BOUNDARY=-5, DIM=2)
    print *
    print '(3i3)', a(1,:)
    print '(3i3)', a(2,:)
    print '(3i3)', a(3,:)
end program test_eoshift

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/EOSHIFT.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API