Bonjour,
Je suis debutante sur Fortran. Toute aide est la bienvenue!!
J'aimerais lire un fichier texte pour cela j'ai commence a creer un subroutine dans fortran de mon programme principale. Cette subroutine sert a lire les donnees d'entrees. J'ai essaye de refaire le meme principe que la subroutine de la discussion "code fortran ne pouvant pas lire un fichier txt" suggere par Sylvain Bergeron pour le code de mayoub.

Mon fichier texte se presente de la facon suivante, un mot de dix lettres pour nommer la donnee qui suit. Puis on saute une ligne et j'ai un scalaire, un vecteur ou une matrice sur la nouvelle ligne:

AAAAABBBBB
5
CCCCCDDDDD
50
32
49
22
89
EEEEEFFFFF
10.0 20.0 30.0
40.0 50.0 60.0
70.0 80.0 90.0
10.1 20.1 30.1
40.1 50.1 60.1


Pouvez-vous m'expliquer d'apres cette exemple, comment proceder pour lire seulement les valeurs et pas les tritres, et associer cette valeur a un nom ( que je reutilise ensuite.
Voila mon programme sur fortran. J'ai beaucoup d'erreur. Si quelqu'un pouvez m'aider pour corriger mes erreurs! merciii

Subroutine input (AAAAABBBBB, CCCCCDDDDD, EEEEEFFFFF, Error, filename, filter)
[Error 31 Compilation Aborted (code 1)]

implicit none
c declaration des variables
integer, intent(out) :: AAAAABBBBB
integer, dimension( NOMvariable1, 1), intent(out) :: CCCCCDDDDD
real, dimension(NOMvariable1,3), intent(out) :: EEEEEFFFFF
character(len=*), intent(in) :: filename
integer :: unitfile
logical, dimension(14,1) :: filter
character(len=10) :: inp
integer :: k
integer :: i
integer :: Error
unitfile = 20



open(20, file='filename', action='read', form='formatted', status='old')
c
if (k /= 0) then
Error = 1
print*, 'traitment error '
return
endif
c
FILTER = .false.
i = 0
Error = 2
do
i = i + 1
c
c
c lire le fichier
read(20, FMT=*, iostat=k)inp
if (k < 0) exit
if (k > 0) return ! Error = 2
c
select case(inp)
case('AAAAABBBBB')
if (filter(1,1))return
filter(1,1) = .true.
do i = 1
read(20, *, iostat=k)inp, AAAAABBBBB(i,1) ! lire la valeur sans le titre
print*, 'AAAAABBBBB = ',AAAAABBBBB ! imprimer a l'ecran la valeur scalaire
if (k /= 0) return
end do
AAAAABBBBB = NOMvariable1 ! nommer la valeur scalaire
case('CCCCCDDDDD')
if (filter(2,1)) return
filter(2,1) = .true.
do i=1
[error #6404: This name does not have a type, and must have an explicit type. [DOI] ]
read (20, *, iostat=k)inp, CCCCCDDDDD(i:NOMvariable1,1)
[ error #6410: This name has not been declared as an array or a function. [CCCCCDDDDD]]
[error #6358: Constants and expressions are invalid in read-only I/O lists. [NBSTRUCMOD]]

print*, 'CCCCCDDDDD = ',CCCCCDDDDD
if (k /= 0) return
end do
[error #6099: An ENDDO statement occurred without a corresponding DO or DO WHILE statement.]
CCCCCDDDDD = NOMvariable2
[error #6404: This name does not have a type, and must have an explicit type. [NOMvariable2]]

case('EEEEEFFFFF')
if (filter(3,1)) return
filter(3,1) = .true.
do i=1
read (20, *, iostat=k)inp, EEEEEFFFFF(i:NOMvariable1,
print*, 'EEEEEFFFFF = ',EEEEEFFFFF
if (k /= 0) return
end do
EEEEEFFFFF = NOMvariable3

end select
enddo
Error = 0
close(20)
end subroutine input