問題タブ [fortran90]

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 に答える
1187 参照

fortran - Fortran 95:if条件のインライン評価

ここに、実際の値に対してepsilon()を返す小さなコードスニペットがあります。

さて、if条件を次のように置き換えると

プログラムは見返りに同じであるはずですが、残念ながらそうではありません!LinuxとWindowsでg95の最新(スナップショット)リリースでテストしました。

誰かがその問題を私に説明できますか?

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

fortran - Fortran の測定単位

fortran の測定単位に関連付けられた数量を処理するためのデータ型とサービスを定義するライブラリはありますか?

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

fortran - Fortran 90 のオプションのサブルーチン

fortran 90 でこの目的を達成するにはどうすればよいですか? 関数を受け入れるルーチンがあります

今、ルーチンをオプションにしたい

さて、 mysub が標準変数である場合、次のvarようなことができます

しかし、私の知る限り、オプションのサブルーチンに対して同じことを実行することはできません。実際には、これは不可能です

l_mysub を宣言できないためです。私が知らないトリックで可能ですか?はい、もちろんできます

しかし、私のケースはより複雑で、このチェックをどこにでも配置する必要があります。渡すことができるオプションのサブルーチンが 3 つあるとします。

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

arrays - 2 レベルのサブルーチンで形状引き継ぎ配列を渡す (Fortran 90)

Fortran 90 で形状引き継ぎ配列を使用してサブルーチンを連続して呼び出すときに問題がありました。具体的には、形状引き継ぎ配列をパラメーターとして渡して 2 つのレベルのサブルーチンを呼び出しましたが、最終的に配列が失われました。それを実証するために、以下のコードに従うことができます。

すぐに、main は x を割り当て、sub1(x) を呼び出します。次に、sub1 が sub2(x) を呼び出します。つまり、割り当てられた配列が別のサブルーチンに渡されるサブルーチンに渡されます。main で作成したのと同じ配列が sub2 にあると予想されますが、そうではありません。gdb をツールとして使用して探索すると、次のようになります。

1) main では、sub1 を呼び出す直前に、配列 x が完全に定義されています。

(gdb) px
$1 = (5, 0, 0, 0, 0, 0, 0, 0, 0, 0)

2) sub1 内で、sub2 を呼び出す直前に、x も明確に定義されています。

(gdb) px
$2 = (5, 0, 0, 0, 0, 0, 0, 0, 0, 0)

3) ただし、sub2 内では、x に予期しない値があり、その次元でさえ完全に間違っています。

(gdb) px
$3 = ()
(gdb) whatis x
type = REAL(4) (0:-1)

したがって、x は main から sub1 に正常に渡されましたが、sub1 から sub2 には渡されませんでした。私は Intel Fortran と gfortran を同じ結果で使用しています。

私は長い間それに苦労してきました。どんな助けでも大歓迎です。
G.オリベイラ。

0 投票する
6 に答える
11419 参照

fortran - Fortran 90でファイルをコピーする方法は?

ポータブルなクロスプラットフォーム方式でFortran90のファイルをコピーするにはどうすればよいですか?

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

fortran - system() を使用した単純な fortran プログラムのクラッシュ

このプログラムは、ifort の SIGSEGV でクラッシュします。

gdb:

ifort --バージョン

これはバグですか、それとも機能ですか?

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

fortran - FORTRAN 90 構造体で MPI_type_contiguous と MPI_Type_CREATE_Subarray を使用するには

こんにちは、このようなfortran構造を使用しようとしています

ここで、私のテスト プログラムの目的は、あるプロセッサから別のプロセッサに 10 個の数字を送信することですが、これらの 10 個の数字の開始点は私の選択です (たとえば、必要のない 20 個の数字のベクトルがある場合、最初の 10 個の数字を使用して次のプロセッサですが、私の選択は 5 から 15 です)。まず、このように mpi_type_contiguous を使用します

send rec を実行し、最初の 10 個の数字を他のプロセッサに取得できました (2 つのプロセッサでテストしています)。

これを送ります

2番目の部分では、mpi_TYPE_CREATE_SUBARRAYを使用したので、

これを行う方法がわかりません。

というエラーが表示されます

ローカル マシンで openmpi を使用しています。mpi_type_contiguous 部分がなくても subarray コマンドを使用できました。ただし、両方を組み合わせると、実際のコードに fortran を使用した構造があるため、この場合はそれを行う必要があります。それを行うためのより良い方法があるかどうかはわかりません。どんな種類のヘルプや提案も大歓迎です。前もって感謝します

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

fortran90 - Fortran 90 プログラムで配列の値を保存する

私は、システムのさまざまな変数の 2 次元および 1 次元の配列を持っています。これは、次の構成がそこから進化するシステムの平衡状態を特徴付けます。ここで、特定の状況でこれらの配列にデータを保存して続行する必要があるため、メインプログラムの宣言 (構文) と、これらの配列を使用して調整可能に配信されるサブルーチンにどのように記述する必要がありますか?配列を渡すサイズ配列メソッド?

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

fortran - x%aa は Fortran 90 配列セクションですか?

次のようなユーザー定義型を使用しますfoo

xおよびそのタイプの変数:

x%a配列セクションですか?