Описание индексов областей

При описании области порядок направлений индексного пространства не фиксируется (или, что с точки зрения автора программы то же самое, фиксируется некоторым произвольным образом). Если порядок направлений индексного пространства существенен (например, необходимо согласование направлений при использовании величин на одних и тех же областях в различных разделах), то он задается при помощи описания индексов областей. Порядок направлений индексного пространства совпадает с порядком перечисления имен индексов в описании INDEX (слева направо).

Рассмотрим вызов раздела Calculate из раздела Gauss в примере с передачей из раздела Gauss в раздел Calculate значений величины a, определенной на области kls. Описания INDEX k,l (строка 3) и INDEX i,j (строка 18) устанавливают соответствие между индексами: k~i и l~j, то есть значения величины трактуются в обоих разделах одинаково. В примере Gauss описания индексов областей несущественны. Так как параметры областей ks, ls и is, js совпадают, то можно было вообще опустить строки 3 и 18 или изменить порядок следования индексов: INDEX j,i.

Рассмотрим пример, в котором описания индексов областей существенны:

PART A.
BEGIN
           INDEX k,l.
           SquareInA: (AxisK: (k=1..5);AxisL: (l=1..10)).
           VARIABLE X DEFINED ON SquareInA.
           COMPUTE B(X ON SquareInA).
END PART.

PART B.     X
BEGIN
           INDEX j,i.
           SquareInB: (AxisI: (i=1..10);AxisJ: (j=1..5)).
           VARIABLE X DEFINED ON SquareInB.
END PART.

В этом случае, если описание INDEX j,i из раздела заменить на INDEX i,j, то значения по соответствующим направлениям оказываются несогласованными: 5~10, 10~5.