JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.2:Fortran 用户指南
search filter icon
search icon

文档信息

前言

1.  简介

2.  使用 Solaris Studio Fortran

3.  Fortran 编译器选项

3.1 命令语法

3.2 选项语法

3.3 选项摘要

3.3.1 常用选项

3.3.2 宏标志

3.3.3 向后兼容性和传统选项

3.3.4 已过时的选项标志

3.4 选项参考

3.4.1 -aligncommon[={ 1|2|4|8| 16}]

3.4.2 -ansi

3.4.3 -arg=local

3.4.4 -autopar

3.4.5 -B{static| dynamic}

3.4.6 -C

3.4.7 -c

3.4.8 -copyargs

3.4.9 -Dname[ =def]

3.4.10 -dalign

3.4.11 -dbl_align_all[= {yes|no}]

3.4.12 -depend[={ yes|no}]

3.4.13 -dn

3.4.14 -dryrun

3.4.15 -d{ y|n}

3.4.16 -e

3.4.17 -erroff[={ %all|%none|taglist}]

3.4.18 -errtags[={ yes|no}]

3.4.19 -errwarn[={ %all|%none|taglist}]

3.4.20 -ext_names= e

3.4.21 -F

3.4.22 -f

3.4.23 -f77[= list]

3.4.24 -fast

3.4.25 -fixed

3.4.26 -flags

3.4.27 -fma={none| fused}

3.4.28 -fnonstd

3.4.29 -fns[ ={yes| no}]

3.4.30 -fpover[={ yes|no}]

3.4.31 -fpp

3.4.32 -fprecision={single |double|extended}

3.4.33 -free

3.4.34 -fround={nearest |tozero|negative| positive}

3.4.35 -fsimple[={ 1|2|0}]

3.4.36 -fstore

3.4.37 -ftrap= t

3.4.38 -G

3.4.39 -g

3.4.40 -hname

3.4.41 -help

3.4.42 -Ipath

3.4.43 -i8

3.4.44 -inline=[%auto][[ ,][no%]f1,...[ no%]fn]

3.4.45 -iorounding[={ compatible|processor-defined}]

3.4.46 -keeptmp

3.4.47 -Kpic

3.4.48 -KPIC

3.4.49 -Lpath

3.4.50 -lx

3.4.51 -libmil

3.4.52 -loopinfo

3.4.53 -Mpath

3.4.54 -m32 | -m64

3.4.55 -moddir= path

3.4.56 -mt[={ yes|no}]

3.4.57 -native

3.4.58 -noautopar

3.4.59 -nodepend

3.4.60 -nofstore

3.4.61 -nolib

3.4.62 -nolibmil

3.4.63 -noreduction

3.4.64 -norunpath

3.4.65 -O[n]

3.4.66 -O

3.4.67 -O1

3.4.68 -O2

3.4.69 -O3

3.4.70 -O4

3.4.71 -O5

3.4.72 -o name

3.4.73 -onetrip

3.4.74 -openmp

3.4.75 -p

3.4.76 -pad[= p]

3.4.77 -pg

3.4.78 -pic

3.4.79 -PIC

3.4.80 -Qoption pr ls

3.4.81 -qp

3.4.82 -R ls

3.4.83 -r8const

3.4.84 -recl=a[,b]

3.4.85 -reduction

3.4.86 -S

3.4.87 -s

3.4.88 -sb

3.4.89 -sbfast

3.4.90 -silent

3.4.91 -stackvar

3.4.92 -stop_status[={ yes|no}]

3.4.93 -temp=dir

3.4.94 -time

3.4.95 -traceback[={ %none|common|signals_list}]

3.4.96 -U

3.4.97 -Uname

3.4.98 -u

3.4.99 -unroll=n

3.4.100 -use= list

3.4.101 -V

3.4.102 -v

3.4.103 -vax=keywords

3.4.104 -vpara

3.4.105 -w[n]

3.4.106 -Xlist[ x]

3.4.107 -xaddr32[={ yes|no}]

3.4.108 -xalias[= keywords]

3.4.109 -xannotate[={ yes|no}]

3.4.110 -xarch=isa

3.4.110.1 x86/x64 平台的特别注意事项:

3.4.111 -xassume_control[ =keywords]

3.4.112 -xautopar

3.4.113 -xbinopt={prepare | off}

3.4.114 -xcache=c

