Passage Chaine de Caractères / Undefined Address
Bonjour,
Je rencontre un gros problème de passsage de chaines de caractère, entre deux sous-routines Fortran.
La première définit deux chaines, transmises à la suivante qui doit les traiter.
Pour simplifier, j'ai mis le code sous la forme (qui ne fonctionne pas) :
Pour la première méthode :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
SUBROUTINE METH()
IMPLICIT NONE
CHARACTER(len=20) :: A
CHARACTER(len=20) :: B
A = "Azerty"
B = "Ytreza"
CALL APPMETH(A,B)
END |
et pour la seconde :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
SUBROUTINE APPMETH(C,D)
IMPLICIT NONE
CHARACTER(len=20) :: C
CHARACTER(len=20) :: D
print *,C
print *,D
END |
A l'éxécution de l'ensemble du code, la variable D n'est plus définie (Dans un débuggeur, sous Visual 2005, avec le compilateur Intel Fortran, le message 'Undefined Addressé' est donné quand on souhaite connaitre cette valeur) et un message d'erreur apparait.
Pourriez-vous m'indiquer mon erreur ? Et Comment pouvoir récupérer les deux valeurs ? A priori, seule la première passe.
Qu'est ce qui ne fonctionne pas dans cette écriture ? J'en ai essayé d'autres mais sans succès. Est-ce un problème de compilateur ?
D'avance merci de votre aide.