问题标签 [intel-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 回答
32609 浏览

fortran90 - fortran 90 中的 NaN 问题

我意识到如果你写

它使用 ifort 编译正常。但是什么也没写,条件总是false,你注意到了吗?为什么会这样?

0 投票
1 回答
1513 浏览

parallel-processing - 获取返回“***”的 Wtime 函数

我目前正在使用 openMP 将一些 Fortran 代码转换为并行。我试图用来omp_get_wtime()计算实际经过了多少时间,但它返回 ******。其他 OpenMP 函数可以工作,但由于某种原因,它不能工作。我已经从计时器之间删除了所有代码,只是为了尝试获得不同的东西。删除完成,只显示开始会产生相同的结果。任何关于我做错了什么的想法都将不胜感激。

0 投票
1 回答
4474 浏览

function - 使用 Fortran 获取文件大小(以字节为单位)的好方法是什么?

有没有办法使用 Intel Fortran 在 Fortran 中获取文件大小?

我正在使用statwhich 在 gfortran 中效果很好,但在 ifort 中不可用。

0 投票
1 回答
4540 浏览

arrays - forrtl:警告(402):堡垒:(1)

我在运行时收到以下警告:

对于子例程/写语句的每次调用。

子程序的调用:

和写声明:

数组stripe分配有每个维度预期的最大值,因此大多数时候只有一个子集通过调用。

据我了解,就准确性而言,这并不是真正的问题,但可能会减慢程序的速度,因此完成了对 RAM 的大量写入。那么它会减慢我的计算速度(stripe可能有大约的维度stripe(100,300,3)并且可能在以后的某个时间变大)?我怎样才能避免这样的额外数组?

0 投票
1 回答
1299 浏览

fortran - 使用 ifort 和 gfortran 编译 f77 代码时的输出差异

我需要一些指针来解决我只能以有限的方式描述的问题。我从一位资深科学家那里得到了一个用 f77 编写的代码。我无法在公共论坛上提供有关所有权问题的代码。它并不大(750 行),但考虑到隐式声明和 goto 语句,它非常不可读。因此,我很难找出错误的根源。这是问题所在:

当我用 ifort 编译代码时,它运行良好并给了我合理的数字,但是当我用 gfortran 编译它时,它编译得很好,但没有给我正确的答案。该代码是复杂等离子体物理问题的数字求根器。ifort 编译版本找到根目录,但 gfortran 编译版本找不到根目录。

关于如何继续寻找解决方案的任何想法?当我找到一个问题时,我会更新问题以反映实际问题。

0 投票
1 回答
372 浏览

preprocessor - GNU-C 预处理 FORTRAN 源以更改数组索引会导致递归同时扩展宏

我正在并行化现有的 FORTRAN 应用程序。我不想直接更改它的部分代码,所以我使用预处理器指令来实现我的目标。这样我就能够保持代码的可读性,并且不会在已经测试过的部分代码中引发错误。但是,当我尝试使用 GNU C 预处理器预处理我的源代码时,我收到以下错误消息(gcc 版本 4.7.2 (Debian 4.7.2-5)):

这个简单的测试程序演示了我的问题:

这是命令行输出:

[...]

[...]

该站点提供了有关我正在使用的预处理器的一些信息:

http://tigcc.ticalc.org/doc/cpp.html#SEC10

看来我正在使用带有宏参数的类似函数的宏。

为什么预处理器检测到递归?[编辑] - 也许是因为我对 Makro 和 Identifier 使用了相同的名称?
为什么预处理器不能解释大写指令(#DEFINE 而不是#define)?- 我在问,因为 ifort 预处理器没有这个问题。

顺便说一句:我可以使用 ifort 预处理器 -fpp 或通过以下方式更改源来预处理原始代码:

0 投票
2 回答
1472 浏览

memory-management - forrtl:严重(179):无法分配数组 - 数组大小计算溢出

我正在尝试在我的笔记本电脑上运行一个模拟程序(Linux 3.8.0-25-generic x86_64,带有 Ubuntu 13.04)。

它可以编译,但是当分配一些数组大小时,我得到:

forrtl:严重(179):无法分配数组 - 数组大小计算溢出。\

关于这条消息的一些谷歌搜索让我得出结论,这是因为我的程序内存不足而生成的。

为了检查这个假设,我尝试为同一个数组分配一个较小的维度,但仍然遇到同样的问题。

我接下来尝试的是增加堆栈内存,但仍然遇到同样的问题。

这是代码:

我怎么解决这个问题?

0 投票
2 回答
25975 浏览

matrix - 如何将一个巨大的矩阵逐行写入文件(fortran 90)

我想将包含大量数据的矩阵逐行写入文件。例如,我有一个 100*100 的矩阵,我想在文件中以 100*100 的形式拥有它。但是,它不起作用。以下是我的代码和一些描述。N 和 M 是大约数百个整数。RECL 是我设置文件的预期长度,但这里似乎这个命令不起作用。当 N 设置为 99 且 M 设置为 200 时,输出为 198 行。 Vec 是一个双精度复数矩阵。如何输出 Vec 的值并保持其原始格式 N*M?我的编译命令是“ifort -o out test.f90”。

按照@george 的建议,我编写了这样的程序:

有了这段代码,问题就解决了!也许我上次没有正确编译。

0 投票
2 回答
1438 浏览

fortran - 在 Fortran 中捕获整数异常

有没有一种方法可以捕获整数异常,gfortran或者ifort像捕获浮点异常一样?

考虑这个简单的程序来计算阶乘:

在某些时候会有溢出 -integer(8)因为如图所示,它会在 21 左右发生。但如果没有使用浮点数作为参考的计算,我无法确定......

0 投票
1 回答
195 浏览

c++ - VS2010/Intel Fortran 找不到多重定义的符号

背景:我们使用最初在 VAX/OpenVMS 上开发的非常古老的 Fortran 代码 (F77),它允许自定义链接 - 即您可以在库中定义多个符号,但可以强制链接器使用特定符号.

使用 VS2010 和 Intel Fortran 2013,我正在寻找一种方法让链接器在它存在于多个库中时强制它使用来自特定库的符号(即 MYSUBROUTINE)。

我有一个混合的 C++/Fortran 项目。内部开发的库不是我自己的,因此删除未使用的子程序并非易事。因此,为什么我要寻找一种方法来强制 VS2010/Intel Fortran 2013 链接器使用特定的子例程。

我想这个问题不是我们独有的,因为许多遗留代码库,特别是那些有很多 Fortran 的代码库,必须有这个问题。