Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FORTRAN.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.21 Mб
Скачать

5. Программы, подпрограммы и функции.

1. Основная программа.

Основная программа - это любая программная единица, у которой первый оператор - это не FUNCTION,SUBROUTINE или BLOCK DATA. Первым оператором основной программы может быть оператор PROGRAM. Если у основной программы нет оператора PROGRAM, ей будет присвоено имя MAIN. Имя MAIN тогда не может быть использовано как имя любого другого глобального объекта.

Выполнение программы всегда начинается с первого выполняемого оператора основной программы. Соответственно, в каждой выполняемой программе должна быть только одна основная программа.

Для дополнительной информации о программах и операторе PROGRAM смотрите часть 3 "Операторы".

2. Подпрограммы.

Подпрограмма - это программная единица, которая может быть вызвана из другой программной единицы c помощью оператора CALL. Будучи вызванной, подпрограмма производит набор действий, определенных ее выполняемыми операторами, и затем возвращает управ- ление на оператор, следующий непосредственно за вызвавшим ее оператором, или на оператор, определенный как переменный возврат (смотрите оператор CALL в части 3).

Подпрограмма не возвращает величину прямо, хотя величины могут быть возвращены в вызывающую программную единицу через параметры и COMMON-блоки.

Для более подробной информации о подпрограммах смотрите часть 3 "Операторы".

3. Функции.

На функцию ссылаются в выражении, и она возвращает величину, которая используется при вычислении этого выражения. Существует три вида функций:

  1. Внешние функции

  2. Встроенные функции

  3. Функции-операторы.

Каждый из них описан более подробно в дальнейших параграфах.

Ссылка на функцию может появиться в арифметическом или логи- ческом выражении. Когда выполняется ссылка на функцию, функция вызывается, а величина результата используется как операнд в вы- ражении, которое содержит ссылку на функцию. Форма ссылки на фун- кцию следующая:

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

имя-функции ([пар[,пар]...])

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

имя-функции - это определенное пользователем имя внешней или

встроеной функции или функции-оператора.

пар - это фактический параметр.

Правила для параметров функций аналогичны правилам для под- программ (за исключением переменного возврата, который недопустим) и приведены в описании оператора CALL в части 3. Некоторые допол- нительные ограничения, применимые для функций-операторов и встро- еных функций, описаны ниже в этой части.

3.1. Внешние функции.

Внешняя функция определена программной единицей функции. Она начинается оператором FUNCTION и заканчивается оператором END. Она может содержать любые виды операторов, кроме PROGRAM, FUNCTION, SUBROUTINE или BLOCK DATA.

3.2. Встроенные функции.

Встроенные функции определены в языке МС-Фортран и доступны для использования в программе на МС-Фортране. В таблице 5-1 при- ведены имена, назначения, типы параметров и типы функций для всех встроенных функций, допустимых в МС-Фортране, с дополнительными примечаниями после таблицы.

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

Имя встроенной функции может появиться в операторе INTRINSIC. Имя встроенной функции может также появиться в операторе описания типа, но только если тип тот же самый, что и стандартный тип этой встроенной функции.

Параметры некоторых встроенных функций ограничены назначением этих функций. Например, логарифм отрицательного числа математически не определен и поэтому недопустим.

Многие встроенные функции имеют общие имена, что позволяет ссылаться на функцию без уточнения типа параметров при ссылке. Когда ссылаются на общее имя компилятор выбирает соответствующую относительно специфическую функцию в зависимости от типа парамет- ра(ов) в ссылке на функцию.

Например, функция INT - это общее имя шести чуть отличающихся функций: одна с собственным именем, совпадающим с основным, три с особыми именами (IFIX,IDINT,ICHAR) и две - безымянных (для типов данных COMPLEX*8 и COMPLEX*16).

Все углы в таблице 5-1 выражены в радианах. Все параметры в ссылке на встроенную функцию должны быть того же типа. Х и У - действительные, Z - комплексное, I и J - целые, а С,С1 и С2 - сим- вольные величины. Числа в квадратных скобках в колонке 1 ссылаются на примечания после таблицы.

В дальнейшем REAL эквивалентно REAL*4, DOUBLE PRECISION - REAL*8, a COMPLEX - COMPLEX*8. Если в указанном типе параметра - INTEGER, то тип может быть INTEGER*2 или INTEGER*4. Если указанный тип функции - INTEGER, тип будет целый по умолчанию определенный метакомандой $STORAGE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]