☆Intelコンパイラを使用したFortran90プログラムのコンパイルと実行方法☆ ☆ソースファイルの作成 ×××.f90というファイルを作成し保存してください.→例えば,「test.f90」以下,説明でこのソースファイルを使います.必ず半角英数とすること! もちろん内容もきちんとf90としましょう!→もし,f77の文法をごちゃごちゃに使っていたら×××.fとしておけば,とりあえずはコンパイル可能です. ☆コンパイル方法(標準) まず,プログラムの 「Intel(R)SoftwareDevelopmentTools>インテル(R)VisualFortranコンパイラー・プロフェッショナル××…」 の「インテル(R)64対応アプリケーション用Fortranビルド環境」をクリックする.→デスクトップに出てる場合もあります.64は64ビットCPUという意味です. DOS窓が開いたら,ソースファイルが置いてあるフォルダにcdコマンドで移動します.例えば,ドライブC直下なら, >cd c:\ と入力しEnterキーを押します.DOSコマンドについては必要に応じてググってください. 次に,「ifort test.f90」と入力しEnterキーを押します.→これがコンパイル さらに,「test.exe」と入力しEnterキーを押します.→これが実行 ☆2つのファイルによるコンパイルと実行 メインのプログラムファイルとルーチンのみのファイルを組み合わせて使用する場合の説明です. 説明のためにメインファイルをmain.f90,ルーチンファイルをroutine.f90とします. 「ifort -c routine.f90」と入力しEnterキーを押す.(オブジェクトファイル生成) 「ifort main.f90 routine.obj」と入力しEnterキーを押す.(コンパイル) 「main.exe」(実行) ☆最適化 PCに搭載されたCPU向けに最適化を行う場合,オプション「/fast」を使います. 例えば,「ifort /fast test.f90」 このオプションは「/QxHost /O3 /Qipo /Qprec-div- 」のオプションを使用したことと等価となります. ただし, 精 度 を 犠 牲 にして高速化する場合があります.このオプションは万能ではありません. 必ず,fast実行前と後で計算結果がどのように変化したか注意してください. /QxHost 最上位の命令セットとコンパイルするホストマシンで利用可能なプロセッサー向けの最上位の命令セットを生成します. /O3 処理速度について最大限に最適化し,さらに強力な最適化を有効にしますが,パフォーマンスが向上しないプログラムもあります. /Qipo ファイル間の複数ファイル IPO 有効にします. /Qprec-div- 浮動小数点除算の精度について,完全な IEEEの除算よりも多少精度が低い最適化が有効になります. ちなみに,/Qprec 浮動小数点の精度UP. /Qprec-div 浮動小数点除算の精度UP. /Qprec-sqrt 平方根計算の精度UP. いずれも速度に影響が多少あります. また,並列化オプションとして,「/Qparallel」を追加することで,全てのコアを使用して計算することが可能となります. ただし,これにより正確に計算されない場合もあるので,適用前と後で計算結果がどのように変化したか気をつけてください. よって,通常のコンパイルオプションとしてはあまりお勧めできません. ☆デバッグ用オプション /Od 最適化を無効にします. /traceback ファイルの全てのルーチンに対してインターフェイス・ブロックを生成します. /check:all ランタイム状態を確認します. /fpe-all:3 すべての関数とサブルーチンに対する浮動小数点例外の動作を指定します. 補足:/tracebackを使用すると,プログラムの動作が停止した位置がソースファイルにおける場所として表示されます.→便利です. ☆その他 行列のサイズが大きい場合にエラーが起こる事があります.(エラーメッセージ→Program Exception - stack overflow) 次のようにオプションを追加すれば改善されます.それでも動かない場合は,プログラムを見直しましょう. 例:fastコマンドと併用する場合→「ifort /F3000000000 /fast test.f90」 これによりスタックサイズが増えます.実際は,F2147483647が限界なのですが,これ以上の値を入力しても,実際の限界値が自動的に適用されます. 数字を覚えるのが面倒なので,3の後に0を9つ打った方が楽です. 「CIP」のプログラムは,配列を多く使うのでこういう事が将来あるかもしれません.上記のオプションを追加して実行してみましょう. また,これ以外にもたくさんオプションがあります. 「ifort -help」 にて,オプションの詳細を閲覧できます.必要があればそちらを参照してください. 最後に,これはあくまで現時点で必要最低限の内容をまとめた物にすぎません.将来他のオプションが必要となった場合はその都度更新してください. 2010/06/16 廣中伸二郎作成