Back to index

salome-med  6.5.0
MEDprofilLire.cxx
Go to the documentation of this file.
00001 /*************************************************************************
00002 * COPYRIGHT (C) 1999 - 2002  EDF R&D
00003 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
00004 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE 
00005 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 
00006 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
00007 *  
00008 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
00009 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
00010 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
00011 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
00012 *
00013 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
00014 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
00015 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
00016 *
00017 *************************************************************************/
00018 
00019 #include "med.hxx"
00020 #include "med_outils.hxx"
00021 
00022 #include <string.h>
00023 #include <stdlib.h>
00024 
00025 namespace med_2_1{
00026 
00027 med_err 
00028 MEDprofilLire(med_idt fid,med_int *pflval, char *nom)
00029 {
00030   med_err ret = 0;
00031   med_idt pid;
00032   char chemin[MED_TAILLE_PROFILS+MED_TAILLE_NOM+1]; 
00033 
00034   /*
00035    * On inhibe le gestionnaire d'erreur HDF 5
00036    */
00037   _MEDmodeErreurVerrouiller();
00038 
00039   /* 
00040    * ouverture du groupe /PROFILS/"nom"
00041    */  
00042   strcpy(chemin,MED_PROFILS);
00043   strcat(chemin,nom); 
00044   if ((pid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
00045     return -1;
00046 
00047   /*
00048    * Lecture du profil
00049    */
00050 #if defined(HAVE_F77INT64)
00051   if ((ret =  _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT64,
00052                                  MED_NO_INTERLACE,1,MED_ALL,
00053                                  MED_NOPF,0,MED_NOPG,
00054                                  (unsigned char *) pflval)) < 0)
00055     return -1;
00056 #else
00057   if ((ret =  _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT32,
00058                                  MED_NO_INTERLACE,1,MED_ALL,
00059                                  MED_NOPF,0,MED_NOPG,
00060                                  (unsigned char *) pflval)) < 0)
00061     return -1;
00062 #endif
00063 
00064   /*
00065    * On ferme tout
00066    */
00067   if ((ret = _MEDdatagroupFermer(pid)) < 0)
00068     return -1; 
00069 
00070   return ret;
00071 }
00072 
00073 }