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

Sommaire de la page

- Liste des routines
- Accès direct par le nom
  - Interface C

    - MEDchampCr
    - MEDchampEcr
    - MEDchampInfo
    - MEDchampLire
    - MEDchampRefInfo

    - MEDlienEcr
    - MEDlienInfo
    - MEDlienLire
    - MEDnChamp
    - MEDnChampRef

    - MEDnLien
    - MEDnPasdeTemps
    - MEDnVal
    - MEDnValLien
    - MEDpasdetempsInfo

  - Interface FORTRAN

    - efchac
    - efchai
    - efchal
    - efchae
    - efliee

    - efliei
    - efliel
    - efncha
    - efnlie
    - efnpdt

    - efnval
    - efnvli
    - efnref
    - efpdti
    - efproi
    - efrefi

- Accès thématique

  - Création d'un champ
    - Interface C : MEDchampCr
    - Interface FORTRAN : efchac
  - Ecriture des valeurs d'un champ
    - Interface C : MEDchampEcr
    - Interface FORTRAN : efchae
  - Lecture du nombre de champs dans un fichier
    - Interface C : MEDnChamp
    - Interface FORTRAN : efncha
  - Lecture des informations sur un champ
    - Interface C : MEDchampInfo
    - Interface FORTRAN : efchai
  - Lecture du nombre de pas de temps dans un champ
    - Interface C : MEDnPasdeTemps
    - Interface FORTRAN : efnpdt
  - Lecture des informations sur un pas de temps
    - Interface C : MEDpasdetempsInfo
    - Interface FORTRAN : efpdti
  - Lecture du nombre de valeurs dans un champ
    - Interface C : MEDnVal
    - Interface FORTRAN : efnval
  - Lecture des valeurs dans un champ
    - Interface C : MEDchampLire
    - Interface FORTRAN : efchal

  - Lecture du nombre de maillage référencés dans une séquence de calcul
    - Interface C : MEDnChampRef
    - Interface FORTRAN : efnref
  - Lecture des informations sur un maillage référencé dans une séquence de calcul
    - Interface C : MEDChampRefInfo
    - Interface FORTRAN : efrefi
  - Ecriture d'un lien sur fichier distant dans un fichier
    - Interface C : MEDlienEcr
    - Interface FORTRAN : efliee
  - Lecture des informations sur un fichier distant
    - Interface C : MEDlienInfo
    - Interface FORTRAN : efliei
  - Lecture d'un lien sur un fichier distant dans un fichier
    - Interface C : MEDlienLire
    - Interface FORTRAN : efliel
  - Lecture du nombre de lien sur un fichier distant dans un fichier
    - Interface C : MEDnLien
    - Interface FORTRAN : efnlie
  - Lecture de la taille d'un lien sur fichier distant
    - Interface C : MEDnValLien
    - Interface FORTRAN : efnvli

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

# Liste des routines

Les routines disponibles permettent de :

