Fortran-在运行时设置变量的种类/精度
是否可以使变量本身的精度成为将在运行时定义的变量? 比如,如果我试图编译:Fortran-在运行时设置变量的种类/精度,fortran,precision,Fortran,Precision,是否可以使变量本身的精度成为将在运行时定义的变量? 比如,如果我试图编译: SUBROUTINE FOO( VARIABLE, PRECISION_VALUE ) IMPLICIT NONE INTEGER(4) :: PRECISION_VALUE INTEGER(PRECISION_VALUE) :: VARIABLE RETURN END 编译器输出为: error #6683: A kind type
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)
不管怎么说?我知道不能将任何任意值用于
种类
,但这不是我在这个问题上关心的问题。不,这是不可能的,必须知道类型、种类和等级。但是,您可以定义通用子例程接口,实现运行时希望传递到例程中的所有类型。可能会或将有助于您完成任务。