MED fichier

◆ mmhnep()

subroutine mmhnep ( integer*8  fid,
character *(*)  name,
integer  numdt,
integer  numit,
integer  entype,
integer  geotype,
integer  datype,
integer  cmode,
integer  stm,
character *(*)  pname,
integer  psize,
integer  chgt,
integer  tsf,
integer  n,
integer  cret 
)

Cette routine permet de lire le nombre d'entités dans un maillage pour une étape de calcul et un profil donnés.

Paramètres
fidIdentificateur du fichier.
nameNom du maillage, de longueur maximum MED_NAME_SIZE .
numdtNuméro de pas de temps de l'étape de calcul (MED_NO_DT si pas de numéro de pas de temps).
numitNuméro d'itération de l'étape de calcul (MED_NO_IT si pas de numéro d'itération).
entypeType d'entité (med_entity_type).
geotypeType géométrique de l'entité (med_geometry_type).
datypeType de la donnée.
cmodeMode de connectivité (nodale ou descendante).
stmIndique le mode de stockage en mémoire med_storage_mode des valeurs associées au profil utilisé.
pnameNom du profil utilisé (de taille maximum MED_NAME_SIZE ) ou (MED_NO_PROFILE | MED_ALLENTITIES_PROFILE ) s'il n'y a pas de profil.
psizeTaille du profil.
chgtIndicateur de changement par rapport à l'étape de calcul précédente.
tsfIndicateur de transformation par rapport à l'étape de calcul précédente.
nNombre d'entité à lire.
cretretour négatif en cas d'erreur (MED_ERR_HOWTO), Zéro sinon.
Voir également
MEDmeshnEntityWithProfile

Cette routine permet de lire le nombre d'entités dans un maillage pour une étape de calcul et un profil donnés. Le profil est identifié par un nom et le mode de stockage des données en mémoire peut être paramétré : MED_COMPACT_STMODE ou MED_GLOBAL_STMODE . L'indicateur changement indique un changement dans le maillage par rapport à l'étape de calcul précédente (exemple : nouvelles coordonnées des noeuds). Si cet indicateur est à MED_TRUE, l'indicateur tranbsformation indique pour l'étape de calcul considérée et le type d'entité concerné un changement géométrique (exemple : modification des connectivités des mailles). Cette routine retourne selon la valeur des paramètres et en tenant compte du mode de stockage du profil : Cette routine retourne selon la valeur des paramètres :

  • Le nombre de noeuds/mailles/faces/arêtes d'un maillage non structuré.
  • Le nombre de noeuds d'un maillage structuré correspondant à une grille curviligne (MED_CURVILINEAR_GRID).
  • Le nombre de points de coordonnées d'un maillage structuré correspondant à une grille cartésienne ou polaire (MED_CURVILINEAR_GRID,MED_POLAR_GRID).
  • La taille des tableaux d'index des polygones (entitype==MED_CELL, geotype==MED_POLYGON, datatype==MED_INDEX_NODE) .
  • La taille des tableaux d'index des faces des polyèdres (entitype==MED_CELL, geotype==MED_POLYHEDRON, datatype==MED_INDEX_FACE) .
  • La taille des tableaux d'index des polyèdres (entitype==MED_CELL, geotype==MED_POLYHEDRON, datatype==MED_INDEX_NODE) .
    Remarques

    ENTITYPE

    GEOTYPE

    DATATYPE

    N

    CHGT

    TRF

    MED_UNDEF_ENTITY_TYPE

    Quelconque

    Quelconque

    0

    TRUE si un quelconque changement s'est produit par rapport à la séquence de calcul précédente.

    FALSE

    MED_ALL_ENTITY_TYPE

    Quelconque

    Quelconque

    Nombre de types d'entités différents contenu dans le maillage à la séquence de calcul spécifié. Ce nombre inclus la présence du type éléments de structures et des noeuds.

    TRUE si un quelconque changement s'est produit par rapport à la séquence de calcul précédente.

    FALSE

    <entitype>

    MED_GEO_ALL

    Quelconque

    Nombre de types géométriques différents pour le type d'entité <entitype> dans le maillage quelque soit la séquence de calcul. La valeur 1 est renvoyée pour le type d'entité MED_NODE. si des coordonnées sont présentes.

    TRUE si un quelconque changement s'est produit par rapport à la séquence de calcul précédente pour le type d' entité <entitype>.

    FALSE

    MED_NODE

    Quelconque

    MED_COORDINATE
    MED_COORDINATE_AXIS<i>

    Si aucun profil stocké :

    -Nombre de noeuds total

    Si un profil est stocké :

    -Nombre de noeuds total en mode MED_GLOBAL_STMODE
    -Nombre de noeuds du profil en mode MED_COMPACT_STMODE

    TRUE si un quelconque changement s'est produit par rapport à la séquence de calcul précédente que cela concerne :

    - le tableau de coordonnées
    - la matrice de transformation
    - le tableau des numéros optionnels
    - le tableau des numéros de familles
    - le tableau des noms optionnels
    - le tableau de numérotation globale

    Si CHGT=TRUE :

    - TRUE indique un changement qui concerne uiquement le tableau des coordonnées des noeuds.

    - FALSE indique un changement qui ne concerne pas uniquement le tableau des coordonnées des noeuds. Si un changement des coordonnées existe, cela implique qu'il existe également un autre changement (transformation, noms,n° optionnels..).Il faut déterminer par d'autres appels à cette routine quelles autres informations sont concernées par le changement.

    Si CHGT=FALSE :

    - FALSE est la seule valeur possible

    MED_COORDINATE_TRSF

    7 ( la taille fixe de matrice de transformation)

    TRUE si un changement s'est produit par rapport à la séquence de calcul précédente concernant le tableau des coordonnées (non exclusif avec d'autres types de modifications)

    TRUE si un quelconque changement s'est produit par rapport à la séquence de calcul précédente dans le tableau concerné par le paramètre DATATYPE (non exclusif avec d'autres types de modifications)

    - MED_NAME
    - MED_NUMBER
    - MED_GLOBAL_NUMBER
    - MED_FAMILY_NUMBER

    Si aucun profil stocké :

    -Nombre de noeuds total

    Si un profil est stocké :

    -Nombre de noeuds total en mode MED_GLOBAL_STMODE
    -Nombre de noeuds du profil en mode MED_COMPACT_STMODE

    != MED_NODE

    <geotype>

    MED_CONNECTIVITY
    MED_INDEX_FACE
    MED_INDEX_NODE

    Si aucun profil stocké :

    -Nombre d'entités du type géométrique <geotype> total

    Si un profil est stocké :

    -Nombre d'entités du type géométrique <geotype> total en mode MED_GLOBAL_STMODE
    -Nombre d'entités du type géométrique <geotype> du profil en mode MED_COMPACT_STMODE

    TRUE si un quelconque changement s'est produit par rapport à la séquence de calcul précédente pour le type d'entité <entitype> et le type géométrique <geotype> que cela concerne :

    - le tableau de connectitivités
    - les tableaux d'index polygones / polyhèdres
    - le tableau des numéros optionnels
    - le tableau des numéros de familles
    - le tableau des noms optionnels
    - le tableau de numérotation globale
    - les attributs variables si <entitype>==MED_STRUCT_ELEMENT

    Si CHGT=TRUE :

    - TRUE indique un changement qui concerne uiquement le tableau des connectivités des éléments.(et des tableaux d'index pour les polygones / polyhèdres)

    - FALSE indique un changement qui ne concerne pas uniquement le tableau des connectivités des éléments. Si un changement des connectivités des éléments existe, cela implique qu'il existe également un autre changement (transformation, noms,n° optionnels..).Il faut déterminer par d'autres appels à cette routine quelles autres informations sont concernées par le changement.

    Si CHGT=FALSE :

    - FALSE est la seule valeur possible

    - MED_NAME
    - MED_NUMBER
    - MED_GLOBAL_NUMBER
    - MED_FAMILY_NUMBER
     MED_VARIABLE_ATTRIBUTE

    Idem

    TRUE si un changement s'est produit par rapport à la séquence de calcul précédente concernant le tableau des connectivités (non exclusif avec d'autres types de modifications)

    TRUE si un quelconque changement s'est produit par rapport à la séquence de calcul précédente dans le tableau concerné par le paramètre DATATYPE (non exclusif avec d'autres types de modifications)


    • La première séquence de calcul <MED_NO_DT,MED_NO_IT> ne peut pas utiliser de profil

    • La première séquence de calcul <MED_NO_DT,MED_NO_IT> ne peut pas utiliser de matrice de transformation

    • Seuls les types géométriques présents à la première séquence de calcul peuvent apparaître dans les séquences de calcul suivantes

    • Une matrice de transformation ne peut pas cohabiter avec la définition de nouvelles coordonnées au sein d'une même séquence de calcul

    • Si de nouvelles coordonnées sont écrites dans une nouvelle séquence de calcul qui suit une séquence contenant une matrice de transformation, cette dernière ne sera pas visible dans la nouvelle séquence

    • Lorsqu'un profil est utilisé pour la connectivité/les coordonnées d'un type géométrique/entité donné, il est également appliqué pour tous les attributs (optionnels ou non)

    • Un code qui ne s'intéresserait pas aux attributs optionnels doit vérifier leur présence dès le premier pas de temps

    • Le nombre d'entités renvoyé pour les attributs optionnels doit être identique à celui renvoyé pour les coordonnées des noeuds ou la connectivité des éléments (sinon le fichier n'est pas conforme au modèle MED)

    • La taille du tableau d'index des polygones/polyèdres moins 1 indique le nombre de polygones/polyèdres disponibles (utile pour l'allocation des tableaux d'attributs optionnels).

Définition à la ligne 670 du fichier medmesh.f.