24小时热门版块排行榜    

查看: 818  |  回复: 6

pengyehui

木虫 (正式写手)

[求助] 改变浮点精度就编译不过,为什么?

比如在主程序中定义了
....
real(8):: x
call func(x)
.....
end
subroutine func(x)
real(8)::x
...
endsubroutine
第一次编译能通过,但吧所有的real(8)改为real(16)就编译不过。如果把整个程序删除,重新编写,用real(16),又能通过,这是为什么?
我用的是intel fortran 11.0.6
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

pengyehui(金币+2): 谢谢 2011-09-26 11:35:49
是不是因为有一些中间临时文件存在的缘故?
2楼2011-09-26 11:22:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pengyehui

木虫 (正式写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2011-09-26 11:22:16:
是不是因为有一些中间临时文件存在的缘故?

也许有可能,这些文件一般放哪里啊?怎么删除?
3楼2011-09-26 11:35:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

不知道,因为没有用过 intel fortran 编译器
4楼2011-09-26 14:04:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pengyehui

木虫 (正式写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2011-09-26 11:22:16:
是不是因为有一些中间临时文件存在的缘故?

感觉不是如此,因为我即使关闭整个程序,以及intel fortran 重新启动,也不能编译过
5楼2011-09-26 15:09:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


余泽成(金币+1): 谢谢参与应助! 2011-09-26 21:41:30
pengyehui(金币+3): 2011-10-29 20:59:29
把你的代码贴出来看看(如果不涉及保密的问题的话)……
6楼2011-09-26 18:04:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


jjdg(金币+1): 感谢参与 2011-10-29 23:00:29
今天恰好与人讨论这个问题
real(8) 表示 real(kind=8),如果你用 gfortran 编译器的话,这表示 double precision 的实数

real(16) 表示 real(kind=16),这个 gfortran 编译器似乎还不支持(不太确定,似乎需要额外的支持……)

不清楚 intel 编译器是啥样的……

另外,如果是编译错误,最好把错误信息贴出来……
7楼2011-10-29 21:30:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 pengyehui 的主题更新
信息提示
请填处理意见