La programmation Fortran

Programmation scientifique avec pépé Fortran !

a marqué ce sujet comme résolu.

Bonjour à tous,

J'ai commencé (il y a 8 mois, 3 semaines) la rédaction d'un tutoriel dont l'intitulé est La programmation Fortran.

Je remet aussi le lien de la discussion précédente, crée avant les messages automatiques de mise en béta !

J'ai ajouté depuis la dernière fois un chapitre sur les fonctions et routines.

+1 -0

Fortran a quelques qualités intrinsèques, qui peuvent faire qu'on le choisit pour commencer un projet. C'est un langage relativement simple (par rapport au C++), rapide (par rapport à Python), facile à utiliser (par rapport au C), et qui propose nativement toutes les opérations sur les tableaux :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
real, dimension(56, 70) :: A, B
real, dimension(70, 30) :: C
real, dimension(56, 30) :: D

A = 0 ! Tous les éléments de A sont mis à 0
B = 67.0

A = A + B ! Addition de matrices

C = 16.0
D = A * C ! Multiplication de matrices

Fonctionnalité que l'on ne retrouve que chez Matlab et concurrents, et qui facilite l’écriture de programmes scientifiques.

Pour moi, le seul vrai concurrent moderne de Fortran est Julia, qui est haut-niveau et aussi rapide que Fortran (dans les boucles principales).

+0 -0

@DC : Ce que je voulais dire c'est que contrairement a Cobol, là sur ma machine j'utilise du code en fortran encore aujourd'hui. Cobol est encore utilisé mais sur des niches applicative, sur des systèmes particulier. Fortran lui est encore bien présent dans l'ecosystème moderne. Alors certes il y a probablement très peu de nouveau projets démarrés en fortran aujourd'hui mais la base de code existante impact pas mal de monde. Par exemple tous les utilisateurs de numpy font appel indirectement à du code fortran.

Content de voir un tuto sur le Fortran. Pour avoir fait du C et du Fortran (2003) sur des projets scientifiques, je ne peux que le conseiller. Le conseiller de manière générale d'ailleurs. Malgré quelques défauts (compatibilité des .mod, implicit none a placer au bon endroit sous peine d'erreur de compilation surprenant pour un débutant…), c'est pour moi un très bon langage, qui gagnerai à être utilisé en dehors de son domaine de prédilection.

Je n'ai pas le temps de lire tout ça (encore deux semaines d'exam'), mais je le ferai dès que je pourrai. :)

+1 -0

J'avais dit que le lirai, c'est fait.

Dans l'ordre :

Partie Un premier programme (introduction), "Pour l'écrire, créez un fichier hello.f90", puis "compilez le programme avec l'instruction gfortran hello.f95".

Écriture des nombres à virgule flottante, il y a une trucs avec le markdown à la ligne "Ainsi, $2+3,5i$ sera noté" : à cause de la virgule, j'ai lu "2+3", "5i". Je pense que ce serait mieux de mettre $2 + 3,\!5i$ ($2 + 3,\!5i$).

Boucle à nombre d’itérations connu : boucle do "Ces boucles sont les équivalents des boucles for en C ou en Python." En C, d'accord, en python, les boucles for servent à aller piocher les éléments d'un itérables (chaine, tableaux…) et sont donc assez différents. Dans le cas du while, c'est OK.

Les opérateurs de comparaison orthographe : stoker et 'pour.true.' (dans le code, il manque un espace).

Je ne sais pas si la forme du chapitre Les bases de la programmation 2/2 est fixée, mais je la trouve un peu bizarre. Tu parles, dans cet ordre, du "do", "do while", "if", les interactions avec les boucles, puis "select case". Ce dernier gagnerait à être mis juste après le "if".

Si le tuto s'adresse à des débutants, je pense que les interactions avec les boucles devraient être mises ailleurs. Par expérience, ils vont tenter de mettre des "cycle" et "exit" un peu partout là où des boucles simples suffiraient. Ça permettraient de plus de généraliser les boucles nommées (dans le sens qu'on peut nommer à peu près tout en fortran), et de parler des boucles "forall", qu'il serait trop lourd d'introduire ici.

J'ai arrêter ma lecture à la fin de cette partie.

+1 -0

Bonjour à tous !

La beta du tutoriel a été mise à jour.

Je ne sais pas si la forme du chapitre Les bases de la programmation 2/2 est fixée, mais je la trouve un peu bizarre. Tu parles, dans cet ordre, du "do", "do while", "if", les interactions avec les boucles, puis "select case". Ce dernier gagnerait à être mis juste après le "if".

Si le tuto s'adresse à des débutants, je pense que les interactions avec les boucles devraient être mises ailleurs. Par expérience, ils vont tenter de mettre des "cycle" et "exit" un peu partout là où des boucles simples suffiraient. Ça permettraient de plus de généraliser les boucles nommées (dans le sens qu'on peut nommer à peu près tout en fortran), et de parler des boucles "forall", qu'il serait trop lourd d'introduire ici.

Ce n'est pas du tout figé dans le marbre, et c'est en effet une bonne proposition!

+1 -0

Salut,

Je sais que ce tuto a bien un an sans MàJ, mais je me demandais s'il était toujours d'actualité.

Je dois reconnaitre que j'ai remplacé le Fortran par le C++ pour pas mal de cas, mais ça reste un langage dont le premier problème est qu'il est mal utilisé, donc une ressource francophone moderne depuis les bases me semble très intéressante. Surtout pour les pauvres petits étudiants qui doivent se palucher du code (mal) écrit par d'autres en ne connaissant que Matlab (ce qui heureusement n'est pas mon cas).

Bref, toujours motivé ou non ?

+0 -0

Salut !

Il est toujours d'actualité, il est simplement descendu vers le fond de ma todo list!

Je suis un peu dans le même cas que toi: je n'ai plus fait de Fortran depuis 2 ans, je l'ai complètement remplacé par C++/Python/Rust. Ça ajouté au fait que je me suis plus investi dans mes projets open-source et que les journées n'ont que 24h font que ce tuto n'a pas beaucoup avancé. Il faudrait que je trouve une manière de m'y mettre de manière plus régulière.

S'il y a des personnes intéressées pour donner un coup de main dans la rédaction/l'organisation du tuto, je suis preneur!

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte