ВВЕДЕНИЕ В ФОРТРАН
Как пользоваться этим руководством.
Концепция данных Фортрана.
Типы и буквальные константы.
Имена (идентификаторы).
Переменные и константы.
Скаляры и массивы.
Именование данных.
Печать текста и чисел на экран.
Hello World!
Печать целых чисел.
Печать вещественных чисел.
Печать текста.
Когда format предпочтительней.
Арифметические и текстовые выражения.
Арифметические операторы и правила.
Вещественная арифметика.
Целая арифметика.
Смешанная арифметика.
Текстовые выражения.
Инициализация переменных и констант.
Оператор присваивания.
Инициализация скалярных констант.
Инициализация массивов констант.
Ввод данных с клавиатуры.
DATA-инициализация скалярных переменных.
DATA-инициализация массивов переменных.
Условные опреаторы.
Логические выражения.
Оператор IF.
Конструкция IF.
Конструкция CASE.
Циклы.
Цикл с фиксированным числом повторений.
Цикл с выходом по условию.
Пресловутый GOTO.
Неявные циклы.
Процедуры и функции.
Подпрограммы-процедуры.
Подпрограммы-функции.
Комплексный пример: сортировка массива.
Встроенные функции Фортрана.
Работа с внешними файлами.
Файловый ввод/вывод.
Открытие/закрытие файла.
Позиционирование файла.
ФАЙЛОВЫЙ ВВОД/ВЫВОД.
Ввод и вывод, который использовался до сих пор, подразумевал использование клавиатуры, как устройства ввода данных и экрана монитора, как устройства вывода данных. Под устройством понимается вполне конкретный аппарат или прибор, например, принтер, жесткий диск, магнитная лента, атомный реактор или космический корабль. Доступные компьютеру устройства пронумеровываются, и обращение к ним осуществляется через их номера
К клавиатуре и экрану монитора так же можно получить доступ через их номера. За клавиатурой резервируется номер 5, а за экраном монитора закреплен номер 6. Еще чаще считается, что клавиатура и экран монитора это одно устройство, называемое терминалом. Для обозначения номера терминала используется символ "звездочка". Когда речь идет о вводе с терминала, то имеют в виду клавиатуру, а под выводом на терминал подразумевают вывод на экран монитора.
Не зарезервированные номера устройств (а это практически все множество буквальных целых констант) по умолчанию связаны с жестким диском компьютера.
Программа FINOUT демонстрирует файловый ввод/вывод, организуя доступ к клавиатуре и экрану через их номера.
program FINOUT write(*, '(A)', ADVANCE='NO') 'Введите A, B, C: ' read(5,*,iostat = IOS) A, B, C if(IOS .gt. 0) then print*, 'Ошибка чтения' stop elseif(IOS .eq. 0) then print*, 'Ввод успешно завершен' else print*, 'Неизвестная ошибка' endif write(6,'(2i3)',iostat = IOS) A, B, C if(IOS .gt. 0) then print*, 'Ошибка вывода' stop elseif(IOS .eq. 0) then print*, 'Вывод успешно завершен' else print*, 'Неизвестная ошибка' endif end
Для файлового ввода используется оператор READ, а для файлового вывода оператор WRITE. После соответствующего ключевого слова, в круглых скобках, указываетя упрвляющий список, а затем список ввода или вывода, по уже известным правилам.
В управляющем списке, через запятую, указываются: номер устройства, спецификации формата или метка оператора FORMAT и, в необязательном порядке, спецификатор состояния ввода/вывода IOSTAT. Состояние ввода/вывода записывается в скалярную целую переменную, в приведенном примере в переменную IOS. Равенство значения переменной статуса ввода/вывода нулю означает успешную операцию, положительное значение констатирует ошибку ввода/вывода.
Программа FINOUT так же демонстрирует обещанный ранее стандартный вариант непродвигающего ввода/вывода, с использованием спецификатора ADVANCE, принимающего значение 'NO', если после печати данных курсор должен остаться в той же строке, и значение 'YES' в противном случае.