每个人
我有一个Fortran90程序,变量是双精度或复数*16,现在我必须编写另一个程序,其变量是实数或复数,其他的都和原来的程序一样。
直接的方法是重写每个声明,但我想知道是否还有其他更简单的方法可以实现这一点,我使用 gfortran 作为编译器。
谢谢
可能最干净(尽管不是最简单)的方法是重写您的程序以使变量具有可调节的精度:
program test
implicit none
integer, parameter :: rp = kind(1.0d0)
real(rp) :: myreal
complex(rp) :: mycomplex
通过将参数rp
(实际精度)设置为kind(1.0)
代替,kind(1.0d0)
您可以从双精度切换到单精度。或者,使用与 fortran 2003 兼容的编译器,您也可以在调用模块后使用名称real64
和名称。(更新:它需要一个与 fortran 2008 兼容的编译器,而不是 fortran 2003,请参阅 IanH 的评论)。real32
iso_fortan_env