我想編譯一些Fortran代碼,根據文檔,已知可用「Intel Fortran編譯器11」進行編譯。但是,當我嘗試使用用於OS X的英特爾®Fortran Composer XE 2013隨附的ifort版本(此處爲http://software.intel.com/en-us/fortran-compilers)編譯代碼時,出現一些錯誤。我懷疑我要麼1)使用與Fortran使用的確切方言不兼容的編譯器和/或2)未包含一些必要的庫。如何編譯未知方言的Fortran代碼和未知庫
我不是Fortran程序員,所以我希望有更多經驗的人能夠瀏覽一下代碼並認識它是否只是使用不同編譯器的簡單問題,設置一些編譯器選項,包括一些特定的圖書館,或者如果我完全錯過了其他的東西。
完整的源代碼可以直接在這裏以上的內容中找到:http://baydeltaoffice.water.ca.gov/modeling/deltamodeling/models/dsm2/dsm2.cfm
首先,我只是想編譯groups.f開始/ DSM2_v8_0_6_src/dsm2_v8_0/src目錄/通用(這需要一個很少有其他模塊會先編譯),但最終目標是編譯DSM2_v8_0_6_src/dsm2_v8_0/src/ptm/native/fixedData.f及其所有依賴項。
我使用的語法遵循這個基本的模式:
ifort -c DSM2_v8_0_6_src/dsm2_v8_0/src/common/groups.f
爲了讓我遇到了錯誤類型的感覺,這裏有反覆發生的幾個類型:
groups.f(225): error #5082: Syntax error, found END-OF-STATEMENT when expecting one of:
(*) :: , . % + - [ : . **/// .LT. < .LE. <= .EQ. == ...
write(unit_error,*)"Error in matching text pattern:",trim(pattern)
---------------------------------------------------------------------^
groups.f(265): error #5120: Unterminated character constant
& "Error in pattern matching. Implementation count does not equal count in NumberMatches"
------^
這兩個錯誤看起來像是行尾問題。檢查你的文件是否使用編譯器期望的EOL約定(很可能是DOS,但你永遠不會知道......) –
你問過代碼提供者的幫助嗎? – eriktous
謝謝,我會檢查EOL大會。我可能最終不得不向供應商尋求幫助,儘管如果可能的話我想自己弄清楚,以便更快地找到答案並更徹底地理解代碼。 –