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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager