Fortran - 在运行时设置变量的种类/精度

时间:2012-05-10 01:47:54

标签: fortran precision

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

      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不能使用任意值,但这不是我在这个问题上的关注点。

1 个答案:

答案 0 :(得分:11)

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