- 积分
- 7467
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-9-20
- 最后登录
- 1970-1-1

|
发表于 2015-5-14 22:02:04
|
显示全部楼层
@topmad这的确是与编译器有关:涉及到while(125),125本身是一个整型量,125用一个字节(8位二进制)就可以表示,11111101;但是while的括号里,只能是一个逻辑型变量,(.true.)或者(.false.),在内存只要一位二进制就可以表示,1或者0。而你使用的编译器可能有一个默认,用二进制表征逻辑型变量时,需要一位二进制就够了,如果用整型量强行表征逻辑型变量,只取最后一位二进制数,而奇数的最后一位都是1,(.true.),偶数的最后一位都是0,(.false.),所以你奇数时都可以执行,用偶数时不能执行。所以使用fortran,从类型到字节数都要规定好,这才是跨平台应用的基础。不能使用fortran的默认设置。 |
|