2014-06-05 60 views
1

我遇到了FORTRAN 77編寫的模型中的FORTRAN語句。我不知道這意味着什麼。如果有人能夠說出一些亮點,會很高興。Fortran 77:IF語句有一個變量作爲它的參數,然後是標籤語句

下面是代碼的外觀:

IF(NC)20,20,10

注:NC是一個變量(我認爲),以及隨後的標籤說明的數字(我想)。

我的問題是,上述說法是什麼意思?我明白,通常,在「IF」聲明之後,括號中應該有一個參數,例如, (a < 20)。但是,在這種情況下,括號中只有一個變量。

+0

變量可能是前面計算的布爾? – Fabricator

+1

[奇怪的標籤使用]可能的重複(http://stackoverflow.com/questions/6789946/strange-label-usage) –

回答

5

這是一個從Fortran I算起的算術。從F90開始不再提供。它是IBM彙編程序中IBM 3路跳轉指令的直接翻譯。現在沒有多少機器架構有3種跳躍方式。

if (x) 10, 20, 30 

意味着

if (x .lt. 0) goto 10 
if (x .eq. 0) goto 20 
if (x .gt. 0) goto 30 ! if statement not strictly necessary 

所以你的情況這意味着

if (nc .le. 0) goto 20 
if (nc .gt. 0) goto 10 
+0

真的很感謝。一直在尋找答案的日子。 – user3655179

+0

用於IBM瑣事 – agentp