Внешняя функция описывается пользователем. Обращение к ней представляется именем функции, за которым в круглых скобках следует список фактических параметров, разделенных запятыми. Результат вычисления функции представляется именем функции. Вычисление возможно, если все фактические параметры приняли соответствующие значения - все фактические параметры рассматриваются как исходные данные для вычисления функции, побочный эффект запрещен.
Фактическими параметрами внешней функции могут быть арифметические выражения, имена внешних разделов и внешних функций, либо величины на областях (массивы).
Пример использования внешней функции с различными способами задания фактических параметров
Grid: (Oi: (I=1..N) ; Oj: (J=1..M)).
VARIABLE A, B DEFINED ON Grid.
VARIABLE X,Y DEFINED ON Oi. VARIABLE T DEFINED ON Oj.
VARIABLE Gamma DOUBLE.
INPUT A,B ON Grid, Y ON Oi, T ON Oj. INPUT Gamma.
OUTPUT X ON Oi.
DOMAIN PARAMETERS N = 10, M = 20. EXTERNAL FUNCTION DxDy.
FOR Oi ASSUME
X = F(DxDy, Gamma+0.5*Y, T ON Oj, A ON Grid / (i=2..8,J=M-2), B ON Grid /J=I+2).
Оператор ASSUME задает правила вычисления вектора Xi , i=1,10, при этом для каждого i необходимо вычислить значение функции пользователя F с параметрами:
1--ыий параметр - имя DxDy внешней функции пользователя;
2--ой параметр - арифметическое выражение Gamma+0.5*Yi;
3--ий параметр - значения Tj, j=1,...,20 - передается статический массив;
4--ый параметр - значения Ai,j ,i=2,...,8, j=18 - передается статическая секция массива - вектор, состоящий из элементов 2-й - 8-й строк 18-го столбца матрицы A ;
5--ый параметр - значения Bi,j, i=1,...,10,j=i+2 - передается динамическая секция массива - i+2-й столбец матрицы B.
Правила соответствия формальных и фактических параметров функции:
(1)
Число формальных и фактических параметров должно быть одинаковым; соответствие устанавливается слева направо в порядке написания.
(2)
Формальный параметр
Фактический параметр
имя функции
имя функции
имя раздела
имя раздела
скаляр
арифметическое выражение
величина на области
величина на области
(3)
Если и формальный, и фактический параметры являются величинами на областях, то должны совпадать число индексов областей и число точек в диапазонах по соответствующим индексам (см. п. 5.1.2.).