Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Fortran для персонального компьютера

..pdf
Скачиваний:
22
Добавлен:
15.11.2022
Размер:
12.5 Mб
Скачать

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

Каждому параметру предшествует символ слота (/), за которым следует одна или несколько букв. Вместо слэша мож­ но использовать также дефис (-). Например, /I и -1 являются допустимыми формами представления параметра I. В тексте данного руководства при описании параметров используется слэш, хотя в сообщениях об ошибках применяется дефис.

ПРИМЕЧАНИЕ Не смотря на то, что имена файлов могут задаваться и

строчными и прописными буквами, параметры следует зада­ вать так, как они показаны^ руководстве. Например, запись параметра в виде /Zd является пратыьной; запись г. виде /ZD или /zd - неверна.

Параметры могут появляться в любом месте' командой строки FL. В оошем случае, параметр относится ко всем фай­ лам, следующим за ним в командной строке, и "не влияет” на предшествующие файлы. Однако, данному правилу подчиня­ ются не все параметры (это отличие от правил указывается специально при описании конкретного параметра*).

Для некоторых параметров указываются аргументы, например имена файлов, строки или числа. В некоторых слу­ чаях разрешается использование пробелов между опцией и се аргументами: пользователю рекомендуется внимательно рас­ сматривать синтаксис каждой опции во избежание сшибок.

8.1.1 Получение справочной информации (параметр /HELP)

ПАРАМЕТР

/HELP

/help

При указании параметра /HELP возможно получение списка наиболее часто используемых параметров языка ФОР­

ТРАН.

Для “функционирования" данного параметра, Файл RL.HLP, содержащий описание всех параметров языка ФОР­ ТРАН, должен находиться в текущем каталоге или присутст­ вовать в описании пути в переменной PATH.

Спецификация данного параметра не зависит от регис­ тра букв. При его записи допустима любая комбинация про­

писных и строчных букв.

При указании параметра / HELP в командной строке FL, будет выдан список всех параметров; никаких других действий выполняться не будет (даже если командная строка содержит какую-либо другую информацию).

8.1.2Параметры для выполнения операций

сплавающей точкой ( / FP)

Следующие параметры, специфицируемые в команде FL, являются особенно важными и предназначены для опи­

ке; действие параметра не распространяется на объектные файлы, указанные в командной строке.

Если пользователь выполняет раздельную компиляцию отдельных исходных файлов программы, он должен указать

для всех компилируемых исходных файлов одну и ту же мо­ дель памяти.

ПРИМЕЧАНИЕ Пользователь должен учитывать, что в модели средней

емкости для данных генерируется 16битовые адреса типа near, наиболее эффективно обрабатываемые процессором типа 8086/80286. Если данные занимаютбольшео4К, то вырабаты­ ваются 32 битовые адреса типа far , состоящие из адреса сег­ мента и смещения в сегменте. При этом элементы массива размещаются в одном сегменте и для доступа к элементам одного массива используется только смещение. Обработка ад­ ресов типа far менее эффективна, чем адресов near. Если мас­ сивы могут занимать больше 64К, то необходимо использовать "огромную” модель памяти. При этом адрес каждого элемента является полным 32 битовым адресом. Использование адресов типа ’’huge” делает модель памяти "очень большой” емкости менее эффективной, чем модель памяти "large” Однако, мо­ дель памяти "huge” целесообразно использовать в тех случаях, когда необходимо, чтобы в программе большинство или все массивы, имеющие размер более 64К, "обрабатывались” кор­

ректно.

Выбираемые пользователем параметры математичес­ ких пакетов для выполнения операций над числами с плаваю­ щей точкой и моделей памяти задают имя стандартной биб­ лиотеки, которое команда FL помещает в создаваемый объектный файл. Эта библиотека рассматривается в дальней­ шем как "принимаемая по умолчанию”, поскольку компонов­ щик выполняет ее поиск по умолчанию. Соответствие ком­ бинаций параметров математических пакетов для обработки операций над числами с плавающей точкой и моделей памяти и имен библиотек, вставляемых командой FL в объектный файл, приведено в табл.8.1.

Опция /М поддерживает возможность использования приложений, функционирующих всреде операционной систе­ мы OS/2.

8.1.4Параметр установки "пооогового"

значения данных (/Gt)

ПАРАМЕТР

/Gt[<number>]

устанавливает "пороговое” значение для данных, т.с. предельное значение, используемое компилятором при разме­ щении данных. Параметр /Gt может использоваться только с программами, работающими с моделями большой и очень большой емкости, поскольку программы, работающие с моде­ лями памяти средней емкости, имеют только один сегмент данных. Использование параметра целесообразно, в частное-

