1 /*************************************************************************
2 * COPYRIGHT (C) 1999 - 2002 EDF R&D
3 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
5 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
6 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
8 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
14 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
15 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
17 *************************************************************************/
22 #include "med_outils.hxx"
27 MEDnVal(med_idt fid, char *champ, med_entite_maillage type_ent,
28 med_geometrie_element type_geo,med_int numdt, med_int numo)
33 char nomdatagroup1[2*MED_TAILLE_NOM_ENTITE+2],nomdatagroup2[2*MED_MAX_PARA+1];
34 char tmp1 [MED_TAILLE_NOM_ENTITE+1];
35 char chemin [MED_TAILLE_CHA+(MED_TAILLE_NOM+1)+(2*MED_TAILLE_NOM_ENTITE+2)+(2*MED_MAX_PARA)+1+100];
38 * On inhibe le gestionnaire d'erreur HDF
40 _MEDmodeErreurVerrouiller();
43 * On cree le chemin d'accès
45 strcpy(chemin,MED_CHA);
49 /* On cree le nom du datagroup de niveau 1 */
50 if ((ret = _MEDnomEntite(nomdatagroup1,type_ent)) < 0)
52 if ((type_ent != MED_NOEUD))
54 if ((ret = _MEDnomGeometrie(tmp1,type_geo)) < 0)
56 strcat(nomdatagroup1,".");
57 strcat(nomdatagroup1,tmp1);
59 strcat(chemin,nomdatagroup1);
62 /* Creation du datagroup de niveau 2 <numdt>.<numoo> */
63 sprintf(nomdatagroup2,"%*li%*li",MED_MAX_PARA,(long ) numdt,MED_MAX_PARA,(long ) numo);
64 strcat(chemin,nomdatagroup2);
69 if ((datagroup = _MEDdatagroupOuvrir(fid,chemin)) < 0)
71 if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NBR,&n)) < 0)
77 if ((ret = _MEDdatagroupFermer(datagroup)) < 0)