Spec-Zone.ru › GNU Fortran 8

9.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 95 и более поздние версии

Класс:

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

Синтаксис:

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

Следующий: EPSILON, Предыдущий: DTIME, Вверх: Встроенные процедуры [Содержание][Индекс]

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

Spec-Zone.ru

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