是否可以强制 Fortran 编译器使用单精度?
Is it possible to force Fortran compiler to use single precision?
我有一个很大的 Fortran 代码,其中大部分实变量使用
声明为双精度
double precision
real*8
我想知道是否可以强制编译器对这些变量使用单精度。
这取决于您使用的编译器。 GNU Fortran 支持选项 -freal-8-real-4
,它将所有 8 字节实数转换为 4 字节实数。比如下面的程序
program p
use iso_fortran_env, only: real64
real(kind=real64) :: x
double precision :: y
real*8 :: z
print *, sizeof(x), sizeof(y), sizeof(z)
end program p
打印
8 8 8
但是当用-freal-8-real-4
编译时,输出是
4 4 4
其他编译器可能有不同的选项(或 none 此类选项)。
我有一个很大的 Fortran 代码,其中大部分实变量使用
声明为双精度double precision
real*8
我想知道是否可以强制编译器对这些变量使用单精度。
这取决于您使用的编译器。 GNU Fortran 支持选项 -freal-8-real-4
,它将所有 8 字节实数转换为 4 字节实数。比如下面的程序
program p
use iso_fortran_env, only: real64
real(kind=real64) :: x
double precision :: y
real*8 :: z
print *, sizeof(x), sizeof(y), sizeof(z)
end program p
打印
8 8 8
但是当用-freal-8-real-4
编译时,输出是
4 4 4
其他编译器可能有不同的选项(或 none 此类选项)。