小编Ale*_*o B的帖子

fortran中的一致浮点运算与不同计算机上的不同编译器?

如何使用不同的编译器以及可能还有不同的计算机使用浮点算法获得相同的结果?

这是p.f90

program fl
implicit none
real(kind=8) :: a

a=9d0/10d0
write(*,*) a

end program
Run Code Online (Sandbox Code Playgroud)

使用gfortran -op p.f90,我得到0.90000000000000002

使用ifort -g -op p.f90,我得到0.900000000000000

有没有办法实现一致性?小东西传播并变得更大.

最好的问候亚历山德罗

math floating-point

5
推荐指数
2
解决办法
1560
查看次数

IF和WHERE的等价性

我们都知道DO循环比FORALLFortran中的语句更强大.也就是说,您总是可以用a代替,而不是FORALL用a 代替DO.

怎么样的WHERE陈述和块?

我可以一直替换IF一个WHERE吗?是否总是可以用a编码条件和分叉WHERE,从而避免IF?

fortran if-statement where conditional-statements

5
推荐指数
1
解决办法
461
查看次数