## Documentation de la bibliothèque MED-fichier V2.2 : Paramètres de base de l'interface FORTRAN

Sommaire de la page
Introduction Taille des chaînes de caractères Mode d'accès au fichier Mode de stockage des données en mémoire Type du maillage Type d'une grille structurée Type d'une entité du maillage Type géométrique d'un élément Mode d'accès aux attributs des entités Mode de connectivité Type du repère des coordonnées Type des composantes d'un champ Paramètres constants utiles à la lecture et à l'écriture des champs Type de définition du stockage mémoire des profils de champs Type des données à monter dans un fichier Type booléen

Retour à la page de garde du guide de référence

# Introduction

Tout ce qui suit est disponible dans le fichier "med.hf". Tous les paramètres qui sont décrits sont utiles à la définition des paramètres des routines de l'API.

# Tailles des chaînes de caractères

La taille des chaînes de caractères est standardisée en fonction de l'information représentée :

- Les unités et les noms des unités sont des chaînes de 16 caractères.
- Les noms des structures de données (champ, maillage, famille, ...) sont des chaînes de 32 caractères.
- Les noms des groupes d'une familles sont codés sur 80 caractères.
- Les descriptions sont chaînes de 200 caractères.

# Mode d'accès aux fichiers

    integer MED_LECTURE,MED_LECTURE_ECRITURE
    integer MED_LECTURE_AJOUT,MED_CREATION
    parameter (MED_LECTURE=0,MED_LECTURE_ECRITURE=1)
    parameter (MED_LECTURE_AJOUT=2,MED_CREATION=3)

Définit le mode d'accès aux données d'un fichier MED qui est spécifié à l'ouverture du fichier ( routine efouvr) :

- MED_LECTURE : Ouverture en lecture seule. Il est alors impossible de modifier le contenu du fichier.
- MED_LECTURE_ECRITURE : Ouverture en lecture/écriture du fichier. Si une donnée existe déjà et qu'on la réécrit, elle est écrasée.
- MED_LECTURE_AJOUT : Ouverture en lecture/écriture du fichier. L'écriture n'est possible que pour ajouter de nouvelles données : si une donnée existe et qu'on tente de la réécrire dans le fichier, une erreur est générée.
- MED_CREATION : Création du fichier s'il n'existe pas, écrasement sinon.

# Mode d'accès aux données en mémoire

    integer MED_FULL_INTERLACE, MED_NO_INTERLACE
    parameter (MED_FULL_INTERLACE=0, MED_NO_INTERLACE=1)

Ces paramètres définissent le mode de stockage des données en mémoire. On trouve deux modes possibles :

- MED_FULL_INTERLACE : Mode entrelacé.
- MED_NO_INTERLACE : Mode non entrelacé.

Exemple d'utilisation : Stockage des coordonnées dans un tableau en mémoire dans un repère cartésien à 3 dimensions.

- En mode entrelacé : X1, Y1, Z1, X2, Y2, Z2, .... , Xn, Yn, Zn.
- En mode non entrelacé : X1, X2, ..., Xn, Y1, Y2, ..., Yn, Z1, Z2, ..., Zn

Conventions utilisées :

- Dans un fichier MED, les données sont stockées en mode non entrelacé (MED_NO_INTERLACE). La conversion éventuelle vers ou à partir de la mémoire en mode entrelacé est réalisée automatiquement par les routines de l'API.
- Chaque code est libre de gérer ses données en mémoire selon l'un des deux modes.

# Type du maillage

    integer MED_NON_STRUCTURE, MED_STRUCTURE
    parameter (MED_NON_STRUCTURE=0,MED_STRUCTURE=1)

Permet de typer un maillage selon les 2 catégories possibles :

1. MED_NON_STRUCTURE : Permet de définir un maillage non structuré.
2. MED_STRUCTURE : Permet de définir un maillage structuré.

Correspond au type med_maillage défini dans le package "Maillage" du modèle de données.

# Type d'une grille structurée

    integer MED_GRILLE_CARTESIENNE, MED_GRILLE_POLAIRE
    integer MED_GRILLE_STANDARD
    parameter (MED_GRILLE_CARTESIENNE=0,MED_GRILLE_POLAIRE=1)
    parameter (MED_GRILLE_STANDARD=2)

Permet de typer une grille (maillage structuré) :

1. MED_GRILLE_CARTESIENNE : Permet de définir une grille cartésienne.
2. MED_GRILLE_POLAIRE : Permet de définir une grille polaire.
3. MED_GRILLE_STANDARD : Permet de définir une grille standard.

