為什麼要宣告?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),與汽機車里程表相反。