Qu'est-ce que l'explicite la différence entre le fortran intentions (in,out,inout)?

Après avoir cherché pendant un certain temps dans les livres, ici sur stackoverflow et sur le web en général, j'ai constaté qu'il est difficile de trouver une explication à la différence réelle entre les fortran argument intentions. La façon dont je l'ai compris, est-ce:

  • intent(in) -- L'argument réel est copié à l'argument factice à l'entrée.
  • intent(out) -- L'argument des points à l'argument réel (ils pointent vers la même place en mémoire).
  • intent(inout) -- l'argument est créé localement, puis copié à l'argument réel lorsque la procédure est terminée.

Si ma compréhension est correcte, alors je veux aussi savoir pourquoi on veut utiliser intent(out), depuis le intent(inout) exige moins de travail (pas de copie de données).

OriginalL'auteur Karl Yngve Lervåg | 2009-06-18