ナビゲーション:前へ 上へ 次へ
2.13 未定義変数の検出
未定義変数の使用は-C=undefined オプションを用いることに よって検出できます。 ただしこのオプションを指定してコンパイルされたプログラムは、そのオプショ ンを指定しないでコンパイルされたものと整合性がありません(すなわち全体を どちらか一方で統一的にコンパイルする必要があります)。 この理由から、-C=undefined は-C または -C=all の一部にはなっていません。
現状、-C=undefined の使用には他にも種々の制約があります。
- ALLOCATABLE機能とは整合性がありません。
- 初期化されたCOMMON中のポインタとは整合性がありません。
- 利用できる組込みモジュールはF90_KIND、F90_STAT、 F90_IOSTATのみです。
- CHARACTER配列からの内部的なREADに際しては、該当要素が実際には 読まれないにしても、指定された配列サブオブジェクト全体が“定義”されている 必要があります。
- CHARACTER配列への内部的なWRITEは、該当要素が実際には書かれない にしても、指定された配列サブオブジェクト全体を規定するものとします。
- ある種の組込み関数は、たとえその一部が関数の値にとって必要ないにしても、引数 が完全な形で定義されている必要があります。例としては、パディングが必要ないケ ースでのRESHAPEに対するPAD引数、あるいはPACKに対する ARRAY引数の要素でMASK引数の偽要素に対応するものがあげられます。
