2012-05-10 11 views
8

変数自身の精度を実行時に定義される変数にすることはできますか?Fortran - 実行時に変数の種類/精度を設定する

 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

おそらくhttp://stackoverflow.com/questions/2560182/fortran-determine-variable-typeまたはhttp://stackoverflow.com/questions/2257248/how-to-write-wrapper-for-allocateが役立ちますあなたがしたいこと。 –

答えて

11

いいえ、タイプ、種類、ランクを知っている必要はありません。ただし、実行時にルーチンに渡すことが予想されるすべての種類の実装で汎用サブルーチン・インタフェースを定義できます。

関連する問題