2.24 拡張ソース整形
拡張ソース整形は一連のFortranソース・ファイル(固定形式でも自由形式でも良い)を処理し、 それぞれについて、それらの整形された結果を自由形式で出力します。 Cファイル及びFPPにより処理されたファイルは整形できません。 通常の(拡張ではない)ソース整形の場合とは異なり、 拡張ソース整形ではFortranソース・ファイルがエラー無しでコンパイルできるものでなければなりません。
拡張ソース整形は以下のコンパイラ・オプションをコンパイル時と同じ意味として解釈します。 -132, -abi, -dcfuns, -double, -dryrun, -dusty, -encoding, -english, -f2003, -f2008, -f95, -fixed, -free, -help, -I, -i8, -indirect, -info, -kind, -max_parameter_size, -maxcontin, -mismatch, -mismatch_all, -nihongo, -nocheck_modtime, -nomod, -noqueue, -o, -openmp, -Qpath, -r8, -strict95, -tempdir, -thread_safe, -u, -u=sharing, -v, -V, -w and -xlicinfo.
拡張ソース整形は全てのソース整形オプションを含みます。
nagfor =polishの場合とは異なり、 -name_scopes=Asisを指定した際の振る舞いは、 -name_scopes=Keywords(デフォルト)を指定したかのようになります。 同様に、-array_constructor_brackets=Asisを指定した際の振る舞いは、 -array_constructor_brackets=ParenSlash(デフォルト)を指定したかのようになります。 -dcolon_in_decls=Asisも同様に、 -dcolon_in_decls=Insert(デフォルト)を指定したかのようになります。
-oオプションが指定されなかった場合に使われる、 デフォルトの出力ファイル名の拡張子は‘.f90_epo’です。
以下の追加オプションで本ツールの処理を制御します。
- -add_arg_keywords
- 明示的な引用仕様を持ち、且つ2つ以上の仮引数を持つユーザ定義の手続き、
及び3つ以上の仮引数を持つ組込みモジュール手続き(例外:MAX及びMIN)の参照において、
実引数にキーワードを追加します。
文番号引数が後に続く引数にはキーワードは追加されません。 引数の順序は変更されません。
本オプションは-add_arg_keywords=all2,intrinsic3と同等です。
- -add_arg_keywords=proc_class_list
- proc_class_listで示される一連の手続きで、
手続きが明示的な引用仕様宣言を持つ場合に、
手続き参照における実引数にキーワードを追加します。
it{proc_class_list}はカンマ区切りで、以下を含める事ができます。
all (一連の全ての手続き), bound (実体結合手続き、及び型結合手続き), dummy (仮手続き), external (外部手続き), internal (内部手続), intrinsic (組込み手続き及び組込みモジュール手続き), module (非組込みモジュール手続き), user (組込み手続きと組込みもジュール手続き以外の手続き). 文番号引数が後に続く引数にはキーワードは追加されません。 引数の順序は変更されません。 手続きポインタ成分は“実体結合手続き”としても知られていて、 -add_arg_keywords=boundに含まれます。 名前付き手続きポインタは外部手続きとして取り扱われます。 従って-add_arg_keywords=externalに含まれます。
サブオプションの名前にはゼロではない数字一文字を付加できます。 例)“intrinsic3” このサブオプションによって、指定された数以上の仮引数をもつ手続きについてのみ、 キーワードが追加されます。 型結合手続き及び実体結合手続きについては、 渡される実体の仮引数は、この数に含まれません。(引数並びに出現しないので) 組込み関数MAX及びMINは代わりに実引数の数を用います。
サブオプション名+数字一文字に続いて‘a’が続く場合(“intrinsic3a”等)、 引数の制限は、手続き参照における実引数の数に対して適用されるのであって、 仮引数の数に対してではありません。(実引数の数は、省略可能な引数が省略された場合、 仮引数の数より小さくなります)
サブオプションは左から右へ解釈されるので、 後から指定したサブオプションが、 先に指定されたサブオプションを上書きする事に注意して下さい。
- -intrinsic_case=analogy
- 組込み手続き名の大文字小文字種別を、 他の名前(as_names)と同じにするか、 もしくは言語キーワード(as_keywords)と同じにするかを指定します。 デフォルトは-intrinsic_case=as_namesです。
- -remove_intrinsic_stmts
- 実引数として渡されなかった組込み手続き名を INTRINSIC文から削除します。 またその際に、全てのINTRINSIC文がこのように削除された場合、 INTRINSIC文そのものも削除します。 INTRINSIC文に関連するコメントは削除されません。