Correspond au type med_type_grille défini dans le package "Maillage" du modèle de données.

# Type d'une entité d'un maillage

    integer MED_MAILLE, MED_FACE, MED_ARETE, MED_NOEUD
    parameter (MED_MAILLE=0,MED_FACE=1,MED_ARETE=2,MED_NOEUD=3)

Définit les différents types d'entités qui composent un maillage.

- MED_MAILLE : maille.
- MED_FACE : face (connectivité descendante).
- MED_ARETE : arête (connectivité descendante).
- MED_NOEUD : noeud.

# Type géométrique d'un élément

    integer MED_POINT1,MED_SEG2,MED_SEG3,MED_TRIA3,MED_TRIA6
    integer MED_QUAD4,MED_QUAD8,MED_TETRA4,MED_TETRA10,MED_HEXA8
    integer MED_HEXA20,MED_PENTA6,MED_PENTA15,MED_PYRA5,MED_PYRA13
    integer MED_POLYGONE, MED_POLYEDRE, MED_NONE

    parameter (MED_POINT1=1,MED_SEG2=102,MED_SEG3=103,MED_TRIA3=203)
    parameter (MED_TRIA6=206,MED_QUAD4=204,MED_QUAD8=208)
    parameter (MED_TETRA4=304,MED_TETRA10=310,MED_HEXA8=308)
    parameter (MED_HEXA20=320,MED_PENTA6=306)
    parameter (MED_PENTA15=315,MED_PYRA5=305,MED_PYRA13=313)
    parameter (MED_POLYGONE = 400, MED_POLYEDRE = 500, MED_NONE=0)

Définit les différents types géométriques des éléments d'un maillage (mailles/faces/arêtes) :

- MED_POINT1 : point à 1 noeud.
- MED_SEG2 : segment à 2 noeuds.
- MED_SEG3 : segment à 3 noeuds.
- MED_TRIA3 : triangle à 3 noeuds.
- MED_TRIA6 : triangle à 6 noeuds.
- MED_QUAD4 : quadrangle à 4 noeuds.
- MED_QUAD8 : quadrangle à 8 noeuds.
- MED_TETRA4 : tétraèdre à 4 noeuds.
- MED_TETRA10 : tétraèdre à 10 noeuds.
- MED_HEXA8 : hexaèdre à 8 noeuds.
- MED_HEXA20 : hexaèdre à 20 noeuds.
- MED_PENTA6 : pentaèdre à 6 noeuds.
- MED_PENTA15 : pentaèdre à 15 noeuds.
- MED_PYRA5 : pyramide à 5 noeuds.
- MED_PYRA13 : pyramide à 13 noeuds.
- MED_POLYGONE : polygone quelconque.
- MED_POLYEDRE : polyèdre quelconque.
- MED_NONE : vide.

Remarques :

1. Correspondent
   - Aux mailles : tous les types géométriques possibles.
   - Aux faces : les entités de dimension 2 : MED_TRIA3, MED_TRIA6, MED_QUAD4, MED_QUAD8, MED_POLYGONE.
   - Aux arêtes : les entités de dimension 1 : MED_SEG2, MED_SEG3.
2. Constantes littérales associées :

       integer MED_NBR_GEOMETRIE_MAILLE
       integer MED_NBR_GEOMETRIE_FACE
       integer MED_NBR_GEOMETRIE_ARETE
       parameter (MED_NBR_GEOMETRIE_MAILLE = 15,MED_NBR_GEOMETRIE_FACE=4)
       parameter (MED_NBR_GEOMETRIE_ARETE = 2)

   Ces constantes correspondent au nombre de types de mailles/faces/arêtes dont la géométrie est pré-définie (les types MED_POLYGONE et MED_POLYEDRE ne sont donc pas comptés).
3. A noter que des valeurs entières sont associées à chaque type géométrique : pour chacune, le premier chiffre indique la dimension de l'entité, son modulo 100 son nombre de noeuds. Ces conventions ne s'appliquent pas aux types MED_POLYGONE et MED_POLYEDRE.

# Mode d'accès aux attributs des entités

    integer MED_COOR, MED_CONN, MED_NOM, MED_NUM, MED_FAM
    integer MED_COOR_IND1,MED_COOR_IND2,MED_COOR_IND3
    parameter (MED_COOR=0,MED_CONN=1,MED_NOM=2,MED_NUM=3,MED_FAM=4)
    parameter (MED_COOR_IND1=5,MED_COOR_IND2=6,MED_COOR_IND3=7)

Permet d'accéder à un type d'attribut interne des entités d'un maillage.

