Fortranのインストールについて

このQ&Aのポイント
  • Fortranのインストールについての質問です。
  • 質問者はFortran90/95をインストールしたいが、どれをインストールすれば良いか分かりません。
  • また、欲しい機能はテキストで書かれた数値計算プログラムをコンパイルして実行・計算できることであり、予算は5万円程度以内です。
回答を見る
  • ベストアンサー

Fortranのインストールについて

 今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Win7 Home SP1 64bit メモリ16GB でございます。  大分前にFortran77を使用していた経験が少しございます。この度、Fortran90/95を インストールしたい次第でございますが、どれをインストールすれば良いのかが分かりません。。。 お詳しい方にご指導いただきたく質問させていただく次第でございます。  欲しい機能といたしましては、 ・テキストで書かれた数値計算プログラムをコンパイル →実行・計算できる。 ・もし計算精度や速度に違いがあるようでしたら、スペックの良い物。  (予算5万円程度以内でお願いいたします。) でございます。(ネットで検索しておりましたが、g95なるフリーの物の説明ばかり出てまいります。。。)  F77時代は、コマンドプロンプト上で計算していた記憶がございます。先ほど、 試しに「oi_ftn95_personalexe.exe」なるものをDL&インストールしてみまして、 Platoというソフトが入っておりましたが、こういった物は高速演算に不向きなのかな(?)などと勝手に考えております。(Visual Studio(少し触った事がございます)のような「ソフト開発用ソフト」イメージを受けましたので。。。)  できれば、沢山の演算を早く計算できるような物を入手したい次第でございます。  もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • MKT_
  • お礼率99% (329/330)

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

普通の科学計算の用途であればfreeのgfortranで十分だと思います。 並列化もopenMPを使えば手動でできますので必要になれば試してみてください(コンパイラの標準機能としてあります) 市販のコンパイラですが、個人の趣味の用途であればLinux限定ではありますが、Intelのコンパイラが無償で使えます。先にも書きましたが結構速いのです。 IntelとPGIのものしか使ったことがありませんが、組織で使うとなるとIntelのものは結構高額になってしまいますので、こちらはPGIのを使っています。openACC対応なのでおもしろいことができます。 それと市販のものは最適化情報を出力できますので、どうすれば高速化できるか参考になります。高速化は結構面白いところがあります。(gfortranは出力できるかわかりません)

MKT_
質問者

お礼

 どうもありがとうございます!!!m(_ _)m アドバイスいただいた通り、当分はfreeのgfortranで頑張ってみます!先ほどお教えいただいたサイト様のお陰で、本日既にコンパイル&計算出来るようになりました!!^^ 並列化を今から勉強いたします!φ(・_・) >市販のものは最適化情報を出力できますので、どうすれば高速化できるか参考になります。 となりますと、やはり近いうちにLinux環境にするか、市販品を購入できるよう頑張ります!!  この度はご親切にアドバイスいただき誠にありがとうございました!!m(_ _)m

その他の回答 (1)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

このあたりはいかがでしょか http://d.hatena.ne.jp/arakik10/20120214/1329167074 >できれば、沢山の演算を早く計算できるような物を入手したい次第でございます。 g77の時代からみると、CPUが高速化されていること、コンパイラも最適化が進んでいることからgfortranでも結構速くなっています。 市販のコンパイラもいくつかありますが、Intelから販売されているものはgfortranに比べて速いバイナリが得られるように思います。(感覚的にはうまく行った場合に20~30%速くなる程度) また、市販のものは自動並列化機能があって、並列化できる場合にはやってくれます(マルチコアの場合に有効)。 最近ではグラフィック表示に用いられるGPUを使うこともできるopenACC対応のコンパイラだと、少し手を加えることによって大幅な高速化が期待できます(PGIコンパイラなど) 何れにしても、5万円では無理そうです。(アカデミック価格が利用できるなら近い価格になる) それと上記の機能はどれも並列化できるプログラムでないと有効ではありませんが、科学計算だと繰り返しが多いプログラムが多いので並列化ができることが多いです。 ちょっと高速化からずれますが、プログラミングの高速化ということで PythonやRuby、それと性質がちょっと違いますがMatlab(これだけ市販品)それと同じようなことができるOctave などが科学計算に用いられるようになってきています。いずれもベクトルや行列計算機能があって、それを利用すれば比較的速く計算できるようになっています。FORTRANやCには及びませんが行列計算を多用できれば一桁~二桁程度の低下する程度の速度がでます。

MKT_
質問者

