Navigation: Previous   Up   Next

2.24 Source File Polishing

The polisher takes a set of Fortran source files, which may be in fixed or free form, and produces a free source form “polished” version of each file. C files and fpp-processed files are not handled.

The polisher understands the following compiler options with the same meaning: -132, -encoding, -english, -f2003, -f2008, -f95, -fixed, -free, -help, -I, -indirect, -info, -maxcontin, -nihongo, -noqueue, -o, -openmp, -Qpath, -tempdir, -v, -V, -w and -xlicinfo.

The polished output is written to the file specified by the -o option, or to the same filename with the extension replaced by ‘.f90_pol’ if no -o option is specified. The output file cannot have the same name as the input file.

The following additional options control the operation of the polisher:

-align_right_continuation
Align the continuation markers (ampersands) at the end of a continued line to column N+2, where N is the normal line width (specified by the -width= option). This only affects lines that do not end with an inline comment.
-alter_comments
Enable options to alter comments; without this option, any options that would otherwise alter the comments are ignored.
-array_constructor_brackets=X
Specify the form to use for array constructor delimiters; X must be one of Asis (same as the input file), ParenSlash (use parentheses+slash pairs, i.e. ‘(/ ... /)’) or Square (use square brackets, i.e. ‘[ ... ]’). The default is -array_constructor_brackets=Asis.
-blank_cmt_to_blank_line
Turn comment lines that have no text (other than the comment-initiating character) into plain blank lines; this is the default if the -alter_comments option is set.
-blank_line_after_decls
Ensure that there is a blank line after the declarations and before the first executable statement; this is the default.
-bom=X
Specify whether to write a Unicode Byte-Order Mark at the beginning of the output file; X must be one of Asis (same as the input file), Insert (insert a byte-order mark) or Remove (remove any byte-order mark). This option only has effect if the input file is known to be in UTF-8 encoding, either because it begins with a byte-order mark or the -encoding=UTF8 option was used. The default is -bom=Asis.
-break_long_comment_word
If a comment line will be split into two lines, the comment may be broken in the middle of a long word.
-canonicalise_floating_literals
Specifies canonicalisation of floating-point literal constants. The canonical form of a floating-point literal always has a decimal point, with at least one digit before it and after it. If it has an exponent letter of E, the exponent is always non-zero. If there is an exponent, the exponent letter is always followed by a sign, and the exponent value has no leading zero.
-character_decl=style
Specify the style to be used for CHARACTER type declaration statements; style must be one of the following (not case-sensitive):

Asis (same as the input statement, but obey any -kind_keyword= option),
Keywords (use LEN= and KIND=),
Kind_Keyword_Only (use KIND= but not LEN=) or
No_Keywords (use modern style with no keywords).

The default is Asis; with any other style, the obsolescent “CHARACTER*length” form will be changed to the modern “CHARACTER(length)” form. When both the length and kind appear in the input statement, the length will appear first in the output statement.

