Описание индексов областей
При описании области порядок направлений индексного пространства не фиксируется (или, что с точки зрения автора программы то же самое, фиксируется некоторым произвольным образом). Если порядок направлений индексного пространства существенен (например, необходимо согласование направлений при использовании величин на одних и тех же областях в различных разделах), то он задается при помощи описания индексов областей. Порядок направлений индексного пространства совпадает с порядком перечисления имен индексов в описании 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.