Теория: Метакоманды MS-Фортрана


1.Метакоманды MS-Фортрана

В следующей таблице приведено краткое описание метакоманд МS-Фортрана, а их подробное описание приводится да.

-------------------T--------------------------------------¬
| Метакоманда      |          Действие                    |
+------------------+--------------------------------------+
| $DEBUG           | Включает проверку при счете целых    |
|                  | арифмет. операций и присваемого GO TO|
|                  | $NODEBUG выключает проверку.         |
+------------------+--------------------------------------+
| $DECMATH         | Указывает компилятору создавать      |
|                  | действительные константы в десятичном|
|                  | виде с плавающей точкой.             |
+------------------+--------------------------------------+
| $DO66            | Приводит исполнение операторов DO    |
|                  | к семантике Фортрана 66.             |
+------------------+--------------------------------------+
| $FLOATCALLS      | Заставляет выполнять операции с плав.|
|                  | точкой через библиотеку подрограмм с |
|                  | помощью инструкции CALL, а не через  |
|                  | прерывания. $NOFLOATCALL отменяет    |
|                  | этот раздел.                         |
+------------------+--------------------------------------+
| $INCLUDE:        | Заставляет компилятор считать, что   |
| файл             | в этой точке вставлен файл.          |
+------------------+--------------------------------------+
| $LARGE [:имя [,  |  Помечает именованные массивы для    |
| имя ]. . .]      | адресации вне DGROUP. $NOTLARGE отме-|
|                  | няет этот раздел для именованных мас-|
|                  | сивов. Если имена массивов не указаны|
|                  | команда действует на все массивы.    |
+------------------+--------------------------------------+
| $LINESIZE: n     | Формирует страницы листинга шириной  |
|                  | в n позиций.                         |
+------------------+--------------------------------------+
| $LIST            | Посылает часть листинга в файл лист. |
|                  | $NOLIST останавливает генерацию лист.|
+------------------+--------------------------------------+
| $MESSAGE:'строка'| Посылает строку в кaвычках на станд. |
|                  | устройство вывода при исполнении Фор-|
|                  | трана с начала до конца.             |
+------------------+--------------------------------------+
| $PAGE            | Начинает новую страницу листинга.    |
+------------------+--------------------------------------+
| $PAGESIZE: n     | Задает длину страницы листинга n.    |
+------------------+--------------------------------------+
| $STORAGE: n      | Определяет количество (n) байтов пам.|
|                  | для всех LOGICAL или INTEGER перемен-|
|                  | нных в тексте.                       |
+------------------+--------------------------------------+
| $STRICT          | Запрещает возможности МS-Фортрана, не|
|                  | входящий в Фортран 77 или в полный   |
|                  | стандарт языка. $NOTSTRICT разрешает |
|                  | их.                                  |
+------------------+--------------------------------------+
| $SUBTITLE:       | Дает подзаголовок для нескольких     |
| 'подзаголовок'   | страниц листинга.                    |
+------------------+--------------------------------------+
| $TITLE:          | Дает заголовок для нескольких страниц|
| 'заголовок'      | листинга.                            |
L------------------+---------------------------------------

Метакоманды могут быть вставлены в любое место исходного текста на МS-Фортране внутри программ; однако они не относятся к стандарному языку Фортран. Любая строка ввода компилятора МS-Фортрана, начинающаяся с символа "$" в первой позиции интерпретируется как метакоманда и должна соответствовать одному из допустимых форматов.

Метакоманда и ее параметры (если они есть) должны занимать одну строку текста; строки продолжения недопустимы. Пробелы не значат, поэтому следующая пара эквивалентна: $S TRICT, $STRICT

2.Справочник метакоманд

Остаток этой части - это алфавитный (по латинским буквам) справочник допустимых метакоманд MS-Фортрана.

----------------------$DEBUG и $NODEBUG---------------------

Заставляет компилятор:

  1. Проверять целую арифметику на переменные и деление на нуль.
  2. Проверять величины присваемого GO TO на допустимость списка в операторе присваемое GO TO.
  3. Обеспечивать функционирование системы фиксации ошибок при счете с именами файлов и номерами строк, так что при возникновении ошибки на экран выдается имя файла и номер строки.
---------------------------------------------------------------
     $[NO]DEBUG
---------------------------------------------------------------

Особенности.

$DEBUG не переключает и не подавляет поддержку реакций на ошибки для арифметики с плавающей запятой. МS-Фортран поддерживает стандарт IEEE при обеспечении реакций на ошибки в пяти следующих ситуациях : неверное действие, деление на нуль, переполнение разрядной сетки, незаполнение разрядной сетки и потеря точности. Более подробно о поддержке реакций на ошибки смотрите приложение Е руководства пользователя МS-Фортрана.

Метакоманда может стоять в программе где-угодно.

По умолчанию используется $NODEBUG.

------------- $DECMATH------------

Заставляет компилятор (и откомпилированную программу при счете) применять математику с плавающей точкой, выполняемую по основанию 10, а не в двоичном виде. Особенно $DECMATH заменяет представление констант на формат по десятичному основанию.

-----------------------------------------------------------
     $DECMATH
-----------------------------------------------------------

Особенности.

$DESMATH должна стоять перед первым оператором программы или подпрограммы; ей могут прешествовать только строки комментария или другие метакоманды, и она может употребляться только однажды.

$DESMATH автоматически устанавливает $FLOATCALLS. Если в одной и той же программе установлены $DESMATH и $NOFLOATCALLS, то компилятор выдаст ошибку.

Теория  Далее>>>

Rambler's Top100

Copyright © fortran-online.info, 2007