2012-05-10 2 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

아니요, 유형, 종류 및 등급을 알고 있어야합니다. 불가능합니다. 그러나 런타임시 루틴에 전달할 것으로 예상되는 모든 종류의 구현을 사용하여 일반 서브 루틴 인터페이스를 정의 할 수 있습니다.

관련 문제