Читайте также:
|
|
Снова хочу подчеркнуть, что все программные Fortran 77 размещены по существу на одном и том же уровне, даже если главная программа логически стоит выше подпрограмм и функций, которые она вызывает. В действительности BLOCK DATA на более высоком уровне и все другие программные модули с точки зрения системы Fortran на том же уровне с главной программой, чуть-чуть немного выше. Исключение составляют так называемые операторы-функции, определения которых стоят первыми в программной единице, сразу после определений, и они являются внутренними для этой программной единицы и поэтому логически ниже по уровню. К сожалению, типичный программист на Fortran 77 не может использовать операторы-функции.
Вышесказанное означает, что имена всех программ на одном и том же логическом уровне, которое означает, что две различные процедуры и две различных части большой программы не могут иметь одинаковые имена. Часто численные и графические библиотеки включают тысячи функций и подпрограмм, а имя каждой программы состоит из более чем 6 символов по старому стандарту Fortran. Поэтому имеется большой риск конфликта имен. Эта проблема может быть частично решена с помощью функций-операторов, поскольку они внутренние по отношению к рассматриваемой программной единице, и поэтому различные функции-операторы могут иметь одни и те же имена в разных программных единицах. Недостаток в том, что они могут встретиться только в одной строке программы. Но они могут вызывать все другие и таким образом далее функции-операторы могут вызывать более ранние функции-операторы, но не наоборот.
Я
Дополнения
F90 добавляет внутренние функции и подпрограммы, предоставляя большую свободу. Они определяются в конце каждого программной единицы (но не в BLOCK DATA) после новой команды CONTAINS и перед END. Внутренняя подпрограмма может иметь доступ к именам программной единицы, включая вызовы других внутренних подпрограмм программной единицы. Она пишется как обычная подпрограмма, но она уже не может иметь своих внутренних функций или подпрограмм.. Внутренняя функция это более мощная замена для функций-операторов.
Обычные функции и подпрограммы остаются теми же самыми как и внешние подпрограммы и внешние функции, но они теперь должны иметь более существенные доводы для имен, чем прежде, покольку вы теперь имеете также и внешние подпрограммы. Прежде вы имели только встроенные функции как альтернативу при построении программы. В дополнение число встроенных функций значительно возросло и незначительно могут быть добавлены встроенные подпрограммы.
Я
Дата добавления: 2015-11-14; просмотров: 57 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Упорядочение операторов | | | Спецификация входных-выходных параметров |