Bonjour,
Je travaille sur machine Linux 64b et j'utilise le compilateur Intel v10.1 (ifort).
J'ai constaté des petits "problèmes" de comportement en fonction des options de compilations lorsque j'utilise plusieurs arguments optionnels.
Sur l'exemple suivant, je teste seulement si les arguments optionnels sont actifs ou pas. D'après l'appel de la routine, ils devraient être inactifs tous les deux.
Voici les résultats de l'execution pour 2 types d'options de compilations :
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 program test implicit none integer(kind=8) :: a a = 99 call sub_test (a) end subroutine sub_test ( arg_fixe , arg_opt1 , arg_opt2 ) implicit none integer(kind=8) :: arg_fixe integer(kind=8),optional :: arg_opt1 integer(kind=8),optional :: arg_opt2 write(*,*) present(arg_opt1) write(*,*) present(arg_opt2) write(*,*) arg_fixe return end subroutine
sans options :
ifort -o test test.f90
Ce qui est le comportement souhaité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4F F 99
option debug :
ifort -ftrapuv -o test test.f90
...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4T F 99
L'option "-ftrapuv" est cencée détecter les variables non initialisées. Mais là je ne comprend pas ce qui se passe.
Merci de votre aide
Partager