Bibliothèques graphiques avec Fortran

Il existe plusieurs possibilités pour réaliser des graphiques à partir d'un programme Fortran. La plus simple est d'utiliser l'émulateur de terminal TekTronix. Pour des sorties graphiques plus avancées, il vaut mieux utiliser une des bibliothèques graphiques X11 disponible sous linux. Les deux solutions standard sont GKS (2D) et OpenGL (3D). Il existe également DISLIN et PLPlot qui sont plus spécialement destinées à la représentation graphique des données (histogrammes, courbes etc...).

GKS

GKS (acronyme de "Graphical Kernel System") est une norme ISO (n°7942) ECMA-96 et ANSI (X3.124.1985) introduite en 1985 pour permettre d'écrire des applications graphiques 2D de manière indépendante du matériel (modèle d'ordinateur, écran ou imprimante) utilisé. La norme définit les fonctions d'entrées-sorties graphiques qui doivent être réalisées. Les commandes donnant accès aux fonctions GKS sont normalisées pour les langages Fortran (ISO/DIS 8651/1 et ANSI X3.124-1), C (ISO/IEC 8651/4), Ada(ISO/DP 8651/3 et ANSI X3.124.3-1989) et Pascal (ISO/DIS 8651/2 et ANSI X3.124.2). Des commandes donnant accès aux fonctions GKS avec Algol 68 ont été proposées par R. R. Martin et C. Anderson dans Computer Graphics Forum 4, 43 (1985). La normeECMA-116 pour le langage BASIC prévoit aussi des commandes pour accéder aux fonctions GKS. Il existe plusieurs niveaux possibles pour GKS: m (reconnu seulement par l'ANSI),0,1,2 pour les sorties et A,B,C pour les entrées. Le niveau minimal pour les sorties est m, le maximum est 2. Pour les entrées, le niveau minimal est A (aucune fonction d'entrée), le maximum C (entrées synchrones et asynchrones). Une documentation importante sur le standard GKS est disponible en ligne. Plusieurs implémentations de GKS sont disponibles sous Linux.

GLI-GKS

Ce sous ensemble de GKS a été developpée par Josef Heinen à Jülich. Il peut être installé sous Unix, VMS et MS-DOS. Le graphiques peuvent être visualisés dans une fenêtre X-Window ou enregistrés dans un fichier au format CGM,PBM, Postscript ou PDF. Les sources sont disponibles sur http://iffwww.iff.kfa-juelich.de/gli/.

Installation

tar zxvf gligks-20080208.tar.gz cd gks make pclinux make install le ficher libgks.a sera installé dans /usr/local/lib/.

Utilisation

gfortran prog.f -L/usr/local/lib -lgks -lX11

XGKS

XGKS est une implémentation complète de GKS niveau 2C developpée par l'Université de l'Illinois (Urbana-Champaign) avec le soutien d'IBM. On peut obtenir les sources sur http://xgks.sourceforge.net/. La version la plus récente est xgks-2.6.

Installation

L'installation de XGKS version 2.6 demande de télécharger depuis xgks.sourceforge.net le paquet source xgks-2.6.tar.Z, le fichier de définitions linux.m4 et le patch xgks-patch-2.6.diff. Les commandes pour l'installation sont: tar Zxvf xgks-2.6.tar.Z mv linux.m4 xgks-2.6/src/port/fortc patch -p0 < xgks-patch-2.6.diff cd xgks-2.6 /src/ ./configure --prefix=/usr/local make make install Le fichier libxgks.a sera installé dans /usr/local/lib.

Utilisation

gfortran prog.f -L/usr/local/lib -lxgks -lX11

XGKS-PMEL

C'est une version modifiée de XGKS. On peut obtenir les sources à partir de http://www-pcmdi.llnl.gov/. Il est plus simple de se servir du paquet source Gentoo qui est déjà patché.

Installation

tar zxvf xgks-pmel-2.5.5.tar.gz export LD_X11='-L/usr/X11/lib -lX11' ./configure make make install

OpenGL

f90gl

OpenGL est une bibliothèque graphique développée par Silicon Graphics, Inc. pour les stations de travail IRIX. Mesa est une version domaine public (licence MIT) d'OpenGL. f90gl est une interface Fortran 90 pour OpenGL. La page GfortranBuild explique comment installer f90gl avec Mesa et gfortran.

VOGLE

Il existe également des implémentations du domaine public plus anciennes que Mesa comme Vogle qui sont encore disponibles sur des serveurs FTP. Cependant, ces implémentations doivent être patchées pour pouvoir être compilées avec des versions récentes de gcc. Pour installer vogle, il faut récupérer le fichier source vogle2.0b0.tar.gz et le décompresser par: tar zxvf vogle2.0b0.tar.gz. Ensuite, modifier le Makefile. mv Makefile Makefile.orig mv Makefile.gcc Makefile emacs Makefile Dans le Makefile, il faut avoir: DEVICES = -DX11 -DPOSTSCRIPT -DPPM -DHPDXY DOBJS = ../drivers/X11.o ../drivers/ps.o ../drivers/ppm.o ../drivers/hpdxy.o RANLIB = ranlib CFLAGS = -DSYS5 -DNEEDPOPENDEF -O -ansi -Wall -I/usr/X11R6/include FFLAGS = -O Il faut ensuite éditer le fichier src/drivers.c et changer la ligne: static FILE *fp = stdout; en static FILE *fp; La bibliothèque VOGLE est utilisable (sur les ordinateurs SUN) avec C, Fortran et Pascal. Sur Linux, elle est utilisable avec gcc et gfortran. Sa compatibilité avec gpc n'est pas certaine.

Autres

Dislin

La bibliothèque DISLIN est gratuite pour une utilsation non-commerciale. Elle se télécharge sous forme binaire seulement (pour Sparc, Intel ou Alpha) à partir de ftp://ftp.gwdg.de/pub/grafik/dislin/linux/. Elle offre des primitives graphiques plus riches que GKS (effets tridimensionnels, contours, cartes, diagrammes camemberts).

PLPlot

La bibliothèque http://plplot.sourceforge.net/ permet de tracer des graphes, des histogrammes et des diagrammes camembert.

PSPlot

Disponible depuis http://www.nova.edu/ocean/psplot.html. Cette bibliothèque permet de réaliser des graphiques en Postscript.

PGPlot

http://www.astro.caltech.edu/~tjp/pgplot/ (La dernière version date de 2001, non testée avec une version récente de Linux)
Page principale