7得票3回答
gfortran或ifort编译器在计算两个数组的乘积之和时,是否会明智地使用SIMD指令?

我有一些使用numpy编写的代码,并考虑将其迁移到Fortran以获得更好的性能。 我多次执行的一个操作是对两个数组的逐元素乘积进行求和: sum(A*B) 很明显,融合乘加指令将有助于此。我的当前处理器不支持这些指令,所以我无法测试。但是,我可能会升级到一款支持FMA3的新处理器(I...

8得票2回答
MPI计数为零通常是有效的。

我今天看到了这个 MPI_ERR_COUNT 无效的计数参数。 计数参数必须为非负数; 计数为零通常是有效的。 什么是计数为零“通常”有效? 这是否意味着它取决于实现?

9得票2回答
SIGFPE:浮点异常。此错误的回溯信息为:0x7F70C71AF7D7。

我在Ubuntu 14.04下使用Fortran 90模型。通过Ubuntu软件中心安装了gfortran 95编译器(gfortran 4:4.8.2-1ubuntu6)和gcc 4:4.8.2-1ubuntu6。运行模型后,出现以下错误信息: Program received signa...

13得票1回答
为什么COBOL必须缩进?

为什么 COBOL 必须像这样缩进,即在每个源文件中具有额外的空格? 考虑以下代码(注意额外的空格): IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hell...

13得票4回答
如何在Fortran中实时增加数组大小?

我的程序通过遍历3D数组,标记它找到的“簇”,然后进行一些检查,以查看任何相邻的簇是否具有比当前簇更高的标签。有第二个数组保存“正确”的簇标签。如果发现第n个相邻簇已正确标记,则将该元素分配为0;否则将其分配给正确的标签(例如,如果第n个位置的标签为2,而其邻居被标记为3,则将第三个元素lab...

9得票4回答
使用延迟长度的字符字符串读取用户输入

我希望能够简单地使用延迟长度字符串读取用户输入。我之所以这样做,是因为在不知道用户输入的大小之前,我不想声明字符串的大小。我知道有一些“复杂”的方法可以实现这一点。例如,可以使用iso_varying_string模块:https://www.fortran.com/iso_varying_s...

7得票2回答
Fortran重塑 - N维转置

我正在尝试编写一些Fortran代码,需要重新排序n维数组。我认为reshape内置函数结合order参数应该可以实现这一点,但是我遇到了困难。 考虑以下最简示例。 program test implicit none real, dimension(:,:,:,:,:),...

14得票4回答
在Fortran中使用参数(常量)变量时出现NaN值的情况

是否可以使用NaN设置参数变量,并将其用于特定模块。我想将其用于初始化其他变量。因此,如果它们未更新,我将面临运行时错误,而不是使用某些随机数进行模拟。 我正在使用GFortran。

10得票1回答
在FORTRAN中如何在同一行上编写代码

在Fortran中,每次使用WRITE都会产生一行新的内容。为了控制正在执行的程序的工作,我想在屏幕上写出变量当前的值,但始终在同一行上(擦除先前的值并从行的开头开始)。也就是说,类似于: 1 CONTINUE "update the value of a" WR...

33得票4回答
OpenMP能在GPU上使用吗?

我在网上搜索了很多,但是对这个话题仍然感到非常困惑。有人能更清楚地解释一下吗?我来自航空航天工程背景(不是计算机科学),所以当我在网上阅读关于OpenMP/CUDA等多线程的内容时,我并不真正理解其中的大部分。 我目前正在尝试将用FORTRAN编写的内部CFD软件并行化。以下是我的疑问: ...