ATELIER IRPF90

Anthony SCEMAMA

IRPF90 : un outil facilitant le développement de gros codes Fortran

Dans les langages impératifs, le développeur doit nécessairement connaître la séquence des intructions :
avant d'utiliser une variable, il doit être sûr qu'elle a bien été construite et que sa valeur est toujours valide dans le contexte voulu.
Au fur et à mesure que la taille du code croît, le programme peut atteindre un tel niveau de complexité qu'il devient presque impossible de garantir la validité d'une variable dans tous les contextes possibles. On fait donc souvent appel aux tests de non-régression pour trouver les bugs de ce type.

IRPF90 est un préprocesseur qui produit du code Fortran. Dans cet environnement, l'utilisateur n'a plus besoin de connaître l'arbre de dépendance entre les variables car il est construit automatiquement par le préprocesseur. Ainsi lorsqu'une variable doît utilisée, si sa valeur n'est pas valide dans le contexte actuel, elle est automatiquement re-calculée de façon à garantir sa validité au moment de l'utilisation. Ainsi, la complexité perçue par le développeur ne dépend plus de la taille du code et introduire une nouvelle fonctionnalité devient aussi simple dans un code de 100 000 lignes que dans un code de 1 000 lignes.


PUBLIC :

Personnel de l'Enseignement Supérieur et de la Recherche

Pré-requis : Parler Fortran 90 couramment ;-) (Ecrire déja en F90)

Configuration machine
PC configuré sous Linux avec :

  • un compilateur Fortran installé, genre gfortran, ifort ou pgf90 (déjà testés et ok).
  • Python doit être installé en version 2.4 ou supérieure (s'installe par défaut dans les distributions Linux)
  • Make.

DATE du STAGE:

Lundi 30 mai 2011.


LIEU :

Observatoire Midi-Pyrénées


ORGANISATION:

COMPIL


COÛT :

GRATUIT


PROGRAMME :

  • Présentation de l'outil (1h30)
  • Travaux Pratiques (1h30)

NB : Le stage se déroulera en binome

Site de référence

 


menu/viereseau/ateliers/ateliers201106/a01.txt · Dernière modification: 2011/04/29 09:14 de elodie
 
Recent changes RSS feed Powered by PHP Powered by Pxxo Driven by DokuWiki