- MED_COOR : coordonnées des noeuds.
- MED_CONN : connectivité des mailles/faces/arêtes.
- MED_NOM : noms des noeuds/mailles/faces/arêtes.
- MED_NUM : numéros des noeuds/mailles/faces/arêtes.
- MED_FAM : familles des noeuds/mailles/faces/arêtes.
- MED_COORD_IND1 : coordonnées des indices de l'axe 1 d'une grille.
- MED_COORD_IND2 : coordonnées des indices de l'axe 2 d'une grille.
- MED_COORD_IND3 : coordonnées des indices de l'axe 3 d'une grille.

# Mode de connectivité

    integer MED_NOD, MED_DESC
    parameter (MED_NOD=0, MED_DESC=1)

Il existe deux modes de connectivité pour décrire la connectivité des mailles d'un maillage :

- MED_NOD : connectivité nodale.
- MED_DESC : connectivité descendante.

Remarques :

1. Dans le cadre de la connectivité nodale, les mailles sont décrites par la liste des noeuds qui les composent. Pour la connectivité descendante, les mailles sont décrites par les faces, les faces par les arêtes, les arêtes par les noeuds.
2. Il n'y a pas de conversion automatique entre les 2 modes de représentation. Si les mailles sont stockées dans un fichier en mode nodale, un code ne pourra pas les lire en mode descendant.

# Type du repère des coordonnées

    integer MED_CART, MED_CYL, MED_SPHER
    parameter (MED_CART=0,MED_CYL=1, MED_SPHER=2)

Définit le type du repère des coordonnées des noeuds dans un maillage non structuré :

- MED_CART : cartésien.
- MED_CYL : cylindrique.
- MED_SPHER : sphérique.

# Type des composantes d'un champ

    integer MED_INT32,MED_INT64,MED_FLOAT64
    parameter (MED_INT32=24, MED_INT64=26,MED_FLOAT64=6)

Il s'agit du type des valeurs des composantes d'un champ.

- MED_FLOAT64 : flottant 64 bits IEEE.
- MED_INT32 : entier 32 bits.
- MED_INT64 : entier 64 bits.

# Paramètres constants utiles à la lecture et à l'écriture des champs

Ces constantes sont à utiliser pour le paramétrage des routines sur les champs de résultats.

    C Pas de point de Gauss
    integer MED_NOPG
    parameter (MED_NOPG = 1)

    character*32 MED_NOGAUSS
    parameter (MED_NOGAUSS='                                ')

    C  Pas de profils utilisateur
    integer MED_NOPF
    parameter (MED_NOPF = 0)

    character*32 MED_NOPFL
    parameter (MED_NOPFL='                                ')

    C Pas de pas de temps
    integer MED_NOPDT
    parameter (MED_NOPDT = -1)

    C Pas de numéro d'ordre
    integer MED_NONOR
    parameter (MED_NONOR = -1)

    C Prise en compte de toutes les composantes
    integer MED_ALL
    parameter (MED_ALL = 0)

# Type de définition du stockage mémoire des profils de champs

    integer MED_NO_PFLMOD, MED_GLOBAL, MED_COMPACT
    parameter (MED_NO_PFLMOD=0, MED_GLOBAL=1, MED_COMPACT=2)

Permet de spécifier le mode de répartition des valeurs d'un champ définies sur un profil de champ :

- MED_COMPACT :
  - Seules les valeurs relatives au profil sont en mémoire.
  - Les points de Gauss apparaissent normalement en mémoire.
  - Le mode d'entrelacement mémoire est pris en compte.
- MED_GLOBAL (en test) :
  - La totalité des valeurs du champ sont en mémoire. La librairie MED-fichier s'occupe de sélectionner les valeurs en fonction des numéros indiqués à l'écriture du profil.
  - Les points de Gauss apparaissent normalement en mémoire.
  - Le mode d'entrelacement mémoire est pris en compte.
- MED_NOPFLMOD : aucun mode à gérer (pas de profil).

# Type des données à monter dans un fichier

    integer MED_MAILLAGE
    integer MED_CHAMP
    parameter (MED_MAILLAGE= 0)
    parameter (MED_CHAMP= 1)

Permet de spécifier le type des données stockées dans un fichier différent du fichier courant et que l'on veut monter dans le fichier courant :

- MED_MAILLAGE : accès au(x) maillage(s) du fichier que l'on veut monter.
- MED_CHAMP :accès au(x) champ(s) du fichier que l'on veut monter.

# Type booléen

    logical MED_FAUX, MED_VRAI
    parameter (MED_FAUX=.FALSE.,MED_VRAI=.TRUE.)