Perché lo standard Fortran 90 Specification specifica (5.2.8) che la parola chiave TARGET deve essere utilizzata per associare un POINTER ad esso? Perché non tutti i tipi sono un TARGET valido?Perché un POINTER Fortran richiede un TARGET?
Per esempio,
INTEGER, POINTER :: px
INTEGER, TARGET :: x
x = 5
px => x
è sintassi valida ma
INTEGER, POINTER :: px
INTEGER :: x
x = 5
px => x
è
non valida.
Perché deve essere?
Il mio commento precedente non è stato preciso. L'associazione puntatore/bersaglio può portare a situazioni davvero difficili. Vi raccomando qualche ulteriore lettura se siete inesperti con le pratiche di associazione puntatore/target in Fortran. Vedere, ad esempio, questo collegamento https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/709550 –