## Documentation de la biliothèque MED-fichier V2.3 : Guide de référence - Module "MED_Fichier".

Sommaire de la page
- - Liste des routines Accès direct par le nom Interface C
    MEDformatConforme MEDfermer MEDfichDesEcr MEDfichEntete | MEDlFichDes MEDouvrir MEDversionConforme MEDversionDonner | MEDversionLire MEDmonter MEDdemonter
  - Interface FORTRAN
    effoco efferm effide effien | eflfde efouvr efveco efvedo | efveli efmont efdemo
- Accès thématique
  Création/ouverture d'un fichier Interface C : MEDouvrir Interface FORTRAN : efouvr Fermeture d'un fichier Interface C : MEDfermer Interface FORTRAN : efferm Ecriture d'un descripteur de fichier Interface C : MEDfichDesEcr Interface FORTRAN : effide Lecture de la taille du descripteur d'un fichier Interface C : MEDlFichDes Interface FORTRAN : eflfde Lecture du descripteur d'un fichier Interface C : MEDfichEntete Interface FORTRAN : effien Vérification de la conformité du format HDF d'un fichier Interface C : MEDformatConforme Interface FORTRAN : effoco | Vérification de la conformité du format MED d'un fichier Interface C : MEDversionConforme Interface FORTRAN : efveco Accès au numéro de version de la bibliothèque MED Interface C : MEDversionDonner Interface FORTRAN : efvedo Lire le numéro de version de MED d'un fichier Interface C : MEDversionLire Interface FORTRAN : efveli Monter un fichier dans le fichier courant Interface C : MEDmonter Interface FORTRAN : efmont Démonter un fichier dans le fichier courant Interface C : MEDdemonter Interface FORTRAN : efdemo

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

# Liste des routines

Les routines disponibles permettent de :

- Créer un fichier MED.
- Ouvrir (en lecture ou en écriture) un fichier existant.
- Fermer un fichier.
- Ecrire/lire un descripteur associé à un fichier.
  - Ecrire le descripteur.
  - Lire la taille du descripteur.
  - Lire le descripteur.
- Accéder au numéro de version de la bibliothèque MED que l'on utilise.
- Lire dans un fichier le numéro de version de la bibliothèque MED qui a été utilisée pour le créer.
- Tester si le fichier que l'on veut lire a été créé avec la même version de bibliothèque MED que celle qu'on utilise pour le lire.
- Tester si le fichier que l'on veut lire est au format HDF V5.
- Monter le contenu d'un fichier MED dans le fichier courant.
- Démonter un fichier précédemment monté.

# Création/ouverture d'un fichier

### Interface C

- Nom : MEDouvrir
- Signature :

      med_idt
      MEDouvrir(char *nom, med_mode_acces mode_acces)

- Paramètres :
  - nom (IN) : nom du fichier à ouvrir.
  - mode_acces (IN) : mode d'accès au fichier.
    - 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.
- Code retourné : identificateur (ID) du fichier si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efouvr
- Signature :

      subroutine efouvr(fid, nom, acces, cret)
            character *(*) nom
            integer acces, fid, cret

- Paramètres :
  - fid (OUT) : identificateur (ID) du fichier si réussite.
  - nom (IN) : nom du fichier à ouvrir.
  - acces (IN) : mode d'accès au fichier.
    - 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.
  - cret (OUT) : code retour, 0 si réussite, -1 sinon.

### Description

Cette routine permet de créer ou d'ouvrir un fichier au format MED selon le mode d'accès souhaité.

### Remarques

- Le résultat i.e. l'identificateur entier (ID) retourné sera utilisé par les routines de l'API pour accéder au contenu du fichier.
- Dans MED-fichier V2.3., la gestion des droits d'accès à un fichier MED a été redéfinie. Désormais le droit d'accès au contenu d'un fichier est spécifié à l'ouverture du fichier et uniquement à ce moment là. Si on décide d'ouvrir plusieurs fichiers en même temps, le mode d'accès doit être le même pour tous les fichiers.

