FORTRAN 77

FORTRAN (Formula Translation) 相較於其他程式語言來說,其強項就是在數值運算,現在新的FORTRAN版本為Fortran 90/95,新版本的FORTRAN又多了物件導向的觀念與陣列語言,但是因為大部分免費、公開且高品質的數值運算含式,以及實驗室許多程式碼都是以FORTRAN 77來撰寫的,且Fortran90/95complier也可向下相容,所以我要介紹的是FORTRAN 77

 

一個FORTRAN程式的主體大致如下

      PROGRAM 程式名稱

      ..........

      ..........    <===程式碼

      ..........

      STOP

      END

 

FORTRAN 77在格式上要求很嚴謹,程式碼必須要在第七行開始寫,也就是要先按六次space鍵,整體的規則如下:

 

  前1-5格        此為述句標號放置的地方

   第6格         連續記號的欄位

 第7-72                FORTRAN述句的主體

73-80格        辨認用

如果在述句標號的位置放置"C""*"則此列可用來做說明,complier不會讀取此列

 

Linux下,FORTRAN 77程式碼可用各種不同的文書編輯軟體來撰寫,完成之後,習慣上都以.f為副檔名儲存。之後再用complier將轉程式碼轉為執行檔。

 

complier g77為例(儲存的程式碼檔名為myprog.f):

輸入"g77 myprog.f"                                    則系統會自動產生 a.out 的執行檔。

輸入"g77 -o myprog.out myprog.f"                        系統會產生檔名為myprog.out的執行檔。

輸入"g77 -c mysub.f"                                   則系統會產生編譯中間碼檔案mysub.o,此

                                                    檔案必須做連結才可產生執行檔。

參考網頁:http://linux.3jk.com/mirror/CLDP/VMS-to-Linux-HOWTO-5.html#ss5.1

 

在進行編譯動作時,如果寫作的格式有問題,或是語法有錯誤,則complier會在編譯的過程中指出有問題的部分,且也不會產生執行檔。但是如果產生的是邏輯上的錯誤,編譯程式是檢查不出來的,而且也會產生執行檔,這時候輸出的就不是自己預期的結果了,這時候就自能自己去慢慢的檢查哪個部分產生邏輯上的錯誤。這種錯誤往往是最難以發現的。

 

例如以下這是正確格式:

則當我執行g77的編譯動作時,不會產生任何的訊息

但是當我把述句標號"6"拿掉時

則當我執行g77的編譯動作時,complier就會告訴使用者哪個地方出了問題

整個寫程式的流程就是不斷的遇到錯誤然後修正再編譯,直到能順利產生執行檔。

 

最後若順利產生出來執行檔,則只要輸入". / 檔名"就可看到執行結果

 

若輸出的結果與預期結果不同則必須自行去程式碼中找出邏輯上的錯誤加以修正。若結果與預期的相同,則一個程式就算完成。