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

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

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

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

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

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

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

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

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

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

Hello World!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оператор IF.

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

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

Циклы.

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

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

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

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

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

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

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

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

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

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

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

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

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

ЦИКЛ С ФИКСИРОВАННЫМ ЧИСЛОМ ПОВТОРЕНИЙ.

Наиболее часто циклы с фиксированным числом повторений используются для накопления сумм или произведений, как в программе CUMULAT, либо для вычисления значений или перестановки элементов массивов, как в программе TRNSPMTRX. В Фортране циклы с фиксированным числом повторений реализуются конструкцией DO.

      program CUMULAT
      parameter(N=5)
      integer FCTR
      dimension ARR(N)
      data ARR /-1.2, 3.4, -5.6, 7.8, -9./

c     Произведение всех целых чисел от 1 до N (факториал)
      FCTR = 1
      do 10 i = 1, N
        FCTR = FCTR*i
   10 continue

c     Сумма четных целых чисел от 1 до N
      ISUM = 0
      do i = 0, N, 2
        ISUM = ISUM + i
      enddo

c     Сумма элементов нерегулярной последовательности,
c     записанной в массив ARR
      SUM = 0.
      do i = 1, N
        SUM = SUM + ARR(i)
      enddo

      print*, FCTR, ISUM, SUM
      end

Конструкция DO обеспечивает изменение значения целой переменной, называемой параметром цикла, в заданных пределах и с заданным шагом. Для каждого значения переменной цикла выполняется блок операторов, называемый телом цикла.

В ФОРТРАНЕ-77 Цикл начинается DO-строкой, в которой, после ключевого слова DO, сначала указывается метка последнего оператора тела цикла, а затем преременная цикла. Переменной цикла присваивается начальное значение, а за тем, через запятую указываются конечное значение и шаг изменения. Далее следует тело цикла, завершающееся оператором, помеченным меткой, указанной в DO-строке. Как правило меткой помечается "пустой" (не вызывающий какого-либо действия) оператор CONTINUE.

Стандарт Фортран-90 и большинство современных компиляторов ФОРТРАН-77 поодерживают безметочную конструкцию DO. В этом случае метка в DO-строке отсутствует, а тело цикла завершается ENDDO-строкой.

      program TRNSPMTRX
c     Транспонирование матрицы
c     (строки становятся столбцами, а столбцы - строками)
      parameter( N = 2 )
      real MATRIX(N,N)
      read*,((MATRIX(i,j), j = 1,n), i= 1,n)
      print*, 'Исходная матрица'
      print'(2f5.1)',((MATRIX(i,j), j = 1,n), i= 1,n)
      do i = 1, n
        do j = 1, i
          SAVE = MATRIX(i,j)
          MATRIX(i,j) = MATRIX(j,i)
          MATRIX(j,i) = SAVE
        enddo
      enddo
      print*, 'Транспонированная матрица'
      print'(2f5.1)',((MATRIX(i,j), j = 1,n), i= 1,n)
      end

Тело цикла может содержать произвольное число циклов и условных конструций при условии их взаимного непересечения.