Описание входных и выходных величин
Описание входных (выходных) величин означает, что подлежат вводу (выводу) значения всех величин, указанных в списке ввода (вывода).
Порядок, в котором будут вводиться (выводиться) величины при этом не задается - он определяется в процессе трансляции. Минимальная единица информации, которая вводится (выводится) как единое целое - скаляр или величина на области. Управление вводом (выводом) этих единиц может осуществляться при помощи атрибутов.
Атрибуты действуют на величину (список величин), после которой они указаны. Например описание из программы Gauss:
INPUT a(FILE='gauss') ON kls, b(FILE='gauss') ON ks.
является запросом на ввод из файла gauss.dat значений величины a для всех значений индексов области kls и значений величины b для всех значений индексов области ks.
Атрибуты позволяют управлять формой входных и выходных данных и связывать данные с входными и выходными файлами:
STR(n) задает пропуск n-1 строки
TAB(n) задает n пробелов от начала строки
SPACE(n) задает n пробелов в строке, начиная с текущей позиции
'строка' задает вывод текстовой константы
ORDER указывает порядок изменения индексов при выводе: самым старшим индексом является самый правый, самым младшим - самый левый; для очередного значения каждого старшего индекса младшие принимают все свои значения
LENGTH устанавливает длину записи в выходном файле
FILE задает имя входного или выходного файла; способ задания имени файла определяется при реализации (при использовании версии транслятора на персональных ЭВМ входной файл по умолчанию имеет расширение .dat; при задании имени файла это расширение может быть опущено; если атрибут FILE не задан, то ввод осуществляется из файла norma.dat, а вывод - на экран дисплея)
ALL приводит к выводу имени величины и ее координат (значений индексов) для каждого значения величины на области.
формат - задает формат для числовых значений при вводе и выводе и соответствует спецификаторам формата I, F, E, D в языке Фортран. По умолчанию установлены форматы: E15.8 для величин типа REAL, D15.8 для величин типа DOUBLE, I5 для величин типа INTEGER.
Для входных величин разрешены только атрибуты формат и FILE.
Пример описания выходных величин:
OUTPUT u(FILE='parabol.out') ON Wxt.
OUTPUT x(FILE='gauss.out',TAB(10),'Решение :',STR(1)) ON ks.
OUTPUT y(SPACE(10),'параметр Y:',ALL,F15.2) ON ABC.Для вывода данных в более сложной форме (таблицы, графики и т.п.) следует использовать либо средства стандартных библиотек и пакетов, либо собственные программы, написанные на других языках.
При задании файла исходных данных программист может:
располагать элементы ввода в произвольном порядке
управлять порядком расположения числовых значений в файле изменением порядка следования индексов
не придерживаться одного формата в записи числовых значений
сокращенно записывать повторяющиеся данные.
Пример содержимого файла исходных данных:
a(k=1..4,l=1..4)= 1.1161, 0.1254, 0.1397, 0.1490,
0.1582, 1.1675, 0.1768, 0.1871,
0.1968, 0.2071, 1.2168, 0.2271,
0.2368, 0.2471, 0.2568, 1.2671;
u1(j=1..20)=20(0.0);
epsilon=1.0E-10;
b(k=1..4)= 2(1.1243), 2(-2.1223);Значения многомерных массивов данных располагаются в файле в соответствии с указанными индексами, причем первыми меняются значения более правого индекса - в приведенном примере матрица a(k,l) задана по строкам, то есть k=1, l=1,2,3,4, затем k=2, l=1,2,3,4, и так далее до k=4, l=1,2,3,4.
Для задания нескольких повторяющихся значений в файле исходных данных используют запись: количество(значение), как это было сделано в примере для определения значений величены u1 двадцатью нулями.
Способ задания входного файла, не является единственным.