我有一些.h文件用于FORTRAN 77中的某些模块(我自己没有写过)。我想在Fortran 90中编写一个新例程并使用这些.h文件。
我试图使用include 'foo.h'
,当我尝试编译时(使用ifort版本13.0.0.079 Build 20120731)我收到以下错误:
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
我猜F90中不存在include
。是否有类似的东西允许人们使用.h文件?
答案 0 :(得分:5)
我认为您可能正在混合使用自由格式程序和固定格式包含文件。您必须使用相同格式的文件或http://fortranwiki.org/fortran/show/Continuation+lines
的“交叉格式”错误的另一个原因是在文件的错误部分使用include语句。它必须根据文件的内容放在正确的位置,即可执行代码;变量和类型定义(规范表达式)或过程定义都有适当的位置。