# Guide de référence du module fortran MEDfamily

## Fonctions

subroutine | mfacre (fid, name, fname, fnum, ngro, gname, cret)
| Cette routine permet la création d'une famille portant sur les entités d'un maillage.
subroutine | mfanfa (fid, maa, n, cret)
| Cette routine permet de lire le nombre de famille dans un maillage.
subroutine | mfanfg (fid, maa, it, n, cret)
| Cette routine permet de lire le nombre de groupe dans une famille.
subroutine | mfafai (fid, maa, ind, fam, num, gro, cret)
| Cette routine permet de lire les informations relatives à une famille d'un maillage.
subroutine | mfaona (fid, maa, it, n, cret)
| Cette routine permet de lire le nombre d'attribut dans une famille dans un maillage créé avec MED 2.2 ou 2.3.
subroutine | mfaofi (fid, maa, it, fam, attnum, attval, attdes, num, gro, cret)
| Cette routine permet de lire les informations relatives à une famille d'un maillage créé avec MED 2.3 ou MED 2.2, -i.e. pouvant comporter une liste d'attributs en plus de la liste de groupes.

## Documentation des fonctions

subroutine mfacre | ( | integer | fid,
|  | character *(*) | name,
|  | character *(*) | fname,
|  | integer | fnum,
|  | integer | ngro,
|  | character *(*) | gname,
|  | integer | cret |
| ) |  |  |

Cette routine permet la création d'une famille portant sur les entités d'un maillage.

Paramètres:

  | fid | Identificateur du fichier.
  | name | Nom du maillage, de longueur maximum MED_NAME_SIZE .
  | fname | familyname Nom de la famille de longueur maximum MED_NAME_SIZE .
  | fnum | familynumber Numéro de la famille.
  | ngro | nbofgroup Nombre de groupe.
  | gname | groupname Nom(s) de(s) groupe(s). Chaque nom de groupe est une chaîne de de longueur maximum MED_LNAME_SIZE caractères.
  | cret | retour négatif en cas d'erreur, Zéro sinon.

Cette routine permet la création d'une famille portant sur les entités d'un maillage. Une famille est composée d'une liste de noms de groupes (éventuellement vide). Chaque nom de groupes comprend MED_LNAME_SIZE caractères. Les familles sont identifiées par un nom et un numéro avec les caractéristiques suivantes :

- Le nom d'une famille est une chaîne d'au plus MED_NAME_SIZE caractères. Une famille de noeuds peut porter le même nom qu'un famille d'éléments. Par contre les familles d'éléments (respectivement de noeuds) doivent toutes avoir des noms différents.
- Le numéro d'une famille de noeuds doit être positif ou nul, le numéro d'une famille d'éléments doit être négatif ou nul. Par convention, la famille de numéro 0 ne comporte aucun groupe. La création de numéro 0 est obligatoire car elle constitue la famille de référence pour tous les noeuds et les éléments qui n'appartiennent à aucun groupe.

Définition à la ligne 18 du fichier medfamily.f.

subroutine mfafai | ( | integer | fid,
|  | character *(*) | maa,
|  | integer | ind,
|  | character *(*) | fam,
|  | integer | num,
|  | character *(*) | gro,
|  | integer | cret |
| ) |  |  |

Cette routine permet de lire les informations relatives à une famille d'un maillage.

Paramètres:

  | fid | Identificateur du fichier.
  | maa | Nom du maillage, de longueur maximum MED_NAME_SIZE .
  | ind | famit Itérateur sur les familles du maillage.
  | fam | familyname Nom de la famille de longueur maximum MED_NAME_SIZE .
  | num | familynumber Numéro de la famille.
  | gro | groupname Nom(s) de(s) groupe(s). Chaque nom de groupe est une chaîne de de longueur maximum MED_LNAME_SIZE caractères.
  | cret | retour négatif en cas d'erreur, Zéro sinon.

Cette routine permet de lire les informations relatives à une famille d'un maillage. L'accès à la famille se fait via un itérateur. Les informations lues sont :

- Le nom de la famille qui est une chaîne d'au plus MED_NAME_SIZE caractères. Une famille de noeuds peut porter le même nom qu'un famille d'éléments. Par contre les familles d'éléments (respectivement de noeuds) doivent toutes avoir des noms différents.
- Le numéro de la famille qui oit être positif ou nul (le numéro d'une famille d'éléments doit être négatif ou nul, par convention la famille de numéro 0 ne comporte aucun groupe).
- La liste de groupe de la famille (éventuellement vide). Chaque nom de groupes comprend MED_LNAME_SIZE caractères.

Définition à la ligne 77 du fichier medfamily.f.

subroutine mfanfa | ( | integer | fid,
|  | character *(*) | name,
|  | integer | n,
|  | integer | cret |
| ) |  |  |

