有人将一个大型的Fortran 77代码(我们的是550,000行)转换成C ++吗?你遇到了哪些陷阱?转换成功了吗?你是否使用了for_c这样的工具(http://www.cobalt-blue.com/fc/fcmain.htm)?生成的C++代码速度是否显著变快或变慢?
这是我关于Fortran的第二个问题(我使用C ++,所以原谅我的思维方式)。 我想要在适当的时候使用OOP,也就是在Fortran中使用派生类型。 在C ++中,您可以使用用户定义的构造函数,例如https://msdn.microsoft.com/en-us/library/s16xw1...
我不理解Fortran中未经格式化的文件的格式。 例如:open (3,file=filename,form="unformatted",access="sequential") write(3) matrix(i,:) 将矩阵的一列输出到文件中。我发现它在文件的两端填充了4个字节,但我不太...
我经常在Matlab中使用find命令,我想知道如何在Fortran中聪明地翻译它以提取数组的切片。在Matlab中,您可以使用逻辑或索引进行切片,但在Fortran中,您需要使用索引来进行切片。我知道内置子例程pack等,但从未使用过。另外,由于我处理大矩阵,我想避免重复使用内存。我希望切片...
在一个Fortran程序中,我需要计算几个表达式,例如M · v,MT · v,MT · M,M · MT等等... 这里,M和v是小型的2D和1D数组(通常为2-10左右,大小不超过100)。 我想知道是否编写MATMUL(TRANSPOSE(M),v)会在编译时展开为与MATMUL(N...
我正在尝试使用不同的编程语言解决一个简单的价值函数迭代问题,它需要循环遍历状态空间网格。我试图理解性能差异以及如何调整每个代码。为了后人,我在下面发布了每种语言的完整工作示例。然而,我认为大部分调整应该在while循环中进行。我有点困惑Fortran的运行速度似乎不太理想。 Matlab ~2...
我有以下问题: Fortran90+中分配/释放语句的真正开销是多少? 也就是说,在循环内部分配了几个中等大小的数组,例如:do i = 1, 1000 allocate(tmp(20)) tmp(1:20) = 1d0 call foo(tmp) deallo...
如果我理解正确,omp simd 块中的 aligned 子句是指整个数组的对齐方式。 针对多维数组,它该如何使用呢?假设... ni = 131; nj = 137; nk = 127 !allocates arr(1:131,1:137,1:127) aligned to 64-b...
不确定标题是否恰当,欢迎提出建议。 我想要做的是:检查一个条件,然后在循环中决定使用哪个函数。例如:if (a < 0) then loop_func = func1 else loop_func = func2 endif 我可以使用loop_func作为指针来编写我...