|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 111 ![]() |
Bonjour,
j'ai un petit problème dont voici un exemple simple: Code :
Merci d'avance pour vos conseils PS: je précise que ceci est un exemple simple pour illustrer mon propos et que je ne cherche pas à faire une fonction max qui existe déjà en Fortran. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2006 Messages : 782 ![]() |
Utilise dimension(:) et non dimension(*).
Au lieu de simplement passer un pointeur sur le premier élément du vecteur, le compilateur va plutôt passer une structure contenant les info sur le vecteur, dont la taille. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 111 ![]() |
Alors là, je viens d'apprendre un truc
![]() C'est vrai que d'habitude, j'utilise dimension( : ) mais là j'avoue que j'ai fait un bête copier-coller. Mais même, je ne savais pas qu'il y avait une différence entre les deux écritures... En tout cas, cela fonctionne, je te remercie! |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2006 Messages : 782 ![]() |
Comme je n'ai pas bien répondu à la question initiale, je vais compléter...
Tu n'avais pas de problème d'interface explicite. Le fait que tes fonctions étaient définies dans un module te garantissait qu'une interface explicite serait générée par le compilateur. Si tu avais pu utiliser l'attribut dimension(*), tu n'aurais pas eu à besoin d'interface explicite parce que c'est le mode de passage d'argument par défaut (ça permet la compatibilité ascendante du Fortran 77). L'interface explicite est requise si tu utilises des arguments avec des attributs introduit par Fortran 90 (dimention (:), optional, pointer, ...). Une interface explicite est une interface qui est accessible au compilateur :
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : septembre 2004 Messages : 111 ![]() |
Ok merci!
je pensais en fait que le fait de faire des interface génériques faisait que ce n'était des interfaces explicites et donc qu'il ne passait pas les informations du tableau. Mais j'ai un peu mieux compris maintenant! |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com