是否可以强制 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 此类选项)。