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

Нет, это невозможно, тип, вид и ранг должны быть известны. Однако вы можете определить общие интерфейсы подпрограмм с реализациями для всех видов, которые, как вы ожидаете, будут переданы в подпрограмму во время выполнения.

Смежные вопросы