gpt4 book ai didi

fortran - Fortran 中 COMPILER_OPTIONS() 应该返回什么?

转载 作者:行者123 更新时间:2023-12-02 15:43:10 25 4
gpt4 key购买 nike

Fortran 2008 添加了一个名为 COMPILER_OPTIONS() 的新过程,根据GNU documentation应该返回一个字符串,其中包含用于编译文件的选项。根据Fortran 2003 status wiki ,包括 GNU 和 PGI 在内的几乎所有编译器似乎都支持此功能。

我创建了一个简单的程序COMPILER_OPTIONS.f08,如下所示

use iso_fortran_env
print '(4a)', 'This file was compiled by using the options ', compiler_options()
end

这是我从 gfortranpgfortran 得到的结果

没有编译时选项的 Gfortran 5.4

$ gfortran COMPILER_OPTIONS.f08 && ./a.out 
This file was compiled by using the options -mtune=generic -march=x86-64

Gfortran 5.4 在编译时通过 -O3

$ gfortran -O3 COMPILER_OPTIONS.f08 && ./a.out 
This file was compiled by using the options -mtune=generic -march=x86-64 -O3

PGI 17.4,编译时未传递任何选项

$ pgfortran COMPILER_OPTIONS.f08 && ./a.out 
This file was compiled by using the options COMPILER_OPTIONS.f08

PGI 17.4 和 -O3 在编译时通过

$ pgfortran -O3 COMPILER_OPTIONS.f08 && ./a.out 
This file was compiled by using the options COMPILER_OPTIONS.f08 -O3 -Mvect=sse -Mcache_align -Mpre

鉴于上述输出,我有以下问题

  1. 按照 Fortran 2008,COMILER_OPTIONS() 过程预计返回什么?
  2. 不同编译器的支持状况如何?

编辑:将标志从 -o3(输出文件 3)更改为 -O3(优化级别 3)。感谢 Pierre 和 francescalus 的反馈。

最佳答案

Fortran 2008 将该函数描述为 (13.8.2.6):

Processor-dependent string describing the options that controlled the program translation phase.

此函数返回“具有与处理器相关的长度的默认字符标量。”

这对于编译器来说是极大的自由。从此处提供的结果来看,没有任何迹象表明存在任何不合规情况。

关于fortran - Fortran 中 COMPILER_OPTIONS() 应该返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com