Spec-Zone.ru › GNU Fortran 6

9.86 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-6.4.0/gfortran/EOSHIFT.html

Spec-Zone.ru

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