|
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 de correspondance. Ce paramètre ne prend pas 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éallocation 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
- Le filtre crée 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).
Définition à la ligne 74 du fichier medfilter.f.
|