next up previous contents
След.: Упражнения Выше: Массивы Пред.: Упражнения   Содержание


Секции массива

В современном Фортране есть понятие секции массива. Секции задаются указанием индексного триплета или векторного индекса для каждого измерения. Секция массива -- это своего рода подмассив, то есть массив, состоящий из части элементов данного. Для указания секции используются индексные триплеты вида [L]:[U[:n]], где L -- нижняя граница, U -- верхняя, а n -- шаг. По умолчанию L равно нижней границе соответствующего измерения, U -- верхней, а n -- единице. Так, : означает все измерение целиком. Вот несколько примеров:

A1(2:5) -- все элементы массива A, кроме первого.

MATRIX(:,1) -- первый столбец матрицы.

A1(-5:0:3,1) -- элементы A1(-5,1) и A1(-2,1). То же значит и A1(::3,1)

Векторный индекс -- это целочисленный одномерный массив в качестве индекса измерения массива. При этом выбираются элементы с соответствующими индексами. Например:

INTEGER, DIMENSION(3):: Ind1 = [3,2,1], Ind2 = [1,1,2]

INTEGER, DIMENSION(3,3):: M

...

PRINT*, Ind2(Ind1)

!выведет 2 1 1 -- массив Ind2 в обратном порядке

PRINT*, Ind1(Ind2)

!выведет 3 3 2

PRINT*, M(Ind1,Ind2) !выведет матрицу, первые два столбца которой совпадают с первым столбцом M в обратном порядке, а третий столбец равен второму столбцу M в обратном порядке.

Секция с повторяющимися индексами не может фигурировать в левой части присваивания.



Подсекции

Ilya A. Chernov 2012-12-19
X