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 <hdf5.h> 00023 00024 /* 00025 * - Nom de la fonction : _MEDdatasetNumEcrire 00026 * - Description : ecriture d'un dataset tableau numerique 00027 * - Parametres : 00028 * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut 00029 * - nom (IN) : le nom du dataset 00030 * - type (IN) : type numerique MED { MED_FLOAT64 , MED_INT32 , MED_INT64 } 00031 * - interlace (IN) : Choix du type d'entrelacement utilisé par l'appelant 00032 * { MED_FULL_INTERLACE(x1,y1,z1,x2,...)) , MED_NO_INTERLACE(x1,x2,y1,y2,z1,z2) } 00033 * - nbdim (IN) : Dimension des éléments 00034 * - fixdim (IN) : MED_ALL ou n° de la dimension a enregistrer 00035 * - psize (IN) : Taille du profil à utiliser, MED_NOPF si pas de profil 00036 * (référence les élements, cette taille ne prend pas en compte le nombre de pts de gauss ni la dimension ) 00037 * - pflmod (IN) : Indique comment lire les informations en mémoire { MED_COMPACT, MED_GLOBALE }. 00038 * - modifpfl(IN) : Si psize != MED_NOPF : 00039 * - modifpfl == 1 indique que la taille ou le contenu du profil a changé 00040 * - modifpfl == 0 indique que la taille ou le contenu du profil n'a pas changé 00041 * - pfltab (IN) : Tableau contenant les n° déléments à traiter (1....oo) 00042 * - ngauss (IN) : Nombre de points de GAUSS par élément 00043 * - size (IN) : Taille du tableau de valeurs 00044 * (référence tous les élements, cette taille prend en compte le nombre de pts de gauss et la dimension ) 00045 * - val (IN) : valeurs du tableau 00046 * - Resultat : 0 en cas de succes, -1 sinon 00047 */ 00048 00049 med_err _MEDdatasetNumEcrire(med_idt pere,char *nom, med_type_champ type, 00050 med_mode_switch interlace, med_size nbdim, med_size fixdim, 00051 med_size psize, med_mode_profil pflmod, med_int modifpfl, med_size * pfltab, 00052 med_int ngauss, med_size *size, unsigned char *val) 00053 { 00054 char * name = "_MEDdatasetNumEcrire"; 00055 int dummy=0; 00056 med_err fret=-1; 00057 med_int majeur, mineur, release; 00058 MedFuncType func; 00059 00060 MEDversionLire(pere, &majeur, &mineur, &release); 00061 00062 func = _MEDversionedApi(name,majeur,mineur,release); 00063 if ( func != (MedFuncType) NULL ) 00064 func (dummy, pere, nom, type, 00065 interlace, nbdim, fixdim, 00066 psize, pflmod, modifpfl, pfltab, 00067 ngauss, size,val, &fret); 00068 00069 return fret; 00070 }