MED fichier: MEDfieldCr

MED fichier

- Documentation MED
- Guides d'utilisation
- Guides de référence

MEDfield23ComputingStepMeshInfo
MEDfield23nProfile
MEDfield23nValueWithProfile
MEDfield23ValueWithProfileRd
MEDfieldComputingStepInfo
MEDfieldComputingStepMeshInfo
MEDfieldComputingStepMeshWr
MEDfieldCr
MEDfieldInfo
MEDfieldInfoByName
MEDfieldInterpInfo
MEDfieldInterpWr
MEDfieldnComponent
MEDfieldnComponentByName
MEDfieldnInterp
MEDfieldnProfile
MEDfieldnValue
MEDfieldnValueWithProfile
MEDfieldnValueWithProfileByName
MEDfieldValueAdvancedRd
MEDfieldValueAdvancedWr
MEDfieldValueRd
MEDfieldValueWithProfileRd
MEDfieldValueWithProfileWr
MEDfieldValueWr
MEDnField
med_err MEDfieldCr | ( | const med_idt | fid,
|  | const char *const | fieldname,
|  | const med_field_type | fieldtype,
|  | const med_int | ncomponent,
|  | const char *const | componentname,
|  | const char *const | componentunit,
|  | const char *const | dtunit,
|  | const char *const | meshname
| ) |  |
  Cette fonction crée un champ dans un fichier. Paramètres
  fid | Identificateur du fichier.
  fieldname | Nom du champ, de longueur maximum MED_NAME_SIZE .
  fieldtype | Type numérique des composantes du champ.
  ncomponent | Nombre de composantes.
  componentname | Nom des composantes du champ. Les noms des composantes sont définis dans une chaîne de ncomponent * MED_SNAME_SIZE caractères.
  componentunit | Unité des composantes du champ. Les noms des unités des composantes sont définis dans une chaîne de ncomponent * MED_SNAME_SIZE caractères.
  dtunit | Unité des dates des séquences de calcul du champ. Elle est définie dans une chaîne de taille MED_SNAME_SIZE .
  meshname | Nom du maillage, de longueur maximum MED_NAME_SIZE .
  Valeurs retournées
  med_err | retour négatif en cas d'erreur, Zéro sinon.
Cette fonction crée un champ dans un fichier. Un champ est composé d'une ou plusieurs composantes scalaires. A chaque composante est associé un nom et une unité. Le type des valeurs des composantes peut être au choix (med_field_type) : MED_FLOAT64 : flottant 64 bits, MED_FLOAT32 : flottant 32 bits, MED_INT32 : entier 32 bits, MED_INT64 : entier 64 bits. MED_INT : entier MED_INT32 ou MED_INT64 selon la configuration du med_int. 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 Définition à la ligne 44 du fichier MEDfieldCr.c.