Общие понятия

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

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

В Фортране можно создать такие программные единицы:

̶ главная программа;

̶ модули;

̶ внешние процедуры;

̶ внутренние процедуры;

̶ BLOCK DATA.

В этой теме будут рассмотрены особенности использования внешних и внутренних процедур.

Внешняя процедура является самостоятельной программной единицей и существует независимо от использующих ее программных единиц. К любой внешней процедуре можно обратиться из главной программы и любой другой процедуры.

Внешние процедуры могут компилироваться отдельно от использующих их программных единиц.

Внутренняя процедура задается в главной программе, процедуре.

Главная программа или процедура называются носителями содержащихся в них внутренних процедур. Обратиться к внутренней процедуре можно только внутри ее носителя. Сами же внутренние процедуры уже не могут содержать в себе других внутренних процедур.

Преимущество использования программные единиц:

̶ позволяют сократить расходы на создание программы;

̶ улучшают читаемость программы и, следовательно, облегчают ее последующую модификацию;

̶ приводят к сокращению исходного кода;

̶ могут быть включены в библиотеки и вызваны из любой программы;

̶ позволяют разделить работу над программой между разными программистами.

Процедура – это фрагмент кода, который вынесен из основной программы и имеющий уникальное имя. Тогда в месте, где необходимо выполнить эту последовательность кода, необходимо просто сослаться на ее имя. Это называется вызовом программной компоненты.

Например, необходимо несколько раз напечатать несколько одинаковых строчек.

print *,’---------------------------‘

print *,’*********************‘

print *,’---------------------------‘

Вместо того, чтобы несколько раз в теле программы набирать (или копировать, что несколько лучше) эти 3 строки, можно оформить их в виде подпрограммы:

subroutine PrtSomething ! имя подпрограммы

print *,’---------------------------‘

print *,’*********************‘

print *,’---------------------------‘

End

Теперь в любом месте программы, где должна производиться соответствующая печать, нужно вызвать эту подпрограмму по ее имени:

call PrtSomething

Когда использовать процедурі? Есть мнение, что если в какой-то программе больше 10 строк кода, то ее надо разбить на процедуры. Общие правила написания структурированных, хорошо читаемых программ – если некоторый участок кода имеет какое-то обособленное смысловое значение – выделяйте его в виде процедуры. Это дает несколько преимущества: удобство чтения, уменьшение вероятности внесения