問題タブ [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.

0 投票する
1 に答える
4424 参照

linker - FORTRAN および C++ オブジェクト ファイルのリンク

ISO_C_Binding モジュールを使用している FORTRAN から C++ 関数を呼び出します。コマンドでFORTRANメインファイルとC++関数を圧縮した後

オブジェクトファイルを作成しますが、一部のメンバーが提案したように、リンク段階でコマンドを使用します

つまり、FORTRAN ライブラリにリンクして C++ コンパイラを使用すると、次のようなエラーが発生します。

したがって、主な問題は、リンカーがFORTRANライブラリとリンクできないことだと思います。そのg++ため、リンクオプションにパスを含める必要があるか、コンパイラで設定を行う必要があるかもしれg++ませんが、これはわかりませんこれを行う方法なので、この問題を整理するのを手伝ってください。

0 投票する
1 に答える
1049 参照

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 式として解析できません。"

上記のいずれも機能しません。使用中に何か見逃しましたか?ありがとう

0 投票する
2 に答える
409 参照

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)

0 投票する
3 に答える
585 参照

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

ありがとう、クシティジ

0 投票する
1 に答える
758 参照

gcc - 手続き間分析

gcc (特に C、C++、および Fortran コンパイラ) は、パフォーマンスを向上させるための手続き間解析をサポートしていますか? はいの場合、関連するフラグはどれですか?

http://gcc.gnu.org/wiki/InterProceduralは、gcc が IPA を実装すると述べていますが、そのページはかなり古くなっています。

0 投票する
1 に答える
3006 参照

xcode4 - gfortran の自作インストールが xcode 4.2 で失敗する

xcode4.2 がインストールされているため、homebrew 経由で gfortran をインストールできません。

エラーは次のとおりです。

これを機能させるにはどうすればよいですか (xcode 4.2 を使用して、xcode 4.2 をダウングレードすることは実際には良い選択肢ではありません)。

0 投票する
2 に答える
1538 参照

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スノーレオパード

0 投票する
4 に答える
21099 参照

gcc - エラー: (1) の名前に無効な文字があります

FORTRAN でいくつかの .h ファイルと一緒に Fortran ファイルをコンパイルしようとしています。.h ファイルには、変数の共通ブロックの定義が含まれています。Fortran でコンパイルすると、次のエラーが発生します。

このエラーが発生するコードは、

ここで私の質問は、この「1」はエラーの場所を指していますか?

このエラーが指摘するコード行は、

また、継続の使用方法に何か問題がありますか。このファイルのコンパイルには gfortran を使用しています。

0 投票する
1 に答える
209 参照

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?

0 投票する
2 に答える
8446 参照

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