ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 6 МЕТАКОМАНДЫ МС-ФОРТРАНА. ОБ ЭТОЙ ЧАСТИ. Эта часть описывает метакоманды МС-Фортрана, директивы, за- дающие компилятору МС-Фортрана каким образом и в каком порядке обрабатывать исходный текст на МС-Фортране. СОДЕРЖАНИЕ. 1.МЕТАКОМАНДЫ МС-ФОРТРАНА. 1 2.СПРАВОЧНИК МЕТАКОМАНД. . 2 $DEBUG и $NODEBUG . . . . 2 $DECMATH . . . . . . . . . 3 $DO66 . . . . . . . . . . 3 $FLOATCALLS и $NOFLOATCALLS 3 $INCLUDE . . . . . . . . . 4 $LARGE и $NOLARGE . . . . 4 $LINESIZE . . . . . . . . 5 $LIST и $NOLIST . . . . . 5 $MESSAGE . . . . . . . . . 5 $PAGE . . . . . . . . . . 6 $PAGESIZE . . . . . . . . 6 $STORAGE . . . . . . . . . 6 $SUBTITLE . . . . . . . . 7 $TITLE . . . . . . . . . . 8 1.МЕТАКОМАНДЫ МС-ФОРТРАНА. В следующей таблице приведено краткое описание метакоманд МС-Фортрана, а их подробное описание приводится да. ЪДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Метакоманда і Действие і ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і $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 і Запрещает возможности МС-Фортрана, неі і і входящий в Фортран 77 или в полный і і і стандарт языка. $NOTSTRICT разрешает і і і их. і АДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ ЪДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї і Метакоманда і Действие і ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і $SUBTITLE: і Дает подзаголовок для нескольких і і 'подзаголовок' і страниц листинга. і ГДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ і $TITLE: і Дает заголовок для нескольких страниці і 'заголовок' і листинга. і АДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Метакоманды могут быть вставлены в любое место исходного текста на МС-Фортране внутри программ; однако они не относятся к стандарному языку Фортран. Любая строка ввода компилятора МС-Фор- трана, начинающаяся с символа "$" в первой позиции интерпретируется как метакоманда и должна соответствовать одному из допустимых форматов. Метакоманда и ее параметры (если они есть) должны занимать одну строку текста; строки продолжения недопустимы. Пробелы не значат, поэтому следующая пара эквивалентна: $S TRICT $STRICT 2.СПРАВОЧНИК МЕТАКОМАНД. Остаток этой части - это алфавитный (по латинским буквам) справочник допустимых метакоманд МС-ФОРТРАНА. Для понимания синтаксиcа описания смотрите в этом руководстве приложение А. ЬДДДДДДДДДДДДДДДДДДДД Ы $DEBUG и $NODEBUG ЯДДДДДДДДДДДДДДДДДДДД Заставляет компилятор: 1. Проверять целую арифметику на переменные и деление на нуль. 2. Проверять величины присваемого GO TO на допустимость списка в операторе присваемое GO TO. 3. Обеспечивать функционирование системы фиксации ошибок при счете с именами файлов и номерами строк, так что при воз- никновении ошибки на экран выдается имя файла и номер стро- ки. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $[NO]DEBUG ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Особенности. $DEBUG не переключает и не подавляет поддержку реакций на ошибки для арифметики с плавающей запятой. МС-Фортран поддерживает стандарт IEEE при обеспечении реакций на ошибки в пяти следующих ситуациях : неверное действие, деление на нуль, переполнение разрядной сетки, незаполнение разрядной сетки и потеря точности. Более подробно о поддержке реакций на ошибки смотрите приложение Е руководства пользователя МС-Фортрана. Метакоманда может стоять в программе где-угодно. По умолчанию используется $NODEBUG. ЬДДДДДДДДДДД Ы $DECMATH ЯДДДДДДДДДДД Заставляет компилятор (и откомпилированную программу при счете) применять математику с плавающей точкой, выполняемую по основанию 10, а не в двоичном виде. Особенно $DECMATH заменяет представление констант на формат по десятичному основанию. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $DECMATH ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Особенности. $DESMATH должна стоять перед первым оператором программы или подпрограммы; ей могут прешествовать только строки комментария или другие метакоманды, и она может употребляться только однажды. $DESMATH автоматически устанавливает $FLOATCALLS. Если в одной и той же программе установлены $DESMATH и $NOFLOATCALLS, то ком- пилятор выдаст ошибку. ЬДДДДДДДД Ы $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. ЬДДДДДДДДДДД Ы $MESSAGE ЯДДДДДДДДДДД Используется для посылки сообщения на стандартное устройство вывода при выполнении Фортрана, перед его окончанием. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $MESSAGE: 'строка' ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Где строка - любая действительная символьная константа. Максимальная длина - 40 символов. Пример $MESSAGE: 'это высвечивается, когда вы выполняете FOR1' ЬДДДДДДДД Ы $PAGE ЯДДДДДДДД Начинает новую страницу листинга. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $PAGE ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Особенности. Если первым символом строки исходного текста является символ ASCII перевод страницы (шестнадцатиричный код ОСh), это считается эквивалентным использованию метакомоманды $PAGE в этой точке. ЬДДДДДДДДДДДД Ы $PAGESIZE ЯДДДДДДДДДДДД Определяет длину в n строк последующих страниц листинга. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $PAGESIZE ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Где n - любое положительное целое число не меньше 15. Особенности. Если в программе нет метакоманды $PAGESIZE, то размер страницы по умолчанию - 60 строк. ЬДДДДДДДДДДД Ы $STORAGE ЯДДДДДДДДДДД Определяет заданное чмсло байтов памяти для всех переменных, объявленных в исходном файле как INTEGER или LOGICAL. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $STORAGE: n ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Где n либо 2, либо 4. Использование величины 2 подразумевает 16-разрядную арифметику. Смотрите также важные замечания по пред- ставлению данных в конце описания "Типы данных" в части 2 "Термины и концепции". Особенности. $STORAGE не оказывает влияния на распределение памяти для переменных, описанных с точным указанием длины, например, INTEGER*2 или LOGICAL*4. Если несколько файлов текстов программ компилируются и компо- нуются вместе, Вы должны тщательно следить за тем, чтобы переменным (как фактическим, так и формальным параметрам), на которые ссыла- ются более чем в одном модуле, выделялась одинаковая память. Метакоманда $STORAGE должна предшествовать первому оператору описания в файле текста. Если в программе нет метакоманды $STORAGE, осуществляется выделение 4-х байтов по умолчанию. Это умолчание соответствует тому, что под переменные INTEGER, LOGICAL и REAL выделяется одина- ковое количество памяти, что требуется стандартом Фортрана 77. ЬДДДДДДДДДДДДДДДДДДДДДДД Ы $STRICT и $NOTSTRICT ЯДДДДДДДДДДДДДДДДДДДДДДД $STRICT запрещает особые возможности МС-Фортрана, отсутству- ющие в подмножестве Фортрана 77 в полном стандарте языка. Мета- команда $NOTSTRICT разрешает эти возможности. ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $[NOT]STRICT ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Особенности. Метакоманда $NOTSTRICT разрешает следующие возможности МС- Фортрана: 1. Символьное выражение может быть присвоено несимвольной переменной. 2. Символьное и несимвольное выражения могут быть сравнены. 3. В одном и том же символьном COMMON-блоке допустимы символь- ные и несимвольные переменные. 4. Можно установить эквивалентность между символьными и несим- вольными переменными. 5. В несимвольных переменных могут быть заведены символьные данные. По умолчанию установлена $NOTSTRICT. ЬДДДДДДДДДДДД Ы $SUBTITLE ЯДДДДДДДДДДДД Присваивает определенный подзаголовок последующим страницам листинга исходного текста (до тех пор пока не встретится другая метакоманда $SUBTITLE). ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $SABTITLE: 'подзаголовок' ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Где подзаголовок -любая определенная символьная константа. Мак- симальная длина - 40 символов. Особенности. Если в программе нет метакоманды $SUBTITLE, подзаголовок - это пустая строка. ЬДДДДДДДДД Ы $TITLE ЯДДДДДДДДД Присваивает определенный заголовок последующим страницам лис- тинга (до тех пор пока не встретится другая метакоманда $TITLE). ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД $TITLE: 'заголовок' ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Где заголовок - любая определенная символьная константа. Максимальная длина - 40 символов. Особенности. Если в программе нет метакоманды $TITLE, заголовок - это пустая строка. |