ナビゲーション:前へ 上へ 次へ
2.24 ソース整形
ソース整形機能は一連のFortranソースファイル(自由形式もしくは固定形式)を入力し、 自由形式の整形済みの個々のファイルを出力します。 Cファイルおよびfppにより処理されたファイルは取り扱う事ができません。
ソース整形機能は以下のコンパイラオプションを認識します。
-132, -encoding, -english,
-f2003, -f2008, -f95,
-fixed, -free, -help,
-I, -indirect, -info,
-maxcontin,
-nihongo, -noqueue, -o,
-openmp,
-Qpath, -tempdir,
-v, -V, -w and
-xlicinfo.
整形済み出力は-oオプションで指定されるファイルか もしくは(その指定を行わない場合には)入力ファイルの拡張子を ‘.f90_pol’で置き換えたファイルへ出力されます。 出力ファイルと入力ファイルは同一であってはなりません。
以下の追加オプションで整形機能の指定が可能です。
- -align_right_continuation
- 行末の継続文字(アンパサンド)をN+2列に整列します。(ここでNは-width=で指定される行幅を表します) このオプションはインラインコメントで終わる行以外が対象となります。
- -alter_comments
- 個々のオプションでコメントの変更を可能にします。 このオプションを指定しなかった場合にコメントの変更が生じるような他の指定は全て無視されます。
- -array_constructor_brackets=X
- 配列構成子の記述方法を指定します。
Xは以下のいずれかでなければなりません。
Asis (入力ファイルと同じ)、
ParenSlash (括弧とスラッシュの組み合わせ。つまり ‘
(/
.../)
’)、 もしくはSquare (中括弧。つまり ‘[
...]
’) デファオルとは-array_constructor_brackets=Asisです。 - -blank_cmt_to_blank_line
- コメント行をコメント初期化文字を残して空行に変換します。 この動作は-alter_commentsオプションを指定した場合のデフォルトの動作です。
- -blank_line_after_decls
- 宣言部と最初の実行文の間に1行以上の空行があるようにします。この動作はデフォルトの動作です。
- -bom=X
- Unicode Byte-Order Markを出力ファイルの最初に書き出すかどうかを指定します。 XがAsis(入力ファイルと同じ)、 Insert(Byte-Order Markを挿入)、 Remove(Byte-Order Markの削除)のいずれかが指定可能です。 このオプションは入力ファイルが UTF-8 エンコーディングであるとみなされる場合 (Byte-Order Markで始まっている、もしくは-encoding=UTF8 オプションが指定された)にのみ有効です。 デフォルトは -bom=Asis です。
- -break_long_comment_word
- コメント行が2行にまたがる場合に単語が分割される事を許します。
- -character_decl=style
CHARACTER
型宣言文のコードのスタイルを指定します。 styleは以下のいずれかで有る必要があります。(大文字小文字の区別はありません)Asis (入力と同じままにする。しかし-kind_keyword=オプションの指定には従う) Keywords ( LEN=
とKIND=
を使う)Kind_Keyword_Only ( KIND=
を使うがLEN=
は使わない) もしくはNo_Keywords (キーワードを用いない現代的なスタイルにする) デフォルトはAsisです。その他のスタイルでは廃止予定事項の “
CHARACTER*
length”形式は現代の“CHARACTER(
length)
”形式に変換されます。 長さと種別の両方が入力文に含まれる場合、出力では長さが先に指定されます。- -commas_in_formats=X
FORMAT
文で省略可能なカンマを追加するかどうかを指定します。XはAsis(そのまま)、Insert(挿入)、Remove(削除)のいずれかである必要があります。 デフォルトは-commas_in_formats=Insertです。- -dcolon_column=N
- 宣言に含まれる2連コロン‘
::
’を列Nで整列し、後続の継続行も一致するように整列します。 デフォルトでは、-dcolon_column=0と同等で整列を行いません。 - -dcolon_in_decls=X
- 宣言部の省略可能な2連コロン‘
::
’をどのように処理するべきかを指定します。 X は、Asis (何もしない)、Insert (ない場合に‘::
’を挿入する)、 Remove (‘::
’が存在していて省略可能な場合に削除する) のいずれかを指定します。 デフォルトは-dcolon_in_decls=Asisです。 - -delete_all_comments
- 全てのコメントを削除します。(-alter_commentsが指定されている場合)
- -delete_blank_lines
- 空行と本文が無いコメント行を削除します。(-alter_commentsが指定されている場合)
- -delete_unused_labels
- 参照されていない文番号を削除します。 この動作はデフォルトの動作です。
- -format_start=N
- FORMAT文の文番号の再設定を別系列で行っている場合に、
最初の
FORMAT
文の文番号はNとなります。 デフォルト値は -format_start=90000 です。 - -format_step=N
- FORMAT文の文番号の再設定をを別系列で行っている場合に、 各文番号間のきざみが N となります。 デフォルト値は -format_step=10 です。 この指定では負の値も指定可能です。(ゼロは指定できません)
- -idcase=X
- 識別子の文字の種類を指定します。Xは、Asis、Capitalised、lowercase、UPPERCASE、Camel_Case、またはそれらの省略形(両方ともC)のいずれかである必要があります。 またCaは、Camel_Caseではなく、Capitalisedとして扱われます。 デフォルトは-idcase=lowercaseです。 Xの解釈では大文字と小文字は区別されません(たとえば、-idcase=uは-idcase=Uと同じです)。 -idcase=Asisは、基本的なソース整形機能(=polish)でのみ使用でき、 拡張ソース整形機能(=epolish)やその他のツール(=unifyprecisionなど)では使用できないことに注意してください。
- -indent=N
- 構文内の文のインデント幅を N に設定します。 デフォルトは -indent=2 です。
- -indent_comment_marker
- コメントのインデントを行う場合にコメント開始文字もインデントします。 この動作はデフォルトの動作です。
- -indent_comments
- コメントのインデントを行います この動作は -alter_comments の指定が行われている場合のデフォルトの動作です。 -indent_comment_marker オプションにも影響を受けます。
- -indent_continuation=N
- 継続行のインデント幅を N に設定します。 デフォルトは -indent_continuation=2 です。
- -indent_max=N
- 最大インデントを N に設定します。 デフォルトは -indent_max=60 です。 この値は-width=で指定される出力幅よりも10以上小さい値である必要があります。
- -inline_comment_indent=N
- インラインのコメントのインデント幅を N に設定します。 デフォルトは -inline_comment_index=35 です。
- -keep_blank_lines
- 空行及び本文のないコメント行を削除しません。 このオプションは -delete_blank_lines の反対のオプションです。 この動作はデフォルトの動作です。
- -keep_comments
- 本文があるコメント行の削除を行いません。 このオプションは -delete_comments の反対のオプションです。 この動作はデフォルトの動作です。
- -keep_unused_labels
- 使われていない(参照されていない)ラベルを削除しません。 これは-delete_unused_labelsの反対です。
- -kind_keyword=X
- 宣言部における
KIND=
指示子の取り扱いを X に指定します。 X は Asis(現状のままを保持)、 Insert(KIND=
の指定がない場合に追加)、 Remove(KIND=
を削除) のいずれかです。 デフォルトは -kind_keyword=Asis です。 - -kwcase=X
- 言語キーワードの文字の種類を指定します。Xは、Capitalised、lowercase、UPPERCASE、Camel_Case、またはそれらの省略形(CとCaの両方)のいずれかである必要があります。Camel_Caseではなく、Capitalisedとして扱われます);
デフォルトは-kwcase=Capitalisedです。
Xの解釈では大文字と小文字は区別されません(たとえば、-kwcase=uは-kwcase=Uと同じです)。
-kwcase=Cは、‘
DoublePrecision
’と‘Non_recursive
’を生成します。 -kwcase=Camelを使用すると、後者は‘Non_Recursive
’として生成されます。 - -label_after_indent
- 文番号をインデントします。このオプションは -label_before_indent の反対です。
- -label_before_indent
- 文番号がある場合にはインデントを行う前に文番号を出力します。この動作はデフォルトの動作です。
- -leave_formats_in_place
FORMAT
文を入力ファイルと同じ場所に出力します。 このオプションは -move_formats_to_end の反対です。 この動作はデフォルトの動作です。- -margin=N
- 左マージン(初期インデント)を N に設定します。 この値は出力行幅(-width=)より10以上小さくなくてはなりません。 デフォルトは -margin=4 です。
- -move_formats_to_end
FORMAT
文を副プログラムもしくはプログラム単位の末尾で且つCONTAINS
文もしくはEND
文の直前へ移動します。- -name_scopes=X
- 省略可能なキーワードと有効範囲名を
END
もしくはEND TYPE
文に追加するかどうかを指定します。 X はAsis(そのまま)、Insert(キーワードもしくは/及び名前を挿入)、 Keywords(キーワードを挿入、有効範囲名を削除)、 Remove(省略可能なキーワードと名前を削除) このオプションはEND INTERFACE
文にも適用されます。 デフォルトは -name_scopes=Keywords です。 - -noalign_right_continuation
- 継続行末の継続文字(アンパサンド)を整列しません。 この動作はデフォルトの動作です。
- -noalter_comments
- コメントの変更を行いません。この動作がデフォルトの動作です。
- -noblank_cmt_to_blank_line
- 本文のないコメント行を空行に変換しません。
- -noblank_line_after_decls
- 宣言部と実行部の間に空行を挿入しません。
- -nobreak_long_comment_word
- コメント行が2行に分けられる場合に、長い単語の途中で分けることをしません。 この動作はデフォルトの動作です。
- -nodcolon_column
- 宣言内で2連コロン‘
::
’を整列しない旨を指定します。 これはデフォルトであり、-dcolon_column=0と同等です。 - -noindent_comment_marker
- コメント開始文字をカラム1に配置します。
- -noindent_comments
- コメント行の本文をインデントします。
- -norenumber
- 文番号の再設定を行いません。
- -noseparate_format_numbering
- 文番号の再設定を行う場合に、
FORMAT
文と非FORMAT
文で同じ系列を使用します。この動作はデフォルトの動作です。 - -noterminate_do_with_enddo
DO
ループの終端文を変更しません。- -nowrap_comments
- 長いコメント行を折り返しません。(コメントのインデントが行われる場合にはこの設定に関わらずコメントはインデントされます)
- -relational=X
- 関係演算子の形式を指定します。
X はF77-(
.EQ.
,.LE.
等を使用)もしくはF90+(==
,<=
等を使用)のいずれかでなければなりません。 デフォルトは -relational=F90+ です。 - -renumber
- 文番号の再設定を行います。 この動作はデフォルトの動作です。
- -renumber_start=N
- 文番号の再設定を行う場合、最初の文番号を N に設定します。 デフォルトは -renumber_start=100 です。
- -renumber_step=N
- 文番号の再設定を行う場合、文番号間のきざみを N に設定します。 デフォルトは -renumber_step=10 です。
- -separate_format_numbering
- 文番号の再設定を行う場合、
FORMAT
文を非FORMAT
文とは別の系列で行います。 - -terminate_do_with_enddo
DO
ループの全ての終端文をENDDO
文にします。 この動作はデフォルトの動作です。- -width=N
- 出力行の最大幅を N に設定します。
デフォルトは -width=78 です。
継続行の場合、追加で2文字(‘
&
’)がその行の最後の文字の後ろに追加されます。 これによりここで指定する最大幅を超える場合があります。 幅は左マージン(-margin=)及び 最大インデント幅(-indent_max=)よりも10以上大きな値でなければなりません。 最大幅の最大値は1024ですが、130を超えた値を指定した場合にはFortran標準に準拠しない出力となる場合があります。 - -wrap_comments
- 最大行長を超えてしまう長いコメント行を折り返します。 この動作はデフォルトの動作です。