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

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

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

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

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

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

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

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

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

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

Hello World!

Печать целых чисел.

Печать вещественных чисел.

Печать текста.

Когда format предпочтительней.

Арифметические и текстовые выражения.

Арифметические операторы и правила.

Вещественная арифметика.

Целая арифметика.

Смешанная арифметика.

Текстовые выражения.

Инициализация переменных и констант.

Оператор присваивания.

Инициализация скалярных констант.

Инициализация массивов констант.

Ввод данных с клавиатуры.

DATA-инициализация скалярных переменных.

DATA-инициализация массивов переменных.

Условные опреаторы.

Логические выражения.

Оператор IF.

Конструкция IF.

Конструкция CASE.

Циклы.

Цикл с фиксированным числом повторений.

Цикл с выходом по условию.

Пресловутый GOTO.

Неявные циклы.

Процедуры и функции.

Подпрограммы-процедуры.

Подпрограммы-функции.

Комплексный пример: сортировка массива.

Встроенные функции Фортрана.

Работа с внешними файлами.

Файловый ввод/вывод.

Открытие/закрытие файла.

Позиционирование файла.

КОНСТРУКЦИЯ CASE.

Конструкция CASE поддерживается только Фортраном-90 или компиляторами ФОРТРАН-77 с расширенными возможностями.

      program DETECTSYM
      character SYMBOL
      read*, SYMBOL
c     Классификация введенного  символа.
      select case (SYMBOL)
      case('-','+','/','*')
        print*,'Арифметический оператор'
      case('0':'9')
        print*,'Цифра'
      case default
        print*,'Неизвестный символ'
      end select
      end

Подобно конструкции IF конструкция CASE позволяет выполнять тот или иной блок операторов, в зависимости от определенного условия. Условие определяется значением выражения дискретного типа, которое указывается в качестве параметра строки SELECT CASE, являющейся первой строкой конструкции.

Далее следуют CASE-блоки. Каждый CASE-блок состоит из CASE-строки и относящихся к ней операторов. В CASE-строке указываются значения, которые может принимать выражение из SELECT CASE-строки. Эти значения могут задаваться списком, диапазоном либо комбинировано (диапазон, как элемент списка). При этом диапазоны "case"-блоков одной "case"-конструкции не должны пересекаться.

В программе DETECTSYM приводится пример задания значений списком и закрытым диапазоном, а в программе SUBSTEMP значения задаются как закрытым, так и открытым диапазоном.

Диапазон открытый слева аналогичен логическому отношению "меньше либо равно", задается значением правой границы и "двоеточием" слева.
Диапазон открытый справа аналогичен логическому отношению "больше либо равно", задается значением левой границы и "двоеточием" справа.

      program SUBSTEMP
c     Состояние субстанции как функция температуры.
      integer TEMPERATURE, ABSNUL, FLAME
      parameter(ABSNUL = -273, ICE = 0, FLAME = 1000000)
      read*, TEMPERATURE
      select case (TEMPERATURE)
      case(:-274)
        print*,'Давно замерзло все, что можно'
      case(ABSNUL:ICE)
        print*,'Лед'
      case(FLAME:)
        print*,'Пламень'
      case default
        print*,'Слякоть'
      end select
      end

Конструкция CASE может содержать не обязательный CASE-блок, начинающийся строкой CASE DEFAULT. В этот блок входят опрераторы, выполняемые, если все прочие CASE-блоки не сработали. Этот блок не обязательно должен быть последним.