問題タブ [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.
python - subprocess.Popen およびバッファリングされたプロセス出力
Python コード内から、標準入力からパラメーターを取得するバイナリ プログラムを実行したいと考えています。subprocess モジュールを使用すると、これは簡単です。
これでプログラムが起動しますが、python スクリプトがそこでハングします。これはgfortranが原因である可能性があることを理解しています(my_programをコンパイルするために使用するのは、stdoutストリームをバッファリングしています.gfortranは、私が行ったようにGFORTRAN_UNBUFFERED_ALL環境変数を使用するだけでなく、fortranコードでFLUSH()組み込みを使用することもできます、しかしまだ運が悪い: python コードはまだハングします。
fortran - Fortran: 2 つの異なるコンパイラを使用してコンパイルされた生成コードの違い
Microsoft Compaq Visual Fortran 6.6 を使用してコンパイルされていた Fortran プログラムで作業する必要があります。gfortran を使用したいのですが、多くの問題に遭遇しました。主な問題は、生成されたバイナリの動作が異なることです。私のプログラムは入力ファイルを受け取り、出力ファイルを生成する必要があります。しかし、gfortran でコンパイルされたバイナリを使用すると、終了前にクラッシュしたり、異なる数値結果が得られることがあります。これは、浮動小数点数を多く使用する研究者によって作成されたプログラムです。
私の質問は、この種の問題につながる可能性のあるこれら 2 つのコンパイラの違いは何ですか?
編集:私のプログラムはいくつかのパラメータの値を計算し、多数の反復があります。最初は、すべてがうまくいきます。数回繰り返した後、いくつかの NaN 値が表示されます (gfortran でコンパイルした場合のみ)。
編集:皆さんの答えを考えてください。そこで、有用なエラー メッセージを表示してくれるインテル コンパイラを使用しました。私の問題の原因は、一部の変数が正しく初期化されていないことです。Compaq Visual Fortran でコンパイルすると、これらの変数は値として自動的に 0 を取るように見えますが、gfortran (および intel) ではランダムな値を取るため、次の反復で加算されるいくつかの数値の違いが説明されます。したがって、解決策は、プログラムをよりよく理解して、これらの不足している初期化を修正することです。
cmake - gfortran を macports にインストールして cmake で使用するにはどうすればよいですか?
誰かが私を助けてくれることを願っています。いくつかのコードをコンパイルする必要があります。/opt/local/ に、macports で必要なものをすべてインストールしました。そして、gFortran を除いて、本来あるべき方法で機能しています。次のエラーが表示されます。
システム (/usr/) に触れたくないので、すべてを /opt/local/ にインストールしたいと考えています。gFortran は macports では使用できません。バリアントとして gcc46 でインストールできます。しかし、デフォルトのコンパイラの代わりに gcc46 を使用すると、コンパイル前のコードが必要になります。どうすれば修正できますか?
敬具
gcc - gFortranのcpu_time()は、ユーザー時間、システム時間、または両方の合計を返しますか?
いくつかのFortran対Cコードのパフォーマンスを比較するために、いくつかのタイミングを実行する必要があります。CIでは、ユーザー時間とシステム時間の両方を個別に取得できます。
gFortranを使用する場合、cpu_time()
それは何を表しますか?
IBMのFortranコンパイラーでは、環境変数を設定することで何を出力するかを選択できます( CPU_TIME()を参照) 。gFortranのドキュメントに類似したものへの参照は見つかりませんでした。
それで、gFortranのcpu_time()がユーザー時間、システム時間、または両方の合計を返すかどうかを誰かが知っていますか?
fortran - gfortranエラー:(1)のフォーマット文字列に負でない幅が必要です
問題のコードは次のとおりです。
それは本当に古い(悪い)コードであり、私はFortranプログラマーではありません。それが与えるエラーは次のとおりです。
セグメント内の最後の2つの書き込みステートメントでエラーが発生します。
私の質問は、コンパイルされるようにdとkの符号なし整数を作成するにはどうすればよいですか?
makefile - minGW + gfortran の簡単なメイクファイルを作成するにはどうすればよいですか
私はgfortran + minGWのまったく新しいものです。メイクファイルを作成する必要があります。私が走るとき
大丈夫!しかし、このようにmakefileを実行するにはどうすればよいですか?
「CC: コマンドが見つかりません」というエラーが表示されます。
(OS – Win 7 (64)) タンク!!!
fortran - センシティブ モードの場合に gfortran でコンパイルする方法は?
Case Sensitiveを使用してgfortranで fortran 90/95 コードをコンパイルすることは可能ですか? マニュアルを検索しましたが、大文字と小文字を区別するために gfortran に指定できるフラグやオプションが見つかりませんでした。変数を大文字と小文字で区別したい。
それで、それは可能ですか?
fortran - サイズがゼロの配列と配列境界のチェック
GNU Fortran (v4.4.3) または Sun Studio F95 (v8.3) でコンパイルし、配列の範囲をチェックしない場合、次のプログラムはエラーなしで実行されます。ただし、配列境界チェックがオンになっている場合 (それぞれgfortran -fbounds-check
およびf95 -C
)、GNU コンパイル済み実行可能ファイルはエラーなしで再度実行されますが、Sun Studio コンパイル済み実行可能ファイルは実行時エラーが発生します。
sub2()
これは、 の自動配列仮引数を使用するの呼び出しのエラーですx
。sub1()
呼び出しは、コンパイラとフラグのどちらでも正常に実行されます。
私の知る限り、このプログラムは「合法的」です。サイズがゼロの配列は、サイズがゼロでない配列のように参照される可能性があり、長さがゼロの次元の明示的なインデックスはありませんx
。しかし、ここで見逃している、サイズがゼロの配列スライスまたは自動配列の繊細さはありますか? また、配列境界チェックが異なるコンパイラ間で同じように動作することを期待する必要がありますか、それともベンダー固有の拡張機能と見なす必要がありますか?
gcc - gfortran に最初の NaN でプログラムを停止させる
アプリケーション (fortran 90) をデバッグするために、すべての NaN をシグナリング NaN に変更したいと考えています。
デフォルト設定では、私のプログラムは信号なしで動作し、ファイルに NaN データを出力するだけです。NaN が生成されるポイントを見つけたい。シグナリング NaN を使用してプログラムを再コンパイルできればSIGFPE
、最初の間違った浮動小数点演算が存在する最初のポイントでシグナルを取得できます。
fortran - gfortran でコンパイルした場合の「DATA INT / 'STRING' /」の問題
g77 コンパイラでコンパイルされ、gfortran で失敗する古い (~1995) レガシー fortran コードがいくつかあります。問題は次の行にあります (互換性のない型変換、文字から整数へ):
変数 CKYAN は、トリガーとして 1 回だけ使用されます。
整数 IWVTX は、入力ファイル (文字列 'KYAN' またはその他の文字列) から読み取られます。
私は fortran で重要な経験がなく、文字列から整数変数を初期化するときに何が起こっているかについてのドキュメントを見つけることができません。g77 コンパイラで確認しました。次のコード:
出力を生成します:
したがって、文字列が等しい場合、数値も等しくなります。ある文字が別の文字の隣にある場合、そのコードは 1 増加します。
質問は次のとおりです。
- ここで何が起こっているのですか?
- 同じで利用可能なgfortranを実行する関数はありますか?
- または、他のファイルに触れずに、これを修正する簡単な方法はありますか?
誰でもこれで私を助けることができますか? 前もって感謝します。