Structure en argument d'une routine
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:
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 :
Citation:
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