subroutine mfrblc ( integer  fid,
integer  nent,
integer  nvent,
integer  ncent,
integer  cs,
integer  swm,
integer  stm,
character*(*)  pname,
integer  start,
integer  stride,
integer  count,
integer  bsize,
integer  lbsize,
integer*8  flt,
integer  cret 
)

Crée un filtre en selectionnant par blocs les entités pour lesquelles on veut lire/écrire des valeurs. Cette sélection permet une lecture/écriture avancée vers/depuis les emplacements mémoire sélectionnés. Elle s'utilise aussi bien en mode séquentiel qu'en mode parallèle (un ou plusieurs processus).

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.
start Index de départ du premier bloc. L'index est relatif à un profil.
stride Ecart constant en nombre d'entités entre les blocs (en comptant à partir de l'indice de départ du bloc précédent). En particulier, écart entre start et l'index de départ du bloc suivant.
count Nombre de blocs à sélectionner (0 est possible).
bsize Taille de chaque bloc en nombre d'entités.
lbsize Taille en nombre d'entités du dernier bloc du dernier processus utilisé (inutilisé si count < 2 ).
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, Zéro sinon.
Voir également:
MEDfilterBlockOfEntity

La sélection des emplacements mémoire lus/écrits s'opère dans l'espace mémoire du processus appelant. Les entités sélectionnées le sont avec toutes leurs valeurs (nvaluesperentity). Il est possible de sélectionner l'ensemble des constituants par valeur ( MED_ALL_CONSTITUENT ) ou uniquement les constituants n°constituentselect . Les constituants sont lus/écrits en mode MED_FULL_INTERLACE|MED_NO_INTERLACE (med_switch_mode). Le mode de stockage peut être MED_GLOBAL ou MED_COMPACT (med_storage_mode) :

  • En mode MED_GLOBAL, chacun des processus possède l'espace mémoire des valeurs associés à la totalité des entités d'un même type. Dans ce mode, il n'est pas possible d'utiliser un profil utilisateur (car la sélection ne serait plus par bloc). Les seuls profils disponibles sont MED_ALLENTITIES_PROFILE ou MED_NO_PROFILE .
  • En mode MED_COMPACT, chacun des processus possède un espace mémoire contigü pour lire/écrire les valeurs des entités selectionnées par des blocks d'index. Les blocks décrivent les parties du profil à utiliser. Autrement dit, les blocks d'index créés indiquent les numéros d'entités à selectionner dans le tableau profil. La numérotation des index commence à 1. Il est possible d'utiliser un profil utilisateur ou MED_ALLENTITIES_PROFILE. Si le profil MED_ALLENTITIES_PROFILE est utilisé, les index sont directement les numéros des entités.
    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 74 du fichier medfilter.f.


Généré le Thu Oct 8 14:27:15 2015 pour MED fichier par  doxygen 1.6.1