7. ПРОГРАММНЫЕ КОМПОНЕНТЫ И ЭЛЕМЕНТЫ ООП
7.1. Структура программных компонентов
В простейшем случае программа на фортране может состоять из одной главной программы, находящейся в файле с соответствующим расширением (Для компилятора Gfortran это «f95»). При этом она может состоять даже из одного единственного оператора «END» (Пример 2.3). Операторы «PROGRAMM … END» являются операторными скобками, ограничивающими последовательность операторов главной программы, при этом оператор PROGRAMM является не обязательным (хотя настоятельно рекомендуемым, особенно для программ, предъявляемым сторонним заказчикам, к коим стоит отнести и преподавателя на зачете).
С учетом синтаксиса Фортрана 90/95, структуру главной программы упрощенно можно представить в виде:
PROGRAM имя программы
...операторы описания
...исполняемые операторы
CONTAINS
...внутренние подпрограммы
END имя программы
К операторам описания относятся объявления скалярных переменных и констант, а так же объявление массивов и описание производных типов (§ 3). К исполняемым операторам относятся операторы ввода/вывода данных, управляющие операторы, присваивания и выражения всех встроенных и производных типов, а так же использование программных компонентов (§§ 4÷7).
Оператор CONTAINS используется только при наличии внутренних подпрограмм (п.7.3), а имя главной программы после оператора END так же необязательно, как и оператор PROGRAM.
Программные компоненты подразделяются на подпрограммы-процедуры (SUBROUTINE), подпрограммы-функции (FUNCTION) и модули (MODULE). Каждый модуль (MODULE) должен размещаться в отдельном файле, а расположение и группировка по файлам внешних подпрограмм, как процедур (SUBROUTINE), так и функций (FUNCTION), не являющихся компонентами модулей, не регламентирована – т.е. полностью на усмотрении программиста: в одном файле с главной программой или в отдельных файлах При этом исходные файлы, содержащие внешние подпрограммы и модули должны иметь расширение «f95» (для Gfortran).
Все программные компоненты Фортрана – т.е. подпрограммы-процедуры, подпрограммы-функции и модули имеют одинаковую структуру (Таблица 7.1).
Таблица 7.1. Структура программных компонентов
Оператор PROGRAM, SUBROUTINE, FUNCTION или MODULE |
Операторы FORMAT |
Операторы PARAMETER и DATA |
Операторы IMPLICIT |
Операторы описания: объявления переменных и констант, массивов, описание производных типов, интерфейсных блоков модулей |
|
|
Оператор CONTAINS |
Внутренние или модульные (для MODULE) подпрограммы |
Оператор END |