問題タブ [fujitsu-fortran]

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

user-interface - fortran77プログラムをサブルーチンにコーディングする

私は、Fortran77プログラムのGUIを作成するタスクを与えられました。そのために、私はLaheyFujitsuコンパイラとwiskを使用しています。これは基本的にwinteracterのベアボーンバージョンです。今、私は90年にGUI部分をコーディングしています。正直なところ、今は何もコーディングしておらず、wiskウィザードが吐き出しているコードを使用しているだけで、77部分とのGUI部分の通信に問題があります。

プログラムは、メインプログラムと14個のサブルーチンファイルで構成されています。メインプログラムは、他のすべてのサブルーチンを呼び出し、計算を処理し、最終結果をテキストファイルに書き込みます。私がやりたいのは、メインプログラムをサブルーチンにして、プログラムのGUIまたはFortran 90部分から呼び出し、GUIをメインプログラムにすることです。fortran 77の多くが暗黙の倍精度として宣言されているのに対し、Fortran 90コードは暗黙的になしであるため、これを行うことは可能ですか?さらにGUIの部分では、すべてのサブルーチンを呼び出す必要がありますか、それともサブルーチンに含まれるメインプログラムがこれを処理しますか?

任意のヘルプ/アドバイスをいただければ幸いです。

私のFortranスキルはまだ限られているので、これのいずれかが明確でない場合は、確かにそうですが、私が何を意味するのかを明確にするように私に頼んでください。

ありがとう、クリスチャン

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

fortran - Fortran が外部ライブラリを呼び出せない

Fortran プログラムで「decomp_2d」という外部ライブラリを使用しようとしています。「decomp_2d」が配置されているディレクトリを指す「DECOMP2D」と宣言された環境変数があります。このディレクトリの構造は次のとおりです。

別のディレクトリで、このライブラリのサブルーチンを使用するプログラムを呼び出そうとしています。しかし、これを行っていると、コンパイル時エラーが発生します。私が使用している最小限の Fortran コードと、コンパイルに使用している Makefile を添付しています。これは富士通のマシンで、コンパイルに使用している独自の fortran コンパイラがあります。

プログラム:

メイクファイル:

「make」と入力すると、次のエラーが表示されます。

何か案は?

0 投票する
0 に答える
412 参照

callback - 外部コールバック関数を Fortran の他のルーチンからアクセスできるようにする (LF95)

ここで説明されている問題と非常によく似た問題があります:外部関数を Fortran の他の関数/モジュールにアクセス可能にする

Lahey/Fujitsu LF95 コンパイラを使用して、Fortran ソース コードからコンパイルされた DLL を使用しています。外部コールバック関数 (関数ポインタ) へのグローバル参照を保存して、後で呼び出すことができるようにしようとしています。 Fortran DLL の他の関数。

シナリオは次のようなものです。

  • ホスト アプリケーションが Fortran DLL からサブルーチン (プロシージャ) を呼び出し、参照をコールバック関数に渡します。
  • コールバック関数への参照は、グローバルとして保存する必要があります
  • その後、ホスト アプリケーションは Fortran DLL からさまざまな関数を呼び出す可能性があり、これらの関数はコールバック関数を呼び出して、ホスト アプリケーションを呼び出す必要があります。

問題は、質問から受け入れられた回答が Lahey Fortran コンパイラでコンパイルされないことです。どうやら、Intel コンパイラと LF95 コンパイラにはかなりの違いがあります。

次のように、コールバック参照が単一のサブルーチンで正常に機能するようになりました。

ホスト アプリケーション (私の場合は C# ですが、それは重要ではありません) からこの関数を呼び出すと、非常にうまく機能します。関数参照 (C# の delegatae) を渡すと、Fortran が正しく呼び出しを行い、期待どおりの結果が得られます。

interface問題は、宣言を の外に移動してから、別の Fortran 関数から をtestcallback呼び出すことができないように見えることです。cbk

これが私が達成したいことの例です:

最後に、現時点で LF95 コンパイラからの移行は選択肢にないことを付け加えたいと思います。誰かがこれを処理する方法を知っていれば、私は非常に感謝しています!