@c This is part of the Emacs manual.
-@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
-@c Free Software Foundation, Inc.
+@c Copyright (C) 2004-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@c This file is included either in emacs-xtra.texi (when producing the
@cindex mode, Fortran
@cindex Fortran fixed form and free form
-@cindex Fortran 77 and Fortran 90, 95, 2003
+@cindex Fortran 77 and Fortran 90, 95, 2003, 2008
@findex f90-mode
@findex fortran-mode
- Fortran mode is meant for editing ``fixed form'' (and also ``tab
-format'') source code (normally Fortran 77). For editing more modern
-``free form'' source code (Fortran 90, 95, 2003), use F90 mode
+ Fortran mode is meant for editing fixed form (and also tab
+format) source code (normally Fortran 77). For editing more modern
+free-form source code (Fortran 90, 95, 2003, 2008), use F90 mode
(@code{f90-mode}). Emacs normally uses Fortran mode for files with
extension @samp{.f}, @samp{.F} or @samp{.for}, and F90 mode for the
-extensions @samp{.f90} and @samp{.f95}. Customize
-@code{auto-mode-alist} to add more extensions. GNU Fortran supports
-both free and fixed form. This manual mainly documents Fortran mode,
-but the corresponding F90 mode features are mentioned when revelant.
+extensions @samp{.f90}, @samp{.f95}, @samp{.f03} and @samp{.f08}.
+Customize @code{auto-mode-alist} to add more extensions. GNU Fortran
+supports both free and fixed form. This manual mainly documents Fortran
+mode, but the corresponding F90 mode features are mentioned when
+relevant.
Fortran mode provides special motion commands for Fortran statements
and subprograms, and indentation commands that understand Fortran
@subsection Motion Commands
In addition to the normal commands for moving by and operating on
-``defuns'' (Fortran subprograms---functions and subroutines, using the
-commands @code{fortran-beginning-of-subprogram} and
-@code{fortran-end-of-subprogram}; as well as modules for F90 mode),
-Fortran mode provides special commands to move by statements and other
-program units.
+defuns (Fortran subprograms---functions and subroutines, as well
+as modules for F90 mode, using the commands @code{fortran-end-of-subprogram}
+and @code{fortran-beginning-of-subprogram}), Fortran mode provides
+special commands to move by statements and other program units.
@table @kbd
@kindex C-c C-n @r{(Fortran mode)}
@item C-c C-p
Move to the beginning of the previous statement
(@code{fortran-previous-statement}/@code{f90-previous-statement}).
-If there is no previous statement (i.e. if called from the first
+If there is no previous statement (i.e., if called from the first
statement in the buffer), move to the start of the buffer.
@kindex C-c C-e @r{(F90 mode)}
@findex f90-next-block
@item C-c C-e
Move point forward to the start of the next code block, or the end of
-the current block, whichever is encountered first.
-(@code{f90-next-block}). A code block is a subroutine,
-@code{if}--@code{endif} statement, and so forth. This command exists
-for F90 mode only, not Fortran mode. With a numeric argument, this
-moves forward that many blocks.
+the current one, whichever comes first (@code{f90-next-block}).
+A code block is a subroutine, @code{if}--@code{endif} statement, and
+so forth. This command exists for F90 mode only, not Fortran mode.
+With a numeric argument, it moves forward that many blocks.
@kindex C-c C-a @r{(F90 mode)}
@findex f90-previous-block
@item C-c C-a
-Move point backward to the previous code block
+Move point backward to the previous block
(@code{f90-previous-block}). This is like @code{f90-next-block}, but
moves backwards.
@item M-^
Join this line to the previous line (@code{fortran-join-line}).
@item C-M-q
-Indent all the lines of the subprogram point is in
+Indent all the lines of the subprogram that point is in
(@code{fortran-indent-subprogram}).
@item M-q
Fill a comment block or statement (using @code{fortran-fill-paragraph}
@code{fortran-continuation-string} specifies what character to put in
column 5. A line that starts with a tab character followed by any digit
except @samp{0} is also a continuation line. We call this style of
-continuation @dfn{tab format}. (Fortran 90 introduced ``free form,''
-with another style of continuation lines).
+continuation @dfn{tab format}. (Fortran 90 introduced free-form
+continuation lines.)
@vindex indent-tabs-mode @r{(Fortran mode)}
@vindex fortran-analyze-depth
The setting of continuation style affects several other aspects of
editing in Fortran mode. In fixed form mode, the minimum column
number for the body of a statement is 6. Lines inside of Fortran
-blocks that are indented to larger column numbers always use only the
+blocks that are indented to larger column numbers must use only the
space character for whitespace. In tab format mode, the minimum
column number for the statement body is 8, and the whitespace before
-column 8 must always consist of one tab character.
+column 8 must consist of one tab character.
@node ForIndent Num
@subsubsection Line Numbers
If a number is the first non-whitespace in the line, Fortran
indentation assumes it is a line number and moves it to columns 0
-through 4. (Columns always count from 0 in GNU Emacs.)
+through 4. (Columns always count from 0 in Emacs.)
@vindex fortran-line-number-indent
Line numbers of four digits or less are normally indented one space.
@samp{do} that ends there. If you always end @samp{do} statements with
a @samp{continue} line (or if you use the more modern @samp{enddo}),
then you can speed up indentation by setting this variable to
-@code{nil}. The default is @code{nil}.
+@code{nil} (the default).
@item fortran-blink-matching-if
If this is @code{t}, indenting an @samp{endif} (or @samp{enddo}
@item fortran-minimum-statement-indent-fixed
Minimum indentation for Fortran statements when using fixed form
-continuation line style. Statement bodies are never indented less than
-this much. The default is 6.
+continuation line style. Statement bodies are never indented by less than
+this. The default is 6.
@item fortran-minimum-statement-indent-tab
Minimum indentation for Fortran statements for tab format continuation line
-style. Statement bodies are never indented less than this much. The
+style. Statement bodies are never indented by less than this. The
default is 8.
@end table
-The variables controlling the indentation of comments are described in
-the following section.
+The following section describes the variables controlling the
+indentation of comments.
@node Fortran Comments
@subsection Fortran Comments
some Fortran 77 compilers accept this syntax, Fortran mode will not
insert such comments unless you have said in advance to do so. To do
this, set the variable @code{fortran-comment-line-start} to @samp{"!"}.
-If you use an unusual value, you may also need to adjust
+If you use an unusual value, you may need to change
@code{fortran-comment-line-start-skip}.
Align comment or insert new comment (@code{comment-dwim}).
@item C-x ;
-Applies to nonstandard @samp{!} comments only.
+Applies to nonstandard @samp{!} comments only (@code{comment-set-column}).
@item C-c ;
Turn all lines of the region into comments, or (with argument) turn them back
@code{fortran-comment-line-extra-indent} and the minimum statement
indentation. This is the default.
-The minimum statement indentation is
-@code{fortran-minimum-statement-indent-fixed} for fixed form
-continuation line style and @code{fortran-minimum-statement-indent-tab}
-for tab format style.
+The minimum indentation is
+@code{fortran-minimum-statement-indent-tab} for tab format
+continuation line style and @code{fortran-minimum-statement-indent-fixed}
+for fixed form style.
@item relative
Align the text as if it were a line of code, but with an additional
lines are directives. Matching lines are never indented, and receive
distinctive font-locking.
- The normal Emacs comment command @kbd{C-x ;} has not been redefined. If
-you use @samp{!} comments, this command can be used with them. Otherwise
-it is useless in Fortran mode.
+ The normal Emacs comment command @kbd{C-x ;} (@code{comment-set-column})
+has not been redefined. If you use @samp{!} comments, this command
+can be used with them. Otherwise it is useless in Fortran mode.
@kindex C-c ; @r{(Fortran mode)}
@findex fortran-comment-region
@vindex fortran-comment-region
The command @kbd{C-c ;} (@code{fortran-comment-region}) turns all the
-lines of the region into comments by inserting the string @samp{C$$$} at
+lines of the region into comments by inserting the string @samp{c$$$} at
the front of each one. With a numeric argument, it turns the region
-back into live code by deleting @samp{C$$$} from the front of each line
+back into live code by deleting @samp{c$$$} from the front of each line
in it. The string used for these comments can be controlled by setting
the variable @code{fortran-comment-region}. Note that here we have an
example of a command and a variable with the same name; these two uses
Otherwise (and by default), the break comes before the delimiter.
To enable Auto Fill in all Fortran buffers, add
-@code{turn-on-auto-fill} to @code{fortran-mode-hook}.
+@code{auto-fill-mode} to @code{fortran-mode-hook}.
@iftex
@xref{Hooks,,, emacs, the Emacs Manual}.
@end iftex
@table @kbd
@item C-c C-r
-Display a ``column ruler'' momentarily above the current line
+Display a column ruler momentarily above the current line
(@code{fortran-column-ruler}).
@item C-c C-w
Split the current window horizontally temporarily so that it is
@code{fortran-line-length} columns wide
(@code{fortran-window-create-momentarily}). This may help you avoid
-making lines longer than the character limit imposed by your Fortran
-compiler.
+making lines longer than the limit imposed by your Fortran compiler.
@item C-u C-c C-w
Split the current window horizontally so that it is
@code{fortran-line-length} columns wide (@code{fortran-window-create}).
semicolon. For example, one built-in Fortran abbrev is @samp{;c} for
@samp{continue}. If you insert @samp{;c} and then insert a punctuation
character such as a space or a newline, the @samp{;c} expands automatically
-to @samp{continue}, provided Abbrev mode is enabled.@refill
+to @samp{continue}, provided Abbrev mode is enabled.
Type @samp{;?} or @samp{;C-h} to display a list of all the built-in
Fortran abbrevs and what they stand for.
-
-@ignore
- arch-tag: 23ed7c36-1517-4646-9235-2d5ade5f06f6
-@end ignore