Таблица 8.1 Параметры команды FL и имена библиотек

Параметр модели

Параметр мате-

Имя библиотеки

 

памяти

матического пакета

по умолчанию

 

/ FPi87 или /FPc87

/ AL или / АН

~ L L I B F O R 7 . L I B

 

/ FPi или /FPc

/АМ

ML1BFOR7.L1B

 

/AL или /АН

Ш В FORE. LIВ

;

 

/АМ

MLIBFORE.LIB

/FPa

/AL или / АН

LL1BFORA.L.JB

j

 

/АМ

М].IВ FORA.LIВ

j

ти, для программ, имеющих более 64К инициализированных статических и глобальных данных.

Параметр /Gt предписывает размешать все элементы данных, размер которых первышает или равен значению <numbcr>, в новом сегменте данных, вне сегмента данных, принимаемого по умолчанию, доступ к которым выполняется при помощи удаленного адреса.

Если параметр /Gt опушен, то по умолчанию "порого­ вое" значение принимается равным 32.767 байт.

Если параметр /Gt задан, но значение <number> не спе­ цифицировано, то по умолчанию принимается значение 256 байт. Если <number> специфицирован, то он должен следовать сразу за параметром /Gt; пробелы между ними недопустимы.

8.1.5 Специфические параметры управления синтаксисом файлов исходных программ (/4Y /4N)

Следующие параметры начинаются с цифры 4, указы­ вая на их специфическую принадлежность к языку ФОРТРАН 77. Буква Y ("да") указывает на разрешение параметра, а буква'N (’’нет") на его запрещение. В командной строке воз­ можно указывать несколько параметров /4.

Параметры /4 могут быть составными. Например, пара­ метр /4Ysfb запрещает все расширения языка ФОРТРАН фирмы Microsoft, разрешает ввод в свободном формате и раз­ решает режим расширенного управления ошибками. Следует отмстить, что группы параметров Y и N должны указываться как отдельный параметры командной строки; они не могут "смешиваться” в один параметр.

8.1.5.1 Управление необязательными свойствами языка (параметры /4Ys, /4Yi, /4Yv)

/4 1Y,N |s — Запрещение (Y) или разрешение (N) всех расширений языка ФОРТРАН фирмы Microsoft.

/4|Y,N ]i — Разрешение (Y) только расширений SAA: запрещение (N) всех расширений языка ФОРТРАН фирмы

Microsoft.

/4 1Y,N lv — Разрешение (Y) только расширений VAX: запрещение расширений языка ФОРТРАН фирмы Microsoft.

Ниже приведен список всех расширений IBM SAA. включенных в ФОРТРАН фирмы Microsoft:

—имена длиной 31 символ; —встроенная обработка битов;

—значимость регистра для исходною кода;

—COMMON допускает символ и нс символ в одном и том же блоке;

—встроенные функции CONJG, MFI.X и IMAG; —инициализация данных в операторах типа;

—оператор EQUIVALENCE допускает ассоциации симво­ лов и нс-символов;

—функции IOR. 1AND, NOR, iEOR, 1SHFT, BTEST, IBSET и IBCR;

—IMPLICIT NONE;

—директива компилятора INCLUDE;

—типы данных INTEGER*2. COMPLEX*16 и LOGICAL* l; —необязательная спецификация длины в операторах ти­

пов INTEGER, REAL и LOGICAL;

—использование подчеркивания в именах (_); —дескриптор преобразования Z.

Ниже приведен список большинства расширений VAX. включенных в ФОРТРАН фирмы Microsoft:

—имена длиной 31 символ:

—выбор значения ’APPEND’ параметра ACCESS в опера­ торе OPEN;

—допускается использование в целочисленных массивах операторов FORMAT;

—ключевые слова BLOCKSIZE и NML при вводе/выводе; —строки комментария для отладки;

—операторы DO без специфицированных меток; —оператор DO WHILE:

—оператор END DO:

—оператор EQUIVALENCE использует сисмвольные и не* символные элементы;

—использование оператора EQUIVALENCE для многомер­ ного массива с единственным индексом;

—экспонирование операторов REAL и COMPLEX; —IMPLICIT NONE;

—директива компилятора INCLUDE; —инициализация в строке объявления;

—встроенные комментарии;

—спецификация длины в операторах FUNCTION; —спецификация длины в объявлениях типов; —совместное использование символьных и нсспмвольных

элементов в операторах COMMON:

—альтернативный возврат нецелочисленных значений; —индексы нецелочисленных значений;

—числовые операции для .AND., .OR. и т.д.; —спецификация переменных блока общего пользования в

операторах DATA вне процедуры BLOCK DATA;

