問題タブ [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++ オブジェクト ファイルのリンク
ISO_C_Binding モジュールを使用している FORTRAN から C++ 関数を呼び出します。コマンドでFORTRANメインファイルとC++関数を圧縮した後
オブジェクトファイルを作成しますが、一部のメンバーが提案したように、リンク段階でコマンドを使用します
つまり、FORTRAN ライブラリにリンクして C++ コンパイラを使用すると、次のようなエラーが発生します。
したがって、主な問題は、リンカーがFORTRANライブラリとリンクできないことだと思います。そのg++
ため、リンクオプションにパスを含める必要があるか、コンパイラで設定を行う必要があるかもしれg++
ませんが、これはわかりませんこれを行う方法なので、この問題を整理するのを手伝ってください。
debugging - fortran 実行可能ファイルに対して IDB (インテル コンパイラ デバッガ) でブレーク コマンドを使用するにはどうすればよいですか?
私は idb/gdb デバッガーを初めて使用するので、まずい質問をして申し訳ありません。IDB を使用して time_manager.F90 というファイルにある set_time_i という関数にブレークポイントを設定しようとしています。ただし、idb はエラー メッセージを表示し続け、ブレークポイントの設定を停止します。私が何か間違ったことをしたかどうかを知ることができますか? これらすべてのコマンドを試しました:
1) (idb) break time_manager.F90:set_time_i
2) (idb) 休憩 time_manager:set_time_i
3) (idb) ブレーク set_time_i
4) (idb) 休憩 time_manager_:set_time_i_
エラーメッセージは
" break time_manager:set_time_i ^ 入力を有効なコマンドまたは Fortran 式として解析できません。"
上記のいずれも機能しません。使用中に何か見逃しましたか?ありがとう
linux - OpenMP と並列化の問題
スーパーコンピュータを用いた計算電磁気学研究室で研究を行っています。ここでは、クラスターを使用して、5 億を超える未知数を含む問題を解決しています。この時点で、これらすべての計算を並列化することに問題があります。これまではMPIでノード間の通信を行ってきましたが、OpenMPのメリットとして、ノード内のプロセッサ間通信を可能にするためにOpenMPを使用することを決定しようとしています。それにもかかわらず、openMP からは効率が得られませんでした (おそらく誤ったコーディングのため)。実際のポイントは、私が提供するコードの何が問題なのかわからないということです。
OpenMP ディレクティブを使用しない純粋なコードのシーケンシャルでも同じ時間がかかりました。「top」コマンドを使用すると、並列セクションで 8 つのプロセッサが %100 のパフォーマンスで動作していました。
gfortran --バージョン | head -1 GNU Fortran (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
fortran - Fortran から C の open() 関数を呼び出すときのファイル許可が正しくない
C 関数を呼び出し、open() を使用してファイルを開く Fortran プログラムがあります。
main.f90:
test.c:
私は次のようにコンパイルします:
プログラムを実行すると、ファイル test.txt が作成されますが、権限が正しくありません。
あるべきだったとき
この関数を別の C プログラムから呼び出すと、正常に動作します。誰かが何が間違っているのか指摘できますか?
仕様: 64 ビット Linux GNU Fortran (SUSE Linux) 4.5.0、GCC (SUSE Linux) 4.5.0
ありがとう、クシティジ
gcc - 手続き間分析
gcc (特に C、C++、および Fortran コンパイラ) は、パフォーマンスを向上させるための手続き間解析をサポートしていますか? はいの場合、関連するフラグはどれですか?
http://gcc.gnu.org/wiki/InterProceduralは、gcc が IPA を実装すると述べていますが、そのページはかなり古くなっています。
xcode4 - gfortran の自作インストールが xcode 4.2 で失敗する
xcode4.2 がインストールされているため、homebrew 経由で gfortran をインストールできません。
エラーは次のとおりです。
これを機能させるにはどうすればよいですか (xcode 4.2 を使用して、xcode 4.2 をダウングレードすることは実際には良い選択肢ではありません)。
c++ - mainの複数の定義:FortranとC++のリンク
からmvndst_()サブルーチンを呼び出すC++プログラムを書きたい
http://www.math.wsu.edu/faculty/genz/software/fort77/mvndstpack.f
Linuxで、test.ccを作成すると、次のようになります。
を介してコンパイルします
それから私は得る
ただし、strip -N main mvndstpack.o
リンクする前に実行すると、リンクは成功します。-Mnomainフラグがここで機能しなかった理由を誰かが説明できますか?また、Mac OS Xでの「ストリップ」の動作が異なるように見えるため、「ストリップ」を使用するソリューションは避けたいと思います(つまり、-Nオプションは使用できず、別の方法がわかりません。正しい動作を取得します)。また、可能であれば、元のFortranソースの編集は避けたいと思います。
詳細:-GNU Fortran(Ubuntu / Linaro 4.6.1-9ubuntu3)4.6.1-g ++(Ubuntu / Linaro 4.6.1-9ubuntu3)4.6.1-GNUストリップ(Ubuntu用GNU Binutils)2.21.53.20110810-MacOS上のストリップX10.6スノーレオパード
gcc - エラー: (1) の名前に無効な文字があります
FORTRAN でいくつかの .h ファイルと一緒に Fortran ファイルをコンパイルしようとしています。.h ファイルには、変数の共通ブロックの定義が含まれています。Fortran でコンパイルすると、次のエラーが発生します。
このエラーが発生するコードは、
ここで私の質問は、この「1」はエラーの場所を指していますか?
このエラーが指摘するコード行は、
また、継続の使用方法に何か問題がありますか。このファイルのコンパイルには gfortran を使用しています。
python - undefined symbol: vmldExp2
I am using f2py and Intel fortran compiler to wrap some fortran code which calls some math library like dexp
and dpow
.
The compilation went smoothly without reporting any err, but when I attempted to run the wrapped python modules, the error prompts up:
ImportError: /usr/lib/python2.7/site-packages/foo/foo.so: undefined symbol: vmldExp2
I switched to gfortran and it seems that the similar problem persists, but for vmldPow2
.
How can I fix this in the f2py context?
compiler-errors - Fortran 90 コンパイル エラー「一般的な 'foo' at (1) の特定のサブルーチンはありません」をデバッグする方法は?
iso_c_bindings モジュールを使用して Fortran 2003 バインディングを CUFFT ライブラリに書き込もうとしていますが、サブルーチンに問題があります( FFTW ライブラリcufftPlanMany
と同様)。sfftw_plan_many_dft
バインディング自体は次のようになります。
呼び出し部分は次のようになります。
残念ながら、これをコンパイルしようとすると、
エラー: (1) の一般的な 'cufftplanmany' に固有のサブルーチンはありません
コンパイル エラー。定数の代わりに変数を使用しようとしても役に立ちませんでした。これをデバッグするのを手伝ってもらえますか?
使用するコンパイラはgfortranです: GNU Fortran (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5