Bonjour,
Existe - t - il en Fortran 77 l'équivalence des #ifdef, #undef, #define du C?
merci...
Version imprimable
Bonjour,
Existe - t - il en Fortran 77 l'équivalence des #ifdef, #undef, #define du C?
merci...
Il est possible de faire tourner le preprocesseur C (cpp) sur des fichiers sources Fortran avant de les envoyer au compilateur Fortran.
je suis sincèrement désolée, mais je ne comprends pas ta réponse... :oops:
Ok. En C, les mot-cles commencant par # sont des directives pre-processeur. Elles sont analysees par un executable special, appele cpp pour C pre-processor. Une fois l'analyse terminee, le fichier resultat est envoye au compilateur C. L'idee est de faire pareil, mais avec un fichier Fortran.
Disons que tu as, par exemple, le fichier Fortran suivant:
On lui applique cpp (j'utilise la version GNU, donc il faut lui dire de ne pas formatter le fichier sortie au format "gcc", option -P)Code:
1
2
3
4
5
6
7
8
9 program toto implicit none #if 0 write(6,'(a)') 'Hello !' #else write(6,'(a)') 'World !' #endif end
Je verifie que toto_cpp.f contient bien ce que je souhaite:Code:
1
2 cpp -P toto.f > toto_cpp.f
Je n'ai plus qu'a compiler...Code:
1
2
3
4
5
6
7
8
9 program toto implicit none write(6,('a)') 'World !' end
et ca fonctionne...Code:
1
2 ifort toto.f -o toto
Evidemment, on peut automatiser tout cela dans un Makefile.Code:
1
2
3./toto World !
Attention, rigoureusement parlant, cela reste de l'abus du pre-processeur C. Mais pour tout ce qui est compilation conditionnelle, c'est parfait. Evidemment, il est preferable d'eviter de faire des #include des en-tetes standard du C, et d'utiliser des valeurs qui ont ete #define'd...
merci beaucoup, c'est plus clair!!! :D