2014-02-19 4 views
1

Я пытаюсь прочитать fortran (я думаю, так) программу и не могу понять начало подпрограммы. Его выглядит так: fortran1 Я не могу понять второй блок (красный) - что это? Параметры/аргументы, глобальная переменная или что-то в этом роде?Синтаксис Fortran (декларация подпрограммы)

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

Также я не могу найти декларацию IF, как это:

enter image description here

Сво IF (условие) THEN GOTO меньше, эк, больше или что-то другое?

+0

Его кажущаяся первая часть представляет собой подпрограмму BLOCK DATA и общие блоки. – Alexey

ответ

4

Вы смотрите на довольно старую фиксированную форму источника FORTRAN, в которой положение символов на линиях является значительным. В частности, любой символ (кроме 0 или пустой) в столбце 6 указывает, что линия является продолжением предыдущей строки. A C в столбце 1 указывает комментарий.

Странный IF заявление первого

IF(HP(IM) - 70.) 105,105,110 

является арифметической, если заявление. Если HP(IM)-70 отрицательный, перейдите к строке с пометкой 105, если нуль перейдите к строке с пометкой 105, если положительная на строку с пометкой 110. Ваше сообщение не показывает эти строки, метки находятся в столбцах 1-5 строки.

Теперь красный

COMMON 

вводит общий блок, имя которого, если таковые имеются, затем следует заключать в / /. Затем следует список переменных в общем блоке. В вашем коде декларации общих блоков CONTRL, ALPHA и DON распространяются через линии.

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

Теперь зеленый

DATA TME/.../

инициализирует массив TME со значениями между / и /.

+0

Спасибо, кажется, что ты прав :) – Alexey

Смежные вопросы