2014-02-19 52 views
1

我嘗試讀fortran(我認爲是)程序,並不能理解子程序的開始。它看起來像: fortran1 我不能理解第二塊(紅色) - 這是什麼?參數/參數,全局變量或類似的東西?Fortran語法(聲明子程序)

黃色看起來像常量數組,但語言聲明在我的手冊中是不同的。

而且我不能找到這樣的IF聲明:

enter image description here

它是一個IF(條件),則跳轉少,EQ,或大或其他的東西嗎?

+0

它似乎,第一部分是BLOCK DATA子程序和通用塊。 – Alexey

回答

4

您正在查看相當老的固定源表單FORTRAN,其中線上字符的位置非常重要。特別是第6列中的任何字符(除0或空白外)都表示該行是前一行的延續。第1欄中的C表示評論。

奇怪IF語句首先

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

是一個算術if語句。如果HP(IM)-70爲負數,則轉到標有105的行,如果零標記爲105,則標記爲110的行爲正數。您的發佈不顯示這些行,這些標籤位於一行的第1-5行。

現在紅色

COMMON 

引入公共塊其名稱,如果有的話,則如下封閉在/ /。接下來是公共塊中的變量列表。在您的代碼中,公用塊CONTRLALPHADON的聲明跨行分佈。

您的代碼建議使用通用塊將變量傳遞到子程序或從子程序傳遞而不使用其參數列表。程序範圍可能有相同的公共塊聲明,相同的公共塊也可能出現在其他子程序中。如果其他示波器具有相同名稱但明顯不同內容的公共塊,請不要感到驚訝,其中一個常見塊的惡意用法是用變量名稱來擺弄。更有趣的是,一個作用域中的一個4字節整數的變量可以在另一個作用域中作爲一個4字節的實數處理。

現在綠色

DATA TME/.../

陣列TME//之間的值初始化。

+0

謝謝,它似乎你是對的:) – Alexey