# Fermeture d'un fichier

### Interface C

- Nom : MEDfermer
- Signature :

      med_err
      MEDfermer(med_idt fid)

- Paramètres :
  - fid (IN) : identificateur du fichier à fermer.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efferm
- Signature :

      subroutine efferm(fid, cret)
            integer fid,cret

- Paramètres :
  - fid (IN) : identificateur du fichier à fermer.
  - cret (OUT) : Code retourné, 0 si réussite, -1 sinon.

### Description

Cette routine permet de fermer un fichier MED.

### Remarques

En cas d'accès en écriture à un fichier MED, la garantie que les données sont physiquement écrites dans le fichier n'est donnée que suite à l'appel de cette routine.

# Ecriture du descripteur d'un fichier

### Interface C

- Nom : MEDfichDesEcr
- Signature :

      med_err
      MEDfichDesEcr(med_idt fid, char *des)

- Paramètres :
  - fid (IN) : identificateur du fichier MED.
  - des (IN) : description (MED_TAILLE_DESC caractères) à associer au fichier.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : effide
- Signature :

      subroutine effide (fid,des,cret)
           integer fid,cret
           character*(*) des

- Paramètres :
  - fid (IN) : identificateur du fichier MED.
  - des (IN) : description (MED_TAILLE_DESC caractères) à associer au fichier.
  - cret (OUT) :code retour, 0 si réussite, -1 sinon.

### Description

Cette routine permet d'associer une description à un fichier : la description est écrite dans le fichier.

### Remarques

- La taille de la description doit être au maximum de MED_TAILLE_DESC (200) caractères.

# Lecture de la taille du descripteur d'un fichier

### Interface C

- Nom : MEDlFichDes
- Signature :

      med_int
      MEDlFichDes(med_idt fid)

- Paramètres :
  - fid (IN) : identificateur du fichier MED.
- Code retourné : longueur de la description associée au fichier si réussite, -1 sinon.

### Interface FORTRAN

- Nom : eflfde
- Signature :

      subroutine eflfde (fid,lon,cret)
            integer fid,cret,lon

- Paramètres :
  - fid (IN) : descripteur du fichier MED.
  - lon (OUT) : longueur de la description associée au fichier.
  - cret (OUT) : code retour, 0 si réussite, -1 sinon.

### Description

Retourne la longueur de la description associée à un fichier MED si cette description existe.

### Remarques

L'appel à cette routine est utile pour estimer la taille mémoire à allouer avant d'effectuer la lecture de l'en-tête du fichier.

# Lecture du descripteur d'un fichier

### Interface C

- Nom : MEDfichEntete
- Signature :

      med_err
      MEDfichEntete(med_idt fid, med_fich_info quoi, char str[])

- Paramètres :
  - fid (IN) : identificateur du fichier MED.
  - quoi (IN) : quelle information ?
    - MED_HDF_VERSION : version de la bibliothèque HDF utilisée.
    - MED_VERSION : version de la bibliothèque MED utilisée.
    - MED_FICH_DES : description associée au fichier.
  - str (OUT) : chaîne de caractères retournée.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : effien
- Signature :

      subroutine effien (fid,quoi,str,cret)
            integer fid,quoi,cret
            character*(*) str

- Paramètres :
  - fid (IN) : identificateur du fichier MED.
  - quoi (IN) : quelle information ?
    - MED_HDF_VERSION : version de la bibliothèque HDF utilisée.
    - MED_VERSION : version de la bibliothèque MED.
    - MED_FICH_DES : description associée au fichier.
  - str (OUT) : chaîne de caractères retournée.
  - cret (OUT) : code retour, 0 si réussite, -1 sinon.

### Description

Cette routine permet de lire dans un fichier MED existant selon les paramètres utilisés :

- La version de HDF utilisée, résultat renvoyé sous forme de chaîne de caractères.
- La version de MED utilisée, résultat renvoyé sous forme de chaîne de caractères.
- Le descripteur associé au fichier s'il existe.

### Remarques

La présence du descripteur dans un fichier MED est optionnelle.

