8

是否可以使变量本身的精度成为将在运行时定义的变量?说,如果我尝试编译:

      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,但这不是我在这个问题上关心的问题。

4

1 回答 1

11

不,这是不可能的,必须知道类型、种类和等级。但是,您可以为您希望在运行时传递给例程的所有类型的实现定义通用子例程接口。

于 2012-05-10T05:08:37.233 回答