是否可以将变量本身的精度变为将在运行时定义的变量? 说,如果我尝试编译:
SUBROUTINE FOO( VARIABLE, PRECISION_VALUE )
IMPLICIT NONE
INTEGER(4) :: PRECISION_VALUE
INTEGER(PRECISION_VALUE) :: VARIABLE
RETURN
END
编译器输出为:
error #6683: A kind type parameter must be a compile-time constant. [PRECISION_VALUE]
INTEGER(PRECISION_VALUE) :: VARIABLE
--------------^
compilation aborted for trial.f (code 1)
无论如何?我理解KIND
不能使用任意值,但这不是我在这个问题上的关注点。
答案 0 :(得分:11)
不,它不可能,类型,种类和等级必须知道。但是,您可以定义通用子例程接口,其中包含您希望在运行时传递到例程中的所有类型的实现。