Cette routine permet de lire le nombre de famille dans un maillage.

Paramètres:

  | fid | Identificateur du fichier.
  | name | Nom du maillage, de longueur maximum MED_NAME_SIZE .
  | n | Nombre de famille dans un maillage.
  | cret | retour négatif en cas d'erreur, Zéro sinon.

Cette routine permet de lire le nombre de famille dans un maillage.

Définition à la ligne 35 du fichier medfamily.f.

subroutine mfanfg | ( | integer | fid,
|  | character *(*) | maa,
|  | integer | it,
|  | integer | n,
|  | integer | cret |
| ) |  |  |

Cette routine permet de lire le nombre de groupe dans une famille.

Paramètres:

  | fid | Identificateur du fichier.
  | maa | Nom du maillage, de longueur maximum MED_NAME_SIZE .
  | it | famit Itérateur sur les familles du maillage.
  | n | Nombre de groupe de la famille.
  | cret | retour négatif en cas d'erreur, Zéro sinon.

Cette routine permet de lire le nombre d'attribut dans une famille. L'accès à la famille se fait via un itérateur.

Définition à la ligne 56 du fichier medfamily.f.

subroutine mfaofi | ( | integer | fid,
|  | character *(*) | maa,
|  | integer | it,
|  | character *(*) | fam,
|  | integer:dimension(*) | attnum,
|  | integer:dimension(*) | attval,
|  | character *(*) | attdes,
|  | integer | num,
|  | character *(*) | gro,
|  | integer | cret |
| ) |  |  |

Cette routine permet de lire les informations relatives à une famille d'un maillage créé avec MED 2.3 ou MED 2.2, -i.e. pouvant comporter une liste d'attributs en plus de la liste de groupes.

Paramètres:

  | fid | Identificateur du fichier.
  | maa | Nom du maillage, de longueur maximum MED_NAME_SIZE .
  | it | famit Itérateur sur les familles du maillage.
  | fam | familyname Nom de la famille de longueur maximum MED_NAME_SIZE .
  | attnum | attributenumber Liste des identificateurs des attributs.
  | attval | attributevalue Liste des valeurs des attributs.
  | attdes | attributedes Liste des descripteurs des attributs.
  | num | familynumber Numéro de la famille.
  | gro | groupname Nom(s) de(s) groupe(s). Chaque nom de groupe est une chaîne de de longueur maximum MED_LNAME_SIZE caractères.
  | cret | retour négatif en cas d'erreur, Zéro sinon.

Cette routine permet de lire les informations relatives à une famille d'un maillage créé avec MED 2.3 ou MED 2.2, -i.e. pouvant comporter une liste d'attributs en plus de la liste de groupes (la notion d'attribut a disparu avec MED 3.0). L'accès à la famille se fait via un itérateur et les informations lues sont :

- Le nom de la famille qui est une chaîne d'au plus MED_NAME_SIZE caractères. Une famille de noeuds peut porter le même nom qu'un famille d'éléments. Par contre les familles d'éléments (respectivement de noeuds) doivent toutes avoir des noms différents.
- Les attributs de la famille fournis sous la forme de 3 listes distinctes : liste des descripteurs entiers (un descripteur entier correspond à un numéro d'ordre dans la liste), liste des valeurs des attributs (un attribut porte une valeur entière), liste des descripteurs (un descripteur est une chaîne de MED_COMMENT_SIZE caractères).
- Le numéro de la famille qui oit être positif ou nul (le numéro d'une famille d'éléments doit être négatif ou nul, par convention la famille de numéro 0 ne comporte aucun groupe).
- La liste de groupe de la famille (éventuellement vide). Chaque nom de groupes comprend MED_LNAME_SIZE caractères.

Définition à la ligne 114 du fichier medfamily.f.

subroutine mfaona | ( | integer | fid,
|  | character *(*) | maa,
|  | integer | it,
|  | integer | n,
|  | integer | cret |
| ) |  |  |

Cette routine permet de lire le nombre d'attribut dans une famille dans un maillage créé avec MED 2.2 ou 2.3.

Paramètres:

  | fid | Identificateur du fichier.
  | maa | Nom du maillage, de longueur maximum MED_NAME_SIZE .
  | it | famit Itérateur sur les familles du maillage.
  | n | Nombre d'attribut de la famille.
  | cret | retour négatif en cas d'erreur, Zéro sinon.

Cette routine permet de lire le nombre d'attribut dans une famille dans un maillage créé avec MED 2.2 ou 2.3, -i.e. pouvant comporter une liste d'attributs en plus de la liste de groupes (la notion d'attribut a disparu avec MED 3.0). L'accès à la famille se fait via un itérateur.

Définition à la ligne 93 du fichier medfamily.f.