|
|
|
|
@@ -7,6 +7,10 @@ guerre mondiale, en 1954, par
|
|
|
|
|
John Warner Backus, ingénieur en radiophonie chez IBM\index{IBM},
|
|
|
|
|
\end{quote}
|
|
|
|
|
|
|
|
|
|
Pourquoi j'ai redécouvert un langage de ma jeunesse, et pourquoi
|
|
|
|
|
vous devriez vous aussi y jeter un regard attentif. Il y a plein
|
|
|
|
|
de bonnes choses, la septième va vous tenir compagnie.
|
|
|
|
|
|
|
|
|
|
% ========================================
|
|
|
|
|
|
|
|
|
|
\section{FORTRAN77}
|
|
|
|
|
@@ -56,7 +60,8 @@ $
|
|
|
|
|
%
|
|
|
|
|
\section{Args \& Env}
|
|
|
|
|
|
|
|
|
|
Un fort beau programme, mais il est un peu fermé au monde extérieur.
|
|
|
|
|
Un fort beau programme que ce \textsc{helloworld}, mais il est un peu
|
|
|
|
|
fermé au monde extérieur.
|
|
|
|
|
Quand on lance un programme, il peut recevoir des instructions
|
|
|
|
|
par (mais pas que) deux canaux : les arguments de la ligne de commande
|
|
|
|
|
et les variables d'environnement.
|
|
|
|
|
@@ -144,10 +149,15 @@ Il semble qu'il y ait deux concepts orthogonaux :
|
|
|
|
|
|
|
|
|
|
XXX\index{XXX}
|
|
|
|
|
|
|
|
|
|
Pour faire simple, on accède à chaque unité de donnée l'une après l'autre,
|
|
|
|
|
comme quand on déroule une bande 6250bpi.
|
|
|
|
|
|
|
|
|
|
\subsection{Indexé} \index{index}
|
|
|
|
|
|
|
|
|
|
XXX\index{XXX}
|
|
|
|
|
|
|
|
|
|
C'est pas pareil.
|
|
|
|
|
|
|
|
|
|
% --------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
\section{Modules}
|
|
|
|
|
@@ -221,7 +231,7 @@ mais ce ne sont probablement pas les seules.
|
|
|
|
|
|
|
|
|
|
La bibliothèque \textbf{Plplot} semble être un bon choix pour commencer,
|
|
|
|
|
mais il existe bien d'autres options.
|
|
|
|
|
Par exemple \textbf{g2} (page \pageref{g2}) semble être utilisable
|
|
|
|
|
Par exemple \textbf{g2} (vue en page \pageref{g2}) semble être utilisable
|
|
|
|
|
avec les vieux F77, et possiblement avec un Fortran moderne, il faut juste
|
|
|
|
|
un peu de \textsc{rtfm}.
|
|
|
|
|
|
|
|
|
|
@@ -248,18 +258,30 @@ choisir le type de sortie.
|
|
|
|
|
Dans la version que j'ai (XXX\index{XXX}), on a le choix entre
|
|
|
|
|
X-Window, PostScript mono ou couleur, Xfig, PNG, SVG, et bien
|
|
|
|
|
d'autres dont certains, pour moi, assez ésotériques.
|
|
|
|
|
D'autre part, avec cette méthode, il est impossible de
|
|
|
|
|
D'autre part, avec cette méthode, il semble impossible de
|
|
|
|
|
préciser la taille de l'image.
|
|
|
|
|
Mais la démonstration est faite.
|
|
|
|
|
|
|
|
|
|
Laissons cette question en suspens, et commençons à dessiner.
|
|
|
|
|
Il faut quand même regarder de plus près la subroutine
|
|
|
|
|
\texttt{plenv()} (\textsl{Set up standard window and draw box})
|
|
|
|
|
qui initialise simplement un contexte graphique 2D somme toute
|
|
|
|
|
assez classique. Elle prend six paramètres. Les quatre premiers
|
|
|
|
|
sont les coordonnées flottantes de deux coins du papier,
|
|
|
|
|
le cinquième controle l'échelle des axes, et le dernier
|
|
|
|
|
controle le tracé des boites autour du graphique.
|
|
|
|
|
|
|
|
|
|
Première étape, démarrer automatiquement dans une fenètre X11,
|
|
|
|
|
en gardant tous les autres paramètres à leur valeur par défaut.
|
|
|
|
|
Il suffit de rajouter \texttt{call plsdev('xwin')} juste avant
|
|
|
|
|
l'appel à \texttt{plinit}, et d'utiliser la touche \textsl{<enter>}
|
|
|
|
|
pour sortir.
|
|
|
|
|
Nous avons les bases, commençons donc à dessiner.
|
|
|
|
|
|
|
|
|
|
Ensuite nous allons choisir une couleur pour l'encre (qui est d'un
|
|
|
|
|
Premièrement, nous allons chosir de démarrer automatiquement
|
|
|
|
|
dans une fenètre X11,
|
|
|
|
|
en gardant le reste de la configuration avec ses valeurs par défaut.
|
|
|
|
|
Pour cela, il suffit de rajouter \texttt{call plsdev('xwin')} juste avant
|
|
|
|
|
l'appel à \texttt{plinit}, il vous faudra utiliser la touche
|
|
|
|
|
\textsl{<enter>} pour sortir\footnote{Une de mes prochaines tâche sera
|
|
|
|
|
de regarder comment quitter avec le '\textbf{q}' canonique}.
|
|
|
|
|
|
|
|
|
|
Ensuite, pour mettre en évidence notre art,
|
|
|
|
|
nous allons choisir une couleur pour l'encre (qui est d'un
|
|
|
|
|
rouge du meilleur effet par défaut en mode "xwin"),
|
|
|
|
|
puis écrire quelques légendes canoniques, donc inutiles, .
|
|
|
|
|
|
|
|
|
|
@@ -273,27 +295,35 @@ sur notre feuille blanche numérique\footnote{Actuellement noire, mais
|
|
|
|
|
nous trouverons bien comment changer ça}.
|
|
|
|
|
La forme de ce tracé sera donnée par une suite de coordonnées
|
|
|
|
|
flottantes \textsl{x/y}
|
|
|
|
|
stockées dans deux tableaux parallèles~:
|
|
|
|
|
stockées dans deux tableaux parallèles que nous allons
|
|
|
|
|
immédiatement garnir de données pertinentes~:
|
|
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
|
integer, parameter :: lg = 500
|
|
|
|
|
real :: x(lg), y(lg)
|
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
|
|
Tableaux que nous allons immédiatement garnir de données pertinentes~:
|
|
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
|
real :: k
|
|
|
|
|
integer :: i
|
|
|
|
|
k = 0.1
|
|
|
|
|
do i = 1, lg
|
|
|
|
|
x(i) = k * sin(real(i)/3.0)
|
|
|
|
|
y(i) = k * cos(real(i)/3.0)
|
|
|
|
|
y(i) = k * cos(real(i)/5.0)
|
|
|
|
|
k = k * 1.006021
|
|
|
|
|
enddo
|
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
|
|
Wesh gro !
|
|
|
|
|
Une fois en possession de ces données conceptuelles, que l'on peut
|
|
|
|
|
aisément voire comme un cheminement, nous allons demander
|
|
|
|
|
au crayon de se promener sur notre feuille virtuelle en suivant
|
|
|
|
|
ce chemin~:
|
|
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
|
call plcol0 (12)
|
|
|
|
|
call plline (x, y)
|
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
|
|
Au passage, vous pouvez remarquer la magie du Fortran moderne~:
|
|
|
|
|
il n'est plus nécessaire de signifier la dimension des tableaux
|
|
|
|
|
lors de l'appel de la procédure.
|
|
|
|
|
|
|
|
|
|
% --------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|