# Vérification de la conformité du format HDF d'un fichier

### Interface C

- Nom : MEDformatConforme
- Signature :

      med_err
      MEDformatConforme(const char *nom)

- Paramètres :
  - nom (IN) : nom du fichier dont on veut vérifier le format HDF.
- Code retourné : 0 si le fichier est au format HDF V5 (peu importe la version HDF V5-X.Y.Z), -1 sinon.

### Interface FORTRAN

- Nom : effoco
- Signature :

      subroutine effoco(nom, cret)
            integer cret
            character* (*) nom

- Paramètres :
  - nom (IN) : nom du fichier dont on veut vérifier le format HDF.
  - cret (OUT) : 0 si le fichier est au format HDF V5 (peu importe la version HDF V5-X.Y.Z), -1 sinon.

### Description

Cette routine permet de tester si un fichier est au format HDF V5.

### Remarques

Cette routine est utile pour constituer un premier test avant d'ouvrir un fichier MED existant. Elle permet de détecter par exemple si le fichier passé en argument est un fichier au format HDF V4 ou autre.

# Vérification de la conformité du format MED d'un fichier

### Interface C

- Nom : MEDversionConforme
- Signature :

      med_err
      MEDversionConforme(const char *nom)

- Paramètres :
  - nom (IN) : nom du fichier dont on veut vérifier le format MED.
- Code retourné : 0 si le fichier a été créé avec la même version de la bibliothèque MED que celle utilisée pour lire le fichier, -1 sinon.

### Interface FORTRAN

- Nom : efveco
- Signature :

      subroutine efveco(nom, cret)
            integer cret
            character* (*) nom

- Paramètres :
  - nom (IN) : nom du fichier dont on veut vérifier le format MED.
  - cret (OUT) : 0 si le fichier a été créé avec la même version de la bibliothèque MED que celle utilisée pour lire le fichier, -1 sinon.

### Description

Cette routine permet de tester si un fichier que l'on veut lire a été créé avec la même version de la bibliothèque MED que celle utilisée pour lire ce fichier.

### Remarques

- Cette routine est utile pour constituer un second test avant d'ouvrir un fichier MED existant : elle permet de vérifier si le fichier que l'on veut ouvrir a été créé avec la version de MED utilisée.
- Avertissement : il y a non compatibilité entre un fichier MED V2.1 et un fichier V2.3, il est nécessaire de convertir un fichier MED V2.1 avec l'utilitaire "medimport" afin de pouvoir lire le fichier MED V2.3 ainsi créé avec la bibliothèque MED-fichier V2.3.

# Accès au numéro de version de la bibliothèque MED

### Interface C

- Nom : MEDversionDonner
- Signature :

      void
      MEDversionDonner(med_int *majeur, med_int *mineur, med_int *release)

- Paramètres :
  - majeur (OUT) : Numéro de version majeur.
  - mineur (OUT) : Numéro de version mineur.
  - release (OUT) : Numéro de release.
- Code retourné : aucun.

### Interface FORTRAN

- Nom : efvedo
- Signature :

      subroutine efvedo(maj,min,rel,cret)
            integer maj,min,rel,cret

- Paramètres :
  - maj (OUT) : Numéro de version majeur.
  - min (OUT) : Numéro de version mineur.
  - rel (OUT) : Numéro de release.
  - cret (OUT) : 0 si réussite, -1 sinon.

### Description

Cette routine renvoie les entiers composant le numéro de version de la bibliothèque :

- numéro majeur : 2.
- numéro mineur : 3.
- numéro de release : 0.

### Remarques

# Lire le numéro de version de MED d'un fichier

### Interface C

- Nom : MEDversionLire
- Signature :

      med_err
      MEDversionLire(med_idt fid, med_int *majeur, med_int *mineur, med_int *release)

- Paramètres :
  - fid (IN) : ID du fichier.
  - majeur (OUT) : Numéro de version majeur.
  - mineur (OUT) : Numéro de version mineur.
  - release (OUT) : Numéro de release.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efveli
