Fortran Coder

查看: 78|回复: 4

[编译器] 有关gfortran初始值的设定的问题

[复制链接]

70

帖子

15

主题

0

精华

专家

齊天大聖

F 币
358 元
贡献
224 点
发表于 2019-8-16 21:28:22 | 显示全部楼层 |阅读模式
遇到一个问题,请教各位大佬
[Fortran] 纯文本查看 复制代码
module m_haha
    implicit none
    real :: nan_4
end 

program main
    use m_haha
    implicit none
    real :: a

    print*,nan_4,a
end program

编译方式:
gfortran -finit-real=nan -c m_haha.f90
gfortran -finit-real=nan -c main.f90
gfortran -finit-real=nan *.o

结果:
0.0000 nan

很迷。。。


回复

使用道具 举报

1426

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
759 元
贡献
563 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2019-8-18 08:52:04 | 显示全部楼层
       -finit-local-zero
       -finit-integer=n
       -finit-real=<zero|inf|-inf|nan>
       -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> (which also
           initializes the real and imaginary parts of local "COMPLEX" variables),

70

帖子

15

主题

0

精华

专家

齊天大聖

F 币
358 元
贡献
224 点
 楼主| 发表于 2019-8-19 11:09:42 | 显示全部楼层
fcode 发表于 2019-8-18 08:52
-finit-local-zero
       -finit-integer=n
       -finit-real=

也就是说,module中定义的变量不是local的?

1426

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
759 元
贡献
563 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2019-8-19 15:10:16 | 显示全部楼层
不是,只有子程序(函数)的局部变量,主程序的变量,才叫“local variables”

70

帖子

15

主题

0

精华

专家

齊天大聖

F 币
358 元
贡献
224 点
 楼主| 发表于 2019-8-19 18:55:30 | 显示全部楼层
fcode 发表于 2019-8-19 15:10
不是,只有子程序(函数)的局部变量,主程序的变量,才叫“local variables” ...

多谢绝地答疑
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-9-21 17:21

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表