導入: なぜこのTipsが重要なのか
数値計算の現場では、古いFortranプログラム(F77形式)をメンテナンスする機会が今でも多くあります。プログラムの行末に「!」を置いてコメントを記述する「インラインコメント」は非常に便利ですが、実はコンパイラのバージョンや設定によって思わぬエラーを引き起こすことがあります。この記事では、レガシーな環境との互換性を保ちながら、安全にコメントを活用する方法を解説します。
基礎知識: 固定形式とF90拡張
Fortranの「固定形式(Fixed Form)」とは、各行の決まった位置に意味を持たせる古い記述ルールです。例えば、1桁目は「C」や「」でコメント行、6桁目は継続行、7〜72桁目がプログラムの本文領域として扱われます。
本来、この形式では行の途中にコメントを書くことはできませんでしたが、Fortran 90(F90)以降のコンパイラでは、本文領域内であれば「!」以降をコメントとして扱う拡張機能が追加されました。これが「F90拡張」と呼ばれるものです。
実装/解決策: 互換性を保つための戦略
F90以降のコンパイラを使っているなら「!」は非常に便利ですが、古いF77専用コンパイラでは「!」が命令の一部や不正な文字として認識され、コンパイルエラーになります。
移植性を重視するプロジェクトでは、以下の2つのルールを守ることを推奨します。
1. 原則として行全体をコメントにする: 伝統的な「1桁目にCまたはを置く」方法であれば、どの時代のコンパイラでも確実に動作します。
2. インラインコメントの使用範囲を限定する: 現代的な環境が保証されている場合のみ「!」を使い、古い環境へ移行する可能性がある場合は、あえてインラインコメントを避けるのがプロの判断です。
サンプルプログラム
以下は、固定形式における安全なコメントの記述例です。
PROGRAM COMMENT_TEST
C これは伝統的な全行コメントです。どのコンパイラでも動作します。
INTEGER A, B, X
A = 10
B = 20
C ここから下の行は、F90以降のコンパイラでのみ有効な書き方です。
X = A + B ! ここで加算を行い、結果をXに代入します
PRINT , ‘計算結果:’, X
STOP
END
応用・注意点: 現場で役立つ補足
現場での開発において陥りやすい罠が「桁数の制限」です。固定形式では72桁目以降は無視されるというルールがあります。
もし、72桁目を超えた位置に「!」を書いてしまうと、コンパイラによっては無視されるか、あるいはエラーになることがあります。コメントを書く際は、必ず72桁目以内に収めるよう意識してください。
また、現代のコンパイラを使用している場合、コンパイルオプション(例:gfortranなら -std=f95 など)を調整することで、古い規格のチェックを厳格化できます。自分のコードがどの規格に準拠しているかを確認したい時は、ぜひコンパイラのオプションを活用してみてください。

コメント