【发布时间】:2015-02-15 03:15:30
【问题描述】:
我需要能够编译从 60 年代到 90 年代的旧 Fortran 代码。
代码按照编写的方式运行,即使它使用了一些不再标准的旧做法。 它在 Intel Visual Fortran 2011 编译器和 Visual Studio 2008 上成功构建。我现在在 Visual Studio 2012 和 Intel Visual Fortran 2013 上。我似乎找不到合适的选项来翻转以允许它构建。
主要问题是使用了巨大的等价数组,并且通常不是传递数组或实际指针到子例程,而是传递指针等价数组的单个值,并且以某种方式暗示使用一系列值.主要错误是
- 实际参数的类型与虚拟参数的类型不同
- 如果实际参数是标量,则虚拟参数应为标量,除非实际参数是字符类型或不是假定形状、指针或多态的数组元素
再一次。我知道代码确实可以正常工作。任何有用的建议将不胜感激。
【问题讨论】:
-
我知道一个航空航天设备正在通过将 Fortran 转换为 C 来解决这个问题。事实证明,如果没有 Microsoft 的兼容编译器支持,Fortran 很难维护。
-
我的意思是我知道我可以重写代码...
-
Fortran 编译器供应商知道向后兼容性对他们的客户很重要。我建议在 Intel Visual Fortran Compiler for Windows 论坛上提问,并提及用于处理您的代码的编译器选项。他们可能会为您提供适用于 IVF 2013 的编译器选项。如果没有,他们甚至可能会将您的问题视为错误并修复编译器。
-
您联系过您的技术支持吗? Intel Visual Fortran 是一种商业产品,许可证附带支持。联系 Premier 支持或支持论坛software.intel.com/en-us/forums/…
-
那些错误是您的代码被编译时警告和检查选项检测到。如果您关闭这些选项,通常不会(也无法)检测到这些错误。根据编译器识别的具体内容,您问题中的短语“不再标准”可能应该写成“never 标准”。
标签: visual-studio-2012 fortran intel-fortran