宣告

 

為什麼要宣告?FORTRAN是專為數值計算設計的語言,相對於某些語言如 BASIC,宣告變數的數值型態能夠使程式(編譯器)依特定的數值型態或精確度,安排一定的記憶體貯存格式及使用特定的運算方式(如單倍精確度及雙倍精確度之分),如此可以最佳化以達到最好的效率


real 實數
integer 整數
complex 複數
double precision 雙精度實數
double complex 雙精度複數
character 文字字串

例如:

REAL A

REAL B, C(10,20)

CHARACTOR*10 TXT

注意各種變數要先宣告才能用,程式才不會出錯。

 

在沒有事先宣告的情況下,FORTRAN 會把以 I, J, K, L, M, N 為開頭的字元變數自動預設成是整數(這樣最符合一般科學與工程中數學公式上使用的習慣),而剩下的其他英文字母開頭的變數則以實數為預設值。

在此也介紹有用的 implicit none,它會把自動預設宣告的功能取消掉,因此程式寫作者每需要用到一個新的變數,都一定要宣告其數值型態。這樣可以減少因為打錯字,而無意中使原有變數之運算沒有進行,因而導致程式發生那種語法本身沒有錯誤,但程式實質意義(運算程序或邏輯)卻有錯的狀況。這種非關語法做錯誤,因為編譯器沒辦法自動幫我們查出,因此偵錯較不容易,要自己一行一行看程式,甚至一開始自己都不曉得而使用了錯誤的答案,而造成嚴重的後果。

 

建議:在每次寫新程式的場合,我們最好先用一個我們已經知道答案的簡單例子去測試程式,來看它有沒有邏輯上的錯誤。

補充知識:電腦記憶是線性連續的(不管陣列的宣告是 A(10) B(10,100) ),在 FORTRAN 其 data 在記憶體的排列是 B(1,1), B(2,1), B(3,1),..., B(10,1), B(1,2),與汽機車里程表相反。