MED fichier

mfrall
mfrblc
mfrcre
mfrdea
| ## ◆ mfrcre()
subroutine mfrcre | ( | integer*8 | fid,
|  | integer | nent,
|  | integer | nvent,
|  | integer | ncent,
|  | integer | cs,
|  | integer | swm,
|  | integer | stm,
|  | character*(*) | pname,
|  | integer | fltas,
|  | integer:dimension(*) | flta,
|  | integer*8 | flt,
|  | integer | cret
| ) |  |
  Crée une selection d'entités grâce a un tableau d'index filterarray de taille filterarraysize. Initialisé en sortie de fonction, le filtre filter sera utilisé pour lire/écrire des valeurs associées à ces entités. Ces valeurs peuvent être des coordonnées, des connectivités des valeurs de champs résultats mais aussi des numéros de familles, des noms ou numéros optionnels. Paramètres
  fid | Identificateur du fichier.
  nent | Nombre d'entités de même type géométrique constituant globalement le maillage. Ce paramètre ne doit pas prendre en compte nvaluesperentity et nconstituentpervalue.
  nvent | Nombre de valeurs par entité. Utiliser la valeur 1 pour un filtre d'éléments de maillage. Cela peut être le nombre de points d'intégration utilisé dans un champ résultat.
  ncent | Nombre de constituants par valeur. Cela peut être le nombre de coordonnées des noeuds, le nombre de noeuds d'une connectivité, le nombre de composantes d'un champ résultat.
  cs | Numéro de constituant des valeurs à filtrer (commence à 1). Le mot clé MED_ALL_CONSTITUENT permet de selectionner tous les constituants. Cela peut être le numéro de coordonnées des noeuds, le numéro de noeuds d'une connectivité, le numéro de composantes d'un champ résultat.
  swm | Mode d'entrelacement utilisé pour le stockage de valeurs med_switch_mode.
  stm | Indique le mode de stockage en mémoire med_storage_mode des valeurs associées au profil utilisé.
  pname | Nom du profil utilisé (de taille maximum MED_NAME_SIZE ) ou (MED_NO_PROFILE | MED_ALLENTITIES_PROFILE ) s'il n'y a pas de profil.
  fltas | Nombre d'entités à filtrer et taille du tableau filterarray. Ne prend pas en compte nvaluesperentity et nconstituentpervalue.
  flta | Tableau d'index du profil des numéros d'entités associées aux valeurs à sélectionner.
  flt | Filtre sur entités (med_filter) appliqué en lecture/écriture de valeurs. La désallocation est à la charge de l'utilisateur (cf. MEDfilterClose MEDfilterDeAllocate).
  cret | retour négatif en cas d'erreur (MED_ERR_HOWTO), Zéro sinon.
Voir également Guide de référence du module MEDfilter Crée une selection d'entités grâce a un tableau d'index filterarray de taille filterarraysize. Initialisé en sortie de fonction, le filtre filter sera utilisé pour lire/écrire des valeurs associées à ces entités. Ces valeurs peuvent être des coordonnées, des connectivités des valeurs de champs résultats mais aussi des numéros de familles, des noms ou numéros optionnels. Les nvaluesperentity valeurs associées à chaque entité seront sélectionnées (ex : le nombre de points d'intégration des valeurs d'un champ résultat). Il est possible de sélectionner l'ensemble des constituants par valeur ( MED_ALL_CONSTITUENT ) ou uniquement les constituants numéro constituentselect (ex : coordonnées n°i de noeuds, composantes n°i des valeurs d'un champ résultat). Les constituants sont lus/écrits en mode MED_FULL_INTERLACE|MED_NO_INTERLACE (med_switch_mode). Le rangement des valeurs en mémoire peut être en mode MED_GLOBAL_STMODE ou MED_COMPACT_STMODE (med_storage_mode). Les index définis dans le tableau de filtre (filterarray) sont des index relatifs à un tableau profil (eventuellement le tableau virtuel MED_ALLENTITIES_PROFILE ou MED_NO_PROFILE ). La numérotation des index commence à 1, comme la numérotation implicite des éléments. Index et profils : Les valeurs à lire/écrire peuvent être définies sur un profil d'entités. L'utilisation d'un profil d'entités permet de restreindre le stockage des valeurs aux seules entités dont l'évolution présente un intérêt. Si les valeurs concernées ne sont pas définies sur un profil d'entités, les index utilisés sont directement les numéros d'entités (équivaut aux index d'un profil MED_ALLENTITIES_PROFILE). Si les valeurs concernées sont définies sur un profil, les index sont appliqués au profil pour sélectionner indirectement les entités. Utilisation sans profils et sans tableau d'index : Il est possible d'initialiser un filtre sans utiliser de profil et sans définir un tableau d'index. Le filtre sert alors à selectionner les constituants de numéro constituentselect des valeurs. Remarques Les numéros d'entités selon la numérotation MED implicite sont relatifs au type géométrique de l'entité (la numérotation implicite commence à 1 pour chaque type géométrique différent). Les numéros d'entités/index de profil doivent apparaître en ordre croissant. Un numéro d'entité/index de profil peut aparaître plusieurs fois (ils sont alors consécutifs). Le filtre créé prend en compte les paramètres nvaluesperentity et nconstituentpervalue pour selectionner les emplacements en mémoire en fonction du mode de stockage utilisé (med_storage_mode). La sélection des emplacements mémoire lus/écrits s'opère dans l'espace mémoire d'un seul processus. Le filtre créé s'utilise uniquement en mode séquentiel (le fid utilisé lors de la lecture/écriture doit provenir d'une ouverture séquentielle). Définition à la ligne 22 du fichier medfilter.f.