Информационные системы ускорителей

ВВЕДЕНИЕ В ФОРТРАН

Как пользоваться этим руководством.

Концепция данных Фортрана.

Типы и буквальные константы.

Имена (идентификаторы).

Переменные и константы.

Скаляры и массивы.

Именование данных.

Печать текста и чисел на экран.

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. Инструмент это необходимый и полезный, если только не ипользовать его для организации разного рода "мертвых петель", ибо на высший пилотаж это вряд ли потянет.