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

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

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

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

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

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

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

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

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

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

Hello World!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оператор IF.

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

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

Циклы.

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

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

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

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

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

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

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

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

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

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

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

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

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

ФАЙЛОВЫЙ ВВОД/ВЫВОД.

Ввод и вывод, который использовался до сих пор, подразумевал использование клавиатуры, как устройства ввода данных и экрана монитора, как устройства вывода данных. Под устройством понимается вполне конкретный аппарат или прибор, например, принтер, жесткий диск, магнитная лента, атомный реактор или космический корабль. Доступные компьютеру устройства пронумеровываются, и обращение к ним осуществляется через их номера

К клавиатуре и экрану монитора так же можно получить доступ через их номера. За клавиатурой резервируется номер 5, а за экраном монитора закреплен номер 6. Еще чаще считается, что клавиатура и экран монитора это одно устройство, называемое терминалом. Для обозначения номера терминала используется символ "звездочка". Когда речь идет о вводе с терминала, то имеют в виду клавиатуру, а под выводом на терминал подразумевают вывод на экран монитора.

Не зарезервированные номера устройств (а это практически все множество буквальных целых констант) по умолчанию связаны с жестким диском компьютера.

Программа FINOUT демонстрирует файловый ввод/вывод, организуя доступ к клавиатуре и экрану через их номера.

      program FINOUT

      write(*, '(A)', ADVANCE='NO') 'Введите A, B, C: '
      read(5,*,iostat = IOS) A, B, C

      if(IOS .gt. 0) then
         print*, 'Ошибка чтения'
         stop
      elseif(IOS .eq. 0) then
         print*, 'Ввод успешно завершен'
      else 
         print*, 'Неизвестная ошибка'
      endif

      write(6,'(2i3)',iostat = IOS) A, B, C

      if(IOS .gt. 0) then
         print*, 'Ошибка вывода'
         stop
      elseif(IOS .eq. 0) then
         print*, 'Вывод успешно завершен'
      else 
         print*, 'Неизвестная ошибка'
      endif
      end

Для файлового ввода используется оператор READ, а для файлового вывода оператор WRITE. После соответствующего ключевого слова, в круглых скобках, указываетя упрвляющий список, а затем список ввода или вывода, по уже известным правилам.

В управляющем списке, через запятую, указываются: номер устройства, спецификации формата или метка оператора FORMAT и, в необязательном порядке, спецификатор состояния ввода/вывода IOSTAT. Состояние ввода/вывода записывается в скалярную целую переменную, в приведенном примере в переменную IOS. Равенство значения переменной статуса ввода/вывода нулю означает успешную операцию, положительное значение констатирует ошибку ввода/вывода.

Программа FINOUT так же демонстрирует обещанный ранее стандартный вариант непродвигающего ввода/вывода, с использованием спецификатора ADVANCE, принимающего значение 'NO', если после печати данных курсор должен остаться в той же строке, и значение 'YES' в противном случае.