MEDfield23ComputingStepMeshInfo
MEDfield23nProfile
MEDfield23nValueWithProfile
MEDfield23ValueWithProfileRd
MEDfieldComputingStepInfo
MEDfieldComputingStepMeshInfo
MEDfieldComputingStepMeshWr
MEDfieldCr
MEDfieldEntityType
MEDfieldGeometryType
MEDfieldInfo
MEDfieldInfoByName
MEDfieldInterpInfo
MEDfieldInterpWr
MEDfieldnComponent
MEDfieldnComponentByName
MEDfieldnEntityType
MEDfieldnGeometryType
MEDfieldnInterp
MEDfieldnProfile
MEDfieldnValue
MEDfieldnValueWithProfile
MEDfieldnValueWithProfileByName
MEDfieldValueAdvancedRd
MEDfieldValueAdvancedWr
MEDfieldValueRd
MEDfieldValueWithProfileRd
MEDfieldValueWithProfileWr
MEDfieldValueWr
MEDnField

## MEDfieldValueAdvancedWr()

med_err MEDfieldValueAdvancedWr | ( | const med_idt | fid,
|  | const char *const | fieldname,
|  | const med_int | numdt,
|  | const med_int | numit,
|  | const med_float | dt,
|  | const med_entity_type | entitype,
|  | const med_geometry_type | geotype,
|  | const char *const | localizationname,
|  | const med_filter *const | filter,
|  | const unsigned char *const | value
| ) |  |

Cette fonction permet d'écire les valeurs d'un champ définies sur des entités d'un maillage pour une étape de calcul et selon un filtre donnés.

Paramètres

  fid | Identificateur du fichier.
  fieldname | Nom du champ, de longueur maximum MED_NAME_SIZE .
  numdt | Numéro de pas de temps de l'étape de calcul (MED_NO_DT si pas de numéro de pas de temps).
  numit | Numéro d'itération de l'étape de calcul (MED_NO_IT si pas de numéro d'itération).
  dt | Date du pas de temps si le numéro de pas de temps est différent de MED_NO_DT.
  entitype | Type d'entité (med_entity_type).
  geotype | Type géométrique de l'entité (med_geometry_type).
  localizationname | Nom de la localisation, de longueur maximum MED_NAME_SIZE .
  filter | Filtre sur entités (med_filter) appliqué en lecture/écriture de valeurs.
  value | Tableau des valeurs.

Valeurs retournées

  med_err | retour négatif en cas d'erreur (MED_ERR_HOWTO), Zéro sinon.

Cette fonction permet d'écrire les valeurs d'un champ définies sur des entités d'un maillage pour une étape de calcul et selon un filtre donnés. Cette fonction est une fonction dite avancée car le paramètre correspondant au filtre permet de sélectionner finement les données lues en mode séquentiel ou parallèle : avec ou sans profil, mode d'entrelacement, par blocs, etc.

Remarques
  Depuis la 3.3.0 en plus des types MED_FLOAT64, MED_INT32 et MED_INT64, les types MED_FLOAT32 et MED_INT sont autorisés. Aux types med_int et med_float64 utilisés en C sont ajoutés les types med_float32, med_int32 et med_int64 (si la plateforme possède des entiers 64bits testé à la configuration).
  - A l'écriture :
    - si med_int = int les champs MED_INT32 sont toujours stockés en 32bits (utiliser med_int32 ou med_int )
    - si med_int = int les champs MED_INT64 sont désormais autorisés et stockés en 64bits (utiliser med_int64 )
    - si med_int = int les champs MED_INT sont désormais acceptés et stockés en 32bits (utiliser med_int ou med_int32 )
    - si med_int = long les champs MED_INT32 sont désormais stockés en 32bits (utiliser med_int32)
    - si med_int = long les champs MED_INT64 sont toujours autorisés et stockés en 64bits (utiliser med_int64 ou med_int )
    - si med_int = long les champs MED_INT sont désormais acceptés et stockés en 64bits (utiliser med_int ou med_int64 )
  - A la lecture :
    - si med_int = int les champs MED_INT32 sont toujours lus en 32bits (utiliser med_int32 ou med_int)
    - si med_int = int les champs MED_INT64 sont acceptés et lus en 64bits sans conversion (utiliser med_int64)
    - si med_int = int les champs MED_INT sont acceptés et lus en 32bits avec conversion si necessaire (0 si > maxint32 , utiliser med_int ou med_int32)
    - si med_int = long les champs MED_INT32 sont toujours lus en 32bits sans conversion (utiliser med_int32)
    - si med_int = long les champs MED_INT64 sont toujours lus en 64bits sans conversion (utiliser med_int64 ou med_int)
    - si med_int = long les champs MED_INT sont acceptés et lus en 64bits avec conversion si necessaire (utiliser med_int ou med_int64)
  Sur un Unix 32 bits sur architecture 64bits, il est possible d'utiliser des MED_INT64, l'étape de configuration vérifie l'existence ou définie le type C int64_t. A lecture d'un fichier < 3.3.0 avec une bibliothèque >= 3.3.0 configurée avec med_int = long :
  - Si le fichier lu contient un champ MED_INT32, les bibliothèques < 3.3.0 relisaient en se basant sur la taille 64 bits des med_int. Les tableaux étaient donc alloués en fonction de la taille du med_int, ceci n'est plus le cas pour les champs MED_INT32 ou MED_INT64.
  En Fortran pour les champs MED_INT64 utiliser le type integer*8 et pour les champs MED_INT32 utiliser le type integer*4.
  Avant la 3.3.0 seuls les types : MED_FLOAT64, MED_INT32 et MED_INT64 étaient autorisés dans MEDfieldCr et seuls les types med_int et med_float64 pouvaient être utilisés en C. La configuration du med_int était prédominante sur le choix du type de champ pour définir la taille du stockage à utiliser. Il faut garder à l'esprit que les étapes d'écriture et de lecture ne se font pas forcément avec la même configuration de med_int.
  - A l'écriture :
    - si med_int = int les champs MED_INT32 sont stockés en 32bits
    - si med_int = int les champs MED_INT64 sont interdits
    - si med_int = long les champs MED_INT32 sont stockés en 64bits
    - si med_int = long les champs MED_INT64 sont stockés en 64bits
  - A la lecture :
    - si med_int = int les champs MED_INT32 sont lus en 32bits avec conversion 64->32 s'il avait été stocké en 64bits (configuration écriture med_int = long)
    - si med_int = int les champs MED_INT64 ne pouvaient pas être lu (pour prevenir la perte d'information)
    - si med_int = long les champs MED_INT32 sont lus en 64bits avec conversion 32->64 s'il avait été stocké en 32bits (configuration écriture med_int = int)
    - si med_int = long les champs MED_INT64 sont lus en 64bits
  - Des profils supplémentaires à une étape de calcul peuvent être utilisés pour définir des localisations de points d'intégration différentes pour un même couple ( med_entty_type, med_geometric_type ).
  - Ces profils supplémentaires doivent être disjoints. De plus, il n'est pas autorisé de stocker deux profils disjoints avec une même localisation ; un seul profil doit être utilisé dans ce cas (un algèbre de profils permettrait de répondre à ce usecase).

Définition à la ligne 46 du fichier MEDfieldValueAdvancedWr.c.