]> SALOME platform Git repositories - modules/med.git/blob - src/MEDWrapper/V2_1/Core/MEDprofilLire.cxx
Salome HOME
Mantis issue 0021668: [CEA 564] MED2.1 to MED2.3
[modules/med.git] / src / MEDWrapper / V2_1 / Core / MEDprofilLire.cxx
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.
7 *  
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.
12 *
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
16 *
17 *************************************************************************/
18
19 #include "med.hxx"
20 #include "med_outils.hxx"
21
22 #include <string.h>
23 #include <stdlib.h>
24
25 namespace med_2_1{
26
27 med_err 
28 MEDprofilLire(med_idt fid,med_int *pflval, char *nom)
29 {
30   med_err ret = 0;
31   med_idt pid;
32   char chemin[MED_TAILLE_PROFILS+MED_TAILLE_NOM+1]; 
33
34   /*
35    * On inhibe le gestionnaire d'erreur HDF 5
36    */
37   _MEDmodeErreurVerrouiller();
38
39   /* 
40    * ouverture du groupe /PROFILS/"nom"
41    */  
42   strcpy(chemin,MED_PROFILS);
43   strcat(chemin,nom); 
44   if ((pid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
45     return -1;
46
47   /*
48    * Lecture du profil
49    */
50 #if defined(HAVE_F77INT64)
51   if ((ret =  _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT64,
52                                  MED_NO_INTERLACE,1,MED_ALL,
53                                  MED_NOPF,0,MED_NOPG,
54                                  (unsigned char *) pflval)) < 0)
55     return -1;
56 #else
57   if ((ret =  _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT32,
58                                  MED_NO_INTERLACE,1,MED_ALL,
59                                  MED_NOPF,0,MED_NOPG,
60                                  (unsigned char *) pflval)) < 0)
61     return -1;
62 #endif
63
64   /*
65    * On ferme tout
66    */
67   if ((ret = _MEDdatagroupFermer(pid)) < 0)
68     return -1; 
69
70   return ret;
71 }
72
73 }