英语法语德语意大利语葡萄牙语俄语西班牙语

OnWorks 网站图标

mips64el-linux-gnuabi64-gfortran-5 - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 mips64el-linux-gnuabi64-gfortran-5

这是命令 mips64el-linux-gnuabi64-gfortran-5 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

名称


gfortran - GNU Fortran 编译器

概要


gfortran [-c|-S|-E]
[-g[-pg[-O水平]
[-W警告...] [-迂腐]
[-IDIR...] [-LDIR...]
[-D[=定义]...] [-U]
[-f选项...]
[-m机器选项...]
[-o 输出文件] 入档...

这里只列出最有用的选项; 其余部分见下文。

商品描述


gfortran 命令支持所有支持的选项 GCC 命令。 只有选项
此处记录了特定于 GNU Fortran 的内容。

所有 GCC 和 GNU Fortran 选项都被接受 gfortran 并通过 GCC (以及任何
同时构建的其他驱动程序,例如 克++),因为将 GNU Fortran 添加到 GCC
发行版允许所有相关驱动程序接受 GNU Fortran 选项。

在某些情况下,期权有正面和负面的形式; 的否定形式 -ffoo
be -fno-foo. 本手册仅记录了这两种形式中的一种,以不属于
默认。

配置


以下是所有特定于 GNU Fortran 的选项的摘要,按类型分组。
解释在以下部分。

Fortran语言 选择语言 附加选项
-fall-intrinsics -f 反斜杠 -fcray 指针 -fd 行即代码 -fd-lines-as-comments
-fdefault-double-8 -fdefault-整数-8 -fdefault-real-8 -fdollar-ok
-固定线长-n -固定线长度-无 -f自由格式 -ffree-line-length-n
-ffree-line-length-none -fimplicit-无 -finteger-4-integer-8 -fmax-标识符-长度
-fmodule-private -固定形式 -fno-范围检查 -fopenacc -fopenmp -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

前处理 附加选项
-一种-[=回答] -A=回答 -C -CC -D[=定义] -H -P -U -cpp -dD
-dI -dM -dN -dU -fworking-目录 -imultilib DIR -前缀 文件 -我引用 -isysroot DIR
-isystem DIR -nocpp -nostdinc -undef

误差 警告 附加选项
-Waliasing -墙 -黄蜂沙 -数组边界 -Wc 绑定类型 -Wcharacter-截断
-W转换 -W功能消除 - 隐式接口 - 隐式程序
-Wintrinsic-阴影 -Wuse-没有-只有 -Wintrinsics-标准 -Wline-截断
-Wno-align-commons -Wno-tabs -Wreal-q-常数 -令人惊讶 -Wunderflow
-Wunused-参数 -Wrealloc-lhs -Wrealloc-lhs-all -Wtarget-生命周期 -fmax-错误=n
-fsyntax-only -迂腐 -迂腐的错误

调试 附加选项
-fbacktrace -fdump-fortran 优化 -fdump-fortran-原始 -fdump-解析树
-ffpe陷阱=名单 -ffpe-摘要=名单

目录 附加选项
-IDIR -JDIR -fintrinsic 模块路径 DIR

链接 附加选项
-static-libgfortran

运行时 附加选项
-fconvert=转变 -fmax-子记录长度=长度 -frecord 标记=长度 -fsign-零

代码 附加选项
- 积极的功能消除 -fblas-matmul-limit=n -fbounds-检查
-fcheck-array-temporaries -fcheck=
-fcoarray= -fexternal-blas -ff2c -ffrontend-优化
-finit-字符=n -finit-整数=n -finit-本地-零 -finit-逻辑=
-有限实数= -fmax-array-constructor=n -fmax-stack-var-size=n
-fno-align-commons -fno-自动 -fno-protect-parens -fno-下划线
-fsecond-下划线 -fpack 派生的 -frealloc-lhs -递归 -frepack-arrays
-fshort-枚举 -fstack-arrays

附加选项 控制 Fortran语言 方言
以下选项控制编译器接受的 Fortran 方言的详细信息:

-f自由格式
-固定形式
指定源文件使用的布局。 自由格式布局是在
Fortran 90。固定格式传统上用于较旧的 Fortran 程序。 什么时候
两个选项都没有指定,源格式由文件扩展名决定。

-fall-intrinsics
此选项导致所有内在过程(包括 GNU 特定的扩展)
被接受。 这对 -std=f95 强制遵守标准,但得到
访问所有可用的内在函数 gfortran。 作为结果,
-Wintrinsics-标准 将被忽略,并且没有同名的用户定义过程
除非明确声明为“EXTERNAL”,否则将调用任何内在函数。

-fd 行即代码
-fd-lines-as-comments
对固定格式源中以“d”或“D”开头的行启用特殊处理。
如果 -fd 行即代码 给定选项,它们被视为第一列
包含一个空白。 如果 -fd-lines-as-comments 给出了选项,它们被视为
注释行。

-fdollar-ok
$ 作为符号名称中的有效非第一个字符。 开头的符号 $ ,那恭喜你,
被拒绝,因为不清楚哪些规则适用于不同的隐式类型
供应商执行不同的规则。 使用 $ 在“IMPLICIT”语句中也被拒绝。

-f 反斜杠
从单个反斜杠更改字符串文字中反斜杠的解释
字符到“C 风格”转义字符。 以下组合展开
“\a”、“\b”、“\f”、“\n”、“\r”、“\t”、“\v”、“\\”和“\0”到 ASCII 字符
警报、退格、换页、换行、回车、水平制表符、垂直制表符、
分别为反斜杠和 NUL。 此外,“\x”nn, "\u" 和你”恩恩恩恩
(其中每个 n 是一个十六进制数字)被翻译成 Unicode 字符
对应于指定的代码点。 一个字符的所有其他组合
\ 前面是未扩展的。

-fmodule-private
将模块实体的默认可访问性设置为“PRIVATE”。 使用相关
除非明确声明为“PUBLIC”,否则实体将无法访问。

-固定线长-n
设置在典型固定格式行中忽略字符后的列
源文件,并在之后假定空格(就像填充到该长度一样)
固定形式的短线的末端。

流行的价值观 n 包括 72(标准和默认)、80(卡片图像)和
132(对应于一些流行编译器中的“扩展源”选项)。 n 五月
也是 没有,这意味着整行都是有意义的,并且继续字符
常量从不附加隐式空格来填充行。
-固定线长度-0 与...具有相同的含义 -固定线长度-无.

-ffree-line-length-n
设置在源代码中典型的自由格式行中忽略字符的列
文件。 默认值为 132。 n 也许 没有,这意味着整行是
有意义的。 -ffree-line-length-0 与...具有相同的含义 -ffree-line-length-none.

-fmax-标识符-长度=n
指定允许的最大标识符长度。 典型值为 31 (Fortran 95) 和
63(Fortran 2003 和 Fortran 2008)。

-fimplicit-无
指定不允许隐式类型,除非被显式“IMPLICIT”覆盖
声明。 这相当于在每个开头添加“隐式无”
的程序。

-fcray 指针
启用 Cray 指针扩展,它提供类似 C 的指针功能。

-fopenacc
启用 OpenACC 扩展。 这包括自由形式的 OpenACC "!$acc" 指令
和"c$acc"、*$acc 和"!$acc" 固定形式的指令,"!$" 条件编译
自由形式的哨兵和固定形式的 "c$"、"*$" 和 "!$" 哨兵,以及当
链接安排要链接的 OpenACC 运行时库。

请注意,这是一个实验性功能,不完整,将来可能会发生变化
GCC 的版本。 看https://gcc.gnu.org/wiki/OpenACC>有关更多信息。

-fopenmp
启用 OpenMP 扩展。 这包括自由形式的 OpenMP "!$omp" 指令
和固定形式的“c$omp”、*$omp 和“!$omp”指令,“!$”条件编译
自由形式的哨兵和固定形式的 "c$"、"*$" 和 "!$" 哨兵,以及当
链接安排要链接的 OpenMP 运行时库。选项 -fopenmp
暗示 -递归.

-fno-范围检查
禁用对常量表达式简化结果的范围检查
汇编。 例如,GNU Fortran 会在编译时给出错误,当
简化“a = 1./0”。 使用此选项,不会出现错误,并且会显示“a”
分配值“+Infinity”。 如果表达式的计算结果超出了
["-HUGE()":"HUGE()"] 的相关范围,则表达式将替换为 "-Inf"
或“+Inf”(视情况而定)。 同样,“DATA i/Z'FFFFFFFF'/”将产生一个整数
在大多数系统上溢出,但与 -fno-范围检查 该值将“环绕”并且
“i”将被初始化为 -1。

-fdefault-整数-8
将默认整数和逻辑类型设置为 8 字节宽的类型。 这个选项也
影响整数常量的种类,如 42。不像 -finteger-4-integer-8,它确实
不使用显式类型声明来提升变量。

-fdefault-real-8
将默认真实类型设置为 8 字节宽的类型。 此选项也会影响
像 1.0 这样的非双实常数,并且确实提升了“DOUBLE”的默认宽度
如果可能,PRECISION”到 16 个字节,除非也给出了“-fdefault-double-8”。不像
-freal-4-real-8,它不会提升具有显式种类声明的变量。

-fdefault-double-8
将“DOUBLE PRECISION”类型设置为 8 字节宽的类型。 如果这已经是什么也不做
默认值。 如果 -fdefault-real-8 给出,“双精度”将改为
如果可能,提升到 16 个字节,并且 -fdefault-double-8 可以用来防止这种情况。
像“1.d0”这样的实常数不会被改变 -fdefault-real-8 虽然,
所以也 -fdefault-double-8 不影响它。

-finteger-4-integer-8
将所有“INTEGER(KIND=4)”实体提升为“INTEGER(KIND=8)”实体。 如果“种类=8”
不可用,然后将发出错误。 应谨慎使用此选项
并且可能不适合您的代码。 可能引起关注的领域包括致电
外部过程,在“等效”和/或“通用”中对齐,通用接口,
BOZ 字面常量转换和 I/O。 中间体检验
翻译后的 Fortran 代码的表示,由 -fdump-tree-原始,是
提出了建议。

-freal-4-real-8
-freal-4-real-10
-freal-4-real-16
-freal-8-real-4
-freal-8-real-10
-freal-8-real-16
将所有“REAL(KIND=M)”实体提升为“REAL(KIND=N)”实体。 如果 "REAL(KIND=N)" 是
不可用,然后将发出错误。 所有其他真实类型不受影响
通过这个选项。 这些选项应谨慎使用,可能不适合
你的代码。 可能需要关注的领域包括调用外部程序、对齐
在“等效”和/或“通用”中,通用接口,BOZ 文字常量转换,
和输入/输出。 检查已翻译 Fortran 的中间表示
代码,由 -fdump-tree-原始, 建议。

-标准=STD
指定程序预期符合的标准,可能是以下标准之一
f95, f2003, f2008, GNU遗产. 默认值为 STD is GNU, 指定
Fortran 95 标准的超集,包括所有支持的扩展
GNU Fortran,尽管会针对不推荐的过时扩展给出警告
用于新代码。 这 遗产 值是等效的,但没有警告
过时的扩展,可能对旧的非标准程序有用。 这 f95, f2003
f2008 值指定严格遵守 Fortran 95、Fortran 2003 和
Fortran 2008 标准,分别; 对于超出的所有扩展都给出了错误
相关语言标准,并针对 Fortran 77 功能给出警告
允许但在以后的标准中已过时。 -std=f2008ts 允许 Fortran 2008
标准,包括对进一步的技术规范 (TS) 29113 的补充
Fortran 与 C 和 TS 18508 在附加并行功能上的互操作性
复式。

启用 定制 预处理
预处理器相关选项。 见部分 前处理 有条件 汇编 提供
关于预处理的更多详细信息 gfortran.

-cpp
-nocpp
启用预处理。 如果文件扩展名
is .fpp, .FPP, .F, 。为了, .FTN, .F90, .F95, .F03 or .F08. 使用此选项手动
启用任何类型的 Fortran 文件的预处理。

要禁用对具有上述任何扩展名的文件进行预处理,请使用
否定形式: -nocpp.

预处理器以传统模式运行。 文件格式的任何限制,
尤其是行长的限制,也适用于预处理输出,所以它
可能建议使用 -ffree-line-length-none or -固定线长度-无
选项​​。

-dM 代替正常的输出,生成一个“#define”指令列表,用于所有
在预处理器执行期间定义的宏,包括预定义的宏。
这使您可以找出在您的版本中预定义的内容
预处理器。 假设你没有文件 foo.f90, 命令

触摸 foo.f90; gfortran -cpp -E -dM foo.f90

将显示所有预定义的宏。

-dD 喜欢 -dM 除了两个方面:它不包括预定义的宏,它
输出“#define”指令和预处理结果。 两种
输出到标准输出文件。

-dN 喜欢 -dD,但只发出宏名称,而不是它们的扩展。

-dU 喜欢 dD 除了只有被扩展的宏,或者其定义性在
预处理器指令,是输出; 输出被延迟,直到使用或测试
宏; 和 '#undef' 指令也输出用于测试但未定义的宏
时间。

-dI 除了预处理的结果外,还输出“#include”指令。

-fworking-目录
在预处理器输出中启用行标记的生成,这将使编译器
在预处理时知道当前的工作目录。 当这个选项是
启用,预处理器将在初始行标记之后发出第二个行标记
当前工作目录后跟两个斜杠。 GCC 将使用这个
目录,当它存在于预处理输入中时,作为发出的目录
某些调试信息格式的当前工作目录。 这个选项是
如果启用调试信息,则隐式启用,但这可以通过
否定形式 -fno-工作目录。 如果 -P 标志存在于命令中
行,此选项无效,因为不会发出任何“#line”指令。

-irafter DIR
搜索 DIR 对于包含文件,但在指定的所有目录之后执行 -I
标准系统目录已用尽。 DIR 被视为一个系统
包括目录。 如果 dir 以“=”开头,则“=”将被替换为
sysroot 前缀; 看 --sysroot-isysroot.

-imultilib DIR
使用方法 DIR 作为包含特定于目标的 C++ 头文件的目录的子目录。

-前缀 字首
指定 字首 作为后续的前缀 -i 带前缀 选项。 如果 字首
代表一个目录,你应该包括最后的'/'。

-isysroot DIR
这个选项就像 --sysroot 选项,但仅适用于头文件。 见
--sysroot 选项以获取更多信息。

-我引用 DIR
搜索 DIR 仅适用于使用 "#include "file"" 请求的头文件; 他们不是
搜索“#include ", 在指定的所有目录之前 -I 在之前
标准系统目录。 如果 DIR 以“=”开头,那么“=”将被替换为
sysroot 前缀; 看 --sysroot-isysroot.

-isystem DIR
搜索 DIR 对于头文件,在指定的所有目录之后 -I 但在此之前
标准系统目录。 将其标记为系统目录,以便获得相同的
应用于标准系统目录的特殊处理。 如果 DIR 开始于
"=",那么 "=" 将被 sysroot 前缀替换; 看 --sysroot-isysroot.

-nostdinc
不要在标准系统目录中搜索头文件。 只有目录
您已指定 -I 选项(和当前文件的目录,如果
适当)进行搜索。

-undef
不要预定义任何特定于系统或特定于 GCC 的宏。 标准预定义
宏保持定义。

-A谓词=回答
使用谓词进行断言 谓词 并回答 回答. 这个表格是
首选旧形式 -A 谓词(答案),它仍然受支持,因为它
不使用外壳特殊字符。

-一种-谓词=回答
用谓词取消断言 谓词 并回答 回答.

-C 不要丢弃评论。 所有注释都传递到输出文件,除了
对于已处理指令中的注释,这些注释与指令一起被删除。

使用时应做好副作用的准备 -C; 它导致预处理器
将评论视为其本身的标记。 例如,评论出现在
将是指令行的开始具有将该行变成
普通的源代码行,因为该行的第一个标记不再是“#”。

警告:这当前仅处理 C 样式注释。 预处理器还没有
识别 Fortran 风格的注释。

-CC 不要丢弃注释,包括在宏扩展期间。 这就像 -C, 除
包含在宏中的注释也会传递到输出文件中
宏被展开。

除了副作用之外 -C 选项, -CC 选项导致所有 C++ 风格
要转换为 C 样式注释的宏中的注释。 这是为了防止以后
使用该宏无意中注释掉了源代码行的其余部分。
-CC option 通常用于支持 lint 注释。

警告:这当前仅处理 C 和 C++ 样式的注释。 预处理器
还不能识别 Fortran 风格的注释。

-D姓名
将名称预定义为宏,定义为 1。

-D姓名=定义
内容 定义 被标记和处理,就好像它们出现在
'#define' 指令中的第三阶段翻译。 特别是,该定义将
被嵌入的换行符截断。

如果您从 shell 或类 shell 程序调用预处理器,您可能需要
使用 shell 的引用语法来保护字符,例如具有
shell 语法中的意思。

如果你想在命令行上定义一个类似函数的宏,写下它的参数
在等号(如果有)前用括号括起来的列表。 括号是
对大多数 shell 有意义,因此您需要引用该选项。 使用 sh 和 csh,
“-D'name(args...)=definition'”有效。

-D-U 选项按照它们在命令行中给出的顺序进行处理。 全部
-imacros 文件和 -include 文件选项在所有 -D 和 -U 选项之后处理。

-H 除了其他正常活动之外,打印所使用的每个头文件的名称。 每个
name 缩进以显示它在“#include”堆栈中的深度。

-P 禁止在预处理器的输出中生成线标记。 这可能是
在非 C 代码上运行预处理器时很有用,并且将被发送
到可能被行标记混淆的程序。

-U姓名
取消任何以前的定义 姓名,无论是内置的还是提供了一个 -D 选项。

附加选项 请求 or 压制 错误 警告
错误是报告 GNU Fortran 编译器无法编译的诊断消息
相关的源代码。 编译器将继续处理程序
尝试报告更多错误以帮助调试,但不会产生任何已编译的
输出。

警告是报告结构的诊断消息,这些结构不是固有的
错误但有风险或暗示程序中可能存在错误。
除非 -错误 指定,它们不会阻止程序的编译。

您可以请求许多具有以下选项的特定警告 -W, 例如 - 隐含的
请求对隐式声明发出警告。 这些特定警告选项中的每一个也
有一个否定形式开头 -没有- 关闭警告; 例如, -Wno-隐式.
本手册仅列出了两种形式中的一种,以非默认形式为准。

这些选项控制 GNU Fortran 产生的错误和警告的数量和种类:

-fmax-错误=n
将错误消息的最大数量限制为 n,此时 GNU Fortran 退出
而不是尝试继续处理源代码。 如果 n 是 0,没有
限制产生的错误消息的数量。

-fsyntax-only
检查代码是否存在语法错误,但不要实际编译它。 这将产生
代码中存在的每个模块的模块文件,但没有其他输出文件。

-迂腐
使用 Fortran 95 的扩展发出警告。 -迂腐 也适用于
C 语言结构出现在 GNU Fortran 源文件中,例如使用 \e
在像“#include”这样的指令中的字符常量中。

有效的 Fortran 95 程序应该使用或不使用此选项正确编译。
但是,如果没有这个选项,某些 GNU 扩展和传统的 Fortran 功能
也支持。 有了这个选项,他们中的许多人都被拒绝了。

一些用户尝试使用 -迂腐 检查程序的一致性。 他们很快发现
它没有完全按照他们的意愿去做——它发现了一些非标准的做法,但是
不是全部。 但是,欢迎在这方面对 GNU Fortran 进行改进。

这应该与 -std=f95, -std=f2003 or -std=f2008.

-迂腐的错误
喜欢 -迂腐,除了会产生错误而不是警告。

-墙
启用与我们建议避免的使用相关的常用警告选项
并且我们认为很容易避免。 这目前包括 -Waliasing,
-黄蜂沙, -W转换, -令人惊讶, -Wc 绑定类型, -Wintrinsics-标准,
-Wno-tabs, -Wintrinsic-阴影, -Wline-截断, -Wtarget-生命周期, -Wreal-q-常数
-未使用.

-Waliasing
警告虚拟参数可能的别名。 具体来说,它警告如果相同
实际参数与带有“INTENT(IN)”的虚拟参数和一个虚拟参数相关联
带有显式接口的调用中带有“INTENT(OUT)”的参数。

以下示例将触发警告。

接口
子程序 bar(a,b)
整数,意图(输入):: a
整数,意图(输出):: b
结束子程序
终端接口
整数 :: a

调用条(a,a)

-黄蜂沙
警告在连续字符常量中缺少&符号。 发出警告
-黄蜂沙, -迂腐, -std=f95, -std=f2003-std=f2008. 注:无
&符号在连续字符常量中给出,GNU Fortran 假定在连续
启动“与”号之后的第一个非注释、非空白字符
延续。

-Warray-临时
警告编译器生成的临时数组。 生成的信息
此警告有时在优化中很有用,以避免出现此类临时情况。

-Wc 绑定类型
如果 a 变量可能无法与 C 互操作,则发出警告。 特别是,警告如果
变量已使用具有默认类型的内部类型声明,而不是使用
为内在“ISO_C_Binding”中的 C 互操作性定义的种类参数
模块。 此选项隐含在 -墙.

-Wcharacter-截断
当字符分配将截断分配的字符串时发出警告。

-Wline-截断
当源代码行被截断时发出警告。 此选项隐含在 -墙。 对于
自由格式的源代码,默认为 -Werror=行截断 这样截断
被报告为错误。

-W转换
警告可能会更改表达式值的隐式转换
转换后。 暗示的 -墙.

-Wconversion-extra
警告不同类型和种类之间的隐式转换。 这个选项做
没有 意味着 -W转换.

-Wextra
为可能有问题的语言功能的使用启用一些警告选项。
目前包括 -W比较实数-Wunused-参数.

- 隐式接口
如果在没有显式接口的情况下调用过程,则发出警告。 注意这只检查
存在显式接口。 它不检查声明的接口
跨程序单元是一致的。

- 隐式程序
如果调用的过程既没有显式接口也没有显式接口,则发出警告
声明为“外部”。

-Wintrinsics-标准
警告如果 gfortran 找到一个类似于内部不可用的过程
当前选择的标准(与 -标准) 并将其视为“外部”程序,因为
这个的。 -fall-intrinsics 可用于从不触发此行为并始终链接
无论所选标准如何,都为内在的。

-Wreal-q-常数
如果实数常量包含“q”指数字母,则产生警告。

-令人惊讶
遇到“可疑”代码结构时产生警告。 尽管
从技术上讲,这些通常表明发生了错误。

目前,在以下情况下会产生警告:

* 一个 INTEGER SELECT 结构有一个 CASE 永远不能被匹配作为它的下级
值大于其上限值。

* LOGICAL SELECT 构造具有三个 CASE 语句。

* TRANSFER 指定比目的地短的源。

* 一个函数结果的类型被多次声明为相同的类型。 如果
-迂腐 或启用了符合标准的模式,这是一个错误。

* 一个“CHARACTER”变量被声明为负长度。

-Wtabs
默认情况下,制表符被接受为空格,但制表符不是 Fortran 的成员
字符集。 对于连续行,制表符后跟 1 到 9 之间的数字是
支持的。 -Wtabs 如果遇到选项卡,将导致发出警告。 笔记,
-Wtabs 活跃于 -迂腐, -std=f95, -std=f2003, -std=f2008, -std=f2008ts
-墙.

-Wunderflow
当遇到数值常量表达式时产生警告,这会产生一个
编译期间下溢。 默认启用。

-Wintrinsic-阴影
如果用户定义的过程或模块过程与
固有的; 在这种情况下,显式接口或“EXTERNAL”或“INTRINSIC”
可能需要声明才能稍后将调用解析为所需的
内在/程序。 此选项隐含在 -墙.

-Wuse-没有-只有
如果“USE”语句没有“ONLY”限定符并因此隐式导入所有
所用模块的公共实体。

-Wunused-dummy-argument
警告未使用的虚拟参数。 此选项隐含在 -墙.

-Wunused-参数
与之相反 GCC的意思 -Wunused-参数, gfortran的实现
选项不会警告未使用的虚拟参数(请参阅 -Wunused-dummy-argument),但
关于未使用的“参数”值。 -Wunused-参数 暗示了 -Wextra 如果还有
-未使用 or -墙 用来。

-Walign-commons
默认情况下, gfortran 警告任何为适当填充变量的场合
在“COMMON”块内对齐。 可以通过以下方式关闭此警告
-Wno-align-commons。 另请参见 -falign-commons.

-W功能消除
警告是否通过启用的优化消除了对函数的任何调用
-ffrontend-优化 选项。

-Wrealloc-lhs
当编译器可能插入代码以分配或重新分配一个
内在赋值中的内在类型的可分配数组变量。 在热循环中,
Fortran 2003 重新分配功能可能会降低性能。 如果数组是
已经分配了正确的形状,考虑使用全阵列阵列规格
(例如“(:,:,:)”)用于左侧的变量以防止重新分配
查看。 请注意,在某些情况下会显示警告,即使编译器将
优化重新分配检查。 例如,当右侧包含
同一个变量乘以一个标量。 也可以看看 -frealloc-lhs.

-Wrealloc-lhs-all
当编译器插入代码以分配或重新分配一个
可分配变量; 这包括标量和派生类型。

-W比较实数
在比较真实或复杂类型的相等或不等时发出警告。 这个选项是
由暗示 -Wextra.

-Wtarget-生命周期
如果指针赋值中的指针可能比其目标长,则发出警告。 这个
选项由 -墙.

-Wzerotrip
如果已知“DO”循环在编译时执行零次,则发出警告。 这个选项是
由暗示 -墙.

-错误
将所有警告变成错误。

其中一些在编译用 Fortran 编写的程序时不起作用。

附加选项 提供 调试 的课 程序 or GNU Fortran语言
GNU Fortran 有各种特殊选项,可用于调试您的程序或
GNU Fortran 编译器。

-fdump-fortran-原始
将源程序翻译成内部后输出内部解析树
表示。 仅对调试 GNU Fortran 编译器本身非常有用。

-fdump-fortran 优化
前端优化后输出解析树。 只对调试有用
GNU Fortran 编译器本身。

-fdump-解析树
将源程序翻译成内部后输出内部解析树
表示。 仅对调试 GNU Fortran 编译器本身非常有用。
此选项已弃用; 改用“-fdump-fortran-original”。

-ffpe陷阱=名单
指定要启用的浮点异常陷阱列表。 在大多数系统上,如果
发生浮点异常并启用该异常的陷阱,SIGFPE
信号将被发送,程序被中止,产生一个核心文件,用于
调试。 名单 是(可能是空的)逗号分隔的以下列表
例外情况: 无效 (无效的浮点运算,例如“SQRT(-1.0)”),
(被零除), 溢出 (浮点运算中的溢出), 下溢
(浮点运算中的下溢), 不准确 (期间精度损失
操作),以及 异常的 (对非正规值执行的操作)。 前五个
例外对应于五个 IEEE 754 例外,而最后一个 (异常的)
不是 IEEE 754 标准的一部分,但在一些常见架构上可用
比如x86。

前三个例外(无效, 溢出) 常表示严重
错误,除非程序有处理这些异常的规定,
为这三个异常启用陷阱可能是一个好主意。

许多(如果不是大多数)浮点运算会因舍入而导致精度损失,
因此,“ffpe-trap=inexact”在实践中可能是无趣的。

默认情况下,不启用任何异常陷阱。

-ffpe-摘要=名单
指定浮点异常列表,其标志状态打印到
调用“STOP”和“ERROR STOP”时的“ERROR_UNIT”。 名单 可以是 没有, 所有 或者
以下例外情况的逗号分隔列表: 无效, , 溢出, 下溢,
不准确异常的。 (见 -ffpe 陷阱 有关例外情况的说明。)

默认情况下,所有异常的摘要,但 不准确 显示。

-fno-回溯
当遇到严重的运行时错误或发出致命信号时
(分段错误、非法指令、总线错误、浮点异常和
其他具有动作的 POSIX 信号 核心),Fortran 运行时库尝试
输出错误的回溯。 “-fno-backtrace”禁用回溯生成。
该选项仅对 Fortran 主程序的编译有影响。

附加选项 提供 目录 搜索、
这些选项会影响 GNU Fortran 搜索“INCLUDE”指定的文件的方式
指令以及它搜索以前编译的模块的位置。

它还影响使用的搜索路径 CPP 用于预处理 Fortran 源代码时。

-IDIR
这些会影响“INCLUDE”指令(以及“#include”指令)的解释
的指令 CPP 预处理器)。

还要注意,一般行为 -I 并且“INCLUDE”几乎与
-I 带有“#include” CPP 预处理器,关于寻找 头文件.gcc
文件和其他类似的东西。

此路径也用于搜索 的.mod 以前编译的模块时的文件
“USE”语句所要求的。

-JDIR
此选项指定放置的位置 的.mod 编译模块的文件。 它也被添加
到要通过“USE”语句搜索的目录列表。

默认为当前目录。

-fintrinsic 模块路径 DIR
此选项指定预编译的内部模块的位置,如果它们不是
在编译器预期的默认位置。

影响 练习 链接
当编译器将目标文件链接到可执行文件时,这些选项就会发挥作用
输出文件。 如果编译器没有执行链接步骤,它们就毫无意义。

-static-libgfortran
在提供 libgfortran 作为共享和静态库,此选项
强制使用静态版本。 如果没有共享版本 libgfortran 被建
配置编译器时,此选项无效。

影响 运行 行为
这些选项会影响使用 GNU Fortran 编译的程序的运行时行为。

-fconvert=转变
指定无格式文件的数据表示。 转换的有效值
是: 本地人,默认; 交换,在大端和小端之间交换; 大端, 使用
未格式化文件的大端表示; 小尾数, 使用小端
未格式化文件的表示。

这本 选项 具有 an 效果 仅由 ,尤其是 用过的 in 练习 程序。 “兑换” 说明符
练习 GFORTRAN_CONVERT_UNIT 环境 变量 覆盖 练习 默认 指定 by
-f 转换.

-frecord 标记=长度
指定未格式化文件的记录标记长度。 有效值 长度
是 4 和 8。默认值为 4。 这本 is 不同 來自 以前 版本 of gfortran,
它在大多数系统上指定默认记录标记长度为 8。 如果你想
读取或写入与早期版本兼容的文件 gfortran, 使用
-frecord-marker=8.

-fmax-子记录长度=长度
指定子记录的最大长度。 长度的最大允许值为
2147483639,也是默认值。 仅对 gfortran 使用真正有用
测试套件。

-fsign-零
启用后,写入符号位设置为零的浮点数
作为格式化输出中的负数并在“SIGN”中视为负数
固有的。 -fno 符号零 不打印零值(或值
I/O 舍入为零)并将零视为“SIGN”内在函数中的正数
与 Fortran 77 兼容。默认为 -fsign-零.

附加选项 提供 公约
这些与机器无关的选项控制代码中使用的接口约定
一代。

它们中的大多数有正面和负面两种形式; 的否定形式 -ffoo
-fno-foo. 在下表中,只列出了其中一种形式——不属于
默认。 您可以通过删除来找出另一种形式 NO- 或添加它。

-fno-自动
将每个程序单元(标记为 RECURSIVE 的除外)视为“SAVE”语句
为其中引用的每个局部变量和数组指定。 不影响
常见的块。 (某些 Fortran 编译器在名称下提供此选项 -静态的 or
-节省.) 默认值,即 -f自动, 将堆栈用于更小的局部变量
比给出的值 -fmax-stack-var-size. 使用选项 -递归 不使用
静态记忆。

-ff2c
生成设计为与生成的代码兼容的代码 g77f2c.

使用的调用约定 g77 (最初在 f2c) 需要函数
返回类型默认为“REAL”以实际返回 C 类型“double”和函数
返回类型“COMPLEX”以通过调用中的额外参数返回值
指向存储返回值的位置的序列。 默认GNU下
调用约定,这些函数只是像在 GNU 中一样返回它们的结果
C---默认“REAL”函数返回C类型“float”,“COMPLEX”函数返回
GNU C 类型“复杂”。 此外,此选项意味着 -fsecond-下划线
选项,除非 -fno-秒下划线 明确要求。

这不会影响与 libgfortran
图书馆。

警告: 混合编译的 Fortran 代码不是一个好主意 -ff2c 与代码
使用默认编译 -fno-f2c 调用约定为,调用“COMPLEX”或
用不同的编译器编译的程序部分之间的默认“真实”函数
调用约定将在执行时中断。

警告: 这将破坏传递默认“REAL”类型的内在函数的代码
或“COMPLEX”作为实际参数,因为库实现使用 -fno-f2c
调用约定。

-fno-下划线
不要通过附加来转换 Fortran 源文件中指定的实体名称
给他们下划线。

-资助者评分 实际上,GNU Fortran 将一个下划线附加到外部名称
没有下划线。 这样做是为了确保与许多人生成的代码兼容
UNIX Fortran 编译器。

注意:本款口红非常柔软,涂抹时建议推出XNUMXmm 或XNUMXinch): GNU Fortran 的默认行为与 f2cg77
使用 -ff2c 如果您希望使用 GNU Fortran 编译的目标文件是
与使用这些工具创建的目标代码兼容。

用于 -fno-下划线 除非您正在尝试解决问题,否则不建议使用
例如将 GNU Fortran 集成到现有系统环境中(vis-a-vis
现有的库、工具等)。

例如, -资助者评分,并假设“j()”和“max_count()”是
外部函数,而“my_var”和“lvar”是局部变量,像这样的语句

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

被实现为类似于:

i = j_() + max_count__(&my_var__, &lvar);

-fno-下划线,同样的语句被实现为:

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

用于 -fno-下划线 允许直接指定用户定义的名称,而
调试以及将 GNU Fortran 代码与其他语言连接时。

请注意,仅仅因为名称匹配 没有 表示接口由
外部名称的 GNU Fortran 匹配其他一些实现的接口
同名的语言。 也就是说,让 GNU Fortran 生成的代码链接到
由其他编译器使用此方法或任何其他方法生成的代码只能是
整体解决方案的一小部分---让两个编译器生成的代码
就命名以外的问题达成一致可能需要付出巨大的努力,而且与命名不同
分歧,链接器通常无法检测到这些其他领域的分歧。

另外,请注意,与 -fno-下划线, 缺少附加下划线引入
用户定义的外部名称与名称冲突的可能性非常大
在系统库中,这可能会使查找未解决的引用错误相当
在某些情况下很难——它们可能发生在程序运行时,并且仅显示为
运行时的错误行为。

在 GNU Fortran 的未来版本中,我们希望改进命名和链接问题,以便
调试总是涉及使用在源代码中出现的名称,即使
链接器看到的名称被修改,以防止之间的意外链接
具有不兼容接口的程序。

-fsecond-下划线
默认情况下,GNU Fortran 会在外部名称后附加下划线。 如果这个选项是
使用的 GNU Fortran 将两个下划线附加到带有下划线的名称和一个下划线
到没有下划线的外部名称。 GNU Fortran 还附加了两个下划线
带有下划线的内部名称以避免与外部名称的命名冲突。

此选项在以下情况下无效 -fno-下划线 有效。 它暗示了
-ff2c 选项。

否则,使用此选项,诸如“MAX_COUNT”之类的外部名称将实现为
引用链接时外部符号“max_count__”,而不是“max_count_”。
这是与兼容所必需的 g77f2c,并通过使用
-ff2c 选项。

-fcoarray=
没有
禁用 coarray 支持; 使用 coarray 声明和图像控制语句
会产生编译时错误。 (默认)


单图像模式,即“num_images()”始终为一。

LIB 基于库的协阵列并行化; 一个合适的 GNU Fortran coarray 库
需要链接。

-fcheck=
启用运行时检查的生成; 参数应是逗号分隔的列表
以下关键字。

所有 启用所有运行时测试 -fcheck.

阵列临时
在运行时发出警告,当传递实际参数时必须使用临时数组
生成。 此警告生成的信息有时在以下方面很有用
优化,以避免这种临时性。

注意:警告仅在每个位置打印一次。

界限
启用对数组下标和声明的运行时检查的生成
最小值和最大值。 它还检查假定和延迟的数组索引
根据实际分配的边界形状数组并确保所有字符串
对于没有显式类型规范的字符数组构造函数,长度是相等的。

一些检查要求 -fcheck=边界 设置为编译主
程序。

注意:将来这可能还包括其他形式的检查,例如,检查
子串引用。

do 启用对循环迭代的无效修改生成运行时检查
变量。

成员 启用生成内存分配的运行时检查。 注意:此选项
不影响使用“ALLOCATE”语句的显式分配,这将是
总是检查。

指针
启用对指针和可分配项的运行时检查的生成。

递归
启用为递归调用的子程序生成运行时检查和
未标记为递归的函数。 也可以看看 -递归. 注意:这
check 不适用于 OpenMP 程序,如果与
-递归-fopenmp.

-fbounds-检查
已弃用的别名 -fcheck=边界.

-fcheck-array-temporaries
已弃用的别名 -fcheck=数组临时.

-fmax-array-constructor=n
此选项可用于增加数组构造函数中允许的上限。
下面的代码需要这个选项来在编译时扩展数组。

程序测试
隐式无
整数 j
整数,参数 :: n = 100000
整数,参数 :: i(n) = (/ (2*j, j = 1, n) /)
打印 '(10(I0,1X))', i
结束程序测试

警告: 这本 选项 能够 过度地 对象
文件。

的默认值 n 是65535。

-fmax-stack-var-size=n
此选项指定将放入的最大数组的大小(以字节为单位)
堆; 如果超出大小,则使用静态内存(标记为的过程除外)
递归)。 使用选项 -递归 允许递归过程
具有 RECURSIVE 属性或用于并行程序。 用 -fno-自动 从不使用
堆栈。

