ВВЕДЕНИЕ В ФОРТРАН
Как пользоваться этим руководством.
Концепция данных Фортрана.
Типы и буквальные константы.
Имена (идентификаторы).
Переменные и константы.
Скаляры и массивы.
Именование данных.
Печать текста и чисел на экран.
Hello World!
Печать целых чисел.
Печать вещественных чисел.
Печать текста.
Когда format предпочтительней.
Арифметические и текстовые выражения.
Арифметические операторы и правила.
Вещественная арифметика.
Целая арифметика.
Смешанная арифметика.
Текстовые выражения.
Инициализация переменных и констант.
Оператор присваивания.
Инициализация скалярных констант.
Инициализация массивов констант.
Ввод данных с клавиатуры.
DATA-инициализация скалярных переменных.
DATA-инициализация массивов переменных.
Условные опреаторы.
Логические выражения.
Оператор IF.
Конструкция IF.
Конструкция CASE.
Циклы.
Цикл с фиксированным числом повторений.
Цикл с выходом по условию.
Пресловутый GOTO.
Неявные циклы.
Процедуры и функции.
Подпрограммы-процедуры.
Подпрограммы-функции.
Комплексный пример: сортировка массива.
Встроенные функции Фортрана.
Работа с внешними файлами.
Файловый ввод/вывод.
Открытие/закрытие файла.
Позиционирование файла.
ПРЕСЛОВУТЫЙ GOTO.
При поиске элемента в многомерном массиве возникает потребность выйти из всех вложенных циклов сразу. Оператор EXIT, как уже выяснилось, такой возможности не дает, поэтому ничего не остается, как воспользоваться оператором GOTO с указанием метки оператора, находящегося за пределами вложенной конструкции.
program FINDELM parameter (N=3) integer TABLE(N,N), FINTAB c Вводится таблица. read*, ((TABLE(i,j), j = 1, N), i = 1, N) c Вводится значение для поиска в таблице. read*, FINTAB c Определение индекса искомого элемента в таблице. do i = 1, N do j = 1, N if (TABLE(i,j) .eq. FINTAB) goto 10 enddo enddo 10 continue print*, i,j end
Выход из глубоко вложенной конструкции это наиболее показательный, но скорее всего, не единственный пример эффективного использования GOTO. Инструмент это необходимый и полезный, если только не ипользовать его для организации разного рода "мертвых петель", ибо на высший пилотаж это вряд ли потянет.