主题:fortran的一个小问题,求解答
cfluutxt
[专家分:0] 发布于 2011-11-03 00:41:00
integer (kind(1)),parameter ::ikind=(kind(1))
integer (kind(1)),parameter ::rkind=(kind(0.D0))
这个定义中,前面一个kind(1)应该是表示这个常量只占1个字节吧,
可是后面这个ikind=(kind(1)),我就不懂了,ikind应该是等于多少呢?
还有第二句,怎么理解???
求高手解答一小,我才刚学fortran,一个新手
最后更新于:2011-11-03 00:49:00
回复列表 (共5个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-11-03 08:08:00
后面用的是kind函数,它返回的是括号中变量的kind值也就是所占字节数:)
板凳
yeg001 [专家分:14390] 发布于 2011-11-03 09:07:00
据说有些极个别特殊的编译器, kind=1是单精度, kind=2是双精度而不代表字节数. 这个代码ikind,rkind就可以忽略编译器的差异.
3 楼
cfluutxt [专家分:0] 发布于 2011-11-03 10:10:00
那到底,ikind和rkind等于多少呢?
我用的是develop studio
4 楼
yeg001 [专家分:14390] 发布于 2011-11-03 11:20:00
你write(或print)出来不就知道咯. cvf和ivf默认整形数1单精度ikind=2. 但是可以通过编译命令或ide选项去修改默认的(谁知道原作者有没有改默认选项).双精度浮点rkind=8. 你只关心你所在特定环境下的数量自己输出看看就知道了, 泛泛地问答案也相应广很多.
5 楼
cfluutxt [专家分:0] 发布于 2011-11-03 11:45:00
谢谢啊,刚刚我看了,ikind=4,rkind=8
我来回复