回 帖 发 新 帖 刷新版面

主题:fortran的一个小问题,求解答

integer (kind(1)),parameter ::ikind=(kind(1))
integer (kind(1)),parameter ::rkind=(kind(0.D0))
这个定义中,前面一个kind(1)应该是表示这个常量只占1个字节吧,
可是后面这个ikind=(kind(1)),我就不懂了,ikind应该是等于多少呢?
还有第二句,怎么理解???
求高手解答一小,我才刚学fortran,一个新手

回复列表 (共5个回复)

沙发

后面用的是kind函数,它返回的是括号中变量的kind值也就是所占字节数:)

板凳

据说有些极个别特殊的编译器, kind=1是单精度, kind=2是双精度而不代表字节数. 这个代码ikind,rkind就可以忽略编译器的差异.

3 楼


那到底,ikind和rkind等于多少呢?
我用的是develop studio

4 楼

你write(或print)出来不就知道咯. cvf和ivf默认整形数1单精度ikind=2. 但是可以通过编译命令或ide选项去修改默认的(谁知道原作者有没有改默认选项).双精度浮点rkind=8. 你只关心你所在特定环境下的数量自己输出看看就知道了, 泛泛地问答案也相应广很多.

5 楼


谢谢啊,刚刚我看了,ikind=4,rkind=8

我来回复

您尚未登录,请登录后再回复。点此登录或注册