3.4.115 -xcheck=keyword

3.4.116 -xchip=c

3.4.117 -xcode=keyword

3.4.117.1 与位置无关的代码:

3.4.118 -xcommonchk[={ yes|no}]

3.4.119 -xcrossfile[={ 1|0}]

3.4.120 -xdebugformat={dwarf |stabs}

3.4.121 -xdepend

3.4.122 -xF

3.4.123 -xfilebyteorder= options

3.4.123.1 示例:

3.4.123.2 注:

3.4.124 -xhasc[={ yes|no}]

3.4.125 -xhelp={readme| flags}

3.4.126 -xhwcprof[={enable | disable}]

3.4.127 -xia[={ widestneed|strict}]

3.4.128 -xinline= list

3.4.129 -xinstrument=[%no]datarace

3.4.130 -xinterval[={ widestneed|strict|no}]

3.4.131 -xipo[={ 0|1|2}]

3.4.132 -xipo_archive[={ none|readonly|writeback}]

3.4.133 -xivdep[= p]

3.4.134 -xjobs= n

3.4.135 -xkeepframe[=[ %all,%none,name,no% name]]

3.4.136 -xknown_lib=library_list

3.4.137 -xl

3.4.138 -xlang=f77

3.4.139 -xld

3.4.140 -xlibmil

3.4.141 -xlibmopt

3.4.142 -xlic_lib=sunperf

3.4.143 -xlicinfo

3.4.144 -xlinkopt[={ 1|2|0}]

3.4.145 -xloopinfo

3.4.146 -xmaxopt[= n]

3.4.147 -xmemalign[= <a><b>]

3.4.148 -xmodel=[small | kernel | medium]

3.4.149 -xnolib

3.4.150 -xnolibmil

3.4.151 -xnolibmopt

3.4.152 -xOn

3.4.153 -xopenmp[={ parallel|noopt|none}]

3.4.154 -xpad

3.4.155 -xpagesize= size

3.4.156 -xpagesize_heap= size

3.4.157 -xpagesize_stack= size

3.4.158 -xpec[={ yes|no}]

3.4.159 -xpg

3.4.160 -xpp={fpp| cpp}

3.4.161 -xprefetch[= a[,a]]

3.4.161.1 缺省:

3.4.161.2 交互:

3.4.161.3 警告:

3.4.162 -xprefetch_auto_type=indirect_array_access

3.4.163 -xprefetch_level={ 1|2|3}

3.4.164 -xprofile=p

3.4.165 -xprofile_ircache[ =path]

3.4.166 -xprofile_pathmap= collect_prefix:use_prefix

3.4.167 -xrecursive

3.4.168 -xreduction

3.4.169 -xregs= r

3.4.170 -xs

3.4.171 -xsafe=mem

3.4.172 -xsb

3.4.173 -xsbfast

3.4.174 -xspace

3.4.175 -xtarget=t

3.4.175.1 通用平台与本机平台

3.4.175.2 SPARC 平台

3.4.175.3 X86 平台

3.4.176 -xtime

3.4.177 -xtypemap= spec

3.4.178 -xunroll=n

3.4.179 -xvector[= [[ no%]lib, [no%] simd, %none] ]

3.4.180 -ztext

4.  Solaris Studio Fortran 的功能与差异

5.  FORTRAN 77 兼容性:迁移到 Solaris Studio Fortran

A.  运行时错误消息

B.  功能发行版历史记录

C.  Fortran 指令摘要

索引

3.3 选项摘要

在本节中,为了便于参考,将按功能对编译器选项进行分组。有关详细信息,请参见以下几节中相应页面上的内容。

请注意,并非所有选项在 SPARC 和 x64/x86 平台上都可用。有关可用性的说明,请查看详细的参考部分。

下表按功能汇总 f95 编译器选项。该表不包括已过时的和传统的选项标志。某些标志用于多个目的,因此出现多次。

表 3-3 按功能分组的编译器选项

