Описание величин
Рассмотрим процесс решения уравнения
удовлетворяющего условиям
по простейшей устойчивой явной разностной схемой
выбрав шаг h=0,1 по оси x и шаг l по оси t:
Программа на Норме, соответствующая этим расчетным формулам приведена здесь.
В языке Норма определены два класса величин: скалярные величины (скаляры) и величины на области. Описание ставит в соответствие каждой величине уникальное в текущем разделе имя величины, а также задает тип величины - REAL, INTEGER или DOUBLE ( по умолчанию тип REAL). Пример описания скаляров - строки 26, 27 программы Parabol:
VARIABLE k1,k2 DOUBLE.
VARIABLE pi DOUBLE.Каждая величина на области связывается с указанной в описании областью. Эта область определяет имена индексов, которые могут использоваться в индексных выражениях при обращении к данной величине, причем порядок указания индексных выражений не существенен (пример - строки 11, 12). Для индексов не требуется специального описания - они вводятся при описании областей:
VARIABLE u0, u1 DEFINED ON Wt1 DOUBLE.
VARIABLE u DEFINED ON Wxt DOUBLE.Приведенные описания определяют величины u0, u1 на области Wt1 и u на Wxt. Это означает, что величины u0, u1 могут иметь в индексных выражениях индекс j, а величина u, соответственно, может иметь в индексных выражениях индексы i и j. При этом обращения u[i+1,j-1] и u[j-1,i+1] эквивалентны.
При обращение к величине на области действует правило задания индексов по умолчанию: индексные выражения, совпадающие с именем индекса, могут быть опущены. Например, обращения u[i,j], u[i], u[j], u эквивалентны.
В случае, если какой-либо индекс задается константой (константным выражением), необходимо указать, к какому индексному направлению относится данная константа, например u[i=3,j+1]. Если надо одно индексное направление связать зависимостью с другим, то это также необходимо делать явно, например диагональные элементы u можно определить как u[i,j=i] или u[j=i].