Fortran Coder

查看: 87|回复: 2

[编译器] 自由格式.h文件中语句长度超过132之后,编译不报错

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
35 元
贡献
20 点
发表于 2020-1-4 20:05:58 | 显示全部楼层 |阅读模式
[Fortran] 纯文本查看 复制代码
!     CHARACTER(len=80) title
  Character *80 title
  Integer iopt(mopt), itrans(mopt), isubopt(mopt), nprior
  Real iapri(mpar)
  Character optinv(mopt)
  Common /options/iopt, itrans, isubopt, optinv
  Integer nparm, q, qin, & !     pointers from parm 2 phy and lay
    npopin
! present dimensions                   
  Integer par2phy(mpar), par2lay(mpar), par3(mpar)
  Integer ndigit(mpar), nbit(mpar)

  Real fmin(mpar), fmax(mpar) ! bounds and possible val              
  Real f(mpar), df(mpar), xstar(mpar), xprior(mpar)
!     CHARACTER(len=40) phystxt(mphys),phystxt2(mphys)
  Character *40 phystxt(mphys), phystxt2(mphys)

  Common /optpar/title, nparm, q, iapri, nprior, par2phy, par2lay, par3, phystxt, phystxt2, ndigit, nbit, qin, npopin, fmin, fmax, f, df, xstar, xprior


最后一行,我的Common的长度超过132个字符了,为什么编译不报错,但是运行之后比如df的值会出现随机值?
回复

使用道具 举报

1487

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1099 元
贡献
756 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2020-1-5 15:12:19 | 显示全部楼层
因为各家编译器并不是非常严格的执行语法规范的要求的。
相比,有的编译器限制会“宽松”一些。
类似的例子还有,Fortran语法允许最大的数组是15维,但有的编译器,比如intel fortran允许31维

变量没有初始化,都是“随机”的,这其实不能叫随机,而叫“不确定”

6

帖子

2

主题

0

精华

入门

F 币
35 元
贡献
20 点
 楼主| 发表于 2020-1-5 21:17:21 | 显示全部楼层
fcode 发表于 2020-1-5 15:12
因为各家编译器并不是非常严格的执行语法规范的要求的。
相比,有的编译器限制会“宽松”一些。
类似的例子 ...

好的,明白啦~~多谢帮助!!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2020-2-28 04:20

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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