Select Type
能区分 Integer(Int8)
, Integer(Int16)
, Integer(Int32)
, 和 Integer(Int64)
吗?
此外,Select Type
能否识别不考虑所使用的位数的整数类型?
是的,你可以写出类似以下的代码。这里我使用了内置模块iso_fortran_env
中的真实kind常量。
SELECT TYPE(areal)
TYPE is (REAL(real32))
WRITE(*,*) '... real32'
TYPE is (REAL(real64))
WRITE(*,*) '... real64'
CLASS default
WRITE(*,*) '... default'
END SELECT
SELECT TYPE(areal)
TYPE is (REAL(real32))
WRITE(*,*) '... real32'
TYPE is (REAL(real64))
WRITE(*,*) '... real64'
TYPE is (REAL)
WRITE(*,*) '... real'
CLASS default
WRITE(*,*) '... default'
END SELECT
real32
)将匹配两个类型保护语句,这是编译器应该捕获的错误。select type
可以区分不同种类的整数。type is
部分。
Integer
的原因。 - Vladimir F Героям славаType Is (Real (Real32))
接受Real
,而Type Is (Real (Real64))
接受Double Precision
。 - Zeus-fdefault-real-8
之类的东西(它并不违反标准!),然后回报结果。 - Vladimir F Героям слава-fdefault-real-8
的后果是Real
被Type Is (Real(Real64))
所选中。 - Zeus