электромагнитные измерительные преобразователи

Последние статьи

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА - Фортран - программы, подпрограммы и функции.

Индекс материала
Фортран - программы, подпрограммы и функции.
Стр. 2
Стр. 3
Все страницы





              ПРОГРАММЫ, ПОДПРОГРАММЫ И ФУНКЦИИ.








     ОБ ЭТОЙ ЧАСТИ.

     Эта часть расширяет описание операторов PROGRAM, SUBROUTINE,
FUNCTION и функции-оператора, приведенное в части 3. В ней приво-
дится информация о типах функций и взаимодействии формальных и
фактических параметров при вызове функции или подпрограммы.



     Содержание.



1.ОСНОВНАЯ ПРОГРАММА.  . . . . . . . . . . . . . . . . . . .  5-1

2.ПОДПРОГРАММЫ.  . . . . . . . . . . . . . . . . . . . . . .  5-1

3.ФУНКЦИИ. . . . . . . . . . . . . . . . . . . . . . . . . .  5-1

3.1.Внешние функции. . . . . . . . . . . . . . . . . . . . .  5-2

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

3.3.Функции-операторы. . . . . . . . . . . . . . . . . . . .  5-8

4.ПАРАМЕТРЫ. . . . . . . . . . . . . . . . . . . . . . . . .  5-8

5.ПЕРЕДАЧА ЦЕЛЫХ ПАРАМЕТРОВ. . . . . . . . . . . . . . . . .  5-9



 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. (Для более полной информации смотрите часть 6).


ЙННННННННННННЛНННННННННННННННННННННННЛННННННННННЛННННННННН»
є    ИМЯ     є       НАЗНАЧЕНИЕ      єТИП ПАРАМ.єТИП Ф    є
МННННННННННННКНННННННННННННННННННННННКННННННННННКННННННННН№
є Преобразование типов                                    є
є INT(общее) є преобразует в INTEGER є   любой  єINTEGER  є
є INT2(X)    є преобразует в INTEGER*є   любой  єINTEGER* є
є INT4(X)    є преобразует в INTEGER*є   любой  єINTEGER* є
є INT(X) [1] є преобразует в INTEGER є   REAL*4 єINTEGER  є
є IFIX(X)    є преобразует в INTEGER є   REAL*4 єINTEGER  є
є IDINT(X)   є преобразует в INTEGER є   REAL*8 єINTEGER  є
є ICHAR(C)[S]є преобразует в INTEGER є CHARACTERєINTEGER  є
є REAL(общее)є преобразует в REAL*4  є   любой  єREAL*4   є
є REAL(X) [2]є преобразует в REAL*4  є  INTEGER єREAL*4   є
є            є                       є   REAL*4 єREAL*4   є
є DREAL(Z)   є преобразует COMPLEX*16єCOMPLEX*16є  REAL*8 є
є            є в REAL*8              є          є         є
є FLOAT(I)   є преобразует в REAL*4  є  INTEGER є  REAL*4 є
є CHAR(X)    є преобразует в символ. є  INTEGER єCHARACTERє
є SNGL(X)    є преобразует в REAL*4  є   REAL*8 є  REAL*4 є
є DBLE(общее)є преобразует в REAL*8  є    любой є  REAL*8 є
є CMPLX(Z[,Y]є преобразует в COMPLEX*є    любой єCOMPLEX*8є
є         [4]є                       є          є         є
є DCMPLX(Z[,Yє преобразует в COMPLEX*є    любой єCOMPLEX*1є
є                                                         є
є Взятие целой части                                      є
є AINT(общее)є целая часть от REAL   є   REAL*4 є  REAL*4 є
є AINT(X)    є целая часть от REAL*4 є   REAL*8 є  REAL*8 є
є            є                       є   REAL*4 є  REAL*4 є
є DINT(X)    є целая часть от REAL*8 є   REAL*8 є  REAL*8 є
є                                                         є
є Округление                                              є
є ANINT(общееє округление REAL       є   REAL*4 є  REAL*8 є
є            є                       є   REAL*8 є  REAL*8 є
є ANINT(X)   є округление REAL*4     є   REAL*4 є  REAL*4 є
є DNINT(X)   є округление REAL*8     є   REAL*8 є  REAL*8 є
є                                                         є
є Округление в целое                                      є
є NINT(общее)є округление с переводомє   REAL*4 є INTEGER є
є            є в целое               є   REAL*8 є INTEGER є
є NINT(X)    є округление с переводомє   REAL*4 є INTEGER є
є            є в целое               є          є         є
є IDNINT(X)  є округление с переводомє   REAL*8 є INTEGER є
є            є в целое               є          є         є
є                                                         є
є Абсолютная величина                                     є
є ABS(общее) є абсолютная величина   є    любой є   любой є
є IABS(I)    є абсолютное целое      є  INTEGER є INTEGER є
є ABS (X)    є абсолютное REAL*4     є   REAL*4 є REAL*4  є
є DABS(X)    є абсолютное REAL*8     є   REAL*8 є REAL*8  є
є CABS(Z)    є абсолютное COMPLEX    є COMPLEX*8є REAL*4  є