Spec-Zone.ru › GNU Fortran 9

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

Spec-Zone.ru

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