问题标签 [fortran77]
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.
fortran77 - 注释掉写语句的 Fortran 77 错误
我正在使用一个旧的 FORTRAN 77 程序,我遇到了一个奇怪的错误。照原样,代码似乎运行良好,并且在不到一秒的时间内完成。但它会产生一堆我不感兴趣的无关输出。所以,我进入了源代码,并注释掉了所有额外的 WRITE 语句。
好吧,当我注释掉一些 WRITE 语句时,代码似乎运行得有点慢(尽管我对此不确定;它可能看起来更慢,因为我滚动的文本行数较少以让我忙碌) . 当我注释掉最后一个额外的 WRITE 语句时,程序就会挂起,并且永远不会完成执行。
现在,从逻辑上讲,注释掉 WRITE 语句应该仍然让程序的其余部分完全正常运行,对吗?我认为这意味着代码中潜伏着一些其他问题,并且 WRITE 语句以某种方式掩盖了它(可能是清除缓冲区?)。
一位了解 Fortran 的同事(为数不多的一位)建议我可能无意中注释掉了一个语句标签,但事实并非如此。另一位不了解 Fortran 但总体上对编程非常熟练的同事建议这对他来说听起来像是一个指针问题,但据我所知,我从来没有将越界索引传递给数组,我不确定还会出现这样的问题。
我正在 PowerPC Mac 计算机上使用 g77 编译程序。
fortran - Fortran 嵌套循环,带有一个 continue
我正在重写一些遗留代码并遇到了这个:
这两个循环似乎只有一个CONTINUE
。它等同于这个Java代码吗?
arrays - Fortran 77 可变大小的字符串数组?
我是 Fortran 77 中的一个假人,并且一直是 C++ 编码器,但我必须修改多年前的代码......我想创建一个可变大小的字符串数组,但我在网上找不到如何在 Fortran 中执行此操作77. 理想情况下,它应该是两个维度都可变的数组,但如果不可能,我可以修复字符串的长度,但我需要有可变数量的字符串。
我试过这个:
但这不起作用...
fortran - Fortran 中的实数与整数
我有一个程序循环一个变量并在每一步计算一个值:
在我的第一次尝试中,我用作iT
整数循环计数器,然后在公式中直接使用它。这产生了iT
>的分段图ic8t
。当我添加i
为计数器并iT
在公式中使用它之前转换为实数时,图表应该是平滑的。为什么iT
在插入公式时是实数还是整数很重要?我的编译器是g77。
iT
编辑:该公式也为<提供了一些不准确的值ic8t
。
fortran - Fortran 中的星号: (1) 处的参数列表中的语法错误
在下面的fortran77代码中,有这个子程序定义
最后两个参数是什么意思,星号?
因此,我该如何调用该函数?
我尝试了所有这些变体
但总是得到
错误:(1) 处的参数列表中的语法错误
fortran - FORTRAN 77 简单输入/输出
我是 FORTRAN 的新手,必须编写一个 FORTRAN 77 程序才能从文件重定向或标准输入中读取以下格式:
示例输入可能是:
我的母语是 C++,所以我对 read 语句自动转到下一行的整个想法很陌生。
到目前为止,我有以下代码:
10 if(LETTER .ne. D) then write (6, 100) LETTER, X, Y, Z read *, LETTER, X, Y, Z goto 10 else goto 20 endif
C ===================================================== 20 lines = aint(X) write (*,990) 'LINES: ', lines write (6, 85) X, Y, Z read *, Z write (6, 85) X, Y, Z end正如你所看到的,我得到了输入的第一部分,但在那之后,由于 read 语句,一切都变得糊涂了:read*, Z 进入下一行。在我上面提供的特定输入文件中,我得到了 D 之后的 2,以及接下来的两个值(3.0、5.0),但我跳过了 6.0
任何帮助都会很棒。谢谢。
dll - 在 g77 中使用 DLL
我正在使用旧的 g77 编译器 (http://people.tamu.edu/~matthewmccleskey/g77.html),但似乎无法找出如何在我的代码中使用外部 DLL。甚至有可能,还是我必须获得更新的编译器?
我有 DLL 和 LIB 文件。该函数名为 GetDBI (_GetDBI@32)。
甚至可以在 fortran 77 中使用 DLL 吗?
linux - 在linux上的pgf90编译器上第二次调用子程序时出现分段错误
我不能在 Linux 环境下使用 pgf90 fortran 编译器两次调用同一个子程序。第一次调用子程序是可以的,但第二次调用它,它给出了分段错误。有人可以提出一些建议,我的代码有什么问题,举个简单的例子
PS 与 gfortran 没关系,即使我在 intel visual fortran 上尝试过,也没关系
fortran - FORTRAN 77 程序是否比 Fortran 90 程序快?
今天我正在阅读一些用 FORTRAN 77 编写的非常流行的数值库的代码,例如 QUADPACK(最后一次更新于 1987 年),我想知道除了大量的工作之外,是否有任何理由不在 Fortran 90 中重写这些库考虑到 Fortran 90 给该语言带来的巨大改进,包括自由格式的源代码、更好的控制结构(因此可以忘记 GO TO)、向量化、接口等,这将构成。
是因为 FORTRAN 77 编译器产生了更优化的代码,也许它更适合并行执行?请注意,我什至不是在谈论 Fortran 2003,它只有8 年的历史:我在谈论 Fortran 90,所以我假设它已经足够广泛并且编译器已经准备好。反正我没接触过这个行业。
编辑:janneb 是对的:LAPACK 实际上是用 Fortran 90 编写的。
fortran - Fortran 使用内部 goto 执行循环
我有一个如下所示的 Fortran77 片段:
当它到达 GOTO 1301 语句时,它是跳转到循环的下一次迭代还是退出循环?据我了解,return 关键字什么都不做,所以我假设这只会退出循环并从标签 1301 继续执行代码,对吗?
我正在将其翻译为 C#,并想知道这是否等效:
或者如果我应该“继续”而不是“返回”?