-commas_in_formats=X
Specify whether to add optional commas in FORMAT statements; X must be one of Asis (use the same comma scheme as the input), Insert or Remove. The default is -commas_in_formats=Insert.
-dcolon_column=N
Align double colon ‘::’ in declarations at column N and align any subsequent continuation lines to match. The default is for no special alignment, which is equivalent to -dcolon_column=0.
-dcolon_in_decls=X
Specifies how to handle the optional double colon ‘::’ in declarations; X must be one of Asis (preserve the input status), Insert (insert ‘::’ if not present), or Remove (remove ‘::’ if present and optional); the default is -dcolon_in_decls=Asis.
-delete_all_comments
Delete all comments (if the -alter_comments option is set).
-delete_blank_lines
Delete blank lines and comment lines that have no text (other than the comment-initiating character), if the -alter_comments option is set.
-delete_unused_labels
Delete labels that are never referenced; this is the default.
-elcase=X
Set the case to use for exponent letters (E or D): X must be one of Asis, lowercase, UPPERCASE, or an abbreviation thereof; the default is -elcase=UPPERCASE. The interpretation of X is not case-sensitive (e.g. -elcase=u is the same as -elcase=U). Note that -elcase=Asis is only available for basic polishing (=polish), not in Enhanced Polish (=epolish) or any other tool (e.g. =unifyprecision).
-format_start=N
If renumbering FORMAT statements in a separate sequence, the first FORMAT statement will be N; the default is -format_start=90000.
-format_step=N
If renumbering FORMAT statements in a separate sequence, the step from one label to the next will be N; the default is -format_step=10. Note that this may be negative (but not zero).
-idcase=X
Set the case to use for identifiers; X must be one of Asis, Capitalised, lowercase, UPPERCASE, Camel_Case, or an abbreviation thereof (both C and Ca are treated as Capitalised, not Camel_Case); the default is -idcase=lowercase. The interpretation of X is not case-sensitive (e.g. -idcase=u is the same as -idcase=U). Note that -idcase=Asis is only available for basic polishing (=polish), not in Enhanced Polish (=epolish) or any other tool (e.g. =unifyprecision).
-indent=N
Indent statements within a construct by N spaces from the current indentation level; the default is -indent=2.
-indent_comment_marker
When indenting comments, the comment-initiating character should be indented to the indentation level; this is the default.
-indent_comments
Indent comments; this is the default if the -alter_comments option is set. The result is also affected by the -indent_comment_marker option.
-indent_continuation=N
Indent continuation lines by an additional N spaces; the default is -indent_continuation=2.
-indent_max=N
Set the maximum indentation level to N spaces; the default is -indent_max=60. The value must be at least 10 less than the output line length (-width=).
-inline_comment_indent=N
Set the indentation level for inline comments to column N; the default is -inline_comment_index=35.
-keep_blank_lines
Do not delete blank lines or comment lines with no text; this is the opposite of -delete_blank_lines and is the default.
-keep_comments
Do not delete non-blank comment lines; this is the opposite of -delete_comments and is the default.
-keep_unused_labels
Do not delete unused (unreferenced) labels; this is the opposite of -delete_unused_labels.
-kind_keyword=X
Specifies how to handle the KIND= specifier in declarations; X must be one of Asis (take no action but preserve the input status), Insert (insert KIND= if not present), or Remove (remove KIND= if present); the default is -kind_keyword=Asis.
-kwcase=X
Set the case to use for language keywords; X must be one of Capitalised, lowercase, UPPERCASE, Camel_Case, or an abbreviation thereof (both C and Ca are treated as Capitalised, not Camel_Case); the default is -kwcase=Capitalised. The interpretation of X is not case-sensitive (e.g. -kwcase=u is the same as -kwcase=U). The -kwcase=C produces ‘Double Precision’ and ‘Non_recursive’; with -kwcase=Camel, the latter is produced as ‘Non_Recursive’.
-label_after_indent
Indent labels; this is the opposite to -label_before_indent.
-label_before_indent
Output the statement label, if any, before indenting the statement; this is the default.
-leave_formats_in_place
Leave FORMAT statements in the same position as they are in the input file; this is the opposite of -move_formats_to_end, and is the default.
-margin=N
Set the left margin (initial indent) to N. The value must be at least 10 less than the output line length (-width=). The default value for the left margin is 4.
-move_formats_to_end
Move FORMAT statements to the end of the subprogram or program unit, immediately before the CONTAINS or END statement.
-name_scopes=X
Specify whether to add optional keywords and scope names to the END or END TYPE statement for a scope; X must be one of Asis (leave as is), Insert (insert keywords and/or names), Keywords (insert keywords but remove names) or Remove (remove optional keywords and names). This option also applies to the END INTERFACE statement. The default is -name_scopes=Keywords.
-noalign_right_continuation
Do not align the continuation markers (ampersands) at the end of continued lines; this is the default.
-noalter_comments
Do not alter comments in any way; this is the default.
-noblank_cmt_to_blank_line
Do not turn blank comments to blank lines.
-noblank_line_after_decls
Do not insert a blank line between the last declaration and the first executable statement.
-nobreak_long_comment_word
If a comment line will be split into two lines, do not break the comment in the middle of a long word; this is the default.
-nodcolon_column
Do not align double colon ‘::’ in declarations. This is the default, and is equivalent to specifying alignment at column zero via -dcolon_column=0.
-noindent_comment_marker
Place the comment-initiating character for a comment line in column 1.
-noindent_comments
Do not indent the text of a comment line.
-norenumber
Do not renumber statement labels.
-noseparate_format_numbering
When renumbering statement labels, use a single sequence for both FORMAT and non-FORMAT statements; this is the default.
-noterminate_do_with_enddo
Do not change DO loop terminating statements.
-nowrap_comments
Do not wrap long comment lines (they will still be indented if comments are being indented).
-relational=X
Specifies the form to use for relational operators, X must be either F77- (use .EQ., .LE., etc.) or F90+ (use ==, <=, etc.); the default is -relational=F90+.
-renumber
Renumber statement labels; this is the default.
-renumber_start=N
When renumbering statement labels, the first label will be N; the default is -renumber_start=100.
-renumber_step=N
When renumbering statement labels, the step from one label to the next will be N; the default value is -renumber_step=10.
-separate_format_numbering
When renumbering statement labels, renumber FORMAT statements in a separate sequence from non-FORMAT statements.
-terminate_do_with_enddo
Change the terminating statements of all DO loops so that each loop ends with an ENDDO statement; this is the default.
-width=N
Set the maximum length of the text on each output line to N; the default is -width=78. Note that in the case of continuation lines, an additional two characters (‘ &’) will be produced after the last text on a line and this may take the line length over the limit. The width must be at least 10 more than the left margin (-margin=) and the maximum indent (-indent_max=). The maximum width setting is 10204, however values higher than 9998 may produce output that does not conform to the Fortran 2018 standard, and values higher than 130 may procedure output that does not conform to older Fortran standards.
-wrap_comments
Wrap long comment lines that would otherwise exceed the maximum line length. This is the default.