«Фортран-77. Краткое описание основных команд компилятора и линкера Microsoft-Фортрана (версии 4.01-4.10)»

3090


Настроики
A

Фон текста:

  • Текст
  • Текст
  • Текст
  • Текст
  • Аа

    Roboto

  • Аа

    Garamond

  • Аа

    Fira Sans

  • Аа

    Times

ЦНТТМ "Физтех" 1989 г.

Фортран-77. Краткое описание основных команд

компилятора и линкера Microsoft-Фортрана (версии 4.01-4.10)

1. Краткое описание отличий МS-фортрана от стандарта Fortran-77.

____________________________________________________________

а) отсутствует оператор "PRINT"

б) отсутствует оператор "ENTRY"

в) отсутствует z-формат ввода-вывода шестнадцатеричных переменных

г) в операторе "PARAMETER" не допускаются вещественные выражения

д) нумерация элементов массива начинается с единицы

е) ограничение на длину массива - 16384 элемента

ж) ограничение на количество продолжений в операторе "DATA" - 12 строк

2. Основные команды компилятора

____________________________

FL Command (Команды компилятора)

# Sintax (Синтаксис команд компилятора и линкера)

FL [option..][filespec..][option..][filespec..] [/link [libfield] [linkoption]]

Комментарий:

FL [опция..] [спецификация файлов..][/link [библиотека] [опции линкера]

# Oпции

/4ccstring

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

строки, начинающиеся с литер.

/4I{2|4}

Отведение 2 (/4I2) или 4 (/4I4) байт под переменные типа INTEGER и

LOGICAL. По умолчанию - /4I4.

/4{Y|N}6

Допустима (/4Y6) или недопустима (/4N6) организация циклов DO стандарта

FORTRAN - 66.

/4N6 по умолчанию.

/4{Y|N}d

Допустимы (/4Yd) или недопустимы (/4Nd) предупреждения о неописанных пе-

ременных. /4Nd по умолчанию.

/4{Y|N}

Допустим (/4Yf) или недопустим (/4Nf) свободный формат в исходной про-

грамме. /4Nf по умолчанию.

/4{Y|N}t

Разрешено (/4Yt) или не разрешено (/4Nt) использование более шести сим-

волов для описания имен переменных. /4Yt по умолчанию.

/Aletter

Установка модели памяти."letter" может принимать значения M или L,

М - для средней модели, L - для большой. По умолчанию - /AL.

/c

Компиляция без линкования.

/Fa[listfile]

Генерация листинга программы на ассемблере.

/Fc[lisfile]

Генерация смешанного объектно-ассемблерного листинга.

/Feexefile

Задание имени для сгенеренного выполняемого файла. По умолчанию зада-

ется такое же как у исходного с расширением .EXE.

/Fl[listfile]

Генерация листинга объектного файла.

/Fm[mapfile]

Генерация карты распределения памяти.

/Foobjfile

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

По умолчанию генерится объектный файл с тем же именем, что и исходный,

с расширением .OBJ.

/Fs[listfile]

Генерация листинга исходного файла.

/G{0|1|2}

Генерация инструкций для процессора 8086/8088 (/G0), 80186/80188

(/G1),или инструкций для 80286 (/G2). По умолчанию - (/G0).

/Gr

Генерация объектных файлов совместимых с объектными файлами

FORTRANа версии 3.2.

/Gt[number]

Управление сегментацией данных. Применение опции позволяет расширить

область данных до 256К.

/HELP

Выдача на экран списка опций компилятора FL.

/Oletters

Контроль оптимизации."letter" может принимать одно из следующих

значений:

Значение Описание

x Полная оптимизация (устанавливается по умолчанию)

s Генерация наиболее компактного кода.

t Оптимизация по времени вычисления.

/Sllinesize

Установка ширины строки листинга исходного файла. Отрабатывает только

в том случае, если до того применялась опция /Fs.

/Sppagesize

Установка количества строк на страницу для листинга исходного файла.

/Ss"subtitle"

Печать подзаголовка на листинге исходного файла.

/St"title"

Печать заголовка на листинге исходного файла (печатается в левом верх-

нем углу)

/Zi

Запись в объектный файл символьной информации, необходимой для работы

символьного отладчика Microsoft CV.

/Zs

Допустим только синтаксический контроль.

# Окружение компилятора

____________________________________________________________________

Переменная Tип файлов

PATH Выполняемые (.ехе), управляющие программы

компилятора

INCLUDE Файлы, вставляемые по метакоманде $INCLUDE

TMP Временные файлы, создаваемые компилятором

LIB Библиотеки (.lib)

____________________________________________________________________

Переменные определяются с помощью команд DOS - SET и PATH

Лучше всего создать ВАТ - файл и включить в него эти команды:

PATH=C:\F77\BIN

SET LIB=C:\F77\LIB

SET TMP=C:\F77\TMP

SET INCLUDE=C:|INCLUDE

____________________________________________________________________

# Опции для чисел с плавающей точкой

Таблица 1. Основные опции

______________________________________________________________________

Использование Выбираемые

Опция Метод Преимущества копроцессора библиотеки

______________________________________________________________________

/FPi87 In-line Наиболее быст- Требуется LLIBFOR7.LIB

рая и компактная копроцессор или (1)

опция,требующая MLIBFOR7.LIB

копроцессор

/FPc87 Calls Медленнее,чем Требуется LLIBFOR7.LIB

/FPi87,но поз- копроцессор или (2)

воляет изменить MLIBFOR7.LIB

библиотеку во

время линкования

/FPi In-line Размеры кода боль- Использует LLIBFORE.LIB

ше чем при /FPi87, копроцессор или

но может работать если он есть MLIBFORE.LIB

как с копроцессором,

так и без него

/FPc Calls Медленнее чем Использует LLIBFORE.LIB

/FPi но позволяет копроцессор или

изменить библиоте- если он есть MLIBFORE.LIB

ку во время линко-

вания

/FPa Calls Самая быстрая и Копроцессор LLIBFORE.LIB

и удобная опция, игнорируется

при отсутствии MLIBFORE.LIB

копроцессора, но

возможна потеря

точности при сче-

те

______________________________________________________________________

Приложение 1. Работа со внешними файлами в MS-Fortran.

_______________________________________

Синтаксис операторов, позволяющего работать со внешними файлами:

OPEN (UNIT-spec[,FILE='fname'][,STATUS='status'][,ACCESS='access']

[,FORMAT='format'][,IOSTAT=iocheck][,RECL=rec-lengh]

unit-spec - целое число в диапазоне (-3267; +3267), требующийся

логический номер устройства (0,* - консоль и клави-

атура (открыты постоянно))

fname - имя внешнего файла

status - может принимать значения либо OLD - если файл уже

существует, либо NEW - если требуется его заведение

access - SEQUENTAL - для файла последовательного доступа,

либо DIRECT - для файла прямого доступа.

format - FORMATTED - для форматного типа записи,

UNFORMATTED - для бесформатного

iocheck - целая переменная: если 0 - то файл открыт успешно,

если целое число, большее нуля - ошибка при открытии

rec-length- целое число или выражение, определяющее длину записи

в байтах. Требуется только при работе с файлами прямо-

го доступа.

WRITE(unit-spec[,format-sec][,IOSTAT=iocheck][,ERR=slabel]

[,REC=rec-num]) IOLIST

format-spec - целая константа, указатель метки оператора FORMAT

slabel - метка, на которую будет передано управление в слу-

чае ошибки ввода - вывода

rec-num - целое число >= 1, номер рекорда,который будет за-

писан (только для файлов прямого доступа).

IOLIST - список ввода-вывода

Остальные параметры приведены в описании оператора

ОРЕN

READ(unit-spec[format-spec][,IOSTAT=iocheck][,REC=rec-num][,END=slabel1]

[,ERR=slabel]) IOLIST

slabel1 - метка, по которой будет передано управление, если

встретится конец файла.

Остальные параметры смотри в описаниях OPEN и WRITE.

BACKSPACE unit-spec

- Производится возвращение на одну запись назад для

файла с указанным unit-spec.

ENDFILE unit-spec

- В качестве записываемой информации записывается приз-

нак конца файла.

REWIND unit-spec

- Переход к началу файла записи (чтения).

3.Cимвольный отладчик Code View

_____________________________

# Синтаксис команды

CV [option] executablefile [arguments]

Комментарий:

CV [опция] ЕХЕ-файл [аргументы]

# Опции

______________________________________________________________________

Опция Действие

______________________________________________________________________

/B Запуск отладчика Code View в черно-белой моде

( при использовании графадаптера CGA)

/Ccommands Выполняемые команды при запуске

/F Запуск отладчика с переключением экрана

( замена экрана путем переключения видео-страниц)

/M Подключение "мыши"

/T Starts the Code View debugger in sequational mode

/S Запуск отладчика с экранным "своппингом"

(смена экранов путем сохранения в буфер и чтением

из него)

/W Запуск отладчика в "оконном" режиме

/43 Запуск отладчика при наличии карты EGA .

______________________________________________________________________

4. Команды линкера.

_______________

LINK Command

# Syntax

LINK objfile[,[exefile][,[mapfile][,[libfiles]]]] [options][;]

# Опции

/CO[DEVIEW]

Создание .ехе файла в специальном формате, содержащем символьную

информацию, необходимую для работы отладчика Microsoft Code View.

/HE[LP]

Показ всех опций команды LINK на экране.

/HI[GH]

Размещение команд ЕХЕ-файла с максимально возможным размером.

/I[NFORMATION]

Выдача информации во время линкования. Показ имен текущих линкуемых

модулей.

/M[AP]

Создание выходного файла, содержащего перечень всех глобальных пере-

менных входных файлов.

/NOD[EFAULTLIBRARYSEARCH]

Вызовы отсутствующих библиотек игнорируются.

/NOI[GNORECASE]

Считать большие и маленькие буквы различными.

/P[AUSE]

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

было сменить диск.

/SE[GMENTS]:number

Установка числа сегментов, отводимых линкером для размещения

программы.

По умолчанию - 128.

5. Команды библиотекаря.

____________________

LIB Command (Команды библиотекаря)

# Syntax

LIB oldlib [commands][file.obj] [,newlib][;]

Комментарий:

LIB старая библиотека [команды][,новая библиотека]

# Команды

______________________________________________________________________

Символ Действие

+ Добавление OBJ-файла в новую библиотеку.

- Удаление модуля из библиотеки.

-+ Замена модуля, находящегося в библиотеке на модуль,

имеющийся в объектном файле.

* Копирование объектного модуля в .obj-файл.

-* Перемещение объектного модуля из библиотеки во

внешний файл типа .obj.

______________________________________________________________________

6.Встроенные функции в ФОРТРАНЕ.

_____________________________

Таблица, приведенная ниже, показывает значения типов переменных,

используемых в таблице 2,"Встроенные функции":

Сокращение Тип данных

gen Возможны аргументы разного типа

int INTEGER, INTEGER*1, INTEGER*2 or INTEGER*4

int1 INTEGER*1

int2 INTEGER*2

int4 INTEGER*4

real REAL, REAL*4, DOUBLE PRECISION, or REAL*8

real4 REAL*4

dbl DOUBLE PRECISION

log LOGICAL, LOGICAL*1, LOGICAL*2, or LOGICAL*4

log1 LOGICAL*1

log2 LOGICAL*2

log4 LOGICAL*4

cmp COMPLEX, COMPLEX*8, or COMPLEX*16

cmp8 COMPLEX*8

cmp16 COMPLEX*16

char CHARACTER[*n]

В тaблице 2 показаны в алфавитном порядке основные встроенные функции

Microsoft FORTRANа

______________________________________________________________________

Тип Тип

Имя Назначение Аргумента Функции

______________________________________________________________________

ABS(gen) Абсолютное int,real, Тот же,что

значение или cmp и аргумента

кроме cmp (1)

ACOS(real) Аркосинус real Тот же что

и аргумента

AIMAG(cmp8) Мнимая часть cmp8 real4

ALOG(real4) Натуральный real4 real4

логарифм

ALOG10(real4) Десятичный real4 real4

логарифм

AMAX0(intA,intB[,intC...]) Максимум int real4

AMAX1(real4A,real4B

[,real4C..] ) Максимум real4 real4

AMIN0(intA,intB[,intC...]) Минимум int real4

AMIN1(real4A,real4B

[,real4C..] ) Минимум real4 real4

AMOD(real4A,real4B) Остаток real4 real4

ASIN(real) Арксинус real (2)

ATAN(real) Арктангенс real (2)

ATAN2(realA,realB) Арктангенс real (2)

realA/realB

BTEST(intA,intB) Bit - тест int log

CABS(cmp) Абсолютное знач. cmp real1

CCOS(cmp8) Косинус cmp8 cmp8

CDABS(cmp16) Абсолютное знач. cmp16 dbl

CDCOS | | Косинус | | | |

CDEXP | | Экспонента | | | |

CDLOG | cmp16 | Натуральн. логарифм cmp16 | | cmp16 |

CDSIN | | Синус | | | |

CDSQRT | | Корень | | | |

CEXP(cmp8) Экспонента cmp8 cmp8

CHAR(int) Преобр.типа int char

CLOG(cmp8) Логарифм cmp8 cmp8

CMPLX(genA[,genB]) Преобр.типа int,real or cmp8

int

CONJG(cmp8) Комплексно- cmp8 cmp8

сопряженное

COS(gen) Косинус real or cmp (2)

COSH(real) Гиперболическ. real (2)

косинус

COTAN(real) Котангенс real (2)

CSIN(cmp8) Синус cmp8 cmp8

CSQRT(cmp8) Корень cmp8 cmp8

DABS(dbl) Абс.значение dbl dbl

DACOS(dbl) Аркосинус dbl dbl

DASIN(dbl) Арксинус dbl dbl

DATAN(dbl) Арктангенс dbl dbl

DATAN2(dblA,dblB) dbl dbl

DBLE(gen) Преоб.типа int,real or dbl

int

DCMPLX(genA[,genB]) Преоб.типа --- // --- cmp16

DCONJG(cmp16) cmp16 cmp16

DCOS | | | | | |

DCOSH | | | | | |

DCOTAN | dbl | | dbl | | dbl |

DDIM | | | | | |

DEXP | | | | | |

DFLOAT(gen) Преоб.типа int,real,cmp dbl

DIM(genA,genB) Положительная int,real (2)

разность

DIMAG(cmp16) Мнимая часть cmp16 dbl

DINT | | | | dbl

DLOG | | | |

DLOG10| dbl | | dbl |

DMAX | | | |

DMIN1 | | | |

DMOD | | | |

DREAL(cmp16) Преоб.типа cmp16 dbl

DSIGN(dblA,dblB) замена знака dbl dbl

DSIN | | | | | |

DSINH | | | | | |

DSQRT | dbl | | dbl | | dbl |

DTAN | | | | | |

DTANH | | | | | |

EOF(int) Конец файла int log

EXP(gen) Экспонента real,cmp (2)

FLOAT(int) Преобр.типа int real

HFIX(gen) Преобр.данных int,real,cmp int2

IABS(int) Абсолютное знач. int int

IBCHNG(intA,intB) Смена бита int (2)

IBCLR(intA,intB) Очистка бита int (2)

IBSET(intA,intB) Установка бита int (2)

ICHAR(char) Преоб.типа char int

IDIM(intA,intB) Положит.разность int int

IDINT(dbl) Преоб.типа dbl int

IMAG(cmp) Мнимая часть cmp real4

INT | | | int, | int

INT1 | | | real | int1

INT2 | gen | Преоб.типа | or | int2

INT4 | | | cmp | int4

INTC | | | | INTEGER

ISHA | | Арифметич. сдвиг | | | |

ISHFT | | Логический | | | |

ISHL | | сдвиг | | | |

ISIGN(intA,intB) Смена знака int int

JFIX(gen) (3) int int4

LEN(char) Длина char char int

LGE | | > | | | |

LGT | charA,charB | <= | char | | log |

LLT | | < | | | |

LOC(gen) Адрес Any int2 or int4

LOG(gen) Натуральн.логарифм real (2)

LOG10(gen) Десятичн.логарифм real (2)

MAX0(intA,intB[,..]) Максимум int int

MAX1(realA,realB[...]) Максимум real real

MIN(genA,genB[...]) Минимум real,int (2)

MOD(genA,genB) Остаток real,int (2)

REAL(gen) (3) int real4

SIGN(genA,genB) Смена знака int,real (2)

SIN(gen) Синус real,cmp (2)

SINH(real) Гиперб.синус real (2)

SNGL(dbl) Преоб.типа dbl real4

SQRT(gen) Корень real,cmp (2)

TAN(real) Тангенс real (2)

TANH(real) Гиперб.тангенс real real

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(1) если аргумент COMPLEX*8, функция REAL*4

(2) если аргумент COMPLEX*16, функция REAL*8

(3) Тип данных преобразуется.

______________________________________________________________________

Дополнительные процедуры:

В Microsoft FORTRANе имееются дополнительные процедуры, позволяющие

считывать и устанавливать системную дату и системное время.

# Процедуры работы со временем и датой.

Таблица 3.

______________________________________________________________________

Имя

______________________________________________________________________

GETTIM(ihr,imin,isec,i100th) Взять системное время INTEGER*2

SETTIM(ihr,imin,isec,i100th) Уст.системное время INTEGER*2 LOGICAL

GETDAT(iyr,imon,iday) Взять системную дату INTEGER*2

SETDAT(iyr,imon,iday) Уст.системную дату INTEGER*2 LOGICAL

______________________________________________________________________

Аргументы могут принимать следующие значения:

Аргумент Значение

ihr Часы (0-23)

imin Минуты(0-59)

isec Секунды (0-59)

i100th Десятые секунд(0-99)

iyr Год (xxxx AD)

imon Месяц (1-12)

iday День месяца (1-31)

____________________________________________________________________

7.МЕТАКОМАНДЫ

___________

Любая строка, начинающаяся с символа $ в колонке 1 интерпретируется

как метакоманда. Метакоманды и их аргументы должны быть расположены на

одной строке.

Ниже приводится список метакоманд и соответстующих им опций компиля-

тора FL.

----------------------------------------------------------------------

Метакоманда Опция

$DEBUG /4Yb

$DEBUG:string /4ccstring

$DO66 /4Y6

$DECLARE /4Yd

$FREEFORM /4Yf

$NODEBUG /4Yb(default)

$NODECLARE /4Nd(default)

$NOFREEFORM /4Nf(default)

$LINESIZE:n /Sl linesize

$NOTRUNCATE /4Nt

$NOTSTRINCT /4Ns(default)

$PAGESIZE:n /Sp pagesize

$STIRICT /4Ys

$STORAGE:2 /4I2

$STORAGE:4 /4I4

$SUBTITLE:'subtitle' /Ss"subtitle"

$TITLE:'title' /St"title"

$TRUNCATE /4Yt(default)

Приложение 2.

____________

Краткие примеры по работе с компилятором FL.

1).

FL A.FOR B.FOR C.OBJ

Компилируются исходные файлы A.FOR и B.FOR, затем они линкуются

с файлом C.OBJ и создается выполняемый файл A.EXE

2).

FL /Zs TEST*.FOR > TEST.ERR

Производится синтаксический анализ всех исходных файлов текущей

директории, начинающихся с символов TEST. Сообщения о найденных

ошибках запишутся в файл TEST.ERR.

  • Реклама на сайте

    Комментарии к книге «Фортран-77. Краткое описание основных команд компилятора и линкера Microsoft-Фортрана (версии 4.01-4.10)», Автор неизвестен -- Компьютеры

    Всего 0 комментариев

    Комментариев к этой книге пока нет, будьте первым!

    РЕКОМЕНДУЕМ К ПРОЧТЕНИЮ

    Популярные и начинающие авторы, крупнейшие и нишевые издательства