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

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

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

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

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

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

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

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

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

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

Hello World!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оператор IF.

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

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

Циклы.

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

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

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

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

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

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

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

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

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

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

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

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

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

ИМЕНОВАНИЕ ДАННЫХ.

Именование данных рассмотрим на примере программы NAMEDEMO. В правила написания операторов на этом этапе можно не вникать. Важна лишь общая логика именования данных:

  • Если имя в процессе объявления не стало ни константой, ни массивом, то это скалярная преременная.
  • Если имя объявлено константой, не попав до этого в категорию массивов, то это скалярная константа.
  • Если имя сначала объявлено массивом, а затем константой (наоборот не бывает) то это массив констант.
  • Если имя будучи, объявлено массивом, не попало в категорию констант - перед нами массив переменных.

      program NAMEDEMO
      integer SCALE, SIZE, RANGE, VALUE, SAMPLE
      parameter (SIZE = 7, SAMPLE = 10)
      dimension SCALE(SIZE), VALUE(SAMPLE)
      parameter (SCALE = (/-3, -2, -1, 0, 1, 2, 3/) )
      RANGE = SCALE(SIZE) - SCALE(1)
      do INC = 1, SAMPLE
        VALUE(INC) = 0
      enddo
      end

Сначала объявляется 5 имен: SCALE, SIZE, RANGE, VALUE и SAMPLE. Все они целые и, изначально, не связаны с какими либо данными.

Затем, с помощью оператора PARAMETER, имена SIZE и SAMPLE связываются с буквальными целыми константами: 7 и 10. С этого момента SIZE и SAMPLE являются именованными целыми константами.

Далее, оператор DIMENSION устанавливает, что SCALE и VALUE это массивы. Протяженность (число элементов) массива указывается в круглых скобках после его имени.

Следующий оператор PARAMETER фиксирует тот факт, что SCALE это массив констант. На этом раздел объявлений заканчивается и начинается выполнение программы. В разделе объявлений сначала объявляются типы имен, а затем именованные константы и массивы. Причем именованная константа не может быть использована до того как она объявлена.

Поскольку массив VALUE не отнесен к константам, то это массив элементами которого являются скалярные целые переменные.

Имя RANGE не объявленое ни константой ни массивом, становится вещественной скалярной переменной.

В операторе DO-цикла встречается имя INC, отсутствующее в разделе объявлений. В таких случаях имя расценивается как скалярная переменная, типизируемая по умолчанию. Поскольку первым символом имени INC является символ 'I', то INC - это целая переменная.

Если бы имя RANGE, так же как и INC, не было типизировано как INTEGER в разделе объявлений, то считалось бы переменной типа REAL, поскольку первым символом имени не является ни один из:'I', 'J', 'K','L','M' или 'N'.