Bonjour,

j'apprends le fortran et je m'exerce à la compilation d'un programme basé sur plusieurs fichiers de code. Le fichier principal s'appelle "fortran_test.f90", le second "secondProg.F90". Comme le montre le code ci-dessous, deux subroutines sont présentes. L'une est rédigée dans le fichier principal "fortran_test.f90", l'autre dans le fichier auxiliaire.
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
 
programm fortran_test
include "secondProg.F90"
 
write(*,*) 'a first test'
call outputTest
call secondProg
 
end programm fortran_test
 
subroutine outputTest
 
write(*,*) 'the output test'
 
end subroutine outputTest


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
subroutine secondProg
character(len=3) :: mychar01
 
end subroutine secondProg

Lorsque je compile le programme principal avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
gfortran fortran_test.F90 -o mytest2
J'obtiens une erreur:
secondProg.f90:6.3
Included at fortran_test.f90.2:

End Subroutine secondProg
1
error:expecting end programm statement at (1)
Par contre, lorsque je mets la fonction auxiliaire, ainsi que la commande "include" correspondante et le "call" correspondant en commentaires, ca fonctionne.

Quelqu'un peut il me donner la syntaxe pour compiler? J'ai l'impression que c'est là que ca pêche. J'ai essayé de compiler séparément le fichier auxiliaire en préalable
gfortran secondProg.f90 -c secondProg.o
Mais ca ne change rien

Je suppose que le probleme vient du compilateur et que ma syntaxe est fausse. Je travaille sour linux suse. version de gfortran: 4.7 (ou 4.6)

merci pour toute aide

oodbae