- Signature :

      subroutine efveli(fid,maj,min,rel, cret)
            integer fid,maj,min,rel,cret

- Paramètres :
  - fid (IN) : ID du fichier.
  - maj (OUT) : Numéro de version majeur.
  - min (OUT) : Numéro de version mineur.
  - rel (OUT) : Numéro de release.
  - cret (OUT) : 0 si réussite, -1 sinon.

### Description

Cette routine donne les entiers composant le numéro de version de la bibliothèque MED-fichier qui a été utilisée pour créer le fichier auquel on accède vie l'ID fid. Par exemple, dans le cas d'un fichier créé avec MED-fichier V2.1.5, on obtient :

- numéro majeur : 2.
- numéro mineur : 1.
- numéro de release : 5.

### Remarques

Attention, si le fichier a été créé avec une version antérieure à MED-fichier V2.1.5 (MED V2.0, MED V2.1.1, MED V2.1.2, MED V2.1.3, MED V2.1.4), la routine renverra :

- numéro majeur : 2.
- numéro mineur : -1.
- numéro de release : -1.

# Monter un fichier dans le fichier courant

### Interface C

- Nom : MEDmonter
- Signature :

      med_idt
      MEDmonter(med_idt fid, const char *acces, med_type_donnee type)

- Paramètres :
  - fid (IN) : ID du fichier courant.
  - acces (IN) : Le nom du fichier que l'on veut monter.
  - type (IN) : Type des données auxquelles on veut accéder :
    - 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.
- Code retourné : (ID) du point de montage si réussite, -1 si échec du montage.

### Interface FORTRAN

- Nom : efmont
- Signature :

      subroutine efmont(fid,acces,type,mid,cret)
            integer cret,fid,mid,type
            character* (*) acces

- Paramètres :
  - fid (IN) : ID du fichier courant.
  - acces (IN) : Le nom du fichier que l'on veut monter.
  - type (IN) : Type des données auxquelles on veut accéder :
    - 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.
  - mid (OUT) : (ID) du point de montage.
  - cret (OUT) : 0 en cas de réussite du montage, -1 sinon.

### Description

Cette routine permet de monter le contenu d'un fichier MED (soit les maillages, soit les champs) dans le fichier MED courant.

### Remarques

- Cette routine est utile quand les champs et les maillages d'une étude se situent dans des fichiers différents.
- Le montage est sélectif : on monte soit les maillages, soit les champs.
- Une fois le montage effectué, l'accès aux données montées est transparent.
- Avertissement : Un point de montage masque temporairement les données du fichier courant. Exemple : si on monte dans le fichier courant les maillages d'un autre fichier, les propres maillages du fichier courant sont inaccessibles tant que le montage est actif.

# Démonter un fichier dans le fichier courant

### Interface C

- Nom : MEDdemonter
- Signature :

      med_err
      MEDdemonter(med_idt fid, med_idt mid, med_type_donnee type)

- Paramètres :
  - fid (IN) : ID du fichier courant.
  - mid (IN) : ID du point de montage actif.
  - type (IN) : Type des données qui sont montées dans le fichier courant :
    - MED_MAILLAGE : maillage(s).
    - MED_CHAMP : champ(s).
- Code retourné : 0 si réussite, -1 si échec du démontage.

### Interface FORTRAN

- Nom : efdemo
- Signature :

      subroutine efdemo(fid,mid,type,cret)
            integer cret,fid,mid,type

- Paramètres :
  - fid (IN) : ID du fichier courant.
  - mid (IN) : (ID) du point de montage actif.
  - type (IN) : Type des données qui sont montées dans le fichier courant:
    - MED_MAILLAGE : maillage(s).
    - MED_CHAMP : champ(s).
  - cret (OUT) : 0 en cas de réussite du démontage, -1 sinon.

### Description

Cette routine permet désactiver un point de montage.

### Remarques

Une fois le démontage effectué, les données précédemment montées ne sont plus accessibles et les données du fichier local qui étaient éventuellement masquées redeviennent accessibles.