此选项目前仅影响使用常量边界声明的本地数组,并且可能
不适用于所有字符变量。 GNU Fortran 的未来版本可能会改进这一点
行为。

的默认值 n 是32768。

-fstack-arrays
添加此选项将使 Fortran 编译器放置所有本地数组,即使是那些
堆栈内存中的未知大小。 如果您的程序使用非常大的本地数组
可能您必须在某些情况下扩展堆栈内存的运行时限制
操作系统。 默认情况下在优化级别启用此标志 -Ofast.

-fpack 派生的
这个选项告诉 GNU Fortran 尽可能紧密地打包派生类型成员。
使用此选项编译的代码可能与不使用此选项编译的代码不兼容
此选项,并且可能执行得更慢。

-frepack-arrays
在某些情况下,GNU Fortran 可能会通过
描述非连续内存区域的描述符。 此选项将代码添加到
函数序言在运行时将数据重新打包到一个连续的块中。

这应该会导致对数组的更快访问。 然而它可以引入
函数调用的显着开销,尤其是当传递的数据是
不连续。

-fshort-枚举
提供此选项是为了与使用编译的 C 代码进行互操作
-fshort-枚举 选项。 它会让 GNU Fortran 选择最小的“INTEGER”类型
给定的枚举器集将适合,并为所有枚举器提供这种类型。

