Back to index

salome-med  6.5.0
MEDgridInfo.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 MEDgridInfo(med_idt fid, int indice, med_int *isAGrid, med_grid_type *typ) 
00029 {
00030     int     numero;
00031     med_idt maaid;
00032     char    maillage[MED_TAILLE_NOM+1];
00033     char    chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
00034 
00035     /* On inhibe le gestionnaire d'erreur */
00036     _MEDmodeErreurVerrouiller();
00037 
00038     /* On recupere le nom du groupe de rang "indice" */
00039     numero = indice-1;
00040     if (_MEDobjetIdentifier(fid, MED_MAA, numero, maillage) < 0) {
00041         return(-1);
00042     };
00043 
00044     /* On va chercher l'attribut dimension */
00045     strcpy(chemin, MED_MAA);
00046     strcat(chemin, maillage);
00047     maaid = _MEDdatagroupOuvrir(fid, chemin);
00048     if (maaid < 0) return(-1);
00049 
00050     med_int aTmpType; // MPV bug IPAL 13621: for 64bits platform read 64 bits (not 32 - as for type)
00051     if (_MEDattrEntierLire(maaid, MED_NOM_GRD, &aTmpType) < 0) {
00052         *isAGrid = 0;
00053     } else {
00054         *isAGrid = 1;
00055     };
00056     *typ = (med_grid_type)aTmpType;// MPV bug IPAL 13621: now use this 64bits value to set enumeration
00057 
00058     if (_MEDdatagroupFermer(maaid) < 0) return(-1);
00059     return(0);
00060 }
00061 
00062 }