问题标签 [fujitsu-fortran]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
446 浏览

user-interface - 将 fortran 77 程序编码为子例程

我的任务是为 fortran 77 程序制作 gui。为此,我使用了 Lahey Fujitsu 编译器和 wisk,它本质上是 Winteracter 的基本版本。现在我正在用 90 编写 gui 部分,老实说,现在我什么都没有编码,只是使用 wisk 向导吐出的代码,并且在 gui 部分与 77 部分交谈时遇到问题。

该程序由一个主程序和14个子程序文件组成。主程序调用所有其他子程序,处理计算并将最终结果写入文本文件。我想做的是使主程序成为子程序,并从程序的 gui 或 fortran 90 部分调用它,从而使 gui 成为主程序。是否有可能这样做,因为 fortran 77 的大部分内容被声明为隐式双精度,而 fortran 90 代码是隐式的无?此外,在 gui 部分中,我是否必须调用所有子例程,或者将被转换为子例程的主程序处理这个?

任何帮助/建议将不胜感激。

如果其中任何一个不清楚,我确信是这种情况,因为我的 fortran 技能仍然有限,请让我澄清我的意思。

谢谢,克里斯蒂安

0 投票
1 回答
1634 浏览

fortran - Fortran 无法调用外部库

我正在尝试在我的 fortran 程序中使用一个名为“decomp_2d”的外部库。我有一个声明为“DECOMP2D”的环境变量,它指向“decomp_2d”所在的目录。该目录具有以下结构:

在另一个目录中,我试图调用一个使用该库的子例程的程序。但是当我这样做时,我得到一个编译时错误。我附上了我正在使用的最小 fortran 代码和我用来编译的 Makefile。这是一台富士通机器,他们有自己的 fortran 编译器,我用它来编译:

该程序:

生成文件:

当我输入“make”时,我收到以下错误:

有任何想法吗?

0 投票
0 回答
412 浏览

callback - 使 Fortran (LF95) 中的其他例程可以访问外部回调函数

我有一个与此处描述的问题非常相似的问题:Make external functions access for other functions/modules in Fortran

我正在使用从 Fortran 源代码编译的 DLL,使用 Lahey/Fujitsu LF95 编译器,我正在尝试存储对外部回调函数(函数指针)的全局引用,以便以后可以从Fortran DLL 中的其他函数。

场景是这样的:

  • 主机应用程序从 Fortran DLL 调用子例程(过程)并将引用传递给回调函数
  • 对回调函数的引用应存储为全局
  • 稍后,宿主应用程序可能会调用 Fortran DLL 中的各种函数,这些函数需要调用回调函数,调用宿主应用程序。

问题是该问题的公认答案无法使用 Lahey Fortran 编译器进行编译。显然,英特尔编译器和 LF95 编译器之间存在相当大的差异。

我确实让回调引用在单个子例程中正常工作,如下所示:

从主机应用程序调用这个函数(在我的例子中是 C#,但这无关紧要)效果很好。我可以传入一个函数引用(C# 中的委托),Fortran 正确地进行调用,我得到了预期的结果。

问题是我似乎无法将interface声明移到 之外testcallback,然后cbk从不同的 Fortran 函数调用 。

这是我想要完成的示例:

最后,我想补充一点,目前不能选择放弃 LF95 编译器。如果有人知道如何处理这个我将非常感激!

0 投票
1 回答
107 浏览

fortran - 交叉格式和 Lahey/Fujitsu Fortran 编译器的错误“缺少名称”

我正在将 Lahey/Fujitsu Fortran 95 编译器用于具有许多包含文件的固定格式代码 (.FOR)。我打算将几个文件更改为 .F90 并希望包含具有 交集格式的文件(基本上是固定格式,在任何续行的第 73 列带有与号,并且在第 6 列中始终使用与号来开始续行)。

但是我收到一个错误,即未定义变量。Lahey 无法使用交集格式是否有原因?

如果在 GNU 上测试,相同的代码可以正常工作。如果有人知道如何让它在 Lahey 工作,那就太好了。

测试公司

错误:

编译器 Lahey/富士通 Fortran 7.7

编译器选项

0 投票
1 回答
590 浏览

fortran - 将非连续参数传递给 Fortran 过程中的连续虚拟数组

contiguous最近,我在处理具有带有属性的虚拟数组的子例程时遇到了 Fujitsu Fortran 2.0.0 版的意外行为。

我已将问题简化为一个简单的示例,如下所示:

这段代码可以由 gfortran (GNU Fortran (GCC) 6.3.0) 成功编译,但在使用 Fujitsu Fortran 编译器(如上所述)的集群上失败,并给出以下错误代码:

我很困惑,因为据我了解编译器应该在子例程的入口处创建一个连续的临时文件(例如这里所示:Fortran 2008 contiguous

其实我有两个问题:

  1. 这种情况的规范是什么?
  2. 它可以成为编译器强制他为这种情况创建一个连续临时的标志吗?

我正在尝试构建第三方软件,并且无法根据需要更改源。