-fexternal-blas
此选项将使 gfortran 为某些矩阵生成对 BLAS 函数的调用
像“MATMUL”这样的操作,而不是使用我们自己的算法,如果
涉及的矩阵大于给定的限制(见 -fblas-matmul-limit)。 这可能是
如果优化的供应商 BLAS 库可用,则有利可图。 BLAS 库将
必须在链接时指定。

-fblas-matmul-limit=n
只有当 -fexternal-blas 有效。 矩阵的矩阵乘法
尺寸大于(或等于) n 将通过调用 BLAS 函数来执行,
而其他人将被处理 gfortran 内部算法。 如果涉及的矩阵
不是正方形,大小比较是使用几何平均值进行的
参数和结果矩阵的维度。

的默认值 n 是30。

-递归
通过强制在堆栈上分配所有本地数组来允许间接递归。
此标志不能与 -fmax-stack-var-size= or -fno-自动.

-finit-本地-零
-finit-整数=n
-有限实数=
-finit-逻辑=
-finit-字符=n
-finit-本地-零 选项指示编译器初始化本地“INTEGER”,
“REAL”和“COMPLEX”变量为零,“LOGICAL”变量为假,“CHARACTER”
变量转换为空字节字符串。 细粒度的初始化选项是
由...提供 -finit-整数=n, -有限实数= (这也
初始化局部“COMPLEX”变量的实部和虚部),
-finit-逻辑=-finit-字符=n (哪里 n 是一个 ASCII 字符
值)选项。 这些选项不初始化