お礼

 ki073様  どうもありがとうございます!m(_ _)m お詳しい方にご閲覧いただけて光栄でございます。 >何れにしても、5万円では無理そうです。  はい、私の見積もりが甘かったようでございます。お教えいただいたような >市販のものは自動並列化機能があって、・・・ という機能を是非使っていきたいと考えておりますので、 少し金を貯めて、10~20万円位まで頑張ります。m(_ _)m (コアが8つのPCが2台ございますので。。。) >PythonやRuby、それと性質がちょっと違いますがMatlab(これだけ市販品)それと同じようなことができるOctaveなどが科学計算に・・・  非常に面白そうでございますね^^ 何れも名前しか聞いたことがなく何らかの解析に特化した計算機かと思い込んでおりましたが、利用できるとなると勉強して頑張らせて頂きます。  ご紹介いただいたHP様は、検索時にひっかかった記憶がございますが、フリー製品をご紹介いただいているようでございましたので、少ししか閲覧させていただいておりませんでした。。。  今から10~20万円位までお金を貯めようと思いますがその場合、何かお勧めいただけるような製品はございますでしょうか?(質問状況を変更してしまい申し訳ございません。。。) 有償版を購入するまではまずご紹介いただいたHP様に習って頑張って参ります。この度はどうもありがとうございました!m(_ _)m

