2012-05-10 12 views
8

È possibile stabilire una variabile di per sé una variabile che verrà definita in fase di esecuzione? dire, se provo a compilare:Fortran - tipo di impostazione/precisione di una variabile in fase di esecuzione

 SUBROUTINE FOO(VARIABLE, PRECISION_VALUE) 

     IMPLICIT NONE 

     INTEGER(4) :: PRECISION_VALUE 
     INTEGER(PRECISION_VALUE) :: VARIABLE 

     RETURN 
     END 

l'output del compilatore è:

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) 

In ogni caso intorno ad esso? Capisco che non è possibile utilizzare alcun valore arbitrario per KIND, ma non è la mia preoccupazione in questa domanda.

+4

Forse http://stackoverflow.com/questions/2560182/fortran-determine-variable-type o http://stackoverflow.com/questions/2257248/how-to-write-wrapper-for-allocate ti aiuterà cosa vuoi fare. –

risposta

11

No, non è possibile, tipo, tipo e classifica devono essere noti. Tuttavia, è possibile definire interfacce di subroutine generiche con implementazioni per tutti i tipi che si prevede di passare a una routine in fase di esecuzione.

Problemi correlati