Formation Fortran 2003 et 2008

Formation Fortran 2003 et 2008

Cette formation présente la syntaxe de Fortran 2003 et 2008. Elle permet de développer des programmes autonomes ou d’intervenir dans des applications de calcul (conditions aux limites, modèles de comportement, …) ainsi que de convertir des anciens codes Fortran dans ces nouvelles normes.

Formation Fortran 2003 et 2008

Objectifs

  • Acquérir l’ensemble des nouveautés des normes Fortran 2003 et 2008
  • Utiliser la programmation orientée objet en Fortran
  • Maîtriser les nouvelles fonctionnalités d'interopérabilité C
  • Exploiter les améliorations des entrées/sorties et de l'allocation mémoire

Programme

Vue d'ensemble des évolutions

  • Historique : Fortran 90 et 95, 2003 et 2008, 2018 et 2023
  • Compatibilité ascendante et migration progressive
  • Vérification du support d’une fonctionnalité avec les versions des compilateurs

Améliorations syntaxiques de base

  • Nouveaux attributs (VALUE, PROTECTED)
  • Énumérations (ENUM, BIND(C))
  • ISO_FORTRAN_ENV
  • Simplification des expressions (ASSOCIATE)
  • Bloc d’instructions (BLOCK, variables locales, EXIT)
  • Procédures IMPURE ELEMENTAL
  • ERROR STOP
  • Pointeurs de procédure
  • Interfaces abstraites
  • IMPORT

Optimisations mémoire

  • CONTIGUOUS
  • Allocation automatique lors des affectations
  • Arguments ALLOCATABLE
  • MOVE_ALLOC

Réalisation de boucles (Fortran 2008)

  • Utilisation de DO CONCURRENT
  • Spécifications LOCAL, LOCAL_INIT, SHARED, DEFAULT (NONE) (Fortran 2018)
  • Obsolescence de FORALL
  • Parallélisation avec les options de compilation

Types dérivés étendus (Fortran 2003)

  • Attribut PRIVATE dans un module
  • Héritage avec EXTENDS
  • Interrogations (SAME_TYPE_AS,EXTENDS_TYPE_OF )
  • Finalizers (destructeurs)

Polymorphisme

  • Utilisation de CLASS
  • Différence entre TYPE et CLASS
  • Utilisation de CLASS(*)
  • Détermination du type (SELECT TYPE, TYPE IS , CLASS IS, …)
  • Allocation avec initialisation (SOURCE=)
  • Allocation avec copie de type (MOLD=)

Liaisons de procédures (Type-Bound Procedures)

  • Déclaration de fonction membres de type
  • Attributs PASS et NOPASS
  • Héritage et surcharge (NON_OVERRIDABLE)
  • Définition de fonctions et opérateurs génériques d’un type

Classes abstraites et interfaces

  • Types ABSTRACT
  • Liaisons DEFERRED

Interfaçage avec C

  • Module ISO_C_BINDING : C_INT, C_DOUBLE, C_CHAR, BIND(C), C_PTR et C_FUNPTR, C_LOC, C_F_POINTER, C_ASSOCIATED, C_NULL_PTR, C_F_PROCPOINTER
  • Appel de fonctions C depuis Fortran
  • Appel de fonctions Fortran depuis C
  • Passage de tableaux et structures
  • Passage des chaînes de caractères
  • Passage de pointeurs de fonction

Entrées/Sorties avancées

  • Accès aux flux d'E/S (STREAM access)
  • Spécificateurs ASYNCHRONOUS I/O
  • NEWUNIT
  • IOMSG=, ROUND=, DECIMAL=, FLUSH, IS_IOSTAT_END/EOR, NEW_LINE
  • Descripteur G0.
  • Descripteurs de formatage dérivés
  • Lecture/écriture binaire positionnelle
  • Compatibilité avec fichiers C
  • INQUIRE

Sous module (Fortran 2008)

  • Séparation interface/implémentation
  • Hiérarchie de sous module
  • Compilation séparée améliorée

Arithmétique IEEE-754 et traitement des exceptions

  • Standard IEEE-754
  • Modules intrinsèques
  • Fonctions d’interrogation
  • Procédures de gestion du mode d’arrondi
  • Gestion des exceptions
  • Procédures de gestion des interruptions
  • Procédures de gestion du contexte arithmétique

Introduction aux coarrays (Fortran 2008)

  • Modèles de programmation parallèle : MPI, OpenMP, Coarrays
  • Notion d’image et de coarray
  • Synchronisation d’image (CRITICAL, LOCK, SYNC)
  • ATOMIC_DEFINE/ATOMIC_REF, SYNC MEMORY
  • Fonctions intrinsèques (THIS_IMAGE, NUM_IMAGES, IMAGE_INDEX, LCOBOUND/UCOBOUND)

Nouvelles fonctions intrinsèques

  • EXECUTE_COMMAND_LINE, GET_COMMAND_ARGUMENT, COMMAND_ARGUMENT_COUNT, GET_ENVIRONMENT_VARIABLE
  • STORAGE_SIZE, C_SIZEOF
  • NORM2, HYPOT
  • BESSEL_*, ERF, ERFC, GAMMA
  • FINDLOC, IS_CONTIGUOUS

Introduction à Fortran 2018 et 2023

  • TYPE(*)
  • IMPLICIT NONE (EXTERNAL)
  • Coarrays : fonctions d’agrégation ( CO_SUM, …), teams, événements
  • Améliorations IEEE : IEEE_MODES_TYPE, IEEE_GET_MODES, IEEE_SET_MODES, IEEE_AWAY
  • Expressions conditionnelles et arguments conditionnels
  • Sous-routines pures SPLIT et TOKENIZE
  • Types énumération (ENUMERATION TYPE)

Constructions du Fortran 77 ou 95 à éviter

  • GOTO calculé, IF arithmétique
  • Etiquettes numériques
  • ENTRY
  • RETURN alternatifs
  • FORALL
  • COMMON, BLOCK DATA
  • INCLUDE

Télécharger le programme détaillé

En savoir plus

Référence

Fortran2003-2008

Durée

4 jours

Prochaines sessions
Inter Entreprises

Grenoble : 12 - 15 octobre 2026 S'inscrire

Grenoble : 16 - 19 novembre 2026 S'inscrire

Grenoble : 7 - 10 décembre 2026 S'inscrire

Sessions
Intra Entreprise

Des sessions intra-entreprise peuvent être organisées dans vos locaux ou en distanciel. Demander un devis

Pré requis

Avoir de bonnes connaissances de Fortran 90/95

Public

Chercheurs, Ingénieurs

Points forts

Petit groupe (4 personnes maximum)

Un poste de travail par personne

Formateur très pédagogue, développeur, avec 20 ans d'expérience d'enseignement

50 % d'exercices pratiques

Support de cours fourni

Assistance après la formation

Coût

2800 € HT - 2800 € TTC