ОПИСАНИЕ
/util/svs является shell-процедурой для запуска системы
SVS FORTRAN.
Входной язык системы SVS FORTRAN является стандартным
Фортраном-77. Компиляция SVS-программ обычно проходит в
четыре фазы: получение промежуточного кода, получение
объектного кода SVS, получение объектного файла обычного формата, получение выполняемой программы. Для получения выполняемой программы необходимо, чтобы были доступны библиотеки libSVSf.a и libSVSp.a.
Файлы с исходными текстами должны иметь расширение
.for. Файл с промежуточным кодом имеет расширение .i
(см. ниже опцию -i).
Кроме обычных операторов Фортрана, в исходном тексте
могут присутствовать указания компилятору, характеризующиеся символом $ в первой позиции. Перечислим их.
$argcheck, $noargcheck
Трактовать несоответствие формальных и фактических
параметров как фатальную ошибку или как предупреждение. Если задана опция +a (только ANSI), то независимо от указаний компилятору несоответствие
параметров рассматривается как ошибка.
$binary, $notbinary
Директива позволяет программам, использующим ныне
устаревшие "чистые" бесформатные файлы, работать
под более новыми версиями системы. Если перед оператором OPEN указана директива $binary, то файл
типа UNFORMATTED трактуется как файл типа BINARY.
При указании $notbinary UNFORMATTED трактуется как
тип файла в соответствии со стандартом ANSI, но
файл будет содержать управляющие последовательности и символы конца записи.
$charequ
Разрешить связывать отношением EQUIVALENCE переменные числовых и символьных типов.
$col72
Обрезать входные строки до 72 символов. По умолчанию строки обрезаются до 120 символов. Кроме того,
действует ограничение на суммарное количество символов в операторе - 1360, что соответствует 20
строкам по 66 символов.
$debug
Включить/выключить генерацию таблицы для отладчика
SVS.
$f66do
При указании этой опции DO-циклы всегда выполняются по крайней мере один раз.
$float, $nofloat
Генерировать код для сопроцессора арифметики вещественных чисел или для эмулятора. См. также опции командной строки +f и -f.
$include файл
Вставить файл в данное место текста. Допускается
до пяти уровней вложенности включаемых файлов.
$int2
По умолчанию считать тип INTEGER совпадающим с
INTEGER*2, тип LOGICAL - с LOGICAL*1.
$log2 По умолчанию считать тип LOGICAL совпадающим с
LOGICAL*2.
$system
В идентификаторах разрешается использовать символы
_ и %.
$xref
Генерировать таблицу перекрестных ссылок.
В командной строке допускаются следующие опции:
+a -a
Рассматривать использование несоответствующих
стандарту ANSI возможностей как ошибку (+a) или
нет (-a). По умолчанию используется -a. Установка
+a вызывает автоматическую установку флага -c72,
ограничивающего длину строки до 72 символов. При
указании флага +a компилятор позволяет все же
указывать директивы $include, $xref, $col72,
$float, $nofloat, $debug, $nodebug и $notbinary.
При этом недопустимы директивы $system, $f66do,
$int2, $charequ и $binary.
+b -b
Управление интерпретацией типа файла UNFORMATTED
в операторе OPEN. По умолчанию полагается опция
-b, соответствующая директиве $notbinary, при
указании которой тип файла не является "чистым"
бесформатным, а соответствует стандарту ANSI.
+c72
Обрезать входные строки до 72 символов.
+charequ
Разрешить связывать отношением EQUIVALENCE переменные числовых и символьных типов.
+d -d
Генерировать (+d) или нет (-d) таблицу для SVS
отладчика.
+dc -dc
Условная компиляция строк, содержащих в первой
позиции символ D или d.
+e -e
Стандартные соглашения системы SVS FORTRAN таковы, что параметры подпрограмм и функций забираются со стека вызванной подпрограммой (функцией),
перед возвратом. В то же время соглашения C-компилятора иные: параметры забирает со стека вызывающая функция. Опция -e заставляет SVS-компилятор придерживаться соглашений, принятых в реализации языка C. Если нужно вызывать из Фортран-программы C-функции, следует употребить опцию
-e, что и делается при компиляции средствами редактора РК. Отметим, что если имя подпрограммы
или функции начинается с символа %, она будет
скомпилирована по стандартным соглашениям SVS
FORTRAN.
+eфайл
Вывести все сообщения об ошибках компиляции в
файл.
+f -f
Генерировать код для сопроцессора арифметики вещественных чисел (+f) или для эмулятора (-f).
+int2
По умолчанию считать описание INTEGER эквивалентным INTEGER*2, а LOGICAL - LOGICAL*1.
+iфайл
Назвать .i-файл именем файл.
+log2
По умолчанию считать описание LOGICAL эквивалентным LOGICAL*2.
+lфайл
Сгенерировать листинг и поместить его в файл.
+p -p
Выводить (+p) или не выводить (-p) запрос при обнаружении ошибок. При компиляции средствами редактора РК используется опция -p.
+q -q
Выводить больше (-q) или меньше (+q) информации о
работе компилятора. По умолчанию -q.
+x
Генерировать таблицу перекрестных ссылок.
ФАЙЛЫ
/usr/lib/libSVSf.a
/usr/lib/libSVSp.a Библиотеки времени выполнения.
/usr/bin/fortran Компилятор.
/usr/bin/jcode Генератор объектного кода SVS.
/usr/bin/jlinker Генератор объектных файлов обычного
формата.
/usr/lib/ftncterrs Перечень ошибок времени компиляции.
/usr/lib/ftnrterrs Перечень ошибок времени выполнения.
ДИАГНОСТИКА
Система SVS FORTRAN содержит файл сообщений об ошибках
компиляции, а также файл сообщений об ошибках времени
выполнения. Компилятор выдает номера ошибок и сообщения
о них.