* 可分配数组

* 派生类型变量的组成部分

* 出现在“等价”语句中的变量。

(这些限制可能会在未来的版本中删除)。

请注意 -finit-real=nan 选项初始化“REAL”和“COMPLEX”变量
安静的NaN。 对于信号 NaN 使用 -finit-real=snan; 但是请注意,编译时
优化可能会将它们转换为安静的 NaN 并且需要启用捕获
(例如通过 -ffpe 陷阱).

最后,请注意,启用任何 -finit-* 选项将使警告静音
会被发射 -Wun初始化 对于受影响的局部变量。

-falign-commons
默认情况下, gfortran 通过以下方式强制“COMMON”块中的所有变量正确对齐
根据需要填充它们。 在某些平台上这是强制性的,在其他平台上它会增加
表现。 如果未使用一致的数据类型声明“COMMON”块
在任何地方,这种填充都会引起麻烦,并且 -fno-align-commons 可用于
禁用自动对齐。 此选项的相同形式应用于所有文件
共享一个“COMMON”块。 为避免“COMMON”块中潜在的对齐问题,
建议将对象从大到小排序。

-fno-protect-parens
默认情况下,表达式中的括号适用于所有优化级别,例如
编译器不做任何重新关联。 使用 -fno-protect-parens 允许
编译器重新排序“REAL”和“COMPLEX”表达式以生成更快的代码。 注意
用于重新关联优化 -fno 有符号零-fno-trapping-math 需要
生效。 默认情况下启用括号保护,除非 -Ofast is
给定的。

-frealloc-lhs
内部赋值的可分配左侧是自动的
(re)allocated 如果它是未分配的或具有不同的形状。 选项是
默认情况下启用,除非 -std=f95 给出。 也可以看看 -Wrealloc-lhs.

- 积极的功能消除
具有相同参数列表的函数在语句中被消除,无论
这些功能是否标记为“PURE”。 例如,在

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

只会有一次对“f”的调用。 此选项仅适用于
-ffrontend-优化 有效。

-ffrontend-优化
此选项执行前端优化,基于操作 Fortran 部分
解析树。 任何默认启用 -O 选项。 由此启用的优化
选项包括消除表达式中相同的函数调用,删除
在比较和分配中不必要地调用“TRIM”并将 TRIM(a) 替换为
“a(1:LEN_TRIM(a))”。 可以通过指定取消选择 -fno-前端优化.

环境


gfortran 编译器目前不使用任何环境变量来控制
它的操作超出了影响操作的操作 GCC.

使用 onworks.net 服务在线使用 mips64el-linux-gnuabi64-gfortran-5


Ad


Ad

最新的 Linux 和 Windows 在线程序