Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GFORTRAN(1)			      GNU			   GFORTRAN(1)

NAME
       gfortran	- GNU Fortran compiler

SYNOPSIS
       gfortran	[-c|-S|-E]
		[-g] [-pg] [-Olevel]
		[-Wwarn...] [-pedantic]
		[-Idir...] [-Ldir...]
		[-Dmacro[=defn]...] [-Umacro]
		[-foption...]
		[-mmachine-option...]
		[-o outfile] infile...

       Only the	most useful options are	listed here; see below for the
       remainder.

DESCRIPTION
       The gfortran command supports all the options supported by the gcc
       command.	 Only options specific to GNU Fortran are documented here.

       All GCC and GNU Fortran options are accepted both by gfortran and by
       gcc (as well as any other drivers built at the same time, such as g++),
       since adding GNU	Fortran	to the GCC distribution	enables	acceptance of
       GNU Fortran options by all of the relevant drivers.

       In some cases, options have positive and	negative forms;	the negative
       form of -ffoo would be -fno-foo.	 This manual documents only one	of
       these two forms,	whichever one is not the default.

OPTIONS
       Here is a summary of all	the options specific to	GNU Fortran, grouped
       by type.	 Explanations are in the following sections.

       Fortran Language	Options
	   -fall-intrinsics    -fallow-argument-mismatch   -fallow-invalid-boz
	   -fbackslash -fcray-pointer -fd-lines-as-code	 -fd-lines-as-comments
	   -fdec  -fdec-char-conversions  -fdec-structure -fdec-intrinsic-ints
	   -fdec-static	  -fdec-math	-fdec-include	 -fdec-format-defaults
	   -fdec-blank-format-item    -fdefault-double-8   -fdefault-integer-8
	   -fdefault-real-8  -fdefault-real-10	-fdefault-real-16  -fdollar-ok
	   -ffixed-line-length-n     -ffixed-line-length-none	  -fpad-source
	   -ffree-form	    -ffree-line-length-n       -ffree-line-length-none
	   -fimplicit-none    -finteger-4-integer-8    -fmax-identifier-length
	   -fmodule-private -ffixed-form -fno-range-check  -fopenacc  -fopenmp
	   -fopenmp-allocators -fopenmp-simd -freal-4-real-10 -freal-4-real-16
	   -freal-4-real-8  -freal-8-real-10  -freal-8-real-16 -freal-8-real-4
	   -std=std -ftest-forall-temp -funsigned

       Preprocessing Options
	   -A-question[=answer]	-Aquestion=answer -C -CC -Dmacro[=defn]	-H  -P
	   -Umacro -cpp	-dD -dI	-dM -dN	-dU -fworking-directory	-imultilib dir
	   -iprefix  file  -iquote -isysroot dir -isystem dir -nocpp -nostdinc
	   -undef

       Error and Warning Options
	   -Waliasing  -Wall   -Wampersand   -Warray-bounds   -Wc-binding-type
	   -Wcharacter-truncation	   -Wconversion		-Wdo-subscript
	   -Wfunction-elimination  -Wimplicit-interface	  -Wimplicit-procedure
	   -Wintrinsic-shadow	     -Wuse-without-only	      -Wintrinsics-std
	   -Wline-truncation	-Wno-align-commons    -Wno-overwrite-recursive
	   -Wno-tabs	  -Wreal-q-constant	 -Wsurprising	   -Wunderflow
	   -Wunused-parameter	      -Wrealloc-lhs	     -Wrealloc-lhs-all
	   -Wfrontend-loop-interchange	   -Wtarget-lifetime	-fmax-errors=n
	   -fsyntax-only -pedantic -pedantic-errors

       Debugging Options
	   -fbacktrace -fdebug-aux-vars	-ffpe-trap=list	-ffpe-summary=list

       Directory Options
	   -Idir  -Jdir	-fintrinsic-modules-path dir

       Link Options
	   -static-libgfortran	-static-libquadmath

       Runtime Options
	   -fconvert=conversion			 -fmax-subrecord-length=length
	   -frecord-marker=length -fsign-zero

       Interoperability	Options
	   -fc-prototypes -fc-prototypes-external

       Code Generation Options
	   -faggressive-function-elimination		 -fblas-matmul-limit=n
	   -fbounds-check   -ftail-call-workaround    -ftail-call-workaround=n
	   -fcheck-array-temporaries
	   -fcheck=<all|array-temps|bits|bounds|do|mem|pointer|recursion>
	   -fcoarray=<none|single|lib>		-fexternal-blas		 -ff2c
	   -ffrontend-loop-interchange -ffrontend-optimize  -finit-character=n
	   -finit-integer=n	     -finit-local-zero		-finit-derived
	   -finit-logical=<true|false>	  -finit-real=<zero|inf|-inf|nan|snan>
	   -finline-intrinsics[=<minloc,maxloc>]       -finline-matmul-limit=n
	   -finline-arg-packing			     -fmax-array-constructor=n
	   -fmax-stack-var-size=n	-fno-align-commons	-fno-automatic
	   -fno-protect-parens	    -fno-underscoring	   -fsecond-underscore
	   -fpack-derived     -frealloc-lhs	-frecursive    -frepack-arrays
	   -fshort-enums -fstack-arrays

       Developer Options
	   -fdump-fortran-global		      -fdump-fortran-optimized
	   -fdump-fortran-original -fdump-parse-tree -save-temps

   Options controlling Fortran dialect
       The  following  options	control	 the  details  of  the Fortran dialect
       accepted	by the compiler:

       -ffree-form
       -ffixed-form
	   Specify the layout used by the source file.	The free  form	layout
	   was introduced in Fortran 90.  Fixed	form was traditionally used in
	   older  Fortran  programs.   When  neither  option is	specified, the
	   source form is determined by	the file extension.

       -fall-intrinsics
	   This	option causes all intrinsic  procedures	 (including  the  GNU-
	   specific extensions)	to be accepted.	 This can be useful with -std=
	   to  force  standard	compliance but get access to the full range of
	   intrinsics	available   with   gfortran.	As   a	  consequence,
	   -Wintrinsics-std  is	ignored	and no user-defined procedure with the
	   same	name as	any intrinsic is called	except when it	is  explicitly
	   declared "EXTERNAL".

       -fallow-argument-mismatch
	   Some	 code  contains	 calls	to external procedures with mismatches
	   between the calls and the procedure definition, or with  mismatches
	   between different calls. Such code is nonconforming,	and is usually
	   flagged  with  an  error.   This  options  degrades	the error to a
	   warning that	can only be disabled by	disabling all warnings via -w.
	   Only	a single occurrence per	argument is flagged by	this  warning.
	   -fallow-argument-mismatch is	implied	by -std=legacy.

	   Using  this	option	is  strongly  discouraged.   It	is possible to
	   provide standard-conforming code that  allows  different  types  of
	   arguments by	using an explicit interface and	TYPE(*).

       -fallow-invalid-boz
	   A BOZ literal constant can occur in a limited number	of contexts in
	   standard   conforming  Fortran.   This  option  degrades  an	 error
	   condition to	a warning, and allows a	BOZ literal constant to	appear
	   where the Fortran standard would otherwise prohibit its use.

       -fd-lines-as-code
       -fd-lines-as-comments
	   Enable special treatment for	lines beginning	with  "d"  or  "D"  in
	   fixed  form sources.	 If the	-fd-lines-as-code option is given they
	   are treated as if the first	column	contained  a  blank.   If  the
	   -fd-lines-as-comments  option is given, they	are treated as comment
	   lines.

       -fdec
	   DEC compatibility mode. Enables extensions and other	features  that
	   mimic the default behavior of older compilers (such as DEC).	 These
	   features  are  nonstandard and should be avoided at all costs.  For
	   details on GNU Fortran's implementation of these extensions see the
	   full	documentation.

	   Other flags enabled by this switch are: -fdollar-ok	-fcray-pointer
	   -fdec-char-conversions     -fdec-structure	  -fdec-intrinsic-ints
	   -fdec-static	  -fdec-math   -fdec-include   -fdec-blank-format-item
	   -fdec-format-defaults

	   If  -fd-lines-as-code/-fd-lines-as-comments	are  unset, then -fdec
	   also	sets -fd-lines-as-comments.

       -fdec-char-conversions
	   Enable the use of character	literals  in  assignments  and	"DATA"
	   statements for non-character	variables.

       -fdec-structure
	   Enable  DEC "STRUCTURE" and "RECORD"	as well	as "UNION", "MAP", and
	   dot ('.') as	a member separator  (in	 addition  to  '%').  This  is
	   provided for	compatibility only; Fortran 90 derived types should be
	   used	instead	where possible.

       -fdec-intrinsic-ints
	   Enable  B/I/J/K  kind  variants of existing integer functions (e.g.
	   "BIAND",  "IIAND",  "JIAND",	 etc...).   For	 a  complete  list  of
	   intrinsics see Intrinsic Procedures.

       -fdec-math
	   Obsolete  flag.   The  purpose  of this option was to enable	legacy
	   math	intrinsics such	as  "COTAN"  and  degree-valued	 trigonometric
	   functions  (e.g.  "TAND",  "ATAND", etc...)	for compatibility with
	   older code. This option is no longer	 operable.  The	 trigonometric
	   functions are now either part of Fortran 2023 or GNU	extensions.

       -fdec-static
	   Enable  DEC-style "STATIC" and "AUTOMATIC" attributes to explicitly
	   specify the storage of variables and	other objects.

       -fdec-include
	   Enable parsing of "INCLUDE" as a statement in addition  to  parsing
	   it	as  "INCLUDE"  line.   When  parsed  as	 "INCLUDE"  statement,
	   "INCLUDE" does not have to be on a single line  and	can  use  line
	   continuations.

       -fdec-format-defaults
	   Enable  format  specifiers  F,  G  and  I  to be used without width
	   specifiers; default widths are used instead.

       -fdec-blank-format-item
	   Enable a blank format item at the end  of  a	 format	 specification
	   i.e.	nothing	following the final comma.

       -fdollar-ok
	   Allow  $  as	 a valid non-first character in	a symbol name. Symbols
	   that	start with $ are rejected since	it is unclear which  rules  to
	   apply  to  implicit typing as different vendors implement different
	   rules.  Using $ in "IMPLICIT" statements is also rejected.

       -fbackslash
	   Change the interpretation of	backslashes in string literals from  a
	   single  backslash  character	 to  "C-style"	escape characters. The
	   following combinations are expanded:	\a, \b,	\f, \n,	 \r,  \t,  \v,
	   \\,	and  \0	 to  the ASCII characters alert, backspace, form feed,
	   newline, carriage return, horizontal	tab, vertical tab,  backslash,
	   and	NUL,  respectively.  Additionally, \xnn, \unnnn	and \Unnnnnnnn
	   (where each n is a  hexadecimal  digit)  are	 translated  into  the
	   Unicode  characters corresponding to	the specified code points. All
	   other combinations of a character preceded by \ are unexpanded.

       -fmodule-private
	   Set the default accessibility  of  module  entities	to  "PRIVATE".
	   Use-associated   entities   are  not	 accessible  unless  they  are
	   explicitly declared as "PUBLIC".

       -ffixed-line-length-n
	   Set column after which characters are ignored in typical fixed-form
	   lines in the	source file, and,  unless  "-fno-pad-source",  through
	   which  spaces  are  assumed (as if padded to	that length) after the
	   ends	of short fixed-form lines.

	   Popular values for n	include	72 (the	standard and the default),  80
	   (card  image),  and 132 (corresponding to "extended-source" options
	   in some popular compilers).	n may also be none, meaning  that  the
	   entire  line	 is  meaningful	and that continued character constants
	   never have implicit spaces appended to them to fill out  the	 line.
	   -ffixed-line-length-0      means	 the	 same	  thing	    as
	   -ffixed-line-length-none.

       -fno-pad-source
	   By default fixed-form lines have spaces assumed (as	if  padded  to
	   that	length)	after the ends of short	fixed-form lines.  This	is not
	   done	 either	 if -ffixed-line-length-0, -ffixed-line-length-none or
	   if -fno-pad-source option is	 used.	 With  any  of	those  options
	   continued  character	 constants never have implicit spaces appended
	   to them to fill out the line.

       -ffree-line-length-n
	   Set column after which characters are ignored in typical  free-form
	   lines in the	source file. The default value is 132.	n may be none,
	   meaning  that  the entire line is meaningful.  -ffree-line-length-0
	   means the same thing	as -ffree-line-length-none.

       -fmax-identifier-length=n
	   Specify the maximum allowed identifier length. Typical  values  are
	   31 (Fortran 95) and 63 (Fortran 2003	and later).

       -fimplicit-none
	   Specify  that  no  implicit typing is allowed, unless overridden by
	   explicit "IMPLICIT" statements.  This is the	equivalent  of	adding
	   "implicit none" to the start	of every procedure.

       -fcray-pointer
	   Enable  the	Cray  pointer extension, which provides	C-like pointer
	   functionality.

       -fopenacc
	   Enable handling of OpenACC directives !$acc	in  free-form  Fortran
	   and	!$acc,	c$acc and *$acc	in fixed-form Fortran.	When -fopenacc
	   is specified, the compiler generates	accelerated code according  to
	   the	   OpenACC     Application    Programming    Interface	  v2.6
	   <https://www.openacc.org>.  This option implies -pthread, and  thus
	   is  only  supported on targets that have support for	-pthread.  The
	   option -fopenacc implies -frecursive.

       -fopenmp
	   Enable  handling  of	 OpenMP	 directives  !$omp  in	Fortran.    It
	   additionally	 enables  the  conditional  compilation	sentinel !$ in
	   Fortran.  In	fixed source form  Fortran,  the  sentinels  can  also
	   start  with	c  or  *.   When  -fopenmp  is specified, the compiler
	   generates parallel code according to	the OpenMP Application Program
	   Interface  v4.5  <https://www.openmp.org>.	This  option   implies
	   -pthread,  and  thus	is only	supported on targets that have support
	   for -pthread. -fopenmp implies -fopenmp-simd	and -frecursive.

       -fopenmp-allocators
	   Enables handling of allocation, reallocation	 and  deallocation  of
	   Fortran  allocatable	and pointer variables that are allocated using
	   the	!$omp  allocators  and	!$omp  allocate	  constructs.	 Files
	   containing either directive have to be compiled with	this option in
	   addition   to   -fopenmp.	Additionally,  all  files  that	 might
	   deallocate or reallocate a variable that has	been allocated with an
	   OpenMP allocator have  to  be  compiled  with  this	option.	  This
	   includes   intrinsic	  assignment  to  allocatable  variables  when
	   reallocation	may occur  and	deallocation  due  to  either  of  the
	   following:	end  of	 scope,	 explicit  deallocation,  intent(out),
	   deallocation	of allocatable components etc.	Files not changing the
	   allocation status or	only for components of	a  derived  type  that
	   have	 not  been allocated using those two directives	do not need to
	   be compiled with this  option.   Nor	 do  files  that  handle  such
	   variables  after  they  have	 been  deallocated or allocated	by the
	   normal Fortran allocator.

       -fopenmp-simd
	   Enable  handling  of	 OpenMP's  "simd",  "declare  simd",  "declare
	   reduction",	"assume",  "ordered", "scan" and "loop"	directive, and
	   of combined or composite directives with "simd" as constituent with
	   "!$omp"  in	Fortran.   It  additionally  enables  the  conditional
	   compilation	sentinel !$ in Fortran.	 In fixed source form Fortran,
	   the sentinels can also start	with c or *.  Other OpenMP  directives
	   are ignored.	 Unless	-fopenmp is additionally specified, the	"loop"
	   region  binds  to  the  current  task  region,  independent	of the
	   specified "bind" clause.

       -fno-range-check
	   Disable range checking on results  of  simplification  of  constant
	   expressions	during compilation.  For example, GNU Fortran gives an
	   error at compile time when simplifying "a = 1.  /  0".   With  this
	   option,   no	  error	 is  given  and	 "a"  is  assigned  the	 value
	   "+Infinity".	 If an expression evaluates to a value outside of  the
	   relevant  range  of	["-HUGE()":"HUGE()"],  then  the expression is
	   replaced by "-Inf" or  "+Inf"  as  appropriate.   Similarly,	 "DATA
	   i/Z'FFFFFFFF'/" results in an integer overflow on most systems, but
	   with	  -fno-range-check   the  value	 "wraps	 around"  and  "i"  is
	   initialized to -1 instead.

       -fdefault-integer-8
	   Set the default integer and logical types to	an 8 byte  wide	 type.
	   This	 option	 also  affects	the kind of integer constants like 42.
	   Unlike -finteger-4-integer-8, it does not  promote  variables  with
	   explicit kind declaration.

       -fdefault-real-8
	   Set the default real	type to	an 8 byte wide type.  This option also
	   affects  the	 kind  of  non-double  real  constants like 1.0.  This
	   option promotes the default width of	"DOUBLE	PRECISION" and	double
	   real	  constants   like   "1.d0"  to	 16  bytes  if	possible.   If
	   "-fdefault-double-8"	is given along with "fdefault-real-8", "DOUBLE
	   PRECISION" and double real  constants  are  not  promoted.	Unlike
	   -freal-4-real-8,  "fdefault-real-8" does not	promote	variables with
	   explicit kind declarations.

       -fdefault-real-10
	   Set the default real	type to	an 10 byte  wide  type.	  This	option
	   also	 affects the kind of non-double	real constants like 1.0.  This
	   option promotes the default width of	"DOUBLE	PRECISION" and	double
	   real	  constants   like   "1.d0"  to	 16  bytes  if	possible.   If
	   "-fdefault-double-8"	 is  given  along   with   "fdefault-real-10",
	   "DOUBLE  PRECISION"	and  double  real  constants are not promoted.
	   Unlike  -freal-4-real-10,  "fdefault-real-10"  does	 not   promote
	   variables with explicit kind	declarations.

       -fdefault-real-16
	   Set	the  default  real  type to an 16 byte wide type.  This	option
	   also	affects	the kind of non-double real constants like 1.0.	  This
	   option  promotes the	default	width of "DOUBLE PRECISION" and	double
	   real	 constants  like  "1.d0"  to  16  bytes	  if   possible.    If
	   "-fdefault-double-8"	  is   given  along  with  "fdefault-real-16",
	   "DOUBLE PRECISION" and double  real	constants  are	not  promoted.
	   Unlike   -freal-4-real-16,	"fdefault-real-16"  does  not  promote
	   variables with explicit kind	declarations.

       -fdefault-double-8
	   Set the "DOUBLE PRECISION" type  and	 double	 real  constants  like
	   "1.d0"  to  an 8 byte wide type.  Do	nothing	if this	is already the
	   default.  This option prevents -fdefault-real-8, -fdefault-real-10,
	   and -fdefault-real-16, from promoting "DOUBLE PRECISION" and	double
	   real	constants like "1.d0" to 16 bytes.

       -finteger-4-integer-8
	   Promote all	"INTEGER(KIND=4)"  entities  to	 an  "INTEGER(KIND=8)"
	   entities.   If  "KIND=8"  is	 unavailable, then an error is issued.
	   This	option should be used with care	and may	not  be	 suitable  for
	   your	 codes.	  Areas	 of possible concern include calls to external
	   procedures, alignment in  "EQUIVALENCE"  and/or  "COMMON",  generic
	   interfaces,	BOZ  literal constant conversion, and I/O.  Inspection
	   of the intermediate representation of the translated	Fortran	 code,
	   produced by -fdump-tree-original, is	suggested.

       -freal-4-real-8
       -freal-4-real-10
       -freal-4-real-16
       -freal-8-real-4
       -freal-8-real-10
       -freal-8-real-16
	   Promote all "REAL(KIND=M)" entities to "REAL(KIND=N)" entities.  If
	   "REAL(KIND=N)"  is  unavailable,  then  an  error  is  issued.  The
	   "-freal-4-" flags  also  affect  the	 default  real	kind  and  the
	   "-freal-8-"	flags  also the	double-precision real kind.  All other
	   real-kind types are unaffected by this option.   The	 promotion  is
	   also	 applied  to  real  literal  constants	of default and double-
	   precision kind and a	specified kind number of 4 or 8, respectively.
	   However,	     "-fdefault-real-8",	  "-fdefault-real-10",
	   "-fdefault-real-10",	 and  "-fdefault-double-8" take	precedence for
	   the default and double-precision real kinds,	both for real  literal
	   constants  and  for	declarations without a kind number.  Note that
	   for "REAL(KIND=KIND(1.0))" the literal may get  promoted  and  then
	   the	result	may  get promoted again.  These	options	should be used
	   with	care and may  not  be  suitable	 for  your  codes.   Areas  of
	   possible concern include calls to external procedures, alignment in
	   "EQUIVALENCE"  and/or  "COMMON",  generic  interfaces,  BOZ literal
	   constant conversion,	and I/O	and calls to intrinsic procedures when
	   passing a value to the "kind=" dummy	argument.  Inspection  of  the
	   intermediate	  representation   of  the  translated	Fortran	 code,
	   produced by	-fdump-fortran-original	 or  -fdump-tree-original,  is
	   suggested.

       -std=std
	   Specify  the	 standard to which the program is expected to conform,
	   which may be	one of	f95,  f2003,  f2008,  f2018,  f2023,  gnu,  or
	   legacy.   The  default  value  for  std  is	gnu, which specifies a
	   superset of the latest Fortran standard that	includes  all  of  the
	   extensions  supported  by  GNU Fortran, although warnings are given
	   for obsolete	extensions not recommended for use in new  code.   The
	   legacy  value  is  equivalent but without the warnings for obsolete
	   extensions, and may be useful for old  nonstandard  programs.   The
	   f95,	  f2003,   f2008,  f2018,  and	f2023  values  specify	strict
	   conformance to the Fortran 95, Fortran 2003,	Fortran	2008,  Fortran
	   2018	and Fortran 2023 standards, respectively; errors are given for
	   all	extensions beyond the relevant language	standard, and warnings
	   are given for the  Fortran  77  features  that  are	permitted  but
	   obsolescent	in later standards. The	deprecated option -std=f2008ts
	   acts	as an alias for	-std=f2018. It is only present	for  backwards
	   compatibility with earlier gfortran versions	and should not be used
	   any	more.  -std=f202y  acts	as an alias for	-std=f2023 and enables
	   proposed features for testing Fortran 202y.	As  the	 Fortran  202y
	   standard  develops, implementation might change or the experimental
	   new features	might be removed.

       -ftest-forall-temp
	   Enhance test	coverage by forcing most  forall  assignments  to  use
	   temporary.

       -funsigned
	   Allow the experimental unsigned extension.

   Enable and customize	preprocessing
       Many  Fortran  compilers	including GNU Fortran allow passing the	source
       code through a C	preprocessor (CPP; sometimes also called  the  Fortran
       preprocessor,  FPP)  to allow for conditional compilation.  In the case
       of GNU Fortran, this is the GNU C Preprocessor in the traditional mode.
       On  systems  with  case-preserving  file	 names,	 the  preprocessor  is
       automatically  invoked  if  the	filename  extension is .F, .FOR, .FTN,
       .fpp,  .FPP,  .F90,  .F95,  .F03	 or  .F08.   To	 manually  invoke  the
       preprocessor  on	 any file, use -cpp, to	disable	preprocessing on files
       where the preprocessor is run automatically, use	-nocpp.

       If a preprocessed file includes another file with the Fortran "INCLUDE"
       statement, the  included	 file  is  not	preprocessed.	To  preprocess
       included	files, use the equivalent preprocessor statement "#include".

       If  GNU	Fortran	 invokes  the preprocessor, "__GFORTRAN__" is defined.
       The macros "__GNUC__", "__GNUC_MINOR__" and  "__GNUC_PATCHLEVEL__"  can
       be   used   to	determine   the	  version   of	 the   compiler.   See
       Top,,Overview,cpp,The C Preprocessor for	details.

       GNU Fortran supports a number of	"INTEGER" and  "REAL"  kind  types  in
       additional  to  the  kind  types	required by the	Fortran	standard.  The
       availability of any given kind type  is	architecture  dependent.   The
       following  predefined  preprocessor macros can be used to conditionally
       include	code  for  these  additional  kind   types:   "__GFC_INT_1__",
       "__GFC_INT_2__",	 "__GFC_INT_8__", "__GFC_INT_16__", "__GFC_REAL_10__",
       and "__GFC_REAL_16__".

       While CPP is the	de facto standard for preprocessing Fortran code, Part
       3 of the	Fortran	95 standard (ISO/IEC 1539-3:1998) defines  Conditional
       Compilation, which is not widely	used and not directly supported	by the
       GNU Fortran compiler.

       The following options control preprocessing of Fortran code:

       -cpp
       -nocpp
	   Enable  preprocessing. The preprocessor is automatically invoked if
	   the file extension is .fpp, .FPP,  .F, .FOR,	.FTN, .F90, .F95, .F03
	   or .F08. Use	this option to manually	enable	preprocessing  of  any
	   kind	of Fortran file.

	   To  disable	preprocessing  of  files  with any of the above	listed
	   extensions, use the negative	form: -nocpp.

	   The preprocessor is run in traditional mode.	 Any  restrictions  of
	   the	file  format,  especially the limits on	line length, apply for
	   preprocessed	output as well,	so it might be advisable  to  use  the
	   -ffree-line-length-none or -ffixed-line-length-none options.

       -dM Instead  of	the  normal  output,  generate	a  list	 of  '#define'
	   directives for all the macros defined during	the execution  of  the
	   preprocessor,  including predefined macros. This gives you a	way of
	   finding out what is predefined in your version of the preprocessor.
	   Assuming you	have no	file foo.f90, the command

		     touch foo.f90; gfortran -cpp -E -dM foo.f90

	   shows all the predefined macros.

       -dD Like	-dM except in two respects: it does not	include	the predefined
	   macros, and it outputs both the "#define" directives	and the	result
	   of preprocessing. Both kinds	of output go to	 the  standard	output
	   file.

       -dN Like	-dD, but emit only the macro names, not	their expansions.

       -dU Like	 dD  except  that  only	 macros	 that  are  expanded, or whose
	   definedness is tested in preprocessor directives, are  output;  the
	   output  is delayed until the	use or test of the macro; and '#undef'
	   directives are also output for macros tested	but undefined  at  the
	   time.

       -dI Output   '#include'	 directives  in	 addition  to  the  result  of
	   preprocessing.

       -fworking-directory
	   Enable generation of	linemarkers in the  preprocessor  output  that
	   let	the compiler know the current working directory	at the time of
	   preprocessing. When this option is enabled, the preprocessor	emits,
	   after the initial linemarker, a second linemarker with the  current
	   working directory followed by two slashes. GCC uses this directory,
	   when	 it  is	 present  in  the preprocessed input, as the directory
	   emitted  as	the  current  working  directory  in  some   debugging
	   information	 formats.    This  option  is  implicitly  enabled  if
	   debugging information is enabled, but this can  be  inhibited  with
	   the	negated	form -fno-working-directory. If	the -P flag is present
	   in the command line,	this option has	no effect,  since  no  "#line"
	   directives are emitted whatsoever.

       -idirafter dir
	   Search  dir	for  include  files,  but  do it after all directories
	   specified with -I and the standard  system  directories  have  been
	   exhausted.  dir  is	treated	as a system include directory.	If dir
	   begins with "=", then the "=" is replaced by	 the  sysroot  prefix;
	   see --sysroot and -isysroot.

       -imultilib dir
	   Use	dir  as	 a  subdirectory  of  the directory containing target-
	   specific C++	headers.

       -iprefix	prefix
	   Specify prefix as the prefix	for subsequent	-iwithprefix  options.
	   If  the prefix represents a directory, you should include the final
	   '/'.

       -isysroot dir
	   This	option is like the  --sysroot  option,	but  applies  only  to
	   header files. See the --sysroot option for more information.

       -iquote dir
	   Search  dir only for	header files requested with "#include "file"";
	   they	are not	searched for "#include <file>",	before all directories
	   specified by	-I and before the standard system directories. If  dir
	   begins  with	 "=",  then the	"=" is replaced	by the sysroot prefix;
	   see --sysroot and -isysroot.

       -isystem	dir
	   Search dir for header files,	after all directories specified	by  -I
	   but	before	the  standard  system directories. Mark	it as a	system
	   directory, so that it gets the same special treatment as is applied
	   to the standard system directories. If dir begins  with  "=",  then
	   the	"="  is	 replaced  by  the  sysroot  prefix; see --sysroot and
	   -isysroot.

       -nostdinc
	   Do not search the standard system  directories  for	header	files.
	   Only	 the  directories  you have specified with -I options (and the
	   directory of	the current file, if appropriate) are searched.

       -undef
	   Do not predefine any	system-specific	or GCC-specific	 macros.   The
	   standard predefined macros remain defined.

       -Apredicate=answer
	   Make	 an  assertion with the	predicate predicate and	answer answer.
	   This	form is	preferred to  the  older  form	-A  predicate(answer),
	   which  is  still  supported,	 because it does not use shell special
	   characters.

       -A-predicate=answer
	   Cancel an assertion with the	predicate predicate and	answer answer.

       -C  Do not discard comments. All	comments are  passed  through  to  the
	   output file,	except for comments in processed directives, which are
	   deleted along with the directive.

	   You	should	be  prepared for side effects when using -C; it	causes
	   the preprocessor to treat comments as tokens	in  their  own	right.
	   For	example,  comments  appearing  at the start of what would be a
	   directive line have	the  effect  of	 turning  that	line  into  an
	   ordinary  source  line,  since  the	first  token on	the line is no
	   longer a '#'.

	   Warning:  this  currently  handles  C-Style	comments   only.   The
	   preprocessor	does not yet recognize Fortran-style comments.

       -CC Do  not discard comments, including during macro expansion. This is
	   like	-C, except that	comments  contained  within  macros  are  also
	   passed through to the output	file where the macro is	expanded.

	   In  addition	 to  the side-effects of the -C	option,	the -CC	option
	   causes all C++-style	comments inside	a macro	 to  be	 converted  to
	   C-style  comments.  This is to prevent later	use of that macro from
	   inadvertently commenting out	the remainder of the source line.  The
	   -CC option is generally used	to support lint	comments.

	   Warning: this currently handles C- and C++-Style comments only. The
	   preprocessor	does not yet recognize Fortran-style comments.

       -Dname
	   Predefine name as a macro, with definition 1.

       -Dname=definition
	   The	contents  of definition	are tokenized and processed as if they
	   appeared during translation phase three in a	 '#define'  directive.
	   In  particular,  the	 definition  is	 truncated by embedded newline
	   characters.

	   If you are invoking the preprocessor	from  a	 shell	or  shell-like
	   program  you	 may need to use the shell's quoting syntax to protect
	   characters such as spaces that have a meaning in the	shell syntax.

	   If you wish to define a function-like macro on  the	command	 line,
	   write  its  argument	 list  with surrounding	parentheses before the
	   equals sign (if any). Parentheses are meaningful to most shells, so
	   you	 need	to   quote   the   option.   With    sh	   and	  csh,
	   "-D'name(args...)=definition'" works.

	   -D  and -U options are processed in the order they are given	on the
	   command line. All -imacros  file  and  -include  file  options  are
	   processed after all -D and -U options.

       -H  Print  the  name  of	 each  header  file used, in addition to other
	   normal activities. Each name	is indented to show how	 deep  in  the
	   '#include' stack it is.

       -P  Inhibit   generation	  of   linemarkers  in	the  output  from  the
	   preprocessor.  This might be	useful when running  the  preprocessor
	   on  something  that	is  not	 C code, and is	sent to	a program that
	   might be confused by	the linemarkers.

       -Uname
	   Cancel any previous definition of name, either built	in or provided
	   with	a -D option.

   Options to request or suppress errors and warnings
       Errors are  diagnostic  messages	 that  report  that  the  GNU  Fortran
       compiler	 cannot	 compile  the  relevant	 piece	of  source  code.  The
       compiler	continues to process the  program  in  an  attempt  to	report
       further	errors	to aid in debugging, but does not produce any compiled
       output.

       Warnings	are diagnostic messages	that report constructions that are not
       inherently erroneous but	that are risky or suggest there	is  likely  to
       be  a  bug  in  the  program.  Unless -Werror is	specified, they	do not
       prevent compilation of the program.

       You can request many specific warnings with options beginning  -W,  for
       example	-Wimplicit to request warnings on implicit declarations.  Each
       of these	specific warning options also has a  negative  form  beginning
       -Wno-  to  turn	off warnings; for example, -Wno-implicit.  This	manual
       lists only one of the two forms,	whichever is not the default.

       These options control the amount	 and  kinds  of	 errors	 and  warnings
       produced	by GNU Fortran:

       -fmax-errors=n
	   Limits  the	maximum	 number	of error messages to n,	at which point
	   GNU Fortran bails out rather	than attempting	to continue processing
	   the source code.  If	n is 0,	there is no limit  on  the  number  of
	   error messages produced.

       -fsyntax-only
	   Check  the  code for	syntax errors, but do not actually compile it.
	   This	generates module files for each	module present	in  the	 code,
	   but no other	output file.

       -Wpedantic
       -pedantic
	   Issue  warnings  for	uses of	extensions to Fortran.	-pedantic also
	   applies to C-language constructs where they occur  in  GNU  Fortran
	   source  files,  such	 as use	of \e in a character constant within a
	   directive like "#include".

	   Valid Fortran programs should compile properly with or without this
	   option.  However, without this option, certain GNU  extensions  and
	   traditional	Fortran	 features  are	supported  as well.  With this
	   option, many	of them	are rejected.

	   Some	users try to use -pedantic to check programs for  conformance.
	   They	 soon find that	it does	not do quite what they want---it finds
	   some	nonstandard practices, but not all.  However, improvements  to
	   GNU Fortran in this area are	welcome.

	   This	 should	 be  used  in  conjunction  with -std=f95, -std=f2003,
	   -std=f2008, -std=f2018 or -std=f2023.

       -pedantic-errors
	   Like	 -pedantic,  except  that  errors  are	produced  rather  than
	   warnings.

       -Wall
	   Enables  commonly  used warning options pertaining to usage that we
	   recommend avoiding and that we believe are  easy  to	 avoid.	  This
	   currently	includes    -Waliasing,	  -Wampersand,	 -Wconversion,
	   -Wsurprising,    -Wc-binding-type,	 -Wintrinsics-std,     -Wtabs,
	   -Wintrinsic-shadow,	    -Wline-truncation,	    -Wtarget-lifetime,
	   -Winteger-division,	    -Wreal-q-constant,	    -Wunused	   and
	   -Wundefined-do-loop.

       -Waliasing
	   Warn	 about	possible aliasing of dummy arguments. Specifically, it
	   warns if the	same  actual  argument	is  associated	with  a	 dummy
	   argument  with "INTENT(IN)" and a dummy argument with "INTENT(OUT)"
	   in a	call with an explicit interface.

	   The following example triggers the warning.

		     interface
		       subroutine bar(a,b)
			 integer, intent(in) ::	a
			 integer, intent(out) :: b
		       end subroutine
		     end interface
		     integer ::	a

		     call bar(a,a)

       -Wampersand
	   Warn	about missing ampersand	in continued character constants.  The
	   warning is given with -Wampersand, -pedantic, -std=f95, -std=f2003,
	   -std=f2008,	-std=f2018  and	 -std=f2023.  Note:  With no ampersand
	   given in  a	continued  character  constant,	 GNU  Fortran  assumes
	   continuation	 at  the  first	 non-comment, non-whitespace character
	   after the ampersand that initiated the continuation.

       -Warray-temporaries
	   Warn	about  array  temporaries  generated  by  the  compiler.   The
	   information	generated  by  this  warning  is  sometimes  useful in
	   optimization, in order to avoid such	temporaries.

       -Wc-binding-type
	   Warn	 if  the  a  variable  might  not  be  C  interoperable.    In
	   particular,	warn  if  the  variable	 has  been  declared  using an
	   intrinsic type with default kind instead of using a kind  parameter
	   defined  for	 C  interoperability  in the intrinsic "ISO_C_Binding"
	   module.  This option	is implied by -Wall.

       -Wcharacter-truncation
	   Warn	when a character assignment truncates the assigned string.

       -Wline-truncation
	   Warn	when a source code line	is truncated.  This option is  implied
	   by	-Wall.	  For	free-form   source   code,   the   default  is
	   -Werror=line-truncation  such  that	truncations  are  reported  as
	   error.

       -Wconversion
	   Warn	about implicit conversions that	are likely to change the value
	   of the expression after conversion. Implied by -Wall.

       -Wconversion-extra
	   Warn	 about implicit	conversions between different types and	kinds.
	   This	option does not	imply -Wconversion.

       -Wexternal-argument-mismatch
	   Warn	about argument mismatches for dummy external procedures.  This
	   is implied by -fc-prototypes-external because generation of a valid
	   C23 interface is not	possible in such  a  case.   Also  implied  by
	   -Wall.

       -Wextra
	   Enables  some  warning options for usages of	language features that
	   may	be  problematic.  This	currently  includes   -Wcompare-reals,
	   -Wunused-parameter and -Wdo-subscript.

       -Wfrontend-loop-interchange
	   Warn	 when  using  -ffrontend-loop-interchange  for performing loop
	   interchanges.

       -Wimplicit-interface
	   Warn	if a procedure is called without an explicit interface.	  Note
	   this	 only  checks  that an explicit	interface is present.  It does
	   not check  that  the	 declared  interfaces  are  consistent	across
	   program units.

       -Wimplicit-procedure
	   Warn	 if  a	procedure  is  called  that  has  neither  an explicit
	   interface nor has been declared as "EXTERNAL".

       -Winteger-division
	   Warn	if a constant integer division truncates its  result.	As  an
	   example, 3/5	evaluates to 0.

       -Wintrinsics-std
	   Warn	 if  gfortran  finds  a	 procedure named like an intrinsic not
	   available in	the currently selected standard	(with -std) and	treats
	   it as "EXTERNAL" procedure because of this.	 -fall-intrinsics  can
	   be  used  to	 never	trigger	 this  behavior	and always link	to the
	   intrinsic regardless	of the selected	standard.

       -Wno-overwrite-recursive
	   Do not warn when -fno-automatic is used with	-frecursive. Recursion
	   is broken if	the relevant local variables do	not have the attribute
	   "AUTOMATIC"	explicitly  declared.  This  option  can  be  used  to
	   suppress the	warning	when it	is known that recursion	is not broken.
	   Useful for build environments that use -Werror.

       -Wreal-q-constant
	   Produce  a  warning	if  a  real-literal-constant  contains	a  "q"
	   exponent-letter.

       -Wsurprising
	   Produce  a  warning	 when	"suspicious"   code   constructs   are
	   encountered.	  While	 technically legal these usually indicate that
	   an error has	been made.

	   This	  currently   produces	 a   warning   under   the   following
	   circumstances:

	   *   An  "INTEGER"-typed  "SELECT  CASE" construct has a "CASE" that
	       can never be matched as its lower value	is  greater  than  its
	       upper value.

	   *   A  "LOGICAL"-typed  "SELECT  CASE"  construct  has three	"CASE"
	       statements.

	   *   A "TRANSFER" specifies  a  source  that	is  shorter  than  the
	       destination.

	   *   The  type  of a function	result is declared more	than once with
	       the same	type.  If -pedantic  or	 standard-conforming  mode  is
	       enabled,	this is	an error.

	   *   A "CHARACTER" variable is declared with negative	length.

	   *   With  -fopenmp,	for  fixed-form	 source	 code,	when  an "omx"
	       vendor-extension	 sentinel  is  encountered.  (The   equivalent
	       "ompx",	 used  in  free-form  source  code,  is	 diagnosed  by
	       default.)

       -Wtabs
	   By default, tabs are	accepted  as  whitespace,  but	tabs  are  not
	   members  of	the  Fortran Character Set.  For continuation lines, a
	   tab followed	by a digit between  1  and  9  is  supported.	-Wtabs
	   causes a warning to be issued if a tab is encountered. Note,	-Wtabs
	   is	active	 for   -pedantic,  -std=f95,  -std=f2003,  -std=f2008,
	   -std=f2018, -std=f2023 and -Wall.

       -Wundefined-do-loop
	   Warn	if a "DO" loop with step either	1 or -1	yields an underflow or
	   an overflow during iteration	of an induction	variable of the	 loop.
	   This	option is implied by -Wall.

       -Wunderflow
	   Produce a warning when numerical constant expressions that yield an
	   underflow are encountered during compilation.  Enabled by default.

       -Wintrinsic-shadow
	   Warn	 if  a user-defined procedure or module	procedure has the same
	   name	as an intrinsic;  in  this  case,  an  explicit	 interface  or
	   "EXTERNAL"  or "INTRINSIC" declaration might	be needed to get calls
	   later resolved to the desired intrinsic/procedure.  This option  is
	   implied by -Wall.

       -Wuse-without-only
	   Warn	 if  a	"USE"  statement  has  no  "ONLY"  qualifier  and thus
	   implicitly imports all public entities of the used module.

       -Wunused-dummy-argument
	   Warn	about unused dummy arguments. This option is implied by	-Wall.

       -Wunused-parameter
	   Contrary  to	 gcc's	meaning	 of   -Wunused-parameter,   gfortran's
	   implementation  of  this  option  does  not warn about unused dummy
	   arguments   (see   -Wunused-dummy-argument),	  but	about	unused
	   "PARAMETER"	values.	 -Wunused-parameter  is	 implied by -Wextra if
	   also	-Wunused or -Wall is used.

       -Walign-commons
	   By default, gfortran	warns about any	occasion  of  variables	 being
	   padded  for	proper alignment inside	a "COMMON" block. This warning
	   can be turned off via -Wno-align-commons. See also -falign-commons.

       -Wfunction-elimination
	   Warn	if any	calls  to  impure  functions  are  eliminated  by  the
	   optimizations  enabled  by  the  -ffrontend-optimize	 option.  This
	   option is implied by	-Wextra.

       -Wrealloc-lhs
	   Warn	when the compiler might	 insert	 code  to  for	allocation  or
	   reallocation	 of an allocatable array variable of intrinsic type in
	   intrinsic assignments.  In hot loops, the Fortran 2003 reallocation
	   feature may reduce  the  performance.   If  the  array  is  already
	   allocated  with  the	 correct  shape,  consider using a whole-array
	   array-spec (e.g. "(:,:,:)") for the variable	on the left-hand  side
	   to  prevent	the  reallocation  check.  Note	that in	some cases the
	   warning is shown,  even  if	the  compiler  optimizes  reallocation
	   checks  away.   For instance, when the right-hand side contains the
	   same	variable multiplied by a scalar.  See also -frealloc-lhs.

       -Wrealloc-lhs-all
	   Warn	 when  the  compiler  inserts  code  to	 for   allocation   or
	   reallocation	 of an allocatable variable; this includes scalars and
	   derived types.

       -Wcompare-reals
	   Warn	 when  comparing  real	or  complex  types  for	 equality   or
	   inequality.	This option is implied by -Wextra.

       -Wtarget-lifetime
	   Warn	 if  the  pointer in a pointer assignment might	be longer than
	   the its target. This	option is implied by -Wall.

       -Wzerotrip
	   Warn	if a "DO" loop is known	to execute zero	times at compile time.
	   This	option is implied by -Wall.

       -Wdo-subscript
	   Warn	if an array subscript inside a "DO" loop could lead to an out-
	   of-bounds access  even  if  the  compiler  cannot  prove  that  the
	   statement is	actually executed, in cases like

		     real a(3)
		     do	i=1,4
		       if (condition(i)) then
			 a(i) =	1.2
		       end if
		     end do

	   This	option is implied by -Wextra.

       -Werror
	   Turns all warnings into errors.

       Some  of	 these	have  no  effect  when	compiling  programs written in
       Fortran.

   Options for debugging your program
       GNU Fortran has various special options that  are  used	for  debugging
       your program.

       -fdebug-aux-vars
	   Renames  internal  variables	 created by the	gfortran front end and
	   makes them accessible to a debugger.	  The  name  of	 the  internal
	   variables   then  start  with  uppercase  letters  followed	by  an
	   underscore.	This option is useful  for  debugging  the  compiler's
	   code	 generation  together with "-fdump-tree-original" and enabling
	   debugging of	the executable program by using	"-g" or	"-ggdb3".

       -ffpe-trap=list
	   Specify a list of floating point exception  traps  to  enable.   On
	   most	systems, if a floating point exception occurs and the trap for
	   that	 exception  is	enabled,  a  "SIGFPE"  signal  is sent and the
	   program being aborted, producing a core file	useful for  debugging.
	   list	 is a (possibly	empty) comma-separated list of either none (to
	   clear the set of exceptions to be trapped),	or  of	the  following
	   exceptions:	invalid	 (invalid  floating  point  operation, such as
	   "SQRT(-1.0)"), zero (division by zero),  overflow  (overflow	 in  a
	   floating point operation), underflow	(underflow in a	floating point
	   operation),	inexact	 (loss	of  precision  during  operation), and
	   denormal (operation performed on a denormal value).	The first five
	   exceptions correspond to the	five IEEE 754 exceptions, whereas  the
	   last	 one  (denormal)  is  not part of the IEEE 754 standard	but is
	   available on	some common architectures such as x86.

	   The first three exceptions  (invalid,  zero,	 and  overflow)	 often
	   indicate  serious errors, and unless	the program has	provisions for
	   dealing with	these  exceptions,  enabling  traps  for  these	 three
	   exceptions is probably a good idea.

	   If the option is used more than once	in the command line, the lists
	   are	joined:	'"ffpe-trap="list1 "ffpe-trap="list2' is equivalent to
	   "ffpe-trap="list1,list2.

	   Note	that once enabled an exception cannot be disabled (no negative
	   form), except by clearing all traps by specifying none.

	   Many,  if  not  most,  floating  point  operations  incur  loss  of
	   precision  due  to  rounding,  and hence the	"ffpe-trap=inexact" is
	   likely to be	uninteresting in practice.

	   By default no exception traps are enabled.

       -ffpe-summary=list
	   Specify a list of floating-point exceptions,	whose flag  status  is
	   printed  to	"ERROR_UNIT"  when  invoking  "STOP" and "ERROR	STOP".
	   list	can be either none, all	 or  a	comma-separated	 list  of  the
	   following  exceptions:  invalid, zero, overflow, underflow, inexact
	   and denormal. (See -ffpe-trap for a description of the exceptions.)

	   If the option is used more than once	in the command line, only  the
	   last	one is used.

	   By default, a summary for all exceptions but	inexact	is shown.

       -fno-backtrace
	   When	 a  serious runtime error is encountered or a deadly signal is
	   emitted  (segmentation  fault,  illegal  instruction,  bus	error,
	   floating-point exception, and the other POSIX signals that have the
	   action  core),  the	Fortran	 runtime  library  tries  to  output a
	   backtrace of	the error.  "-fno-backtrace"  disables	the  backtrace
	   generation.	This  option only has influence	for compilation	of the
	   Fortran main	program.

   Options for directory search
       These options affect how	GNU Fortran searches for  files	 specified  by
       the  "INCLUDE"  directive and where it searches for previously compiled
       modules.

       It also affects the search paths	used by	cpp when  used	to  preprocess
       Fortran source.

       -Idir
	   These  affect interpretation	of the "INCLUDE" directive (as well as
	   of the "#include" directive of the cpp preprocessor).

	   Also	note that the general behavior of -I and "INCLUDE"  is	pretty
	   much	 the  same  as	of -I with "#include" in the cpp preprocessor,
	   with	regard to looking for header.gcc files and other such things.

	   This	path is	also used to search for	 .mod  files  when  previously
	   compiled modules are	required by a "USE" statement.

       -Jdir
	   This	option specifies where to put .mod files for compiled modules.
	   It is also added to the list	of directories to searched by an "USE"
	   statement.

	   The default is the current directory.

       -fintrinsic-modules-path	dir
	   This	 option	 specifies  the	 location  of  pre-compiled  intrinsic
	   modules, if they are	not in the default location  expected  by  the
	   compiler.

   Influencing the linking step
       These  options come into	play when the compiler links object files into
       an executable output file. They are meaningless if the compiler is  not
       doing a link step.

       -static-libgfortran
	   On  systems	that  provide  libgfortran  as	a  shared and a	static
	   library, this option	forces the use of the static  version.	If  no
	   shared  version  of	libgfortran  was  built	 when the compiler was
	   configured, this option has no effect.

       -static-libquadmath
	   On systems that provide  libquadmath	 as  a	shared	and  a	static
	   library,  this  option  forces the use of the static	version. If no
	   shared version of libquadmath  was  built  when  the	 compiler  was
	   configured, this option has no effect.

	   Please  note	that the libquadmath runtime library is	licensed under
	   the GNU Lesser  General  Public  License  (LGPL),  and  linking  it
	   statically	introduces   requirements   when   redistributing  the
	   resulting binaries.

   Influencing runtime behavior
       These options affect the	runtime	behavior of programs compiled with GNU
       Fortran.

       -fconvert=conversion
	   Specify the representation of data for  unformatted	files.	 Valid
	   values  for	conversion  on	most systems are: native, the default;
	   swap, swap between big- and	little-endian;	big-endian,  use  big-
	   endian  representation  for	unformatted  files; little-endian, use
	   little-endian representation	for unformatted	files.

	   On POWER systems  that  suppport  -mabi=ieeelongdouble,  there  are
	   additional  options,	which can be combined with others with commas.
	   Those are

	   @w<-fconvert=r16_ieee Use IEEE 128-bit format for>
	       "REAL(KIND=16)".

	   @w<-fconvert=r16_ibm	Use IBM	long double format for>
	       "REAL(KIND=16)".

	   This	option has an effect only when used in the main	program.   The
	   "CONVERT"   specifier  and  the  GFORTRAN_CONVERT_UNIT  environment
	   variable override the default specified by -fconvert.

       -frecord-marker=length
	   Specify the length of record	markers	for unformatted	files.	 Valid
	   values  for	length	are 4 and 8.  Default is 4.  This is different
	   from	previous versions  of  gfortran,  which	 specified  a  default
	   record  marker length of 8 on most systems.	If you want to read or
	   write files compatible  with	 earlier  versions  of	gfortran,  use
	   -frecord-marker=8.

       -fmax-subrecord-length=length
	   Specify  the	maximum	length for a subrecord.	 The maximum permitted
	   value for length is 2147483639, which is also  the  default.	  Only
	   really useful for use by the	gfortran testsuite.

       -fsign-zero
	   When	 enabled,  floating  point numbers of value zero with the sign
	   bit set are written as negative  number  in	formatted  output  and
	   treated  as	negative in the	"SIGN" intrinsic.  -fno-sign-zero does
	   not print the negative sign of zero values (or  values  rounded  to
	   zero	 for  I/O)  and	 regards zero as positive number in the	"SIGN"
	   intrinsic  for  compatibility  with	Fortran	 77.  The  default  is
	   -fsign-zero.

   GNU Fortran Developer Options
       GNU Fortran has various special options that are	used for debugging the
       GNU Fortran compiler.

       -fdump-fortran-global
	   Output  a  list  of	the  global identifiers	after translating into
	   middle-end representation. Mostly  useful  for  debugging  the  GNU
	   Fortran  compiler itself. The output	generated by this option might
	   change between releases.  This option may  also  generate  internal
	   compiler errors for features	that have only recently	been added.

       -fdump-fortran-optimized
	   Output  the parse tree after	front-end optimization.	 Mostly	useful
	   for debugging the GNU Fortran compiler itself. The output generated
	   by this option might	change between releases.  This option may also
	   generate internal compiler  errors  for  features  that  have  only
	   recently been added.

       -fdump-fortran-original
	   Output the internal parse tree after	translating the	source program
	   into	 internal  representation.   This  option is mostly useful for
	   debugging the GNU Fortran compiler itself. The output generated  by
	   this	 option	 might	change	between	releases. This option may also
	   generate internal compiler  errors  for  features  that  have  only
	   recently been added.

       -fdump-parse-tree
	   Output the internal parse tree after	translating the	source program
	   into	 internal representation.  Mostly useful for debugging the GNU
	   Fortran compiler itself. The	output generated by this option	 might
	   change  between  releases.  This  option may	also generate internal
	   compiler errors for features	that have only	recently  been	added.
	   This	option is deprecated; use "-fdump-fortran-original" instead.

       -save-temps
	   Store  the  usual  "temporary" intermediate files permanently; name
	   them	as auxiliary output files, as specified	 described  under  GCC
	   -dumpbase and -dumpdir.

		   gfortran -save-temps	-c foo.F90

	   preprocesses	  input	 file  foo.F90	to  foo.fii,  compiles	to  an
	   intermediate	foo.s, and then	assembles to the (implied) output file
	   foo.o, whereas:

		   gfortran -save-temps	-S foo.F

	   saves the preprocessor output in foo.fi, and	then compiles  to  the
	   (implied) output file foo.s.

   Options for code generation conventions
       These  machine-independent  options  control  the interface conventions
       used in code generation.

       Most of them have both positive and negative forms; the	negative  form
       of  -ffoo would be -fno-foo.  In	the table below, only one of the forms
       is listed---the one that	is not the default.  You can  figure  out  the
       other form by either removing no- or adding it.

       -fno-automatic
	   Treat  each program unit (except those marked as "RECURSIVE") as if
	   the "SAVE" statement	were specified for every  local	 variable  and
	   array  referenced  in  it.  Does  not  affect  common blocks. (Some
	   Fortran compilers provide this option under	the  name  -static  or
	   -save.)   The  default,  which  is  -fautomatic, uses the stack for
	   local   variables	smaller	   than	   the	  value	   given    by
	   -fmax-stack-var-size.   Use the option -frecursive to use no	static
	   memory.

	   Local variables or arrays having an explicit	"SAVE"	attribute  are
	   silently ignored unless the -pedantic option	is added.

       -ff2c
	   Generate  code designed to be compatible with code generated	by g77
	   and f2c.

	   The calling conventions used	by g77 (originally implemented in f2c)
	   require functions that  return  type	 default  "REAL"  to  actually
	   return  the	C  type	 "double",  and	 functions  that  return  type
	   "COMPLEX" to	return the values via an extra argument	in the calling
	   sequence that points	to where to store the return value.  Under the
	   default GNU calling conventions, such functions simply return their
	   results as they would in GNU	C---default  "REAL"  functions	return
	   the	C  type	"float", and "COMPLEX" functions return	the GNU	C type
	   "complex".	  Additionally,	   this	    option     implies	   the
	   -fsecond-underscore	 option,   unless   -fno-second-underscore  is
	   explicitly requested.

	   This	does not affect	the generation of code	that  interfaces  with
	   the libgfortran library.

	   Caution:  It	 is  not a good	idea to	mix Fortran code compiled with
	   -ff2c  with	code  compiled	with  the  default  -fno-f2c   calling
	   conventions	as,  calling  "COMPLEX"	 or  default  "REAL" functions
	   between program parts that were  compiled  with  different  calling
	   conventions will break at execution time.

	   Caution:  This  breaks code that passes intrinsic functions of type
	   default "REAL" or "COMPLEX" as actual  arguments,  as  the  library
	   implementations use the -fno-f2c calling conventions.

       -fno-underscoring
	   Do  not transform names of entities specified in the	Fortran	source
	   file	by appending underscores to them.

	   With	-funderscoring in effect, GNU Fortran appends  one  underscore
	   to  external	names.	This is	done to	ensure compatibility with code
	   produced by many UNIX Fortran compilers.  Note this does not	 apply
	   to names declared with C binding, or	within a module.

	   Caution:  The  default behavior of GNU Fortran is incompatible with
	   f2c and g77,	please use the -ff2c option if you want	 object	 files
	   compiled with GNU Fortran to	be compatible with object code created
	   with	these tools.

	   Use	 of  -fno-underscoring	is  not	 recommended  unless  you  are
	   experimenting with issues such as integration of GNU	 Fortran  into
	   existing  system environments (vis-a-vis existing libraries,	tools,
	   and so on).

	   For example,	with  -funderscoring,  and  assuming  that  "j()"  and
	   "max_count()"  are external functions while "my_var"	and "lvar" are
	   local variables, a Fortran statement	like

		   I = J() + MAX_COUNT (MY_VAR,	LVAR)

	   is implemented as something akin to the C code:

		   i = j_() + max_count_(&my_var, &lvar);

	   With	-fno-underscoring, the same statement is implemented as:

		   i = j() + max_count(&my_var,	&lvar);

	   Use of  -fno-underscoring  allows  direct  specification  of	 user-
	   defined names while debugging and when interfacing GNU Fortran code
	   with	other languages.

	   Note	 that  just  because  the  names  match	does not mean that the
	   interface implemented by GNU	Fortran	for an external	 name  matches
	   the	interface  implemented	by  some  other	language for that same
	   name.  That is, getting code	produced by GNU	 Fortran  to  link  to
	   code	produced by some other compiler	using this or any other	method
	   can be only a small part of the overall solution---getting the code
	   generated  by  both	compilers to agree on issues other than	naming
	   can require significant effort, and,	unlike	naming	disagreements,
	   linkers normally cannot detect disagreements	in these other areas.

	   Also,  note	that  with  -fno-underscoring,	the  lack  of appended
	   underscores introduces the  very  real  possibility	that  a	 user-
	   defined  external  name  conflicts with a name in a system library,
	   which could make finding unresolved-reference bugs quite  difficult
	   in  some  cases---they might	occur at program run time, and show up
	   only	as buggy behavior at run time.

	   Also	note that declaring symbols as bind(C) is a more robust	way to
	   interface with code written in other	 languages  or	compiled  with
	   different   Fortran	 compilers   than   the	 command-line  options
	   documented in this section.

       -fsecond-underscore
	   By default, GNU Fortran appends an underscore  to  external	names.
	   If  this  option  is	 used,	GNU Fortran appends two	underscores to
	   names  with	underscores  and  one  underscore  to  names  with  no
	   underscores.

	   For example,	an external name such as "MAX_COUNT" is	implemented as
	   a reference to the link-time	external symbol	"max_count__", instead
	   of  "max_count_".   This is required	for compatibility with g77 and
	   f2c,	and is implied by use of the -ff2c option.

	   This	option has no effect if	-fno-underscoring is in	effect.	 It is
	   implied by the -ff2c	option.

       -fcoarray=<keyword>
	   none
	       Disable coarray support;	using coarray declarations and	image-
	       control statements produces a compile-time error. (Default)

	   single
	       Single-image mode, i.e. "num_images()" is always	one.

	   lib Library-based  coarray  parallelization;	a suitable GNU Fortran
	       coarray library such as <http://opencoarrays.org> needs	to  be
	       linked.	 Alternatively,	 GCC's	"libcaf_single"	library	can be
	       linked, albeit it only supports a single	image.

       -fcheck=<keyword>
	   Enable the generation of run-time checks; the argument shall	 be  a
	   comma-delimited  list of the	following keywords.  Prefixing a check
	   with	 no-  disables	it  if	it  was	 activated   by	  a   previous
	   specification.

	   all Enable all run-time test	of -fcheck.

	   array-temps
	       Warns  at  run  time  when  for	passing	 an  actual argument a
	       temporary array had to be generated. The	information  generated
	       by  this	 warning is sometimes useful in	optimization, in order
	       to avoid	such temporaries.

	       Note: The warning is only printed once per location.

	   bits
	       Enable generation of run-time checks for	invalid	 arguments  to
	       the bit manipulation intrinsics.

	   bounds
	       Enable  generation  of run-time checks for array	subscripts and
	       against the declared  minimum  and  maximum  values.   It  also
	       checks  array  indices  for  assumed  and deferred shape	arrays
	       against the actual allocated bounds and ensures that all	string
	       lengths are equal for character array constructors  without  an
	       explicit	typespec.

	       Some   checks  require  that  -fcheck=bounds  is	 set  for  the
	       compilation of the main program.

	       Note: In	the future  this  may  also  include  other  forms  of
	       checking, e.g., checking	substring references.

	   do  Enable  generation  of run-time checks for invalid modification
	       of loop iteration variables.

	   mem Enable generation of run-time  checks  for  memory  allocation.
	       Note:  This  option  does not affect explicit allocations using
	       the "ALLOCATE" statement, which are always checked.

	   pointer
	       Enable  generation  of  run-time	 checks	  for	pointers   and
	       allocatables.

	   recursion
	       Enable  generation  of  run-time	 checks	for recursively	called
	       subroutines and functions that are not marked as	recursive. See
	       also -frecursive.  Note:	This check does	not  work  for	OpenMP
	       programs	 and is	disabled if used together with -frecursive and
	       -fopenmp.

	   Example: Assuming you have a	file foo.f90, the command

		     gfortran -fcheck=all,no-array-temps foo.f90

	   compiles the	file with all checks enabled as	specified above	except
	   warnings for	generated array	temporaries.

       -fbounds-check
	   Deprecated alias for	-fcheck=bounds.

       -ftail-call-workaround
       -ftail-call-workaround=n
	   Some	C interfaces to	Fortran	codes  violate	the  gfortran  ABI  by
	   omitting the	hidden character length	arguments as described in
	     This can lead to crashes because pushing arguments	for tail calls
	   can overflow	the stack.

	   To  provide	a workaround for existing binary packages, this	option
	   disables  tail  call	 optimization  for  gfortran  procedures  with
	   character   arguments.   With  -ftail-call-workaround=2  tail  call
	   optimization	is disabled in all gfortran procedures with  character
	   arguments,	  with	  -ftail-call-workaround=1    or    equivalent
	   -ftail-call-workaround only in gfortran procedures  with  character
	   arguments that call implicitly prototyped procedures.

	   Using  this	option	can  lead to problems including	crashes	due to
	   insufficient	stack space.

	   It is very strongly recommended to fix the code in  question.   The
	   -fc-prototypes-external  option  can	be used	to generate prototypes
	   that	conform	to gfortran's ABI, for inclusion in the	source code.

	   Support for this option  will  likely  be  withdrawn	 in  a	future
	   release of gfortran.

	   The	 negative   form,   -fno-tail-call-workaround	or  equivalent
	   -ftail-call-workaround=0, can be used to disable this option.

	   Default is currently	-ftail-call-workaround,	this  will  change  in
	   future releases.

       -fcheck-array-temporaries
	   Deprecated alias for	-fcheck=array-temps.

       -fmax-array-constructor=n
	   This	 option	 can  be used to increase the upper limit permitted in
	   array constructors.	The code below requires	this option to	expand
	   the array at	compile	time.

		   program test
		   implicit none
		   integer j
		   integer, parameter :: n = 100000
		   integer, parameter :: i(n) =	(/ (2*j, j = 1,	n) /)
		   print '(10(I0,1X))',	i
		   end program test

	   Caution:    This   option  can  lead	 to  long  compile  times  and
	   excessively large object files.

	   The default value for n is 65535.

       -fmax-stack-var-size=n
	   This	option specifies the size in bytes of the largest  array  that
	   is  put on the stack; if the	size is	exceeded static	memory is used
	   (except in procedures  marked  as  "RECURSIVE").   Use  the	option
	   -frecursive	to  allow  for recursive procedures that do not	have a
	   "RECURSIVE" attribute or for	parallel programs. Use	-fno-automatic
	   to never use	the stack.

	   This	 option	 currently  only  affects  local  arrays declared with
	   constant bounds, and	may not	 apply	to  all	 character  variables.
	   Future versions of GNU Fortran may improve this behavior.

	   The default value for n is 65536.

       -fstack-arrays
	   Adding  this	 option	 makes	the Fortran compiler put all arrays of
	   unknown size	and array temporaries  onto  stack  memory.   If  your
	   program  uses  very large local arrays it is	possible that you have
	   to extend your runtime limits for stack memory  on  some  operating
	   systems.  This  flag	 is  enabled  by default at optimization level
	   -Ofast unless -fmax-stack-var-size is specified.

       -fpack-derived
	   This	option tells GNU Fortran  to  pack  derived  type  members  as
	   closely  as	possible.  Code	compiled with this option is likely to
	   be incompatible with	code compiled without  this  option,  and  may
	   execute slower.

       -frepack-arrays
	   In  some  circumstances  GNU	 Fortran  may pass assumed shape array
	   sections via	 a  descriptor	describing  a  noncontiguous  area  of
	   memory.   This  option adds code to the function prologue to	repack
	   the data into a contiguous block at runtime.

	   This	should result in faster	accesses to the	array.	However	it can
	   introduce significant overhead to  the  function  call,  especially
	   when	the passed data	is noncontiguous.

       -fshort-enums
	   This	 option	 is provided for interoperability with C code that was
	   compiled with the  -fshort-enums  option.   It  makes  GNU  Fortran
	   choose  the smallest	"INTEGER" kind a given enumerator set fits in,
	   and give all	its enumerators	this kind.

       -finline-arg-packing
	   When	passing	an assumed-shape argument of  a	 procedure  as	actual
	   argument  to	 an  assumed-size or explicit size or as argument to a
	   procedure that does not have	an explicit  interface,	 the  argument
	   may	have  to  be  packed;  that is,	put into contiguous memory. An
	   example is the call to "foo"	in

		     subroutine	foo(a)
			real, dimension(*) :: a
		     end subroutine foo
		     subroutine	bar(b)
			real, dimension(:) :: b
			call foo(b)
		     end subroutine bar

	   When	-finline-arg-packing is	in effect, this	packing	 is  performed
	   by  inline code. This allows	for more optimization while increasing
	   code	size.

	   -finline-arg-packing	is implied by any of  the  -O  options	except
	   when	 optimizing  for  size	via  -Os.  If the code contains	a very
	   large number	of argument that have to be packed, code size and also
	   compilation time may	become excessive.  If that is the case,	it may
	   be better to	disable	this option.   Instances  of  packing  can  be
	   found by using -Warray-temporaries.

       -fexternal-blas
	   This	 option	 makes	gfortran  generate calls to BLAS functions for
	   some	matrix operations like "MATMUL",  instead  of  using  our  own
	   algorithms,	if  the	size of	the matrices involved is larger	than a
	   given limit (see -fblas-matmul-limit).  This	may be	profitable  if
	   an  optimized  vendor  BLAS library is available.  The BLAS library
	   has to be specified at link time.

       -fblas-matmul-limit=n
	   Only	 significant  when  -fexternal-blas  is	 in  effect.	Matrix
	   multiplication of matrices with size	larger than (or	equal to) n is
	   performed  by  calls	to BLAS	functions, while others	are handled by
	   gfortran internal algorithms. If  the  matrices  involved  are  not
	   square,  the	 size comparison is performed using the	geometric mean
	   of the dimensions of	the argument and result	matrices.

	   The default value for n is 30.

       -finline-intrinsics
       -finline-intrinsics=intr1,intr2,...
	   Prefer generating inline code over calls to	libgfortran  functions
	   to implement	intrinsics.

	   Usage  of intrinsics	can be implemented either by generating	a call
	   to the libgfortran  library	function  or  by  directly  generating
	   inline  code.   For	most  intrinsics,  only	 a  single  variant is
	   available, and there	is no choice of	implementation.	 However, some
	   intrinsics can use a	library	function or inline code, where	inline
	   code	 typically  offers  opportunities  for additional optimization
	   over	 a  library  function.	 With	"-finline-intrinsics=..."   or
	   "-fno-inline-intrinsics=...",   the	choice	applies	 only  to  the
	   intrinsics  present	in  the	 comma-separated  list	 provided   as
	   argument.

	   For each intrinsic, if no choice of implementation was made through
	   either of the flag variants,	a default behavior is chosen depending
	   on optimization: library calls are generated	when not optimizing or
	   when	optimizing for size; otherwise inline code is preferred.

	   The set of intrinsics allowed as argument to	"-finline-intrinsics="
	   is  currently  limited to "MAXLOC" and "MINLOC".  The effect	of the
	   flag	is moreover limited to calls of	those intrinsics without "DIM"
	   argument and	with "ARRAY" of	a non-"CHARACTER" type.	 The  case  of
	   rank-1     argument	  and	 "DIM"	  argument    present,	  i.e.
	   "MAXLOC(A(:),DIM=1)"	   or	 "MINLOC(A(:),DIM=1)"	 is    inlined
	   unconditionally for numeric rank-1 array argument "A".

       -finline-matmul-limit=n
	   When	 front-end  optimization is active, some calls to the "MATMUL"
	   intrinsic function are inlined.   This  may	result	in  code  size
	   increase  if	the size of the	matrix cannot be determined at compile
	   time,   as	code   for   both   cases   is	 generated.    Setting
	   "-finline-matmul-limit=0"  disables inlining	in all cases.  Setting
	   this	option with a value of n produces  inline  code	 for  matrices
	   with	 size  up  to  n. If the matrices involved are not square, the
	   size	comparison is  performed  using	 the  geometric	 mean  of  the
	   dimensions of the argument and result matrices.

	   The	default	 value	for n is 30.  The "-fblas-matmul-limit"	can be
	   used	to change this value.

       -frecursive
	   Allow  indirect  recursion  by  forcing  all	 local	arrays	to  be
	   allocated  on  the  stack.  This  flag cannot be used together with
	   -fmax-stack-var-size= or -fno-automatic.

       -finit-local-zero
       -finit-derived
       -finit-integer=n
       -finit-real=<zero|inf|-inf|nan|snan>
       -finit-logical=<true|false>
       -finit-character=n
	   The -finit-local-zero option	instructs the compiler	to  initialize
	   local "INTEGER", "REAL", and	"COMPLEX" variables to zero, "LOGICAL"
	   variables  to  false, and "CHARACTER" variables to a	string of null
	   bytes.  Finer-grained initialization	options	are  provided  by  the
	   -finit-integer=n,  -finit-real=<zero|inf|-inf|nan|snan> (which also
	   initializes	the  real  and	imaginary  parts  of  local  "COMPLEX"
	   variables),	 -finit-logical=<true|false>,  and  -finit-character=n
	   (where n is an ASCII	character value) options.

	   With	-finit-derived,	 components  of	 derived  type	variables  are
	   initialized according to these flags.  Components whose type	is not
	   covered by an explicit -finit-* flag	are treated as described above
	   with	-finit-local-zero.

	   These options do not	initialize

	   *   objects with the	"POINTER" attribute

	   *   allocatable arrays

	   *   variables that appear in	an "EQUIVALENCE" statement.

	   (These limitations may be removed in	future releases).

	   Note	  that	the  -finit-real=nan  option  initializes  "REAL"  and
	   "COMPLEX" variables with a quiet NaN.  For  a  signalling  NaN  use
	   -finit-real=snan;  note,  however,  that compile-time optimizations
	   may convert them into quiet NaN  and	 that  trapping	 needs	to  be
	   enabled (e.g. via -ffpe-trap).

	   The	-finit-integer option parses the value into an integer of type
	   "INTEGER(kind=C_LONG)" on the host.	Said value is then assigned to
	   the integer variables in the	Fortran	code, which  might  result  in
	   wraparound if the value is too large	for the	kind.

	   Finally,  note  that	 enabling any of the -finit-* options silences
	   warnings that would have been emitted by  -Wuninitialized  for  the
	   affected local variables.

       -falign-commons
	   By  default,	gfortran enforces proper alignment of all variables in
	   a "COMMON" block by padding them as needed.	On  certain  platforms
	   this	 is  mandatory,	 on  others  it	 increases  performance.  If a
	   "COMMON"  block  is	not  declared  with  consistent	  data	 types
	   everywhere,	this padding can cause trouble,	and -fno-align-commons
	   can be used to disable automatic alignment. The same	form  of  this
	   option  should  be  used for	all files that share a "COMMON"	block.
	   To avoid potential alignment	 issues	 in  "COMMON"  blocks,	it  is
	   recommended to order	objects	from largest to	smallest.

       -fno-protect-parens
	   By  default	the  parentheses  in  expression  are  honored for all
	   optimization	 levels	 such  that  the  compiler  does  not  do  any
	   reassociation.  Using  -fno-protect-parens  allows  the compiler to
	   reorder "REAL" and "COMPLEX"	expressions to	produce	 faster	 code.
	   Note	 that for the reassociation optimization -fno-signed-zeros and
	   -fno-trapping-math need to be in effect. The	parentheses protection
	   is enabled by default, unless -Ofast	is given.

       -frealloc-lhs
	   An  allocatable  left-hand  side  of	 an  intrinsic	assignment  is
	   automatically  (re)allocated	 if  it	is either unallocated or has a
	   different shape. The	option	is  enabled  by	 default  except  when
	   -std=f95 is given. See also -Wrealloc-lhs.

       -faggressive-function-elimination
	   Functions  with  identical  argument	 lists	are  eliminated	within
	   statements, regardless of whether these functions are marked	"PURE"
	   or not. For example,	in

		     a = f(b,c)	+ f(b,c)

	   there is only a single call to "f".	 This  option  only  works  if
	   -ffrontend-optimize is in effect.

       -ffrontend-optimize
	   This	 option	performs front-end optimization, based on manipulating
	   parts of the	Fortran	parse tree.  Enabled  by  default  by  any  -O
	   option  except  -O0	and -Og.  Optimizations	enabled	by this	option
	   include:

	   *<inlining calls to "MATMUL",>
	   *<elimination of identical function calls within expressions,>
	   *<removing unnecessary calls	to "TRIM" in comparisons and
	   assignments,>
	   *<replacing TRIM(a) with "a(1:LEN_TRIM(a))" and>
	   *<short-circuiting of logical operators (".AND." and	".OR.").>

	   It can be deselected	by specifying -fno-frontend-optimize.

       -ffrontend-loop-interchange
	   Attempt to  interchange  loops  in  the  Fortran  front  end	 where
	   profitable.	 Enabled  by default by	any -O option.	At the moment,
	   this	option only affects "FORALL" and  "DO  CONCURRENT"  statements
	   with	several	forall triplets.

