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


---------- $DO66---------

Приводит операторы DO к семантике Фортрана 66.

-----------------------------------------------------------
     $DO66
-----------------------------------------------------------

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

$DO66 должна предшествовать первому описанию или выполняемому оператору в файле исходного текта.

Семантика Фортрана 66 следующая:

  1. Все операторы DO выполняются по крайней мере однажды.
  2. Допустим расширенный диапазон; это означает, что управление может быть передано на синтактическое тело оператора DO. Поэтому диапазон оператора DO расширен логически так, чтобы включать любой оператор, который может быть выполнен между оператором DO и его последним оператором. Однако, передача управления на диапазон оператора DO до его выполнения или после выполнения его последнего оператора не верна.

Если в программе нет метакоманды $DO66, по умолчанию реализуется семантика Фортрана 77, а именно:

  1. Операторы DO могут выполнять нуль раз, если начальная величина управляющей переменной превышает конечную величину управляющей переменной (что соответствует оператору DO с отрицательным шагом).
  2. Расширенный диапазон неверен; то есть, управление нельзя передавать на синтаксическоетело оператора DO. (Оба стандарта DO допускают передачу управления из тела оператора DO).

-------------------------------- $FLOATCALLS и $NOFLOATCALLS-------------------------------

Вызывает выполнение операций с плавающей точкой через вызовы библиотечных подпограмм.

-----------------------------------------------------------
     $[NO]FLOATCALLS
-----------------------------------------------------------

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

Когда Вы вставляете $FLOATCALLS в Ваш текст, Вы генерируете вычисления над действительными числами через инструкции вызова. $NOFLOATCALLS подавляет условие по умолчанию и заставляет компилятор генерировать инструкции внутренних прерываний, а не вызовы подпрограмм. По умолчанию действует $FLOATCALLS.

$DECMATH автоматически устанавливает $FLOATCALLS.

------------- $INCLUDE------------

Заставляет компилятор действовать так, как если бы указанный файл был вставлен в месте употребления $INCLUDE.

-----------------------------------------------------------
     $INCLUDE: 'файл'
-----------------------------------------------------------
     Где
     файл      - это имя существующего файла, как оно описывается
в Вашей опирационной системе.

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

В конце вставленного файла компилятор возобновляет обработку файла исходного текста со строки, следующей за $INCLUDE.

У компилятора нет ограничений на вложенность уровней мета-команд $INCLUDE. Метакоманды $INCLUDE, в частности, полезны для гарантии того, что в разных модулях используется одно и тоже описание COMMON-блока.

--------------------- $LARGE и $NOLARGE--------------------

Заставляет компилятор располагать массивы в менее ограниченной области и генерировать менее эффективные последовательности кодов для ссылки на них.

-----------------------------------------------------------
     $[NOT]LARGE[:имя[,имя]. . .]
-----------------------------------------------------------
     Где
     имя  -это имя массива.

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

$LARGE может быть использована без параметров, в основном виде. Эта форма может встречаться, где угодно за исключением выполняемой части подпрограммы. $LARGE воздействует на все подпрограммы, которые следуют за ней в текстовом файле, до тех пор пока в тексте не встретится общая метакоманда $NOLARGE. $NOLARGE подчиняется тем же правилам, что и $LARGE но оказывает обратное воздействие.

По умолчанию установлено $NOLARGE. В области между оператором END (или началом компилируемой единицы) и выполняемой частью следующей подпрограммы или основной программы основная форма $LARGE или $NOTLARGE, но не обе, может использоваться только однажды. Например, следующий фрагмент текста ошибочен.

     $LARGE
            SUBROUTINE P
     $NOTLARGE
          A=1.0
          :

$LARGE может содержать имена описанных массивов и массивов формальных параметров, но тогда она должна стоять в описанной части подпрограммы и будет тогда действовать на массивы или формальные параметры этой подпрограммы. $NOTLARGE с параметром может быть использован для исключения из действия общей команды $LARGE массива или формального параметра. Массивы с точными размерностями, которые показывают, что эти массивы больше допустимого предела в 64 килобайта, автоматически размещаются на нескольких сегментах вне сегмента данных по умолчанию. Вам не нужно ставить $LARGE для этих массивов.

--------------- $LINESIZE--------------

Форматирует последующие страницы листинга шириной n позиций.

-----------------------------------------------------------
     $LINESIZE: n
-----------------------------------------------------------
     Где
     n    - положительное целое число в диапазоне от 40 до 132 включительно.

Если в программе нет метакоманды $LINESIZE по умолчанию подразумевается длина строки 80 символов.

---------------------- $LIST и $NOLIST---------------------

Включает заполнение файла листинга, опреленного при вызове компилятора, или запрещает его заполнение.

-----------------------------------------------------------
     $[NO]LIST
-----------------------------------------------------------

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

Если файл листинга не заказан при запуске компилятора, то метакоманда $LIST не действует. $NOLIST указывает на отмену листинга.

$LIST и $NOLIST могут стоять где угодно в текстовом файле.

По умолчанию установлено установлено $LIST.

<<<Назад  Теория  Далее>>>

Rambler's Top100

Copyright © fortran-online.info, 2007