Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FORTRAN.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.21 Mб
Скачать

1.2. Пробелы.

За исключением ниже приведенного списка символов пробел не является значащим в тексте программы на МС-Фортране и поэтому мо- жет использоваться для улучшения внешнего вида программы. Исклю- чения следующие: 1. Пробелы внутри строковых констант являются значащими. 2. Пробелы внутри холлеритовских полей являются значащими. 3. Пробел или нуль в шестов позиции отличает начальную строку от строки продолжения.

1.3. Позиции.

Символы в каждой строке расположены по позициям, первый - в первой позиции, второй - во второй и т.д.

Позиция, в которой находится символ, имеет существенное зна- чение в Фортране. Позиция 1 используется для указания коментария и метакоманды. Позиции с 1-ой по 5-ю зарезервированы для меток операторов, а 6-я позиция для указания продолжения.

2. Строки и операторы.

Вы можете также считать, что текст программы на Фортране - это последовательность строк. Для компилятора значащими являются только первые 72 символа в строке, остальные им игнорируются. Строки, длиной меньше, чем 72 символа, считаются заполненными пробелами до 72-ой позиции (для иллюстрации этого смотрите ниже в этой части в описании символьных констант).

2.1. Начальные строки.

Начальной строкой называется строка, не являющаяся строкой коментария или метакоманды и содержащая пробел или нуль в шестой позиции. В первых пяти позициях строки должны быть пробелы или должна стоять метка. За исключением оператора, следующим за логи- ческим IF, операторы Фортрана должны начинаться с начальной стро- ки.

Метка оператора - это последовательность от одной до пяти цифр, хотя бы одна из которых должна быть не нуль. Метка может находится в любом месте в позициях с 1-ой по 5-ю в начальной строке. Пробелы и предшествующие нули являются незначащими.

2.2. Строки продолжения.

Строка продолжения - это любая строка, не являющая строкой коментария или метакоманды и содержащая в позиции 6 любой символ отличный от пробела или нуля. Первые пять символов строки продол- жения позволяет существенно увеличить длину оператора. Если он не помещается в одну начальную строку, его можно продлить на 19 строк продолжения.

2.3. Строки коментария.

Строка считается строкой коментария, если выполняется одно из следующих условий: 1. В позиции 1 стоит "С" (или"с"). 2. В позиции 1 стоит звездочка (*). 3. Строка состоит из одних пробелов.

Строки комментария не оказывают никакого воздействия на вы- полнение программы на Фортране. После строки коментария должна идти начальная строка или другая строка коментария. Строка про- должения не может следовать за строкой коментария.

2.4. Операторы описания данных и порядок следования операторов.

Оператор Фортрана содержит начальную строку и от 0 до 19 строк продолжения. Оператор может содержать до 1320 символов в позициях с 7-ой по 72-ю начальной строки и с 7-ой по 72-ю строк продолжения. Оператор END должен быть записан в позициях с 7-ой по 72-ю начальной строки и в его строке не может быть никаких других операторов (в дальнейшем на отдельные операторы мы будем ссылаться просто по их именам; смотрите часть 3 "Операторы" для определения различных операторов и их свойств).

Язык Фортран требует определенного порядка следования опера- торов и строк, составляющих программную единицу Фортрана. Кроме того МС-Фортран накладывает дополнительные требования на порядок строк и операторов в транслируемом тексте МС-Фортрана.

В основном, транслируемый текст содержит одну или несколько программных единиц (для более полной информации о трансляции программных единиц и подпрограмм смотрите часть 5 "Программы, подпрограммы и функции"). Различные правила по порядку следования операторов проиллюстрированы на рис.2-1 и описаны в следующих па- раграфах.

-----------------------------------------------------T---------¬

| метакоманды $DO66,$STORAGE,$DECMATH | |

+----------------------------------------T-----------+ |

| операторы PROGRAM,FUNCTION, | | |

| BLOCK DATА,SUBROUTINE | | |

+-------------------T----------T---------+ другие | |

|оператор IMPLICIT |операторы | | мета- | строки |

+-------------------+ | | команды | |

|другие операторы |PARAMETER |операторы| | комен- |

|определения данных | | | | тариев |

+-------------------+----------+ FORMAT | | |

|функции-операторы |операторы | | | |

+-------------------+ | | | |

| выполняемые | DATA | | | |

| операторы | | | | |

+-------------------+----------+---------+-----------+ |

| оператор END | |

L----------------------------------------------------+----------

Рис.2-1 Порядок операторов в программых единицах и транслируемых

текстах.

Для рисунка 2-1 существуют следующие соглашения:

  1. Классы строк или операторов, расположенные выше или ниже других классов, должны следовать в заданном порядке.

  2. Классы строк или операторов могут быть перемешаны с другими классами, находящимися с боку от них.

  3. Метакоманды $LARGE и $NOTLARGE не могут находиться в разделе выполняемых операторов.

  4. Подпрограммы BLOCK DATA не могут содержать функции-операторы, операторы FORMAT или выполняемые операторы.

Подпрограмма начинается с оператора либо SUBROUTINE, либо FUNCTION, либо BLOCK DATA и заканчивается оператором END. Основ- ная программа начинается с оператора PROGRAM или любого другого оператора, отличного от операторов SUBROUTINE, FUNCTION или BLOCK DATA, и заканчивается оператором END. Подпрограмма и основная программа являются программными единицами.

В программной единице операторы должны следовать в порядке, соответствующем таким правилам:

  1. Оператор PROGRAM, если он есть или оператор SUBROUTINE, FUNCTION, BLOCK DATA должны быть первым оператором программ- ной единицы.

  2. Оператор FORMAT может встретиться в любом месте после операто- ра SUBROUTINE, FUNCTION,BLOCK DATA или PROGRAM, если он есть.

  3. Все операторы определения типов должны предшествовать опера- торам DATA, операторам-функциям и выполняемым операторам.

  4. Все операторы DATA должны стоять после операторов определения типов. Операторы DATA могут быть перемешаны с операторами- функциями и выполняемыми операторами.

  5. Обычно оператор PARAMETER предшествует всем другим операторам определения типов. Однако, когда некоторый оператор определяет тип константы, используемой в операторе PARAMETER, оператор PARAMETER должен следовать за этим оператором определения типа.

  6. В операторах определения типа оператор IMPLICIT должен пред- шествовать всем другим операторам, за исключением оператора PARAMETER.

  7. Все операторы-функции должны предшествовать всем выполняемым операторам.

  8. Метакоманды $DO66, $DECMATH и $STORAGE должны предшествовать любым другим операторам. Другие места команды могут находиться где угодно в программной единице.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]