Bonjour,
je débute en Fortran et cherche à faire un programme (simple) pour utiliser une structure comme argument d'une routine...

J'ai créé une structure simple (Personne --> nom/age) et une routine pour en afficher les informations...

Voici mon code :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
--------------------------------------------------------------
program struct
 
implicit none
 
type personne; sequence
	integer :: age
	character (len = 20) :: nom
end type personne
 
 
interface
 
	subroutine afficher(acteur)
		type (personne), intent(in) :: acteur
	end subroutine afficher
 
end interface
 
 
type (personne) :: moi
 
moi%age = 26
moi%nom = "DonutMan"
 
call afficher(moi)
 
end
 
 
 
subroutine afficher(acteur)
implicit none
 
type personne; sequence
	integer :: age
	character (len = 20) :: nom
end type personne
 
type (personne), intent(in) :: acteur
 
print *,'>>>   Personne   <<<'
print *, 'Nom : ', acteur%nom
print *, 'Age : ', acteur%age
 
end subroutine afficher
 
--------------------------------------------------------------

Or quand j'essaie de compiler ça, j'ai le message d'erreur suivant :

In file struct.f90:16

type (personne), intent(in) :: acteur
1
Error: the type of 'acteur' at (1) has not been declared within the interface
Quelqu'un a-t-il une idée ?
J'ai vu passer la notion de "module" pour simplifier l'utilisation de structures en argument, mais j'aurai aimé savoir pourquoi mon code est incorrect ?

Merci d'avance !

Donut