问题标签 [gfortran]
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.
linker - 链接 FORTRAN 和 C++ 对象文件
我将从 FORTRAN 调用一个 C++ 函数,为此我使用 ISO_C_Binding 模块。使用命令压缩 FORTRAN 主文件和 C++ 函数后
这将创建对象文件,但在一些成员建议的链接阶段,我将使用命令
即使用 C++ 编译器链接到 FORTRAN 库,但它给出了类似的错误
所以我认为主要问题是g++
链接器无法与 FORTRAN 库链接,所以我可能需要在链接选项中包含一些路径,或者我可能需要在g++
编译器中进行一些设置,我不知道如何做到这一点,所以请帮助解决这个问题。
debugging - 如何在 idb(intel 编译器调试器)中对 fortran 可执行文件使用 break 命令?
我是 idb/gdb 调试器的新手,所以我提前为这些不好的问题道歉。我正在尝试使用 idb 在名为 set_time_i 的函数中设置断点,该函数位于名为 time_manager.F90 的文件中。但是,idb 不断给我错误消息并阻止我设置 hte 断点。我可以知道我是否做错了什么吗?我尝试了所有这些命令:
1) (idb) 中断 time_manager.F90:set_time_i
2) (idb) break time_manager:set_time_i
3) (idb) 中断 set_time_i
4) (idb) break time_manager_:set_time_i_
错误信息是
“ break time_manager:set_time_i ^ 无法将输入解析为合法命令或 Fortran 表达式。”
以上都没有工作。我使用它时是否错过了什么?谢谢
linux - OpenMP 和并行化问题
我正在用超级计算机研究计算电磁学实验室。在这里,我们正在使用集群来解决包括超过 5 亿个未知数的问题。在这一点上,我们遇到了并行化所有这些计算的问题。到目前为止,我们一直在使用 MPI 在节点之间进行通信,但是,就 OpenMP 的优势而言,我们即将决定使用 OpenMP 来实现节点中的处理器之间的通信。尽管如此,我们无法从 openMP 获得任何效率(可能是因为错误编码)。实际上,关键是我不知道我将给出的代码有什么问题。
没有任何 OpenMP 指令的顺序纯代码需要相同的时间。当我使用“top”命令时,8 个处理器在并行部分以 %100 的性能工作。
gfortran --版本 | 头 -1 GNU Fortran (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
fortran - 从 fortran 调用 C 的 open() 函数时文件权限不正确
我有一个调用 C 函数并使用 open() 打开文件的 fortran 程序
main.f90:
测试.c:
我编译为:
当我运行程序时,它会创建文件 test.txt,但权限不正确:
应该是什么时候
如果我从另一个 C 程序调用此函数,它工作正常。有人可以指出出了什么问题吗?
规格:64 位 linux GNU Fortran (SUSE Linux) 4.5.0, GCC (SUSE Linux) 4.5.0
谢谢, Kshitij
gcc - 过程间分析
gcc(特别是 C、C++ 和 Fortran 编译器)是否支持过程间分析以提高性能?如果是,哪些是相关标志?
http://gcc.gnu.org/wiki/InterProcedural说 gcc 将实现 IPA,但该页面已经过时了。
xcode4 - 对于 xcode 4.2,gfortran 的 homebrew 安装失败
我安装了 xcode4.2,因此,我无法通过自制软件安装 gfortran。
这是错误:
我怎样才能让它工作(使用 xcode 4.2,降级我的 xcode 4.2 并不是一个好的选择)?
c++ - main的多重定义:用C++链接fortran
我想编写一个调用 mvndst_() 子例程的 C++ 程序
http://www.math.wsu.edu/faculty/genz/software/fort77/mvndstpack.f
在 Linux 上,如果我创建 test.cc:
并通过编译
然后我得到
但是,如果我strip -N main mvndstpack.o
在链接之前运行,则链接成功。有人可以解释为什么 -Mnomain 标志在这里不起作用吗?我还想避免使用“strip”的解决方案,因为 Mac OS X 上“strip”的行为似乎不同(即 -N 选项不可用,我不确定另一种方法获得正确的行为)。如果可能的话,我还想避免编辑原始的 Fortran 源代码。
详细信息: - GNU Fortran (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1 - g++ (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1 - GNU strip (GNU Binutils for Ubuntu) 2.21.53.20110810 - Mac OS 上的 strip X 10.6 雪豹
gcc - 错误: (1) 处的名称中的字符无效
我正在尝试在 FORTRAN 中编译一个 fortran 文件以及一些 .h 文件。.h 文件包含通用变量块的定义。当我在 Fortran 中编译它们时,出现以下错误:
发生此错误的代码是,
现在我的问题是,这个“1”是否指向错误所在?
此错误指向的代码行是,
此外,使用延续的方式是否有问题。我正在使用 gfortran 编译这个文件。
python - 未定义符号:vmldExp2
我正在使用 f2py 和 Intel fortran 编译器来包装一些 fortran 代码,这些代码调用一些数学库,如dexp
and dpow
。
编译很顺利,没有报任何错误,但是当我尝试运行包装好的python模块时,错误提示:
ImportError:/usr/lib/python2.7/site-packages/foo/foo.so:未定义符号:vmldExp2
我切换到 gfortran,似乎类似的问题仍然存在,但是对于vmldPow2
.
如何在 f2py 上下文中解决此问题?
compiler-errors - 如何调试 Fortran 90 编译错误“在 (1) 处没有通用 'foo' 的特定子例程”?
我正在尝试使用 iso_c_bindings 模块将 Fortran 2003 绑定编写到 CUFFT 库,但我遇到了cufftPlanMany
子例程问题(类似于sfftw_plan_many_dft
FFTW 库中的问题)。
绑定本身如下所示:
调用部分如下所示:
不幸的是,试图编译这个结果
错误:在 (1) 处没有通用“cufftplanmany”的特定子程序
编译错误。尝试使用变量代替常量也无济于事。你能帮忙调试一下吗?
使用的编译器是gfortran:GNU Fortran (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5