システム間での Fortran ソース・コードの移植

一般論として,Visual Fortran は可搬性の高い言語です。この言語の主な利点の 1 つは,多数の徹底的に検証された Fortran コードのライブラリーが存在するということにあります。また,目前の問題を解決するのに既存のコードを再利用したい場合もあるでしょう。ほとんどのベンダが提供する数学,科学計算用のコード・ライブラリーは,ほとんど問題なく Visual Fortran に移植できるはずです。

さらに,Visual Fortran は,Compaq Tru64 UNIX や Compaq OpenVMS オペレーティング・システムを実行しているメインフレーム・クラスの Compaq Alpha システムなどの他のシステムに移植するコードを作成するための開発プラットフォームとして使用されることもあります。

別のシステムからコードを持ち込む場合も,後に別のシステムに持ち出す場合も,次の点に注意する必要があります。

関連情報

言語拡張サブセットの選択

Visual Fortran コンパイラは,さまざまなプラットフォームで使用されている拡張に加えて,Visual Fortran 固有のいくつかの拡張をサポートしています。世の中にはさまざまなコンピュータ用の Fortran コンパイラがあり,ソース・コードを異なるコンパイラ間で移植しなければならないことがあるかもしれません。この移植が一方向の永久的なものであるならば,単に移植先のプラットフォームで動作するようにコードを変更すればすみます。しかし,そのコードを必要に応じてどこにでも移植できるようにしなければならない場合,各プラットフォームでサポートされている Fortran 拡張を意識する必要があります。

いくつかの Visual Fortran コンパイラ・オプションは,可搬性のあるコードを書くのに役立ちます。たとえば,「Project Settings」ダイアログボックスの「Fortran」タブで,またはコマンド行で ANSI/ISO 構文への準拠 (/stand オプション) を指定すると,コンパイラは Fortran 90 または 95 構文に従います。このオプションに正しく準拠しているコードは,厳密な Fortran 構文に従う Fortran コンパイラを持っている任意の他のコンピュータで正しくコンパイルできる確率がきわめて高いと考えられます。

プラットフォーム固有の拡張を使用する場合,これらの拡張の各コンピュータでの実装に違いがあるかどうかを確認し,両方で同じように実装されている機能だけを使用するようにしなくてはなりません (詳細については,「可搬性」を参照)。基本設定では,すべての拡張セットを有効にしてコンパイルを行います。

Visual Fortran コンパイラ指示文は標準 Fortran の注釈と同じ形式なので (!DEC$directive),Visual Fortran コンパイラ指示文を使用しているプログラムは他のシステムでもコンパイルできます。ただし,Visual Fortran コンパイラ指示文としての機能は失われます。

浮動小数点に関する注意事項

浮動小数点演算の答えは,システムによって変わることがあります。これは,システムによって精度が異なり,また丸め誤差が異なる方法で処理されるからです。

浮動小数点演算を不安定にする深刻な原因となりうるプログラミングの 1 つが,浮動小数点数が特定の値に正確に一致したときにのみ何らかの動作を実行するような IF 検証 (明示と暗黙の両方) です。プログラムにこのようなコードが含まれている場合,丸め誤差が生じた場合でも安定して動作する版にコードを書き直してください。詳細については,「浮動小数点環境」と「可搬性」を参照してください。

浮動小数点演算を不安定にするもう 1 つの原因は,精度を低下させる傾向のある数学的アルゴリズムの使用です。コードが精度の低いシステムに移植されると,誤った答えが生じることがあります。詳細については,「浮動小数点環境」を参照してください。

あるシステムの全 REAL 変数を,別のシステムで DOUBLE PRECISION にする方法の 1 つとして,各システム用の明示的なデータ型を宣言するモジュールを使うというものがあります。各モジュールで,異なる種別パラメタを指定してください。もう 1 つの方法は,すべてのソース・ファイルに,各システムの明示的なデータ型を宣言するインクルード・ファイルを追加するというものです。