J'ai passé un manuel à apprendre le fortran 90. En ce moment j'apprends des arguments fictifs et des variables locales dans les fonctions. Un des exercices consiste à écrire un programme qui demande à l'utilisateur son prénom et son nom, puis joint les noms et imprime le nom complet. Voici le code:Fortran 90: déclaration inclassable à (1)
PROGRAM name_test
IMPLICIT NONE
! Declare variables
CHARACTER(LEN=12) :: first, last
CHARACTER(LEN=30), EXTERNAL :: full_name
! 1. Ask for first name and family name, then read them
PRINT *, "Please enter your first name"
READ *, first
PRINT *, "Please enter your family name"
READ *, last
! 2. Join names together
full_name(first, last)
! 3. Print welcome message
PRINT *, "Welcome ", full_name(first, last)
END PROGRAM name_test
CHARACTER(LEN=*) FUNCTION full_name(first_name, last_name)
IMPLICIT NONE
! Function which joins 2 names to form a full name
! Dummy argument declarations
CHARACTER(LEN=*), INTENT(IN) :: first_name, last_name
! Local variables
CHARACTER(LEN=LEN(first_name)) :: new_first_name
CHARACTER(LEN=LEN(last_name)) :: new_last_name
! Use ADJUSTL to remove redundant leading blanks
new_first_name = ADJUSTL(first_name)
new_last_name = ADJUSTL(last_name)
! Join names
full_name = TRIM(new_first_name)//" "//new_last_name
END FUNCTION full_name
Lorsque je tente de compiler, il arrive avec une erreur se référant à l'appel de fonction à la ligne 15:
full_name(first, last)
Ceci est l'erreur de compilation:
Error: Unclassifiable statement at (1)