1. ОСНОВИ АЛГОРИТМІЧНОЇ МОВИ ФОРТРАН
1.1. Символи
При записуванні програми мовою ФОРТРАН використовуються наступні символи:
п’ятдесят дві великі та малі букви латинського алфавіту (від А до Z і від а до z);
десять арабських цифр (0, 1, 2, ..., 9);
спеціальні символи:
=
+

*
– дорівнює;
– плюс;
– мінус;
– зірочка;
/

.
,
– дробова риска;
– апостроф;
– крапка;
– кома;
$

:
_
– знак долара;
– лапки;
– дві крапки;
– підкреслення;
(
)
– відкриваюча дужка;
– закриваюча дужка;
– пропуск.


При компілюванні програми малі букви інтерпретуються як великі: оператори write (*, *) і WRITE (*, *) ідентичні.
Символ пропуску, за виключенням особливо обумовлених випадків, самостійного значення не має і може використовуватися вільно для зручності запису.
Призначення інших спеціальних символів буде пояснено далі по мірі їх введення.
Букви кирилиці та інші символи таблиці кодування ASCII (American Standart Coding for Information Interchange) використовуються для запису символьних постійних та коментарів.
1.2. Імена
Імена у фортранівській програмі необхідні для ідентифікації змінних, масивів, функцій, операторів-функцій, підпрограм-функцій, підпрограм і поіменованих спільних блоків пам’яті. З іменем, яке позначає змінну чи масив, зв’язана одна чи декілька комірок пам’яті.
Змінна – це дане, до якого можна звертатися за іменем. Зміст комірки, яку займає змінна, може змінюватися в час виконання програми. Біжуче значення змісту комірки називається значенням змінної.
Питання, пов’язані з масивами, функціями, операторами-функціями, підпрограми-функціями, підпрограмами та поіменованими спільними блоками пам’яті розглянені нижче.
Ім’я складається з букв, цифр і символів підкреслення ( _ ) та знаку долара ($). Воно повинно починатися з букви чи символу $. Всього може бути від одного до тридцяти одного символу. Всі наступні символи будуть ігноруватися. Символи пропуску не сприймаються як значущі: імена ALPHA і A L P H A будуть інтерпретуватися як ALPHA. Конструкції
A, A13, M$M1, BETA, $, $AD, LVIV, RAM_21B
є правильними записами імен, а конструкції
3A13, _ROM21BC, СП1, F–1, M’JACH
не є іменами, бо перша з них починається з цифри, друга з символу підкреслення, третя містить букву не латинського алфавіту, четверта містить знак мінус, а п’ята – знак апострофу.
Імена, які представляють собою змінні, масиви чи функції мають тип. Тип використовується для того, щоб вказати вид значення змінної, елемента масиву чи функції. Ім’я, яке починається з букв I, J, K, L, M, N, має цілий тип. У всіх інших випадках ім’я має дійсний тип. Такий спосіб задавання типу називається неявним. Цілі змінні можуть приймати значення тільки цілих значень, дійсні змінні – тільки дійсні значення.
Нижче наведені деякі імена із зазначенням їхнього типу.
Ім’я

Тип

Ім’я

Тип

IB1
цілий
J
цілий

A
дійсний
CIK
дійсний

BC15
дійсний
NOB
цілий


