00001 /* This file is part of MED. 00002 * 00003 * COPYRIGHT (C) 1999 - 2015 EDF R&D, CEA/DEN 00004 * MED is free software: you can redistribute it and/or modify 00005 * it under the terms of the GNU Lesser General Public License as published by 00006 * the Free Software Foundation, either version 3 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * MED is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public License 00015 * along with MED. If not, see <http://www.gnu.org/licenses/>. 00016 */ 00017 00018 00019 #include <med.h> 00020 #include <med_config.h> 00021 #include <med_outils.h> 00022 #include <string.h> 00023 #include <stdlib.h> 00024 00025 /* 00026 * - Nom de la fonction : MEDchampEcr 00027 * - Description : ecriture d'un Champ Résultat 00028 * - Parametres : 00029 * - fid (IN) : ID du fichier HDF courant 00030 * - maa (IN) : le nom du maillage sur lequel s'applique le champ (eventuellement distant) 00031 * - cha (IN) : le nom du champ 00032 * - val (IN) : valeurs du champ à stocker 00033 * - interlace(IN) : entrelacement utilisé en mémoire {MED_FULL_INTERLACE,MED_NO_INTERLACE} 00034 * - nbelem (IN) : nombre d'éléments (prend en compte le nbre 00035 * de points de Gauss (c'est demandé à l'utilisateur ds la doc) 00036 mais pas le nbre de composantes) 00037 * - locname (IN) : clé utilisée pour la définition de la localisation 00038 des points de GAUSS (MED_NOGAUSS si aucun, MED_GAUSS_ELNO si les points de Gauss 00039 * portent sur les noeuds de l'element). La localisation doit exister 00040 * avant l'appel à MEDchampEcr. 00041 * - numco (IN) : n° de la composante à stocker (MED_ALL si toutes) 00042 * - profil (IN) : nom du profil utilisé (MED_NOPFL si inutilisé) 00043 * - pflmod (IN) : Indique comment lire les informations en mémoire { MED_COMPACT, MED_GLOBAL }. 00044 * - type_ent (IN) : entité concerné par le champ {MED_NOEUD,MED_ARETE,MED_FACE,MED_MAILLE} 00045 * - type_geo (IN) : type géométrique de l'entité concerné {MED_POINT,MED_SEG2 ......} 00046 * - numdt (IN) : n° du pas de temps (MED_NOPDT si aucun) 00047 * - dt_unit (IN) : chaine de taille MED_NOMP indiquant l'unité du champ 00048 * - dt (IN) : valeur du pas de temps 00049 * - numo (IN) : n° d'ordre utilisé MED_NONOR si inutile 00050 * - Resultat : 0 en cas de succes, -1 sinon 00051 */ 00052 00053 med_err MEDchampEcr(med_idt fid, char *maa, char *cha, 00054 unsigned char *val, med_mode_switch interlace, med_int nbelem, char * locname, 00055 med_int numco, char * profil, med_mode_profil pflmod, 00056 med_entite_maillage type_ent, med_geometrie_element type_geo, 00057 med_int numdt,char * dt_unit, med_float dt, med_int numo) 00058 { 00059 char * name = "MEDchampEcr"; 00060 int dummy=0; 00061 med_err fret=-1; 00062 med_int majeur, mineur, release; 00063 MedFuncType func; 00064 00065 MEDversionLire(fid, &majeur, &mineur, &release); 00066 00067 func = _MEDversionedApi(name,majeur,mineur,release); 00068 if ( func != (MedFuncType) NULL ) 00069 func (dummy, fid, maa, cha, 00070 val, interlace, nbelem, locname, 00071 numco, profil, pflmod, 00072 type_ent, type_geo, 00073 numdt, dt_unit, dt, numo , &fret); 00074 00075 00076 return fret; 00077 }