【问题标题】:Possible MS/Intel Fortran modules with GNU Fortran?可能带有 GNU Fortran 的 MS/Intel Fortran 模块?
【发布时间】:2020-10-17 19:03:03
【问题描述】:

我的任务是调整一些最初使用 Compaq Visual Fortran 编译的已有 20 年历史的代码。我希望使用 GNU 的 gfortran 而不是昂贵的 Intel Visual Fortran。但是,该代码依赖于几个似乎只能用于 IVF 的模块:

  • mfslib
  • dflogm(我相信这是 QuickWin 的一部分?)
  • msimsl

如果我能够获得这些模块的副本,我能否将它们用于 gfortran 而不是 Intel? (顺便说一句,我是一个完整的 Fortran 初学者。)

我能找到的最接近的问题是: Intel Fortran to GNU Fortran Conversion

...但这个问题似乎更多是关于 makefile 和重写 OP 自己的代码,而不是专门关于在另一个编译器中使用来自一个编译器的模块。

提前感谢您的帮助。

【问题讨论】:

  • 来自一个编译器的mod 文件对于使用不同编译器的人来说通常是无用的。如果您可以获得(撇开任何 IP 问题)这些模块的源代码,您可能,只是可能能够重新编译它们。但是您可能会发现,如果没有 IMSL 数值库,您将无法构建 msimsl ...。在连续 3 个月将您的头撞在您遇到的一连串砖墙上之后,您可能会认为英特尔 Fortran 不是毕竟那么贵。
  • 不幸的是,如果您的软件使用专有库,您将不得不使用专有供应商支持的工具。这包括编译器。

标签: fortran gfortran intel-fortran quickwin


【解决方案1】:

正如 cmets 所说,答案是否定的。

如果您想将使用 Compaq Visual Fortran 扩展的程序移植到 gfortran,您需要用标准 Fortran 指令替换它们或使用其他库(独立于任何编译器)。

Fortran 是一种规范化语言(最新标准是 Fortran 2003、2008、2018):如果您坚持该标准,那么使用另一个编译器构建您的项目将没有问题(或很少有问题)。如果你不这样做,你就失去了这个优势......

【讨论】:

    【解决方案2】:

    这不是答案 - 评论太长了。使用 quickwin,查看损坏程度的最简单方法是删除以下内容之一

    USE DFLIB
    USE IFQWIN
    

    看看从木制品上掉下来的东西。你可能有

    1. 绝对没有 - 这意味着它是一个控制台应用程序。他们使用 quickwin 的只是一个可滚动的输出
    2. SETWINDOWCONFIG、GETWINDOWCONFIG、SETWSIZEQQ、GETWSIZEQQ。这也是一个控制台应用程序。他们所做的只是改变相对于窗口大小的可滚动区域。
    3. GETCHARQQ、FOCUSQQ - 这些通常是交互式对话框
    4. APPENDMENUQQ - 他们修改了下拉菜单以添加额外的功能。
    5. ARC、LINETO、OUTGTEXT - 这是一个图形程序。您需要将它们转换为类似 dislin 或 pgplot 或一些图形库。

    我必须转换的大多数 quickwin 程序要么是 1. 要么是 2。我只遇到过 5 个。当 IVF 被称为 PowerFortran 时,我用 3 和 4 和 5 写过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      相关资源
      最近更新 更多