関連するQ&A

  • fortran77 windows7

    vistaでfortran77を使っていたのですが、windows7にアップデートしたところ、使えなくなってしまいました。7でも対応しているソフトがあれば教えてください。 お願いします。 (Silverfrost FTN95を使ってみたのですが、文法が違うせなのか、計算できませんでした。)

  • FortranプログラムからC言語で実装された関数を呼ぶには?

    Windows Vista Home PremiumにFTN95をインストールしたPCにて、Fortranのプログラミングをし始め、「Cpad for Salford FTN77」を利用してプログラミングをしています(FORTRAN77・Fortran90ともに)。FTN95でのFortranプログラミングに際し、FortranプログラムからC言語で実装された関数を呼ぶには、どのように対処すれば可能になりますでしょうか? ユーザーガイドによれば、「Fortranプログラム中に、C_EXTERNALという宣言をした関数は、Cの関数と同じくアクセスできるようになり、C側では、#extern <返り値>関数名(引数)を与えれば、Cの関数として呼び込むことができる。」とのことがかかれています。 実際に使っているファイルをいくつか書き出します。 <D:\fortran\sample.f> C_EXTERNAL WRITE 'WriteFile' : INTEGER*4 INTEGER*4 RESULT RESULT=WRITE() write(*,*) result return end <D:\fortran\sample.c> #extern int Writefile(int); <C:\Program Files\Silverfrost\FTN95\ftn95c.bat> ftn95.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 /link ちなみに、「Cpad for Salford FTN77」での実行/設定/実行/コンパイル時のパラメータは「/link /dreal」です。もちろんftn95.exeへのパスは通してあります。何が問題でしょうか? 何分初心者ですので、拙い質問かと思いますが、何卒ご教示願います。

  • Fortranのコンパイラ(無料でXP対応)探してます

    表題の通り、Fortran(77?)の無料のコンパイラを探しています。 大学の研究室でFortranを使っているのですが、 なかなか大学に顔を出せないこともあり、自宅のパソコンで研究を進めようと思っているのですが…。 OSがWINDOWS XPでftn77.exeというコンパイラを使ってみようとしたところ、 XPには対応していないということが理由なのか、インストールできませんでした。 (使おうとするとその都度インストールが始まるだけで使えません) 簡単にコンパイルする方法があれば、それでもけっこうです。 どなたかご存知の方が見えましたら、アドバイスをお願いします。

  • Fortran初心者

    はじめまして 今回私はFortranを使って計算を行うことになりました しかし、私はFortranどころかC言語すら全く無知です Fortranをインストールしたのはいいんですが全て英語で全く使い方が分かりません 初級者向けの本を買ったはいいんですがそれ以前の問題で分かりません どのボタンを押せばどういった動きになるのか? そういったかなり細かいとこまで説明されたサイトや本はありますでしょうか? どうすればコンパイルするのか、どうすれば計算結果が表示されるのか(超基本的なことです)恥・・・ 周りの人に聞くにも時間も限られているので一人で勉強するためにどうか教えてもらえませんか?

  • fortran

    fortran コンパイルして、走らせると・・ こんなエラーが出てきました。 『NaN』 調べたところ、 非数 (NaN) 非数 (NaN) は、指数がとることのできる最も大きな値 (すべて 1) とゼロ以外の小数部により表わされます。 正規化された REAL および DOUBLE PRECISION 数値は、メモリーに格納されているよりビットの精度が 1 つだけ多い暗黙的先行ビットを持っています。たとえば、IEEEの倍精度は小数部に格納された 52 ビットに暗黙的な先行をする 1 ビットを加えた 53 ビットの精度になります。 NaNが出てくる例としては、 big*big = +Inf 正の無限大 big*(-big) = -Inf 負の無限大 num/0.0 = +Inf num > 0.0 のとき num/0.0 = -Inf num < 0.0 のとき 0.0/0.0 = NaN 非数 の他にも、次のような 5 つの種類の浮動小数点例外も発生します。 無効演算 - 数学的に定義できない演算。0.0/0.0、sqrt(-1.0)、log(-37.8) など。 ゼロ除算 - 除数がゼロで、被除数が有限かつゼロでない数。9.9/0.0 など。 オーバーフロー - 指数の範囲を超える結果を出す演算。 MAXDOUBLE+0.0000000000001e308 など。 アンダーフロー - 通常の数として表現できないほど小さな結果を出す演算。 MINDOUBLE * MINDOUBLE など。 結果不正確 - 無限に正確に表現できない結果を出す演算。2.0/3.0、log(1.1)、0.1 の入力など。 今回はおそらく、指数の範囲を超える結果を出す演算であったので、オーバーフローと判断しています。 この対処としては、そのようになる項、値に対して、頻繁にif文を用いて、『10の-20以下であれば0とみなす』といった形で処理してけばいいのかと思いましたが、如何せん、コードが汚くなります。 良い方法をお持ちの方、教えて下さい☆

  • ftn77のコンパイルエラー

    ftn77でfortranのプログラムをコンパイルしたところ、 文字情報のみでテストしたらコンパイルに成功したのですが、 数値計算の入ったものをコンパイルしたら、 実行時に以下のようなエラーが起こりました。 ーーーーーーーーーーーーーーーーーーーーーーーー RUN-TIME ERROR 00401000 main [+00c5] [recur= 1] メッセージ WARNING the following symbols are missing: IMAG C:\fortran\(ファイル名).obj (C:\FORTRAN\(ファイル名).FOR) ーーーーーーーーーーーーーーーーーーーーーーーーー 元々別のパソコンでコンパイルが成功したものを、 まったく書き換えずにftn77でコンパイルしてみたのにもかかわず、 UNTIME EROORと表示されました。 原因が何か分からないので、どなたか教えてください。 ちなみに10行程度の単純なプログラムなら、数値計算をしてもエラーは怒りませんでした。

  • FORTRAN77で作ったプログラムを開くとバイナリファイルと認定され、編集できません

    FORTRAN77を最近勉強し始めました(プログラミング自体が超初心者です)。 ネットで情報を集め、コンパイラーはFTN77、エディタはCPadというフリーソフトを インストールし、実際にプログラムを作って実行してみたました。 一応は上手くいったみたいなのですが(非常に簡単な計算なので)、 いったんエディタを閉じて再び開いてみると、 「ファイル~~~はバイナリファイルと判定されました。無視して開きますか?」 という警告が出て、開いてみると意味不明な文字列が書いてあるだけで もともと何が書いてあったかわかりません。 どうしてこのようなことになってしまうのでしょうか?

  • FORTRANプログラムについてお聞きします。

    仕事で1970年代にFORTRAN77で作られた技術計算(発電所の熱精算)プログラムを使っています。(私はプログラムは使っていても、作ったことのない、ほとんど素人です) このプログラムの規模として、総ステップ数が約60kステップ有ります。 このたび、このプログラムをMATLABに移植することになりました。 移植の理由は、FORTRANそのものが古い言語で、機能拡張などのメンテナンスを依頼しているソフト会社には、FORTRANの分かるエンジニアがいなくなったこと、だそうです。 (MATLAB使用は会社の指示です) そこでお聞きしたいのは以下の点です。 1.FORTRANとは、そんなに古い言語になってしまったのか? 2.MATLABはある精度内で収束するように繰り返し計算するようなプログラムに向いているのか? 3.MATLABのネット記事のほとんどが大学関係者ばかり。企業では使われていないのか?だとしたら、その理由は? 4.MATLABの利点と欠点を述べた記事などがあったら紹介して下さい。 宜しくお願いします。

  • fortranプログラミングでの数値計算と可視化環

    現在fortran77により数値計算し、可視化する環境を探しています。素人なので、アドバイス頂ければ幸いです。 背景:matlabで既にプログラム済みファイルを、fortranで書き直したい。プログラムは数値計算をしてその結果をグラフ(2D,3D)で可視化する物。matlab環境では計算時間がかかる為、fortranで時間短縮したい。 環境:Win XPへ所有しているマイクロソフトビジュアルFortran77(Ver調査中。7年くらい前の物)をインストールして、それを使おうと考えています。 疑問:どうやって計算結果を可視化するか?ポストプロセッサーとして、gnueplotやmatlabを使用するのは可能だと思うがそれが一番効率的なのでしょうか?ビジュアルFortranには可視化ライブラリみたいな物があるのでしょうか? 不足情報あればアップいたします。初心者ですが、アドバイスを宜しくお願いします。 追伸:研究室の過去の資産の関係でFortranを考えています。多言語でのメリットもあれば教えて頂たいですが、基本古い言語使用に対する中傷「のみ」はご遠慮下さい。

  • fortran dlog2

    プログラムの中で m = idnint(dlog2(fn)) という式を書いているのですが、コンパイルの際  m = idnint(dlog2(fn)) 1 Error: Function 'dlog2' at (1) has no implicit type とエラーが出てしまいます。dlog2は倍数精度の対数で計算する物ではないのでしょうか?どのように直してよいのか考えたのですが、様々試しても同じエラーの繰り返しです。どなたかわかる方がいらっしゃったら教えて下さい。よろしくお願いします。