- Créer un champ.
- Créer un lien vers un fichier distant (les résultats peuvent porter sur les entités d'un maillage stocké dans un fichier distant) (NOUVELLE FONCTIONNALITE).
- Ecrire des valeurs de résultat dans un champ portant sur les entités d'un maillage qui peut être local (dans le même fichier) ou distant (le maillage est contenu dans un autre fichier). Les valeurs peuvent porter sur :
  - Les noeuds.
  - Les éléments.
  - Les points de Gauss des éléments.
  Ces valeurs peuvent être associées à
  - Une séquence de calcul : pas de temps et/ou numéro d'ordre.
  - Une référence à un profil : sélection selon une composante du champ et/ou un sous-ensemble des entités d'un même type géométrique.
  - Une référence à un élément de référence de la localisation des points de Gauss (NOUVEAU !).
- Lire le nombre de lien vers des fichiers distants dans un fichier (NOUVELLE FONCTIONNALITE).
- Lire les informations sur un lien vers un fichier distant (NOUVELLE FONCTIONNALITE).
- Lire la taille d'un lien vers un fichier distant (NOUVELLE FONCTIONNALITE).
- Lire un lien vers un fichier distant (NOUVELLE FONCTIONNALITE).
- Lire le nombre de champ dans un fichier ou de composantes dans un champ.
- Lire les informations sur un champ.
- Lire le nombre de pas de temps (séquence de calcul) dans un champ.
- Lire les informations sur un pas de temps (séquence de calcul).
- Lire le nombre de maillages référencés dans un pas de temps (séquence de calcul) (NOUVELLE FONCTIONNALITE).
- Lire les informations sur les valeurs référencées par un maillage dans une séquence de calcul (NOUVELLE FONCTIONNALITE).
- Lire le nombre de valeur à lire dans un champ pour un type géométrique d'entité donné, une séquence de calcul donnée et un maillage donné.
- Lire des valeurs dans un champ sur les entités d'un maillage qui peut être local (dans le même fichier) ou distant (le maillage est contenu dans un autre fichier). Les valeurs peuvent porter sur :
  - Les noeuds.
  - Les éléments.
  - Les points de Gauss des éléments.
  Ces valeurs peuvent être associées à
  - Une séquence de calcul : pas de temps et/ou numéro d'ordre.
  - Une référence à un profil : sélection selon une composante du champ et/ou un sous-ensemble des entités d'un même type géométrique.
  - Une référence à un élément de référence de la localisation des points de Gauss (NOUVEAU !).

# Création d'un champ

### Interface C

- Nom : MEDchampCr
- Signature :

      med_err MEDchampCr(med_idt fid, char *cha, med_type_champ type, char *comp,
      		   char *unit,med_int ncomp)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - cha (IN) : nom du champ.
  - type (IN) : type du champ.
  - comp (IN) : nom des composantes du champ.
  - unit (IN) : unités des composantes du champ.
  - ncomp (IN) : nombre de composantes.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efchac
- Signature :

          subroutine efchac(fid,cha,type,comp,unit,ncomp,cret)

          character*32 cha
          character*16 comp,unit
          integer fid, ncomp, cret, type

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - cha (IN) : nom du champ.
  - type (IN) : type du champ.
  - comp (IN) : nom des composantes du champ.
  - unit (IN) : unités des composantes du champ.
  - ncomp (IN) : nombre de composantes.
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Création d'un champ dans un fichier.

### Remarques

- Le nom d'un champ est un chaîne de MED_TAILLE_NOM (32) caractères.
- Un champ est composé d'une ou plusieurs composantes scalaires. Chaque composante se voit attribuer un nom et une unité. Chaque nom ou unité de composante est une chaîne de MED_TAILLE_PNOM (16) caractères.
- Le paramètre "type" définit le type élémentaire des valeurs des champs de résultats.
  - MED_FLOAT64 : flottant 64 bits IEEE.
  - MED_INT32 : entier 32 bits.
  - MED_INT64 : entier 64 bits.

# Ecriture des valeurs d'un champ

### Interface C

- Nom : MEDchampEcr
- Signature :

      med_err MEDchampEcr(med_idt fid, char *maa, char *cha,
      		    unsigned char *val, med_mode_switch modswt, med_int nbelem, char * locname,
      		    med_int numco, char * profil, med_mode_profil pflmod,
      		    med_entite_maillage typent, med_geometrie_element typgeo,
      		    med_int numdt,char * dt_unit, med_float dt, med_int numo)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - maa (IN) : nom du maillage sur lequel porte les résultats (eventuellement distant).
  - cha (IN) : nom du champ.
  - val (IN) : valeurs du champ à stocker.
  - modswt (IN) : mode de stockage des données utilisé en mémoire .
  - nbelem (IN) : nombre de valeurs.
  - locname (IN) : clé utilisée pour la définition de la localisation des points de Gauss, s'il y a lieu .
  - numco (IN) : numéro de composante à sélectionner pour l'écriture s'il y a lieu .
  - profil (IN) : nom du profil à utiliser s'il y a lieu .
  - pflmod (IN) : Indique comment lire les informations en mémoire.
  - typent (IN) : type d'entité sur lequel porte le champ résultat.
  - typgeo (IN) : type géométrique de l'entité s'il y a lieu.
  - numdt (IN) : numéro du pas de temps s'il y a lieu.
  - dtunit (IN) : unité du pas de temps s'il y a lieu.
  - dt (IN) : valeur du pas de temps s'il y a lieu.
  - numo (IN) : numéro d'ordre s'il y a lieu.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efchae
- Signature :

            subroutine efchae(fid,maa,cha,val,modswt,n,locname,numco,
           1                  profil,pflmod,typent,typgeo,numdt,dtunit,
           1                  dt,numo,cret)
            character*(*) cha,maa,profil,locname
            character*16 dtunit
            integer fid,val(*)
            integer n,pflmod,typent,typgeo,cret
            integer modswt,numco,numdt,numo
            real*8 dt

- Paramètres :
  - Idem Interface C
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Ecriture de valeurs dans un champ de résultat :

- L'écriture des valeurs s'effectue sur un ensemble d'entités <typent> de type géométrique <typgeo> existantes dans le maillage <maa>.
- Si le champ porte sur plusieurs types d'entités et/ou types géométriques, l'enregistrement du champ s'effectue par des appels successifs à la routine.

#### Classement des valeurs du champ par étape de calcul

- L'utilisateur a la possibilité d'enregistrer le champ pour différentes étapes de calcul par appels successifs à la routine. Il suffit de positionner un numéro de date <numdt> et/ou un numéro d'itération <numo>.
- Dans le cas d'une utilisation exclusive des dates, <numo> est positionné à MED_NONOR, la date est <dt> et son unité <dtunit>.
- Dans le cas d'une utilisation exclusive d'étapes itératives <numdt> est positionnée à MED_NOPDT, <numo> est l'étape d'itération.
- Il est possible de stocker des ensembles différents de valeurs sur des maillages <maa> différents à étape de calcul fixé ( couple (<numdt>,<numo> ).
- A étape de calcul fixée et maillage fixé une seule sélection par profil est possible.
- A étape de calcul fixée et maillage fixé une seule définition des points de Gauss est possible.

#### Entrelacement des données en mémoire

Si le champ a plus d'une composante, deux modes de représentation en mémoire sont disponibles :

1. MED_FULL_INTERLACE : Les différentes composantes d'une entité apparaissent avant celles de l'entité suivante (X1Y1Z1X2Y2Z2.....).
2. MED_NO_INTERLACE : Les composantes de n°i de toutes les entités apparaissent avant celles de n°i+1 (X1X2....Y1Y2....Z1Z2...).

#### Maillage local ou distant

- Le maillage est indifférement local (même fichier MED) ou distant (fichiers MED différents).
- Il n'est pas possible d'avoir à la fois un maillage local de nom <maa1> et un maillage distant de même nom (lien de nom <maa1>, voir MEDlienEcr/efliee).
- Comme indiqué précédemment , une fois la date et le numéro d'ordre fixés, il est possible de stocker des ensembles différents de valeurs en faisant référence à des maillages <maa> différents.
- Le premier appel à MEDchampEcr/efchae définit le maillage par défaut pour la date et le numéro d'ordre donnés, c'est le maillage par défaut indiqué à l'appel de MEDpasdetempsInfo/efpdti.
- Pour chaque référence à un maillage, il est possible de spécifier un <profil> différent.
- Pour chaque référence à un maillage, il est possible de spécifier une localisation des points de Gauss <locname> différente.

#### Sélection d'une composante et/ou d'un sous-ensemble d'entités de même type géométrique (profil)

Il est possible de sélectionner une composante et/ou un sous ensemble d'entités pour lequelles <val> contient les valeurs associées :

1. Sélection d'une composante. Le paramètre <numco> indique le numéro de la composante du champ considérée pour chaque entité. Le mot clé MED_ALL sélectionne toutes les composantes. Par appels successifs à la routine il est possible d'écrire les différentes composantes sans perdre les précédentes (si le fichier est ouvert en mode MED_LECTURE_ECRITURE). Cette sélection prend en compte le mode de stockage <modswt> utilisé en mémoire.
2. Sélection d'un sous-ensemble d'entités de même type géométrique. La définition préalable d'un profil (par appel à MEDprofilEcr/efpfle) permet d'indiquer à MEDchampEcr/efchae le nom de profil <profil> qui décrit le sous-ensemble des entités <typent> de type géométrique <typgeo> pour lesquelles <val> définit des valeurs. Quelque soit la taille du profil, <nbelem> indique la taille du champ sans profil. En effet la taille du profil utilisé est connue depuis l'écriture du profil et le profil doit exister avant l'appel à MEDchampEcr/efchae. Les profils utilisés par un ensemble de champs doivent être stockés dans le même fichier que ces champs.

L'utilisation conjointe des deux modes de sélection est possible. Il est possible d'utiliser les deux modes de sélection et une localisation des points de Gauss.
Le paramètre <pflmod> permet la sélection en mémoire des valeurs relatives au <profil> selon deux modes :

1. MED_COMPACT : Seules les valeurs relatives aux <profil> sont en mémoire. Les points de Gauss apparaissent normalement en mémoire. L'entrelacement est pris en compte.
2. MED_GLOBAL (en test) : La totalité des valeurs du champ sont en mémoire. MED s'occupe de sélectionner les valeurs en fonction des numéros indiqués à l'écriture du profil (MEDprofilEcr/efpfle). Les points de Gauss apparaissent normalement en mémoire. L'entrelacement est pris en compte.

L'ensemble de numéros d'entités utilisé pour définir le profil utilise la numérotation implicite (ordre d'apparition des entités par index croissant) des entités. Elle ne prend pas en compte l'écriture des numéros optionnels d'entités (MEDnumEcr/efnume).

#### Définition des points de Gauss

- Les valeurs du champ peuvent être définies en des points particuliers des entités. La définition préalable d'une localisation (appel à MEDgaussEcr/efgaue) permet d'indiquer à MEDchampEcr/efchae le nom de localisation <locname>. Cette localisation décrit le nombre de points de Gauss et leurs localisation pour une entité <typent>, <typgeo> de référence. Le type géométrique utilisé à la définition de la localisation doit être le même que le paramètre <typgeo> passé à MEDchampEcr/efchae.
- Les valeurs (scalaires, vectorielles) aux points de Gauss d'une entité doivent être contigües (quel que soit le mode d'entrelacement).
- Dans le cas d' un champ à plus d'une composante, le mode d'entrelacement <modswt> s'applique à la valeur en chaque point de Gauss comme dans le cas d'une valeur (vectorielle) sur une entité classique.
- La valeur de <nbelem> doit prendre en compte le nombre de points de gauss utilisé par entité.
- Il est possible d'utiliser une localisation des points de Gauss avec les deux types de sélection définies précédement.
- Si aucune localisation n'est utilisé, MED_NOGAUSS doit être passé en argument.

### Remarques

- Valeurs possibles pour les paramètres :
  - modswt (IN) : MED_FULL_INTERLACE ou MED_NO_INTERLACE.
  - locname (IN) : nom de la localisation de taille MED_TAILLE_NOM, MED_NOGAUSS sinon.
  - numco (IN) : numéro de composante à sélectionner pour l'écriture s'il y a lieu ou MED_ALL.
  - profil (IN) : nom du profil de taille MED_TAILLE_NOM, à utiliser s'il y a lieu, MED_NOPFL sinon.
  - pflmod (IN) : {MED_NO_PFLMOD,MED_COMPACT,MED_GLOBAL}.
  - typent (IN) : type d'entité sur lequel porte les résultats, soit MED_NOEUD, MED_MAILLE, MED_FACE ou MED_ARETE.
  - typgeo (IN) : type géométrique de l'entité s'il y a lieu :
    - 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.
  - numdt (IN) : numéro du pas de temps s'il y a lieu, MED_NOPDT sinon.
  - dtunit (IN) : unité du pas de temps s'il y a lieu (codée sur MED_TAILLE_PNOM (16) caractères), valeur non prise en compte sinon.
  - dt (IN) : valeur du pas de temps s'il y a lieu, valeur non prise en compte sinon.
  - numo (IN) : numéro d'ordre s'il y a lieu, MED_NONOR sinon.
- Evolutions apportées par MED-fichier V2.2 :
  - Disparition du paramètre "mode" qui spécifiait le mode d'écriture du tableau des valeurs. Le mode d'accès aux données d'un fichier MED se décide désormais à l'ouverture de ce fichier.
  - Remplacement du paramètre "ngauss" par "locname". Le nombre de points de Gauss et la localisation associée sont définis à l'appel de MEDgaussEcr/efgaue.
- Apport fonctionnel de MED-fichier V2.2 :
  - Il est désormais possible de localiser les points de GAUSS (MEDgaussEcr/efgaue).
  - Le maillage peut être local ou distant.
  - Pour une même étape de calcul, il est possible de définir des ensembles différents de valeurs en précisant des nom de maillages différents.
  - Il est possible de spécifier le mode de stockage mémoire utilisé pour un profil.

# Lecture du nombre de champs dans un fichier

### Interface C

- Nom : MEDnChamp
- Signature :

      med_int
      MEDnChamp(med_idt fid, int ind)

- Paramètres :
  - fid (IN) : descripteur du fichier MED.
  - ind (IN) : numéro d'indice.
- Code retourné : nombre de champ dans le fichier si "ind" est égal à 0, le nombre de composantes du champ correspondant à l'indice "ind", -1 si échec.

### Interface FORTRAN

- Nom : efncha
- Signature :

            subroutine efncha(fid,ind,n,cret)
            integer fid,ind,cret,n

- Paramètres :
  - fid (IN) : descripteur du fichier MED.
  - ind (IN) : numéro d'indice.
  - n (OUT) : nombre de champ dans le fichier si "ind" est égal à 0, le nombre de composantes du champ correspondant à l'indice "ind".
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Retourne le nombre de champ dans le fichier si "ind" est égal à 0 ou le nombre de composantes du champ correspondant à l'indice "ind".

### Remarques

Pour un fichier contenant "N" champs, la valeur de "ind" peut aller de 1 à "N".

# Lecture des informations sur un champ

### Interface C

- Nom : MEDchampInfo
- Signature :

      med_err MEDchampInfo(med_idt fid,int ind,char *cha,
      		     med_type_champ *type,char *comp,char *unit,
      		     med_int ncomp)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - ind (IN) : numéro d'indice du champ dans le fichier.
  - cha (OUT) : nom du champ.
  - type (OUT) : type des valeurs des composantes du champ.
  - comp (OUT) : noms des composantes.
  - unit (OUT) : nom des unités des composantes.
  - ncomp (IN) : nombre de composantes.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efchai
- Signature :

            subroutine efchai(fid,ind,cha,type,comp,unit,ncomp,cret)
            character *(*) cha,comp,unit
            integer fid,ind,type,ncomp,cret

- Paramètres :
  - Idem C +
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Retourne les informations propres à l'identification d'un champ :

- Nom du champ.
- Noms et unités des composantes.
- Type des composantes.

### Remarques

- Un champ est identifié par un nom "cha" de taille MED_TAILLE_NOM (32) caractères.
- Un champ est composé d'une ou plusieurs composantes scalaires. Chaque composante se voit attribuer un nom et un type (définis respectivement dans "comp" et "unit"). Chaque nom ou unité de composante est codée sur MED_TAILLE_PNOM (16) caractères.
- Le paramètre "type" définit le type élémentaire des valeurs des champs de résultats :
  - MED_FLOAT64 : flottant 64 bits IEEE.
  - MED_INT32 : entier 32 bits.
  - MED_INT64 : entier 64 bits.

# Lecture du nombre de pas de temps dans un champ

### Interface C

- Nom : MEDnPasdeTemps
- Signature :

      med_int
      MEDnPasdetemps(med_idt fid,char *cha,med_entite_maillage typent, med_geometrie_element typgeo)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - cha (IN) : nom du champ.
  - typent (IN) : type de l'entité considéré.
  - typgeo (IN) : type géométrique de l'entité.
- Code retourné : nombre de pas de temps si réussite, eventuellement 0, -1 si erreur.

### Interface FORTRAN

- Nom : efnpdt
- Signature :

            subroutine efnpdt(fid,cha,typent,typgeo,n,cret)
            integer fid,type,geo,n,cret
            character*32 cha

- Paramètres :
  - Idem C +
  - n (OUT) : nombre de pas de temps, eventuellement 0.
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Cette routine permet de découvrir pour le champ <cha> (précédemment identifié par MEDchampInfo/efchai) l'existence de valeurs sur les entités <typent> de type géométrique <typegeo> :

- Si l'utilisateur ne connait pas les entités support et l'(es) étape(s) de calcul relative(s) au champ qu'il veut lire, il appelle généralement cette routine au sein d'une double boucle sur les valeurs <typent> et <typgeo>.
- Si un champ résultat existe, elle retourne le nombre d'étapes de calcul disponibles pour le champ <cha>.

#### Gestion des étapes de calcul et/ou de plusieurs maillages associés

Pour la suite des traitements, différents cas d'utilisation se présentent selon les choix opérés :

- Dans le cas d'une utilisation de MED ou l'ensemble de vos interlocuteurs ne gère pas les séquences de calcul ou que votre propre code n'est pas en mesure de les traiter :
  - Si plus d'une séquence de calcul existe, vous devez renvoyer un avertissement ou une erreur.
  - Vous ne traiter alors que le cas où vos résultats sont associés à aucun pas de temps, ni numéro d'ordre (MED_NOPDT,MED_NONOR). Dans cas de figure, Vous n'avez pas besoin par la suite d'utiliser la routine MEDpasdetempsInfo/efpdti pour identifier l'ensemble des séquences de calcul.
- Dans le cas où vous gérez les séquences de calcul, deux cas d'utilisation se présentent pour la suite des traitements :
  1. L'ensemble de vos interlocuteurs ne gére pas les références multiples aux maillages ou votre propre code n'est pas en mesure de les traiter :
     - La routine MEDnChampRef/efnref permet de s'assurer qu'il n'y a pas plus d'un maillage associé à la séquence de calcul.
     - La routine MEDnVal/efnval permet de connaitre la taille mémoire à allouer pour stocker les valeurs du champ (utiliser le paramètre MED_NOREF pour indiquer que vous utilisez le paramètre par défaut).
     - La routine MEDchampLire/efchal permet de lire les valeurs du champ sur le maillage par défaut (utiliser le paramètre MED_NOREF pour indiquer que vous utilisez le paramètre par défaut).
     - Vous pouvez ensuite facilement tester le caractère local ou distant du maillage par défaut. Cette localisation vous sera indiquée par la routine MEDchampLire/efchal.
  2. Vous gérez les références multiples aux maillages dans une même séquence de calcul :
     - La routine MEDnChampRef/efnref permet de connaître le nombre de maillage associés à cette séquence.
     - Pour chaque maillage référencé :
       - La routine MEDchampRefInfo/efrefi permet d'identifier chacun de ces maillages.
       - La routine MEDnVal/efnval permet de connaître la taille mémoire à allouer pour stocker les valeurs du champ associées à chaque maillage.
       - La routine MEDchampLire/efchal permet enfin de lire ces valeurs.
       - Vous pouvez ensuite facilement tester le caractère local ou distant du maillage. Cette localisation vous sera indiquée par la routine MEDchampLire/efchal.

### Remarques

- Bien qu'il soit informatiquement possible d'avoir un nombre d'étapes différent en fonction du couple ("typent","typgeo"), la présente documentation l'interdit. Cette routine verra son interface modifiée par la suppression des paramètres <typent> et <typegeo>.
- Le nom du champ est codé sur MED_TAILLE_NOM (32) caractères.
- Quelques remarques sur les paramètres :
  - typent (IN) : type d'entité sur lequel porte les résultats, soit MED_NOEUD, MED_MAILLE, MED_FACE ou MED_ARETE.
  - typgeo (IN) : type géométrique de l'entité s'il y a lieu :
    - 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.

# Lecture des informations sur un pas de temps

### Interface C

- Nom : MEDpasdetempsInfo
- Signature :

      med_err
      MEDpasdetempsInfo(med_idt fid, char *cha, med_entite_maillage typent, med_geometrie_element typgeo,
      		  int ind, med_int * ngauss, med_int * numdt, med_int * numo,
                        char * dtunit, med_float * dt, char * maa, med_booleen * local, med_int *nmaa)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - cha (IN) : nom du champ.
  - typent (IN) : type de l'entité considéré.
  - typgeo (IN) : type géométrique de l'entité s'il y a lieu.
  - ind (IN) : indice du pas de temps dans le champ.
  - ngauss (OUT) : nombre de points de Gauss, MED_NOPG si aucun.
  - numdt (OUT) : numéro du pas de temps.
  - numo (OUT) : numéro d'ordre.
  - dtunit (OUT) : unité du pas de temps.
  - dt (OUT) : valeur flottante du pas de temps.
  - maa (OUT) : le nom du maillage par défaut sur lequel le champ résultat s'applique au couple (numdt,numo) donné.
  - local (OUT) : MED_VRAI si le lien est local, MED_FAUX sinon.
  - nmaa (OUT) : le nombre de maillages référencés
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efpdti
- Signature :

            subroutine efpdti(fid,cha,typent,typgeo,ind,ngauss,
           1                  numdt,numo,dtunit,dt,maa,local,nmaa,cret)
            integer fid,typent,typgeo,ind,ngauss,numdt,numo,nmaa,cret
            character*32 cha,maa
            character*16 dtunit
            logical local
            real*8 dt

- Paramètres :
  Idem C +
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Lecture des informations caractérisant une séquence de calcul (pas de temps, numéro d'ordre) :

- Une fois le nombre d'étapes de calcul connu (information fournie par la routine MEDnPasTemp/efnpdt), il est possible de lire les informations caractérisant chaque étape par itération sur <ind>.
- La séquence de calcul est identifiée par les paramètres <numdt> et <numo> (les valeurs renvoyées peuvent être MED_NOPDT et MED_NONOR).
- Si <numdt> est différent de MED_NOPDT, la valeur et l'unité de la date sont données respectivement par les paramètres <dt> et <dtunit>.
- La routine indique le maillage par défaut <maa> pour cette étape de calcul, sa localité <local> et s'il existe d'autres maillages associés par l'intermédiaire de <nmaa>.

#### Gestion des étapes de calcul et/ou de plusieurs maillages associés

Pour la suite des traitements, différents cas d'utilisation se présentent selon les choix opérés :

1. L'ensemble de vos interlocuteurs ne gére pas les références multiples aux maillages ou votre propre code n'est pas en mesure de les traiter :
   - La routine MEDnChampRef/efnref permet de s'assurer qu'il n'y a pas plus d'un maillage associé à la séquence de calcul.
   - La routine MEDnVal/efnval permet de connaitre la taille mémoire à allouer pour stocker les valeurs du champ (utiliser le paramètre MED_NOREF pour indiquer que vous utilisez le paramètre par défaut).
   - La routine MEDchampLire/efchal permet de lire les valeurs du champ sur le maillage par défaut (utiliser le paramètre MED_NOREF pour indiquer que vous utilisez le paramètre par défaut).
   - Vous pouvez ensuite facilement tester le caractère local ou distant du maillage par défaut. Cette localisation vous sera indiquée par la routine MEDchampLire/efchal.
2. Vous gérez les références multiples aux maillages dans une même séquence de calcul :
   - La routine MEDnChampRef/efnref permet de connaître le nombre de maillage associés à cette séquence.
   - Pour chaque maillage référencé :
     - La routine MEDchampRefInfo/efrefi permet d'identifier chacun de ces maillages.
     - La routine MEDnVal/efnval permet de connaître la taille mémoire à allouer pour stocker les valeurs du champ associées à chaque maillage.
     - La routine MEDchampLire/efchal permet enfin de lire ces valeurs.
     - Vous pouvez ensuite facilement tester le caractère local ou distant du maillage. Cette localisation vous sera indiquée par la routine MEDchampLire/efchal.

### Remarques

- Pour un code qui ne gère pas d'étape de calcul la valeur obtenue pour les parmètres <numdt> et <numo> doit toujours être MED_NOPDT,MED_NONOR.
- Le nombre de points de gauss est lié au type géométrique de l'élément et doit donc être constant pour un type d'entité et un type géométrique fixé.

# Lecture du nombre de maillage référencés dans une séquence de calcul

### Interface C

- Nom : MEDnChampRef
- Signature :

      med_int
      MEDnChampRef(med_idt fid,char *cha,med_entite_maillage typent, med_geometrie_element typgeo,
      , med_int numdt, med_int numo)

Paramètres :

- fid (IN) : descripteur du fichier.
- cha (IN) : nom du champ.
- typent (IN) : type de l'entité considérée.
- typgeo (IN) : type géométrique de l'entité, s'il y a lieu.
- numdt (IN) : numéro du pas de temps s'il y a lieu.
- numo (IN) : numéro d'ordre s'il y a lieu.
- Code retourné : nombre de maillages associés au champ (cha,typent,typgeo,numdt,numo), 0 si aucun, -1 si erreur

### Interface FORTRAN

- Nom : efnref
- Signature :

          efnref(fid,cha,typent,typgeo,numdt,numo,n,cret)

          integer fid,tyent,typgeo,numdt,numo,n,cret
          character*32 cha

- Paramètres :

- Idem Interface C +
- n (OUT) : nombre de maillages associés au champ (cha,typent,typgeo,numdt,numo), 0 si aucun
- cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Cette routine renvoie le nombre de maillages associés au champ <cha> sur les entités <typent> de type géométrique <typgeo> à l'étape de calcul (<numdt>,<numo>).

### Remarques

- Cette information est également renvoyée par la routine MEDpasdetempsInfo/efpdti. La routine MEDnChampRef/efnref est donc utile dans le cas d'une communauté d'utilisateurs ou d'un code ne gérant pas les étapes de calcul mais gérant les références multiples aux maillages.
- Apport fonctionnel de MED-fichier V2.2 : possibilité d'associer plusieurs maillages dans une même séquence de calcul.

# Lecture du nombre de valeurs dans un champ

### Interface C

- Signature :

      med_int
      MEDnVal(med_idt fid, char *cha, med_entite_maillage typent,
      	med_geometrie_element typgeo, med_int numdt, med_int numo, char * maa, med_mode_profil pflmod)

- Nom : MEDnVal

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - cha (IN) : nom du champ.
  - typent (IN) : type de l'entité considérée.
  - typgeo (IN) : type géométrique de l'entité, s'il y a lieu.
  - numdt (IN) : numéro du pas de temps s'il y a lieu.
  - numo (IN) : numéro d'ordre s'il y a lieu.
  - maa (IN) : le nom du maillage sur lequel s'applique le champ
  - pflmod (IN) : Indique s'il faut calculer le nombre de valeurs pour un mode MED_COMPACT ou MED_GLOBAL.
- Code retourné : nombre de valeurs dans le champs sur les entités du maillage spécifiées et selon le pas de temps et le numéro d'ordre. La valeur -1 est retourné si le champ n'existe pas pour les paramètres demandés.

### Interface FORTRAN

- Nom : efnval
- Signature :

            subroutine efnval(fid,cha,typent,typgeo,numdt,numo,maa,pflmod,n,cret)
            integer fid,typent,typgeo,n,cret
            integer numdt, numo, pflmod
            character *(*) cha, maa

- Paramètres :
  - Idem Interface C +
  - n (OUT) : nombre de valeurs dans le champs sur les entités du maillage spécifiées et selon le pas de temps et le numéro d'ordre.
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Retourne le nombre de valeurs du champ <cha> à l'étape de calcul (<numdt>,<numo>) sur les entités <tyent> de type géométrique <typgeo> du maillage <maa>.

Si un profil existe pour ce champ, cette routine calcule le nombre de valeurs pour une future lecture en mode :

1. MED_COMPACT : Seules les valeurs relatives au <profil> (renvoyé par MEDchampLire/efchal ) seront en mémoire. Si aucun profil n'existe l'appel est équivalent à MED_GLOBAL.
2. MED_GLOBAL : La totalité des valeurs du champ seront lues en mémoire. La routine MEDchampLire/efchal s'occupera de placer en mémoire les valeurs en fonction des numéros indiqués par le <profil>.

Si vous ne gérez pas les références multiples aux maillages :

- Vous devez utiliser le paramètre MED_NOREF pour référencer le maillage par défaut à la fois dans MEDnVal/efnval et MEDchampLire/efchal.

### Remarques

- Le calcul du nombre de valeurs prend en compte le nombre de points de Gauss mais pas le nombre de composantes du champ. Il convient donc de multiplier le nombre de valeurs obtenu par le nombre de composantes du champ.
- Apport fonctionnel de MED-fichier V2.2 :
  - Il est désormais possible de connaître de façon précise la taille à allouer si un profil est utilisé.
  - Il est désormais possible de référencer plusieurs maillages dans une même séquence de calcul.

# Lecture des valeurs dans un champ

### Interface C

- Nom : MEDchampLire
- Signature :

      med_err
      MEDchampLire(med_idt fid,char *maa, char *cha, unsigned char *val,med_mode_switch modswt,med_int numco,
      	     char * locname, char *profil, med_mode_profil pflmod, med_entite_maillage typent, med_geometrie_element typgeo,
      	     med_int numdt, med_int numo)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - maa (IN/OUT) :
    - IN : Nom du maillage sur lequel porte les résultats.
    - IN/OUT :
      1. IN : MED_NOREF
      2. OUT : nom du maillage par défaut.
  - cha (IN) : nom du champ où lire les valeurs.
  - val (OUT) : tableau des valeurs.
  - modswt (IN) : mode de stockage des données dans "val".
  - numco (IN) : numéro de composante à sélectionner pour la lecture s'il y a lieu.
  - profil (OUT) : nom du profil utilisé.
  - pflmod (IN) : Indique comment lire les informations en mémoire.
  - typent (IN) : type d'entité sur lequel porte les résultats.
  - typgeo (IN) : type géométrique de l'entité s'il y a lieu.
  - numdt (IN) : numéro du pas de temps s'il y a lieu.
  - numo (IN) : numéro d'ordre s'il y a lieu.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efchal
- Signature :

            subroutine efchal(fid,maa,cha,val,
           1                  modswt,numco,locname,profil,pflmod,
           1                  typent,typgeo,
           1                  numdt, numo,cret)
            character *(*) cha,maa,locname,profil
            integer fid,val(*),n,typent,typgeo,cret
            integer modswt,numco,pflmod,numdt,numo

- Paramètres :
  - Idem interface C +
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Lecture des valeurs dans un champ de résultat :

- Il est possible de lire le champ <cha> à l'étape de calcul (<numdt>,<numo>) sur un ensemble d'entités <typent> de type géométrique <typgeo> existantes dans le maillage <maa>.
- Cet ensemble peut être la totalité des entités disponibles ou un ensemble réduit définit par un <profil>.
- Si le champ porte sur plusieurs types d'entités et/ou types géométriques, sa lecture s'effectue par des appels successifs à la routine.

#### Lecture des valeurs du champ pour différentes étapes de calcul

- Il est possible de lire des ensembles différents de valeurs pour une même séquence de calcul identifiée par le couple (<numdt>,<numo>) en faisant varier le paramètre <maa> qui permet d'identifier le maillage référencé :
  - Le nombre de maillage référencés dans une séquence de calcul ainsi que le nom du maillage par défaut sont fournis par la routine MEDpasdetempsInfo/efpdti. Le nombre de maillage référencés est également fourni par la routine MEDnChampRef/efnref.
  - La routine MEDchampRefInfo/efrefi permet d'identifier tous les maillages référencés en supplément du maillage par défaut.
- Dans le cas d'une utilisation exclusive des dates, le paramètre <numo> est positionné à MED_NONOR, la date du pas de temps est <dt> et son unité <dtunit>.
- Dans le cas d'une utilisation exclusive d'étapes itératives, <numdt> est positionnée à MED_NOPDT, <numo> est l'étape d'itération.
- A une étape de calcul fixée et un maillage fixé, un unique profil peut être défini
- A une étape de calcul fixée et un maillage fixé, une seule localisation des points de Gauss peut être définie.
- Si vous ne gérez pas les étapes de calcul et les références multiples aux maillages :
  - Le paramètre<maa> doit être positionné à MED_NOREF.
  - Le paramètre <numdt> doit être positionné à MED_NOPDT
  - Le paramètre <numo> doit être positionné à MED_NONOR.
  A noter qu'au préalable la routine MEDnVal/efnval permet de connaître la taille du tableau des valeurs à lire. Cette routine prend en compte le profil eventuel et le nombre de points de GAUSS .

#### Entrelacement des données en mémoire

Si le champ a plus d'une composante, il est possible de définir le mode de représentation mémoire attendu :

1. MED_FULL_INTERLACE : Les différentes composantes d'une entité apparaissent avant celles de l'entité suivante (X1Y1Z1X2Y2Z2.....).
2. MED_NO_INTERLACE : Les composantes de n°i de toutes les entités apparaissent avant celles de n°i+1 (X1X2....Y1Y2....Z1Z2...).

#### Maillage local ou distant

- Le maillage est indifférement local (même fichier MED) ou distant (fichiers MED différents).
- Il n'est pas possible d'avoir à la fois un maillage local de nom <maa1> et un maillage distant de même nom.
- Pour chaque référence à un maillage, il est possible d'obtenir un <profil> différent.
- Pour chaque référence à un maillage, il est possible d'obtenir une localisation des points de Gauss <locname> différente.

#### Lecture d'une composante et/ou d'un sous-ensemble d'entités de même type géométrique (profil)

Il est possible de lire uniquement une composante et/ou un sous ensemble d'entités :

1. Lecture d'une composante : Le paramètre <numco> indique le numéro de la composante à lire parmi les composantes disponibles. Même pour la relecture d'une seule composante, <val> doit avoir un emplacement mémoire réservé pour toutes les composantes. Le mot clé MED_ALL sélectionne toutes les composantes. Par appels successifs à la routine il est possible de lire les différentes composantes. Cette sélection prend en compte le mode de stockage <modswt> utilisé en mémoire.
2. Lecture d'un sous-ensemble d'entités de même type géométrique. Si le champ à été préalablement écrit avec un profil le nom du <profil> est retourné. Il décrit le sous-ensemble des entités <typent> de type géométrique <typgeo> pour lesquelles <val> contient des valeurs. Les profils utilisés par un ensemble de champs doivent être stockés dans le même fichier que ces champs.

L'utilisation conjointe des deux modes de sélection est possible. Il est également possible d'utiliser les deux modes de sélection et une localisation des points de Gauss.

Le paramètre <pflmod> permet l'enregistrement en mémoire des valeurs relatives au <profil> selon deux modes :

1. MED_COMPACT :
   - Seule les valeurs relatives au <profil> sont en mémoire.
   - Les points de Gauss apparaissent normalement en mémoire.
   - L'entrelacement est pris en compte.
2. MED_GLOBAL (en test) :
   - La totalité des valeurs du champ sont en mémoire.
   - La routine MEDchampLire/efchal s'occupe de placer en mémoire les valeurs en fonction des numéros indiqués par le <profil>.
   - Les points de Gauss apparaissent normalement en mémoire.
   - L'entrelacement est pris en compte.

L'ensemble de numéros d'entités utilisé pour définir le profil utilise la numérotation implicite (ordre d'apparition des entités par index croissant) des entités. Elle ne prend pas en compte l'écriture des numéros optionnels d'entités.

#### Lecture des valeurs aux points de Gauss

- Les valeurs du champ peuvent être définies sur les points de Gauss des éléments d'un maillage.
- Dans ce cas, la routine MEDchampLire/efchal retourne le nom de l'élément de référence de localisation des points de Gauss dans le paramètre <locname>. Cette élément de référence décrit la localisation des points de Gauss pour une entité <typent>, <typgeo> de référence. Le type géométrique utilisé à la définition de la localisation est le même que le paramètre <typgeo> passé à la routine MEDchampLire/efchal.
- Les valeurs (scalaires, vectorielles) aux points de Gauss d'une entité sont contigües (quel que soit le mode d'entrelacement). Dans le cas d' un champ à plus d'une composante, le mode d'entrelacement <modswt> s'applique à la valeur en chaque point de Gauss comme dans le cas d'une valeur (vectorielle) sur une entité classique.
- La taille de <val> retournée par la routine MEDnVal/efnval prendre en compte le nombre de points de gauss utilisé.
- Il est possible d'avoir une localisation des points de Gauss avec les deux types de sélection définies précédement.
- Si le champ ne porte pas sur les points de Gauss, la valeur MED_NOGAUSS est retournée dans le paramètre <locname>.

### Remarques

Précisions supplémentaires sur les paramètres :

- modswt (IN) : MED_FULL_INTERLACE ou MED_NO_INTERLACE.
- locname (OUT) : nom de la localisation de taille MED_TAILLE_NOM, MED_NOGAUSS sinon.
- numco (IN) : numéro de composante à sélectionner pour la lecture s'il y a lieu, MED_ALL sinon..
- profil (OUT) : nom du profil utilisé s'il y a lieu, MED_NOPFL sinon.
- pflmod (IN) : {MED_NO_PFLMOD,MED_COMPACT,MED_GLOBAL}.
- typent (IN) : type d'entité sur lequel porte les résultats, soit MED_NOEUD, MED_MAILLE, MED_FACE ou MED_ARETE.
- typgeo (IN) : type géométrique de l'entité s'il y a lieu :
  - 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.
- numdt (IN) : numéro du pas de temps s'il y a lieu, MED_NOPDT sinon.
- numo (IN) : numéro d'ordre s'il y a lieu, MED_NONOR sinon.

# Lecture des information sur un maillage référencé dans une séquence de calcul

### Interface C

- Nom : MEDchampRefInfo
- Signature :

      med_err MEDchampRefInfo(med_idt fid,char *cha,
      		med_entite_maillage typent, med_geometrie_element typgeo,
      		int indice, med_int numdt, med_int numo,
      		char * maa, med_booleen * local, med_int *ngauss)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - cha (IN) : nom du champ où lire les valeurs.
  - typent (IN) : type d'entité sur lequel porte les résultats.
  - typgeo (IN) : type géométrique de l'entité s'il y a lieu.
  - indice (IN) : indice du pas de temps dans le champ.
  - numdt (IN) : numéro du pas de temps s'il y a lieu.
  - numo (IN) : numéro d'ordre s'il y a lieu.
  - maa (OUT) : maillage associé.
  - local (OUT) : maillage local (MED_VRAI) ou distant (MED_FAUX).
  - ngauss (OUT) : nombre de points de Gauss.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efrefi
- Signature :

            subroutine efrefi(fid, cha, typent, typgeo, indice, numdt, numo,
           1                  maa, local, ngauss, cret)
            integer fid,typent,typgeo,indice,cret
            integer numdt, numo, ngauss
            character *(*) cha, maa
            logical local
            integer edfrefi

- Paramètres :
  Idem C +
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

La routine MEDchampRefInfo/efrefi permet d'identifier un maillage référencé dans une séquence de calcul. Les données lues sont :

- Le nom du maillage.
- Sa localisation (locale ou non).
- Le nombre de points de Gauss.

### Remarques

- La routine MEDnChampref/efnref fournit le nombre de maillages associés à une séquence de calcul. On peut alors itérer sur ces maillages pour les identifier avec la routine MEDchampRefInfo/efrefi.
- Apport fonctionnel de MED-fichier V2.2 : Possibilité de référencer plusieurs maillages dans une séquence de calcul.

# Ecriture d'un lien sur fichier distant dans un fichier

### Interface C

- Nom : MEDlienEcr
- Signature :

      med_err
      MEDlienEcr(med_idt fid, char *lienval, char *maa)

- Paramètres :
  - fid (IN) : descripteur du fichier.
  - lienval (IN) : chemin d'accès (absolu ou relatif) au fichier distant
  - maa (IN) : nom du lien.
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efliee
- Signature :

            subroutine efliee(fid,lienval,maa,cret)
            integer fid,cret
            character *(*) lienval, maa

- Paramètres :
  - Idem C +
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Cette routine permet de référencer le fichier <lienval> comme étant celui qui porte le maillage <maa>.

### Remarques

- Un maillage <maa> ne peut pas être à la fois distant et local.
- La nature de la localisation des maillages référencés dans un champ est fournie par les routines :
  - MEDpasdetempsInfo/efpdti pour le maillage par défaut.
  - MEDchampRefInfo/efrefi pour un maillage quelconque d'une séquence de calcul.
- Apport fonctionnel de MED-fichier V2.2 : Possibilité de stocker les champs et les fichiers dans des fichiers différents.

# Lecture du nombre de lien sur fichier distant dans un fichier

### Interface C

- Nom : MEDnLien
- Signature :

      med_err
      MEDnLien(med_idt fid)

- Paramètres :
  - fid (IN) : descripteur du fichier.
- Code retourné : nombre de liens, eventuellement nul si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efnlie
- Signature :

            subroutine efnlie(fid,n,cret)
            integer fid,n,cret

- Paramètres :
  - Idem C +
  - n (OUT) : nombre de liens, eventuellement nul
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Cette routine renvoie le nombre de lien sur fichier distant dans un fichier.

### Remarques

- Ce nombre peut être égal à 0.
- Apport fonctionnel de MED-fichier V2.2 : Possibilité de stocker les champs et les fichiers dans des fichiers différents.

# Lecture des informations sur un lien sur fichier distant

### Interface C

- Nom : MEDlienInfo
- Signature :

      med_err
      MEDlienInfo( med_idt fid, int indice, char * maa, med_int * n)

- Paramètres :
  - fid (IN) : descripteur du fichier
  - indice (IN) : itération en cours (1..n)
  - maa (OUT) : maillage pour lequel un lien existe
  - n (OUT) : taille à allouer pour lire la valeur du lien
- Code retourné : 0 si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efliei
- Signature :

            subroutine efliei(fid,indice,maa,n,cret)
            character *(*) maa
            integer fid,indice,n,cret

- Paramètres :
  - Idem C +
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Cette routine lit les informations sur un lien sur fichier distant. Les informations lues sont :

- Le nom du lien qui correspond au nom d'un maillage référencé dans une séquence de calcul.
- La taille de la chaîne de caractère à allouer pour lire ce lien.

### Remarques

- Cette routine est utile pour lire l'ensemble des liens contenus dans un fichier.
- Apport fonctionnel de MED-fichier V2.2 : Possibilité de stocker les champs et les fichiers dans des fichiers différents.

# Lecture de la taille d'un lien sur fichier distant

### Interface C

- Nom : MEDnValLien
- Signature :

      med_err
      MEDnValLien(med_idt fid, char *maa)

- Paramètres :
  - fid (IN) : descripteur du fichier
  - maa (IN) : maillage pour lequel un lien existe
- Code retourné : taille du lien, eventuellement nul si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efnvli
- Signature :

            subroutine efnvli(fid,maa,n,cret)
            character *(*) maa
            integer fid,n,cret

- Paramètres :
  - Idem C +
  - n (OUT) : taille du lien, eventuellement nul si réussite
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Cette routine permet de connaître la taille du lien associée au maillage distant <maa>.

### Remarques

- Apport fonctionnel de MED-fichier V2.2 : Possibilité de stocker les champs et les fichiers dans des fichiers différents.

# Lecture d'un lien sur fichier distant dans un fichier

### Interface C

- Nom : MEDlienLire
- Signature :

      med_err
      MEDlienLire( med_idt fid, char * lienval, char * maa)

- Paramètres :
  - fid (IN) : descripteur du fichier
  - lienval (IN) : chemin d'accès au fichier
  - maa (IN) : maillage pour lequel un lien existe
- Code retourné : taille du lien, eventuellement nul si réussite, -1 sinon.

### Interface FORTRAN

- Nom : efliel
- Signature :

            subroutine efliel(fid,lienval,n,maa,cret)
            character *(*) maa,lienval
            integer fid,n,cret

- Paramètres :
  - Idem C +
  - n (IN) : taille du lien
  - cret (OUT) : code de retour, 0 si réussite, -1 sinon.

### Description

Permet de lire le lien <lienval> associé au maillage distant <maa>.

### Remarques

- Une fois <lienval> connu, il est possible de monter le fichier distant en utilisant les routines de montage/démontage de fichier distant :
  - MEDmonter/efmont.
  - MEDdemonter/efdemo.
- Apport fonctionnel de MED-fichier V2.2 : Possibilité de stocker les champs et les fichiers dans des fichiers différents.