2016-11-21 20 views
-2

我對Fortran語言知之甚少。我遇到了一些在90年代編寫的程序(請參閱附加的快照,僅顯示長文字的一部分)。正確的Fortran編譯器執行程序

enter image description here

我想知道什麼樣的編譯器適合執行這樣的代碼?我在我的Mac上安裝了gfortran-4.2.3。我也不確定附加代碼中的縮進:如果C(註釋)位於第1列,主代碼是從第9列還是第7列開始?那麼在之間所提到的數字的位置怎麼樣?轉到

+0

似乎遇到錯誤。哪些錯誤?你不能讓我們猜測!研究這麼長的代碼是不可能的! –

+0

包含錯誤 – ToNoY

+1

錯誤是因爲行已超過列72.您在轉錄代碼時可能會添加一些額外的空格。 – agentp

回答

1

這不是Fortran語言90.這是Fortran 77中

也就是說,gfortran能夠編譯此代碼。確保該文件的文件擴展名是.f,以便gfortran認識到它是固定格式。

C需要在第一列,您引用的數字是標籤,它們可以在第1列和第5列之間。第198行的星號是一個連續字符,表示這應該被視爲上一行。它必須在第6列中。其他所有內容需要位於第7列和第72列之間(含)

哦,並且最初的3位數字是行號,並且不得在源代碼中爲

編輯補充:因爲你必須鍵入這一切再次,無論如何,你還不如讓它自由形式:

!更換C在第一列,並更改續行被標記的方式:打開此:

 write (*, *) "This is some long text, 
    * which doesn't fit into a line" 

進入這個:

write(*, *) "This is some long text, " // & 
    "which doesn't fit into a line" 

其他一切可以留喜歡它。 (你現在可以使用正確的縮進,太!)

新的編輯

所以你粘貼你寫的代碼和錯誤信息,所以現在我回答說。

在固定格式中,忽略列72後面的任何字符。你有幾行很長的字符串,終止引號在那個被忽略的區域。

確保沒有行超過第72行。

+0

我也考慮用適當的循環替換gotos。 –

+0

請參閱我的新編輯 - 我仍然不確定這是編譯器還是代碼的問題。謝謝! – ToNoY

+2

我不會改變一件事。只要找出使用哪個編輯器確定你的列6是&去的地方。您可以使用.for,以便如果有任何可能會創建.f的預處理不會覆蓋.for – Holmz

相關問題