1.3. Мітки
Мітка – ціле натуральне число, яке складається максимум із п’яти цифр. Вона служить для маркування операторів.
Правильні записи міток: 1, 137, 99999, 21.
Неправильні записи міток:
–5, 0 – ненатуральні числа не можуть бути мітками;
3В7 – мітка може складатися лише із цифр;
109735 – мітка не може містити більше п’яти цифр.
Мітка розташовується перед оператором, який хочемо помітити. Як правило, помічають лише ті оператори, на які є посилання в програмі.
1.4. Записування програми
Текст програми складається із операторів, які записується у фіксованому або вільному форматі. Для кожної програмної одиниці може використовуватися лише один із форматів. Далі наведено правила записування програми у фіксованому форматі.
Кожен оператор мови ФОРТРАН записується з нового рядка. Рядок містить 80 позицій, у кожній з яких можна записати лише один символ. Мітка записується у позиціях 1–5, а оператор у позиціях 7–72. Позиції 73–80 використовуються для нумерації.
У рядку можна записати лише один оператор. Якщо текст оператора не вміщується в одному рядку, то його продовжують у наступному. Для цього у шостій позиції рядка продовження записують символ продовження. Ним може бути будь-який символ, відмінний від “0” і пропуску (звичайно символ *). Оператор може мати до 19 рядків продовження.
Крім операторів, текст програми може містити коментарі. Для цього у першій позиції слід помістити символ “С”, “с” (букви латинського алфавіту) чи “*”. Коментарі служать для запису назви програми чи іншої інформації та можуть містити символи кирилиці й інші символи таблиці кодування ASCII. Стрічка з коментарями не впливає на роботу програми.
Пропуски можна застосовувати довільно. Їх необхідно використовувати для того, щоб текст програми був більш наочним. Програма може містити один чи декілька рядків, заповнених пропусками.
З метою розрізнювання подібних за написом букви О і цифри 0 домовилися цифру 0 доповнювати косою рискою:
О – буква О
Ø – цифра 0
1.5. Структура програми
Фортранівська програма складається з наступних програмних одиниць:
основної програми,
підпрограм,
підпрограм-функцій,
підпрограм даних.
Фортранівська програма містить одну основну програму і довільну кількість підпрограм указаних вище типів. Програмна одиниця не може входити у склад іншої програмної одиниці. На рис. 1 зліва наведена правильно побудована програма, а справа – неправильно побудована програма: частина підпрограми входить у склад основної програми.
Рис. 1. Приклади, які пояснюють правила побудови фортранівської програми
Програмна одиниця складається із операторів. Оператори поділяються на виконувані та невиконувані.
Невиконувані оператори, за виключенням операторів END та FORMAT, завжди повинні записуватися перед виконуваними операторами. Кожна програмна одиниця закінчується оператором END кінцевого рядка, який вказує кінець програмної одиниці. Оператор FORMAT описаний нижче. Невиконувані оператори надають інформацію іншим операторам. При виконанні програми невиконувані оператори обходяться. На рис. 2 наведена типова структура програмної одиниці.
Рис. 2. Структура програмної одиниці
Виконувані оператори здійснюють дії, тобто вводять чи виводять дані, обчислюють значення тощо. Важливим є розташування виконуваних операторів, яке визначає хід виконання програми. Виконання фортранівської програми починається з першого виконуваного оператора основної програми. Дальше виконується наступний виконуваний оператор і т. д. Порядок виконання операторів може бути змінений різноманітними операторами керування.
Оператор STOP закінчує роботу програми і передає керування операційній системі. Цей оператор є завжди останнім виконуваним оператором програми. Програма може мати декілька операторів STOP.
Виконання підпрограми чи підпрограми-функції може здійснюватися тільки після звертання до неї ззовні, від інших програмних одиниць. Якщо з деякої програмної одиниці є звертання до підпрограми (чи підпрограми-функції), то після закінчення роботи цієї підпрограми (чи підпрограми-функції) відбувається повернення до тієї програмної одиниці, з якої було звертання, і продовжується виконання її операторів. На рис. 3 показаний хід виконання певної фортранівської програми. Виконання починається з основної програми, з якої викликається підпрограма, яка у свою чергу викликає підпрограму-функцію. Після закінчення виконання підпрограми-функції продовжується виконання операторів підпрограми. Після закінчення роботи підпрограми продовжується виконання операторів основної програми, у якій і закінчується обчислювальний процес. Виконання фортранівської програми може закінчуватися як у основній програмі, так і у підпрограмі, як показано на рис. 4, чи підпрограмі-функції.
Фортранівська програма записується в один чи декілька файлів.
Рис. 3. Послідовність виконання фортранівської програми
Рис. 4. Послідовність виконання фортранівської програми
Файл – це поіменована область на диску. Кожен файл має ім’я, тобто послідовність символів, яку використовує операційна система для його розпізнання. Ім’я файлу складається із двох частин: власне імені та розширення. Ім’я файлу, на відміну від імені у фортранівській програмі, може містити від одного до значної кількості символів, серед яких забороненими є наступні: * \ ! : ? ? / ". Розширення може містити до трьох символів і, взагалі, є необов’язковою частиною імені. Між іменем та розширенням ставиться крапка.
Увага! Файл, де міститься фортранівська програма, мусить мати розширення FOR чи F90. Наприклад, PROG1.FOR, EM1101.FOR, GAUSS.F90.
Файл може містити одну чи декілька програмних одиниць.
1.6. Область дії імен та міток у фортранівській програмі
Область дії імені у фортранівській програмі залежить від того, що позначається цим іменем. Тому область дії імен визначається наступним правилом.
Імена змінних, масивів і операторів-функцій діють тільки всередині своєї програмної одиниці, у той час як імена функцій, підпрограм-функц