—операторы STRUCTURE. UNION, MAP; —возможность использования до 90 строк продолжения; —использование в именах знака доллара ($);

—операция .XOR..

8.1.5.2 Управление синтаксисом исходных файлов(параметры /4Vf, /4N f, /4Yt, /4 N t,/4 Y 6 , /4N6)

/4[Y ,N ]f— Разрешает ("Y") или запрещает ("N") ис­ пользование свободного формата.

/4 [Y,N ]t — Разрешает С Т ) или запрещает ("N") сок­ ращение ("усечение”) имен переменных.

/4[Y,N]6 — Разрешает (”Y") или запрещает ("N”) ис­ пользование операторов DO в стиле синтаксиса языка ФОРТ- РАН-66.

8.1.5.3Параметры отладки (/4Yb, /4Nb)

Параметр отладки предназначен для выполнения функ­ ции управления расширенной обработкой ошибок на этапе исполнения.

Параметр отладки позволяет получить информацию, которая может использоваться системой "обработки ошибок в программном файле. Если задан параметр отладки, то выпол­ нение процедуры оптимизации циклов в программе будет за­ прещено. Процедура отладки ’'разрешается” путем задания параметра / 4Yb и "запрещается” при задании параметра /4Nb. По умолчанию выполнение процедуры отладки запрещено.

При спецификации параметра отладки выполняется то же действие, что и при указании метакоманды или $DEBUG или $NODEBUG, в начале исходного Файла, подлежащего компиляции. Если метакоманды $DEBUG или $NODEBUG указаны в файле "позже”, т.е. не в начале файла, то процедура отладки будет разрешена или запрещена, соответсвснно.

8.1.5.4Параметр объявления (/4Yd,/4Nd)

Предусматривает выполнение процедуры управления предупреждающими сообщениями при наличии необъявлен­ ных переменных. Когда данный параметр указан и разрешен, компилятор генерирует предупреждающие сообщения при первом же появлении необъявленной переменной.

"Разрешающий” параметр объявления имеет вид: / 4Yd; "запрещающий” параметр записывается как /4Nd.

По умолчанию принимается "запрещающий” параметр объявления (если в исходном файле не присутствует метако­ манда $DECLARE).

Параметр объявления обеспечивает получение того же результата, что и при выполнении метакоманды $DECLARE (или $NODECLARE), указываемой в начале каждого исходно­ го файла, подлежащего компиляции. Действие метакоманд $DECLARE и $NODECLARE, указанных в конкретном.файле, распространяется только на этот конкретный файл и не изме­ няет действия параметров /4Yd или /4Nd на другие файлы, специфицированные в командной строке.

8.1.5.5 Автоматические переменные Параметры (/4Ya,/4Na).

Параметр / 4Ya предписывает рассматривать все подхо­ дящие переменные в соответствующих файлах как автома­ тические. Они объявляются в стэке. (В компиляторе языка ФОРТРАН по умолчанию предполагается, что все перемен­ ные статические). Параметр /4Na запрещает автоматические переменные (исключая тс, что объявлены внутри программы) для соответствующих файлов. Дополнительные сведения об автоматических переменных приведены в подразд.4.2.

8.1.6 Установка размера целых чисел, принимаемого по умолчанию (параметры /412, /414)

По параметру /41 в памяти отводится либо 2либо 4байта для всех переменных, объявленных в исходном файле как пе­ ременные типа INTEGER, либо как LOGICAL. ГТо умолчанию принимается значение 4.

Параметр /41 применяется к остатку командной строки или действует до тех пор, пока не будет задан другой параметр /41. Действие параметра /41 аналогично действию метакоман­ ды $STORAGE,

8.1.7Условная компиля (параметры /4сс,

ПАРАМЕТРЫ

/4cc<string> /D<symbol>[=<va1> ]

Параметр /4сс позволяет выполнять условную компи­ ляцию исходного файла.

Строка <stnng> представляет собой набор литер алфа­ вита, указывающих, какие строки в исходном файле следует компилировать. Любая строка файла исходной программы, начинающейся с буквы, указанной в строке <string>, будет скомпилирована; все остальные строки рассматриваются как комментарии. Регистр буквы не является значимым. Буква должна присутствовать вЪервой позиции строки текста исход­ ного файла. Строка <string> может быть, при необходимости, заключена в двойные кавычки С "), однако ото является нео­ бязательным.

ПРИМЕЧАНИЕ Программные строки, у которых в первой позиции при­

сутствует буква "С" или "с" всегда рассматриваются как ком-

ментарии,

Параметр / D определяет символическое имя, использу­ емое метакомандами условной компиляции. Это эквивалент­ но действию метакоманды $DEFINE внутри программного файла. Имя должно следовать сразу за параметром /О, без пробелов. Могут быть добавлены знак равенства ицелочислен­ ное значение/При этом символу назначается специфическое значение, которое проверяется метакомандами условной ком­ пиляции.

8.1.8Компиляция без компоновки (параметр /с)1

Параметр /с (иногда он называется "только-компиля- ция") запрещает выполнение процедуры компоновки. Пара­ метр /с относится ко всей командной стоке FL, независимо от того, в каком ее месте он указывается.

8.1.9Именование объектного файла

(параметр /Fo)

ПАРАМЕТР

/Fo<objfile>

По умолчанию в команде FL каждому объектному фай­ лу назначается то же "базовое” имя, что и имя соответствую­ щего исходного файла, плюс расширение .OBJ. Параметр / Fo позволяет пользователю задавать объектному файлу некото­ рое другое имя или создавать его в другом каталоге.

Аргумент <obifile> должен следовать сразу за парамет­ ром, без пробелов. Этот аргумент может быть спецификацией

файла, именем устройства, или спсцификаицей пути. Если аргумент <objfile> является спецификацией файла, то пара­ метр / Т о относится только к исходному файлу, следующему в командной строке сразу за параметрами. Объектный файл, создаваемый при компиляции данного исходного файла, имеет имя, задаваемое аргументом <objfile>.

Если аргумент <objfilc> является именем устройства или спецификацией пути, то команда ЕЕсоздаетобъектныефайлы в заданном каталоге или устройстве. Для объектных файлов используются имена, принимаемые по умолчанию, т.е. каж­ дый объектный файл имеет "базовое" имя, соответствующее "базовому" имени исходного файла.

ПРИМЕЧАНИЕ Когда пользователь задает только спецификацию пути,

тогда аргумент<objfilc> должен оканчиваться символом ооратного слэша (\).

8.1.10Именование исполняемых файлов

(параметр /Те)

ПАРАМЕТР

/Fe<excfile>

По умолчанию, исполняемый файл, получаемый по ко­ манде FL," имеет "базовое" имя первого файла (исходного или объектного), указанного в командной строке, плюс расшире­ ние .EXE. Параметр / Т с позволяет задавать исполняемом} файлу некоторое другое имя или создавать исполняемый файл в другом каталоге.

8.1.11 Создание файла листинга (параметр /F)

В команде РЕдопустимы ряд параметров, используемых для получения файла листинга. Пользователь может создать

листинг исходной програмы, листинг карты памяти, один или несколько типов листингов объектных файлов. Имеется также

возможность устанвливать заголовки и подзаголовки листинга исходной программы, а также управлять длиной строк и

страницлистинга исходной программы. Ниже приведен список параметров, при указании которых генерируются листинги:

/Fs l<listfile> ] — Получение листинга исходной програм­ мы.

/FI [<lislfilc> ] — Получение листинга объектного файла. /Fa [<listfilc> ] — Получение листинга программы на языке

ассемблера.

/Fc[<listfile> 1— Получение "комбинированного" листинга исходного и объектного файла.

/Fm [<mapfile> ] — Получение листинга карты памяти, в котором последовательно перечислены сегменты.

Имена расширений файлов, принимаемые по умолча­ нию будут при этом следующими:

.LST —для листинга исходного файла;

.COD — для листинга объектного файла и его комбинации;

.ASM — для листинга ассемблерного файла;

.МАР — для листинга карты памяти.

ПРИМЕЧАНИЕ 1.

Имя файла, принимаемое по умолчанию, используется в том случае, когда параметр задается без аргументов или при

использовании в качестве аргумента имени устройства или спецификации пути.

ПРИМЕЧАНИЕ 2.

Расширение, принимаемое по умолчанию, использует­ ся в том случае, когда при задании имени файла расширение имени опущено.

8.1.12Специальные имена файлов

Пользователь может использовать в качестве аргумен­ тов имени файла, в параметрах листингов, следующие имена устройств (принятые в операционной ситеме DOS):

AUX — Относится к коммуникационному каналу (пос­ ледовательному каналу связи).

CON — Относится к консоли (дисплей+клавиатура). PRN — Относится к основному принтеру.

NUL— Специфицируется "пустой” (несуществующий) файл. Задание NUL в качестве имени файла означает, что ни

один файл не создастся.

Указанныеспециальные имена позволяют,,направлять" файлы листингов на терминал или принтер. Даже если поль­ зователь добавляет обозначение устройства или расширение имени файла к перечисленным специальным именам файлов, они по прежнему будут "соотнесены" с устройствами, указан­ ными в данном списке. Например, спецификация вида A:CON.XXX будет "соотнесена к консоли, но не будет расс­ матриваться как имя дискового файла.