功能
选项标志
编译模式:
仅编译;不生成可执行文件
-c
显示由驱动程序生成的命令,但不进行编译
-dryrun
支持 Fortran 77 扩展和兼容性
-f77
保留在编译期间所创建的临时文件。
-keeptmp
指定要将已编译的 .mod 模块文件写入的路径
-moddir=path
指定要编写的目标文件、库文件或可执行文件的名称
-o filename
进行编译并只生成汇编代码
-S
将符号表与可执行文件分离
-s
禁止编译器消息(错误消息除外)
-silent
定义临时文件所在目录的路径
-temp=path
显示每个编译阶段占用的时间
-time
显示编译器的版本号及其阶段
-V
冗余消息
-v
指定非标准别名情况
-xalias=list
使用多个处理器进行编译
-xjobs=n
已编译的代码:
对于外部名称,增加/删除尾随下划线
-ext_names=x
内联指定的用户函数
-inline=list
与编译位置无关的代码
-KPIC/-kpic
内联某些数学库例程
-libmil
STOP 将整数状态值返回给 shell
-stop_status[=yn]
指定代码地址空间
-xcode=x
启用预取指令。
-xprefetch[=x]
指定可选寄存器的使用
-xregs=x
指定缺省数据映射
-xtypemap=x
数据对齐:
指定对齐 COMMON 块中的数据
-aligncommon[=n]
强制对齐 COMMON 块数据以允许双字获取/存储
-dalign
强制所有数据按 8 字节边界对齐
-dbl_align_all
按 8 字节边界对齐 COMMON 块数据
-f
指定内存对齐和行为
-xmemalign[=ab]
调试:
启用运行时下标范围检查
-C
为使用 dbx 调试而进行编译
-g
标志未声明变量的使用
-u
检查 !$PRAGMA ASSUME 断言
-xassume_control=check
检查在运行时栈是否溢出
-xcheck=stkovf
启用运行时任务普通检查
-xcommonchk
为性能分析器进行编译
-xF
生成交叉引用列表
-Xlistx
在没有目标文件的情况下启用调试
-xs
诊断:
标志非标准扩展名的使用
-ansi
禁止显示指定的警告消息
-erroff=
与错误消息一起显示错误标记名称
-errtags
显示编译器选项的摘要
-flags、-help
显示编译器的版本号及其阶段
-V
冗余消息
-v
冗余的并行化消息
-vpara
显示/禁止警告消息
-wn
显示编译器自述文件
-xhelp=readme
许可:
显示许可证服务器信息
-xlicinfo
链接和库:
允许/要求动态/静态库
-Bx
只允许动态/静态库链接
-dy、-dn
生成动态(共享对象)库
-G
为动态库指定名称
-hname
将目录增加到库搜索路径
-Lpath
与库 libname.alibname.so 链接
-lname
不将库搜索路径生成到可执行文件中。
-norunpath
将运行时库搜索路径生成到可执行文件中
-Rpath
禁用递增链接程序 ild
-xildoff
与优化的数学库链接
-xlibmopt
与 Sun 性能库链接
-xlic_lib=sunperf
链接编辑器选项
-zx
在不重定位的情况下生成纯库
-ztext
数字和浮点:
使用非标准浮点首选项
-fnonstd
选择非标准浮点
-fns
启用输入过程中的运行时浮点溢出
-fpover
选择 IEEE 浮点舍入模式
-fpround=r
选择浮点优化级别
-fsimple=n
选择浮点捕获模式
-ftrap=t
指定用于格式化输入/输出的舍入方法
-iorounding=mode
将单精度常数提升为双精度常量
-r8const
启用区间运算并设置相应的浮点环境(包括 -xinterval
-xia[=e]
启用区间运算扩展
-xinterval[=e]
优化与性能:
分析循环以了解数据依赖性
-depend
使用所选的选项进行优化
-fast
指定优化级别
-On
填充数据布局以便高效使用高速缓存
-pad[=p]
在内存栈上分配局部变量
-stackvar
启用循环解开
-unroll[=m]
启用跨源文件的优化
-xcrossfile[=n]
调用过程间优化传递
-xipo[=n]
#pragma OPT 设置最高优化级别
-xmaxopt[=n]
针对编译后优化进行编译
-xbinopt=prepare
启用/调整编译器生成的预取指令
-xprefetch=list
控制预取指令的自动生成
-xprefetch_level=n
启用性能分析数据的生成或使用
-xprofile=p
断言不会出现基于内存的陷阱
-xsafe=mem
不执行增加代码大小的优化
-xspace
自动生成对向量库函数的调用
-xvector[=yn]
并行化:
启用 DO 循环的自动并行化
-autopar
显示循环的并行化信息
-loopinfo
为手动编码的多线程编程进行编译
-mt
接受 OpenMP API 指令并设置相应的环境
-xopenmp[=keyword]
识别具有自动并行化的循环中的约简操作
-reduction
冗余的并行化消息
-vpara
源代码:
定义预处理程序符号
-Dname[=val]
未定义预处理程序符号
-Uname
接受扩展(132 个字符)源行
-e
将预处理程序应用于 .F 和/或 .F90.F95 文件,但不进行编译
-F
接受 Fortran 95 固定格式输入
-fixed
使用 fpp 预处理程序对所有源文件进行预处理
-fpp
接受 Fortran 95 自由格式输入
-free
将目录添加到 include 文件搜索路径
-Ipath
将目录添加到模块搜索路径
-Mpath
区分大小写
-U
在实际参数中将霍尔瑞斯常数视为字符
-xhasc={yes|no}
选择要使用的预处理程序(cppfpp
-xpp[={fpp|cpp}]
允许递归子程序调用
-xrecursive
目标平台:
指定内存模型(32 位或 64 位)。
-m32 | —m64
为优化器指定目标平台指令集
-xarch=a
为优化器指定目标高速缓存属性
-xcache=a
为优化器指定目标处理器
-xchip=a
为优化器指定目标平台
-xtarget=a

3.3.1 常用选项

编译器有许多可通过可选命令行参数选择的功能。下面的简要列表列出了一些常用选项,让您一睹为快。

表 3-4 常用选项

操作
选项
调试-在例程之间进行全局程序检查以确保参数、通用块等的一致性。
–Xlist
调试-生成其他用于启用 dbx 和调试的符号表信息。
–g
性能-调用优化器以生成运行速度更快的程序。
–O[n]
性能-使用一组预先确定的选项,为本机平台生成高效的编译时和运行时。
–fast
动态 (–Bdynamic) 或静态 (–Bstatic) 库绑定。
–Bx
仅编译-禁止链接;为每个源文件生成一个 .o 文件。
–c
输出文件-将可执行输出文件命名为 nm 而不是 a.out
–o nm
源代码-编译固定格式的 Fortran 源代码。
-fixed

3.3.2 宏标志

某些选项标志是可扩展为由其他标志组成的特定集合的宏。之所以提供这些选项标志,是为了便于指定通常一起用来选择某项功能的多个选项。

表 3-5 宏选项标志

选项标志
扩展
-dalign
-xmemalign=8s -aligncommon=16
-f
-aligncommon=16
-fast
有关完整的当前扩展,请参见 —fast 说明。
-fnonstd
-fns -ftrap=common
-xia=widestneed
-xinterval=widestneed -ftrap=%none -fns=no -fsimple=0
-xia=strict
-xinterval=strict -ftrap=%none -fns=no -fsimple=0
-xtarget
-xarch=a -xcache=b -xchip=c

命令行上跟在宏标志后面的设置将覆盖或增加宏扩展。

3.3.3 向后兼容性和传统选项

提供以下选项的目的是为了与早期发行版的编译器和某些 Fortran 传统功能实现向后兼容。

表 3-6 向后兼容性选项

操作
选项
通过 ENTRY 语句保留实际参数。
-arg=local
允许为常量参数赋值。
–copyargs
在调用参数列表中将霍尔瑞斯常数视为字符或无类型。
-xhasc[={yes|no}]
支持 Fortran 77 扩展和约定
-f77
非标准运算—允许非标准运算。
–fnonstd
为主机系统优化性能。
–native
DO 循环—使用单程 DO 循环。
–onetrip
允许存在传统的别名情况
-xalias=keywords

建议在生成可移植的 Fortran 程序时不要使用这些选项标志。

3.3.4 已过时的选项标志

下面的选项被认为是已过时的,不应使用它们。在编译器的以后发行版本中可能会删除这些选项。

表 3-7 过时的 f95 选项

选项标志
等效于
-a
-xprofile=tcov
-cg89
-xtarget=ss2
-cg92
-xtarget=ss1000
-native
-xtarget=native
-noqueue
许可证排队。不再需要。
-p
分析。使用 -pg 或性能分析器
-pic
-xcode=pic13
-PIC
-xcode=pic32
-sb
忽略。
-sbfast
忽略。
-silent
忽略。
-xarch={v7,v8,v8a}
使用 —m32