準・究極の選択

現在fortran77により数値計算し、可視化する環境を探しています。素人なので、アドバイス頂ければ幸いです。

背景:matlabで既にプログラム済みファイルを、fortranで書き直したい。プログラムは数値計算をしてその結果をグラフ(2D,3D)で可視化する物。matlab環境では計算時間がかかる為、fortranで時間短縮したい。

環境:Win XPへ所有しているマイクロソフトビジュアルFortran77(Ver調査中。7年くらい前の物)をインストールして、それを使おうと考えています。

疑問:どうやって計算結果を可視化するか?ポストプロセッサーとして、gnueplotやmatlabを使用するのは可能だと思うがそれが一番効率的なのでしょうか?ビジュアルFortranには可視化ライブラリみたいな物があるのでしょうか?

不足情報あればアップいたします。初心者ですが、アドバイスを宜しくお願いします。

追伸:研究室の過去の資産の関係でFortranを考えています。多言語でのメリットもあれば教えて頂たいですが、基本古い言語使用に対する中傷「のみ」はご遠慮下さい。

A 回答 (4件)

10年以上前のバージョンを使っています。


マイクロソフトの場合、私のバージョンでは、
マルチランゲージプログラミング環境
を使うことになります。

Fotran で数値処理をして、結果をファイルに落す。
VB 又は VC でファィルを読み出して作画する

という複数の言語を使い、Fotran の剣山結果を VB 又は VC で使用する
という構造になります。

ビジアルスタジオのヘルプメニューでは
FORTRAN から C の呼び出し
混合言語によるプログラミング
があります。

私の場合には、Fotran の資源をMS-BASIC に書きなおしてPC-9801に移動(1990年代)
MS-BASIC の内容を Visual basic に移動(2005 から、まだ終わらない)作業中です。
MS-Fotran が高すぎて買えなかったのが直接の原因です。

この回答への補足

回答ありがとうございます。

色んな言語を使用されていますね。私の職場でも、88Basicで描画できたソフトが時代の流れから消えました。代替ソフトは誰も手をつける人が居ない為、放置状態です。貴重な資産でしたが残念です…。

回答頂いた流れは理解できました。教えて頂きたいのですが、ビジュアル○(VCやCB)という名の製品はグラフ描画のライブラリが備わっていると言う理解でよろしいでしょうか?そうであれば、私のfortran環境も確認してみたいと思います。

補足日時:2010/12/04 11:21
    • good
    • 0

MATLAB から C や FORTRAN の関数を呼び出すことも出来ます。



http://www.mathworks.ch/help/techdoc/matlab_exte …

高速化したい部分だけ外に出して,
結果を MATLAB で受け取って表示したり出来ます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

matlabから外部関数呼出しが出来るんですね。そうであれば大変便利です。ただ今のmatlabは学生版なので、MEXの機能制限がないのを確認します。

お礼日時:2010/12/04 11:28

>ビジュアル○(VCやCB)という名の製品はグラフ描画のライブラリが備わっていると言う理解でよろしいでしょうか


2次元の画面での、直線、四角、丸の作画ルーチンがライブラリー(関数、命令、API等)に入っています。
「直線」には、多数の点を直線で結ぶ場合と近似曲線(スプラインとかベネチェとか)で補間して描く機能があります。多数の点を指定すればそれらしき関数曲線になります。
3次元の場合には DirectX というゲーム用APIを使う必要があります。
http://msdn.microsoft.com/ja-jp/library/bb892831 …

マイクロソフトFotran でAPI を呼び出す機能があったはずなので、DirectX は比較的簡単に使用できるはずですが、How-To 本でちょっと眺めた程度であり、わかりません。
http://www.kohgakusha.co.jp/ の本ですが、書名を忘却。

極端な場合、ゲーム用の3Dライブラリが書籍などで公開されていますので、著作権の兼ね合いから、書籍を読みながら、類似の機能のルーチンを自分で書いて行く、ことになるでしょう。
私の場合には、私以外の人物の使用を考えていないので、書籍に公開されている内容をそのままコピーして実行すればそれなりの物が出来ます。これですと、事故が起こったときにどうしょうもないので、1回使用でその後使うつもりがない場合を除いて、類似のルーチンを自前で作成することにしています。
    • good
    • 0
この回答へのお礼

度々ありがとうございます。

ポストプロセスのイメージが沸きました。matlabやgnuplotの様な描画専門の機能がある訳ではないのですね…。友人もDirectXは便利だと教えてくれたのは思い出しましたが、私には敷居が高いかもしれません…。

私の場合、描画は3次元プロットや簡単な動画(コンター図の変化)が必要であるため、ポストは他のソフトに任せようと思います。

お礼日時:2010/12/04 21:42

#2 です。



MEX ファイルの作成で,正式サポートされている Fortran コンパイラはかなり限られているようですね。
(MATLAB のバージョンによって違う)
http://www.mathworks.ch/support/compilers/R2010b …

参考までに,
"Gnu Fortran, C, Lapack and Blas from Windows Matlab"
http://www.mathworks.com/matlabcentral/fileexcha …

# 私の場合は,相手が VC++ だったので,さほど苦労しませんでした・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

matlabのバージョンも関連するんですね。。私は古いR12なので期待薄そうです(泣)。
何となく、ポストプロセスはmatlabかgnuplotで別処理の方がいい気がしてきました…。

お礼日時:2010/12/04 21:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!