2013-03-18 60 views
2

我有一些.h文件用於FORTRAN 77中的某些模塊(我沒有自己寫過)。我想在Fortran 90中編寫一個新例程並使用這樣的.h文件。 我試着使用include 'foo.h',當我嘗試編譯(使用ifort版本13.0.0.079構建20120731)我得到以下錯誤:如何在Fortran 90中使用include語句?

Syntax error, found IDENTIFIER 'FOO' when expecting one of: (% [ : . = => C FOO COMMOM

我也嘗試過使用include foo.h,怎麼辦我以下錯誤: error #5082: Syntax error, found IDENTIFIER 'FOO' when expecting one of: <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> INCLUDE FOO.h ----------^

error #6274: This statement must not appear in the specification part of a module INCLUDE foo.h --^

error #6236: A specification statement cannot appear in the executable section. !$ use omp_lib ---^

error #6236: A specification statement cannot appear in the executable section. implicit none --^

error #6456: This name must be a RECORD name. [FOO] INCLUDE FOO.h ----------^

error #6460: This is not a field name that is defined in the encompassing structure. [H] INCLUDE foo.h -----------------^

error #6252: This format specifier is invalid. [FOO] INCLUDE foo.h

我猜include不存在F90 。有沒有類似的,允許使用.h文件?

+0

你試過'include'foo.h''嗎? – milancurcic 2013-03-18 14:33:14

+0

是的,我已經嘗試了包括'foo.h'和'包括foo.h' – ziulfer 2013-03-18 14:46:25

+0

他們都給你同樣的錯誤?在您的問題中包含編譯器錯誤消息時,包含編譯器名稱和版本總是有用的。 – milancurcic 2013-03-18 14:51:54

回答

4

我想你可能會混合自由格式程序和固定格式包含文件。您將不得不同時使用相同格式的文件,或者使用

中的「相交格式」。錯誤的另一個原因是在文件的錯誤部分使用include語句。它必須根據文件的內容放置在正確的位置,即可執行代碼;變量和類型定義(規範表達式)或過程定義具有所有適當的位置。

+0

由於@VladimirF幾乎寫道:被包含文件的文本將被拼接到包含文件中與include語句一致的行,並且結果必須符合Fortran需要的語句順序規則。 – 2013-03-18 16:43:23