ENVIRONMENT
       The  gfortran  compiler	currently does not make	use of any environment
       variables to control its	operation above	and beyond those  that	affect
       the operation of	gcc.

BUGS
       For instructions	on reporting bugs, see <https://gcc.gnu.org/bugs/>.

SEE ALSO
       gpl(7), gfdl(7),	fsf-funding(7),	cpp(1),	gcov(1), gcc(1), as(1),	ld(1),
       gdb(1),	dbx(1)	and  the  Info entries for gcc,	cpp, gfortran, as, ld,
       binutils	and gdb.

AUTHOR
       See the Info entry  for	gfortran  for  contributors  to	 GCC  and  GNU
       Fortran.

COPYRIGHT
       Copyright (c) 2004-2025 Free Software Foundation, Inc.

       Permission  is  granted to copy,	distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version  1.3  or
       any  later  version published by	the Free Software Foundation; with the
       Invariant Sections being	"Funding Free Software", the Front-Cover Texts
       being (a) (see below), and with the Back-Cover  Texts  being  (b)  (see
       below).	A copy of the license is included in the gfdl(7) man page.

       (a) The FSF's Front-Cover Text is:

	    A GNU Manual

       (b) The FSF's Back-Cover	Text is:

	    You	have freedom to	copy and modify	this GNU Manual, like GNU
	    software.  Copies published	by the Free Software Foundation	raise
	    funds for GNU development.

gcc-15.0.1			  2025-03-30			   GFORTRAN(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gfortran15&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help