考虑下面的程序
program
print*,.true.,.false.
print*,true,false
end program
Run Code Online (Sandbox Code Playgroud)
该程序在pgfortan和中打印不同的值gfortran.
pgfortran 产量
T F
0.00000000 0.00000000
Run Code Online (Sandbox Code Playgroud)
gfortran 产量
T F
4.59135442E-41 5.87982594E-39
Run Code Online (Sandbox Code Playgroud)
问题 - 逻辑常量.true.并.false.正确显示为T和F.但什么是这些常数true和false,在没有.周围的常量?
正如albert所建议的,TRUE和FALSE在Fortran中没有内在含义 - 它们只是必须声明并赋值的普通标识符.有时,应用程序会使用一堆供应商提供的声明来使用模块,这些声明可能包含TRUE和FALSE的声明作为命名常量,尤其是在Windows平台上.
在您的示例中,TRUE和FALSE是隐式声明的未初始化变量.由于它们未初始化,因此值未定义.某些实现可能会将未初始化的变量赋予零值,但大多数实现不会.最好不要将默认值设置为零,这样您就可以更早地了解编程错误.
当我们讨论LOGICAL值的主题时,我会指出你在这个主题上的一个老帖子.