接受我的道歉可能在这里提出这样一个基本问题,我是英特尔Fortran编程的新手,所以我认为在这种情况下,我不知道有什么遗漏或错误组织。如果有人能在这方面帮助我,我将不胜感激。
问题是我在编译代码时看到以下错误,而我相信我已正确声明派生类型变量cr
和me
。
error #6633: The type of the actual argument differs from the type of the dummy argument. [CR]
error #6633: The type of the actual argument differs from the type of the dummy argument. [ME]
我的代码包含一个名为InputData
的模块,其中包含派生类型grid
的定义以及类型{{1}的派生类型变量cr
和me
的声明}}。我使用grid
语句在主程序中使用这些定义。该错误指的是主程序中的一行USE
一个内部子程序,它使用CALLs
和“me”作为输入参数(cr
)。令人惊讶的是,我使用完全相同的方式在主程序中使用INTENT(IN)
语句声明模块ls
中定义的类型Levelset
的派生类型变量OutputData
,并且没有得到任何错误在同一子程序中的那个变量上。在子例程USE
中添加USE InputData
语句也没有解决问题。计划单位的结构如下:
ComputeLS
我尝试删除所有模块,并在主程序中包含所有类型定义和变量声明,而不是在单独的模块中。但不幸的是,错误仍然存在。
答案 0 :(得分:1)
我认为这是一个已知的编译器错误ID DPD200250382,它已针对我们即将推出的15.0版本修复,但您的部分示例与问题描述略有不同。您使用的是我们的Windows编译器并且具有Diagnostics>检查例程接口是否已启用?如果是这样,请尝试将该选项设置为否,看看会发生什么。
如果这没有帮助,我希望看到一个完整的测试用例。