+++ /dev/null
-# Copyright (C) 2007-2012 CEA/DEN, EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-ADD_SUBDIRECTORY(Core)
-ADD_SUBDIRECTORY(Wrapper)
+++ /dev/null
-# Copyright (C) 2007-2012 CEA/DEN, EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-INCLUDE_DIRECTORIES(
- ${HDF5_INCLUDE_DIRS}
- )
-
-SET(TOOLS_HDFI_SOURCES
- MEDattrFermer.cxx
- MEDattrNumEcrire.cxx
- MEDattrNumLire.cxx
- MEDattrOuvrir.cxx
- MEDattrStringEcrire.cxx
- MEDattrStringLire.cxx
- MEDdatagroupCreer.cxx
- MEDdatagroupFermer.cxx
- MEDdatagroupOuvrir.cxx
- MEDdatasetFermer.cxx
- MEDdatasetNumEcrire.cxx
- MEDdatasetNumLire.cxx
- MEDdatasetOuvrir.cxx
- MEDdatasetStringEcrire.cxx
- MEDdatasetStringLire.cxx
- MEDfichierCreer.cxx
- MEDfichierFermer.cxx
- MEDfichierOuvrir.cxx
- MEDindiceInfo.cxx
- MEDindiceNum.cxx
- MEDmodeErreurVerrouiller.cxx
- MEDnObjets.cxx
- MEDobjetIdentifer.cxx
- )
-
-SET(TOOLS_MISC_SOURCES
- MED1cstring.cxx
- MEDnomDataset.cxx
- MED2cstring.cxx
- MEDnomEntite.cxx
- MEDGeometrieElement.cxx
- MEDnomGeometrie.cxx
- MEDcstringFree.cxx
- MEDparametresGeometrie.cxx
- MEDfstring.cxx
- )
-
-SET(API_CI_SOURCES
- MEDchampCr.cxx
- MEDchampEcr.cxx
- MEDchampInfo.cxx
- MEDchampLire.cxx
- MEDconnEcr.cxx
- MEDconnLire.cxx
- MEDcoordEcr.cxx
- MEDcoordLire.cxx
- MEDdimLire.cxx
- MEDelementsEcr.cxx
- MEDelementsLire.cxx
- MEDequivCr.cxx
- MEDequivEcr.cxx
- MEDequivInfo.cxx
- MEDequivLire.cxx
- MEDfam2groA.cxx
- MEDfam2groB.cxx
- MEDfamCr.cxx
- MEDfamEcr.cxx
- MEDfamInfo.cxx
- MEDfamLire.cxx
- MEDfamMaaCr.cxx
- MEDfamMaaInfo.cxx
- MEDfamMaaLire.cxx
- MEDfermer.cxx
- MEDfichDesEcr.cxx
- MEDfichEntete.cxx
- MEDgro2famA.cxx
- MEDgro2famB.cxx
- MEDlFichDes.cxx
- MEDmaaCr.cxx
- MEDmaaInfo.cxx
- MEDnChamp.cxx
- MEDnCorres.cxx
- MEDnEntMaa.cxx
- MEDnEntites.cxx
- MEDnEquiv.cxx
- MEDnFam.cxx
- MEDnMaa.cxx
- MEDnPasdetemps.cxx
- MEDnProfil.cxx
- MEDnVal.cxx
- MEDnValProfil.cxx
- MEDnbnoisEcr.cxx
- MEDnbnoisLire.cxx
- MEDnbnomaEcr.cxx
- MEDnbnomaLire.cxx
- MEDnbnosoEcr.cxx
- MEDnbnosoLire.cxx
- MEDnoeudsEcr.cxx
- MEDnoeudsLire.cxx
- MEDnomEcr.cxx
- MEDnomLire.cxx
- MEDnumEcr.cxx
- MEDnumLire.cxx
- MEDouvrir.cxx
- MEDpasdetempsInfo.cxx
- MEDprofilEcr.cxx
- MEDprofilLire.cxx
- MEDprofilInfo.cxx
- MEDunvCr.cxx
- MEDunvLire.cxx
- MEDformatConforme.cxx
- MEDversionConforme.cxx
- MEDversionDonner.cxx
- MEDversionLire.cxx
- MEDbodyFittedEcr.cxx
- MEDbodyFittedLire.cxx
- MEDfamGridEcr.cxx
- MEDfamGridLire.cxx
- MEDgridCr.cxx
- MEDgridEcr.cxx
- MEDgridInfo.cxx
- MEDgridLire.cxx
- MEDnGrid.cxx
- )
-
-SET(med_V2_1_SOURCES
- ${TOOLS_HDFI_SOURCES}
- ${TOOLS_MISC_SOURCES}
- ${API_CI_SOURCES}
- )
-
-
-SET(mdump_V2_1_SOURCES
- mdump_V2_1.cxx
- )
-
-SET(test1_V2_1_SOURCES
- test1_V2_1.cxx
- )
-
-ADD_LIBRARY(med_V2_1 SHARED ${med_V2_1_SOURCES})
-SET_TARGET_PROPERTIES(med_V2_1 PROPERTIES COMPILE_FLAGS "-D${MACHINE} ${HDF5_DEFINITIONS}")
-TARGET_LINK_LIBRARIES(med_V2_1 ${HDF5_LIBS})
-INSTALL(TARGETS med_V2_1 DESTINATION ${MED_salomelib_LIBS})
-
-ADD_EXECUTABLE(mdump_V2_1 ${mdump_V2_1_SOURCES})
-SET_TARGET_PROPERTIES(mdump_V2_1 PROPERTIES COMPILE_FLAGS "-D${MACHINE} ${HDF5_DEFINITIONS}")
-TARGET_LINK_LIBRARIES(mdump_V2_1 med_V2_1)
-ADD_EXECUTABLE(test1_V2_1 ${mdump_V2_1_SOURCES})
-SET_TARGET_PROPERTIES(test1_V2_1 PROPERTIES COMPILE_FLAGS "-D${MACHINE} ${HDF5_DEFINITIONS}")
-TARGET_LINK_LIBRARIES(test1_V2_1 med_V2_1)
-INSTALL(TARGETS mdump_V2_1 test1_V2_1 DESTINATION ${MED_salomebin_BINS})
-
-FILE(GLOB med_V2_1_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
-INSTALL(FILES ${med_V2_1_HEADERS_HXX} DESTINATION ${MED_salomeinclude_HEADERS})
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include <stdlib.h>
-#include "med_misc.hxx"
-
-/*
- * - Nom de la fonction : _MED1cstring
- * - Description : convertit une chaine de caracteres FORTRAN
- * en une nouvelle chaine de caracteres C
- * dont la longueur est passee en parametre.
- * Les caracteres completes sont des blancs
- * - Parametres :
- * - chaine (IN) : la chaine FORTRAN
- * - longueur_reelle (IN) : la longueur de la chaine FORTRAN
- * - longueur_fixee (IN) : longueur de la chaine C a construire
- * - Resultat : la nouvelle chaine C en cas de succes, NULL sinon
- */
-
-namespace med_2_1{
-
-char *
-_MED1cstring(char *chaine,int longueur_reelle,int longueur_fixee)
-{
- char *nouvelle;
- int i;
-
- if (longueur_reelle > longueur_fixee)
- return NULL;
-
- if ((nouvelle = (char *) malloc(sizeof(char)*(longueur_fixee+1))) == NULL)
- return NULL;
-
- for (i=0;i<longueur_reelle;i++)
- *(nouvelle+i) = *(chaine+i);
-
- for (i=longueur_reelle;i<longueur_fixee;i++)
- *(nouvelle+i) = ' ';
-
- *(nouvelle+longueur_fixee) = '\0';
-
- return nouvelle;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include <stdlib.h>
-#include "med_misc.hxx"
-
-/*
- * - Nom de la fonction _MED2cstring
- * - Description : convertit une chaine de caracteres FORTRAN en
- * nouvelle chaine de caracteres C
- * - Parametres :
- * - chaine (IN) : la chaine FORTRAN
- * - longueur (IN) : longueur de la chaine
- * - Resultat : la nouvelle chaine C en cas de succes, NULL sinon
- */
-
-namespace med_2_1{
-
-char *
-_MED2cstring(char *chaine, int longueur)
-{
- char *nouvelle;
- char *temoin;
- int long_reelle = longueur;
- int i;
-
- if ( longueur < 0 ) return NULL;
-
- temoin = chaine+longueur-1;
- while (*temoin == ' ' && (temoin != chaine) )
- {
- temoin --;
- long_reelle--;
- }
- if ( *temoin == ' ') long_reelle = 0;
-
- if ((nouvelle = (char *) malloc(sizeof(char)*(long_reelle+1))) == NULL)
- return NULL;
-
- for (i=0;i<long_reelle+1;i++)
- *(nouvelle+i) = *(chaine+i);
- *(nouvelle+long_reelle) = '\0';
-
- return nouvelle;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_err
-_MEDGeometrieElement(med_geometrie_element typ_geo[],med_entite_maillage typ_ent)
-{
- int i;
- med_geometrie_element typ_mai[MED_NBR_GEOMETRIE_MAILLE] = {MED_POINT1,MED_SEG2,
- MED_SEG3,MED_TRIA3,
- MED_TRIA6,MED_QUAD4,
- MED_QUAD8,MED_TETRA4,
- MED_TETRA10,MED_HEXA8,
- MED_HEXA20,MED_PENTA6,
- MED_PENTA15,MED_PYRA5,
- MED_PYRA13};
- med_geometrie_element typ_fac[MED_NBR_GEOMETRIE_FACE] = {MED_TRIA3,MED_TRIA6,
- MED_QUAD4,MED_QUAD8};
- med_geometrie_element typ_are[MED_NBR_GEOMETRIE_ARETE] = {MED_SEG2,MED_SEG3};
-
- switch(typ_ent)
- {
- case MED_MAILLE :
- for (i=0;i<MED_NBR_GEOMETRIE_MAILLE;i++)
- typ_geo[i] = typ_mai[i];
- break;
-
- case MED_FACE :
- for (i=0;i<MED_NBR_GEOMETRIE_FACE;i++)
- typ_geo[i] = typ_fac[i];
- break;
-
- case MED_ARETE :
- for (i=0;i<MED_NBR_GEOMETRIE_ARETE;i++)
- typ_geo[i] = typ_are[i];
- break;
-
- default :
- return -1;
- }
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDattrFermer
- * - Description : fermeture de l'acces a l'attribut dont l'ID est passe en
- * parametre
- * - Parametres :
- * - pid (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDattrFermer(med_idt id)
-{
- med_err ret;
-
- if ((ret = H5Aclose(id)) < 0)
- return -1;
-
- return 0;
-}
-
-}
-
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDattrNumEcrire
- * - Description : ecriture d'un attribut entier
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - type (IN) : le type du champ {MED_REEL64,MED_INT}
- * - nom (IN) : le nom de l'attribut
- * - val (IN) : la valeur de l'attribut
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDattrNumEcrire(med_idt pere,med_type_champ type,char *nom,unsigned char *val,
- med_mode_acces mode)
-{
- med_idt aid,attr;
- med_err ret;
- int type_hdf;
-
- switch(type)
- {
- case MED_REEL64 :
- /* 1) IA32 is LE but due to an (?HDF convertion BUG?) when using H5T_NATIVE_DOUBLE/MED_REEL64? under PCLINUX
- the file read under SGI is incorrect
- 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
- REM : Be careful of compatibility between MED files when changing this (med2.2)
- */
-#if defined(PCLINUX) || defined(PPRO_NT) || defined(PCLINUX64) || defined(PCLINUX64_32) || defined(OSF1)
- type_hdf = H5T_IEEE_F64BE;
-#else
- type_hdf = H5T_IEEE_F64LE;
-#endif
- break;
-
- case MED_INT :
-#if defined(HAVE_F77INT64)
- type_hdf = H5T_NATIVE_LONG;
-#elif defined(PCLINUX) || defined(PCLINUX64_32)
- /* This explicit convertion avoid a core dump between in HDF&ASTER when reading on SGI
- a file written under a PCLINUX system (in founction H5Tconvert),
- we don't know yet if it is an HDF bug or an ASTER one */
- /* The problem seems to be in convertion process between INT32LE->INT32BE ? */
- type_hdf = H5T_STD_I32BE;
- if ((H5Tconvert(H5T_NATIVE_INT,H5T_STD_I32BE,1,(void *)val,NULL,0)) < 0)
- return -1;
-#else
- type_hdf = H5T_NATIVE_INT;
-#endif
- break;
-
- default :
- return -1;
- }
-
- if ((aid = H5Screate(H5S_SCALAR)) < 0)
- return -1;
-
- if ( ((attr = H5Aopen_name(pere,nom)) > 0) && (mode != MED_REMP) )
- return -1;
- else
- if ( attr < 0)
- if ((attr = H5Acreate(pere,nom,type_hdf,aid,H5P_DEFAULT)) < 0) return -1;
-
- if ((ret = H5Awrite(attr,type_hdf,val)) < 0)
- return -1;
-
-
- if ((ret = H5Sclose(aid)) < 0)
- return -1;
- if ((ret = H5Aclose(attr)) < 0)
- return -1;
-
-#if defined(PCLINUX) || defined(PCLINUX64_32)
- /* This explicit convertion cancel the previous on which avoid a mysterious bug between HDF&ASTER when reading
- a file written under a PCLINUX system, we don't know yet if it is an HDF bug or an ASTER one */
- if (type == MED_INT)
- if ((H5Tconvert(H5T_STD_I32BE,H5T_NATIVE_INT,1,(void *)val,NULL,0)) < 0)
- return -1;
-#endif
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-/*
- * - Nom de la fonction : _MEDattrNumLire
- * - Description : lecture d'un attribut entier
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - type (IN) : le type du champ {MED_REEL64,MED_INT}
- * - nom (IN) : le nom de l'attribut
- * - val (OUT) : la valeur de l'attribut
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDattrNumLire(med_idt pere,med_type_champ type,char *nom,unsigned char *val)
-{
- med_idt attid;
- med_err ret;
- int type_hdf;
-
- if ((attid = H5Aopen_name(pere,nom)) < 0)
- return -1;
-
- switch(type)
- {
- case MED_REEL64 :
-#if defined(PCLINUX) || defined(OSF1) || defined(PPRO_NT) || defined(PCLINUX64) || defined(PCLINUX64_32)
- type_hdf = H5T_IEEE_F64BE;
-#else
- type_hdf = H5T_IEEE_F64LE;
-#endif
- break;
-
- case MED_INT :
-#if defined(HAVE_F77INT64)
- type_hdf = H5T_NATIVE_LONG;
-#else
- type_hdf = H5T_NATIVE_INT;
-#endif
- break;
-
- default :
- return -1;
- }
-
- if ((ret = H5Aread(attid,type_hdf,val)) < 0)
- return -1;
-
- if (strcmp(nom, MED_NOM_NGA) == 0 ) {
- med_int* ngauss = (med_int*)val;
- if( *ngauss <= 0 || *ngauss > 128)
- *ngauss =1;
- }
-
- if ((ret = H5Aclose(attid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDattrOuvrir
- * - Description : acces a l'attribut dont le nom est passe en parametre
- * - Parametres :
- * - pid (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - nom (IN) : le nom de l'attribut
- * - Resultat : ID de l'attribut en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_idt
-_MEDattrOuvrir(med_idt pid,char * nom)
-{
- med_idt aid;
-
- if ((aid = H5Aopen_name(pid,nom)) < 0)
- return -1;
-
- return aid;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDattrStringEcrire
- * - Description : ecriture d'un attribut chaine de caracteres
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - nom (IN) : le nom de l'attribut
- * - longueur (IN) : strlen(val)
- * - val (IN) : la valeur de l'attribut
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDattrStringEcrire(med_idt pere,char *nom,int longueur,char *val, med_mode_acces mode)
-{
- med_idt aid,attr, datatype;
- med_err ret;
-
- if ((aid = H5Screate(H5S_SCALAR)) < 0)
- return -1;
- if((datatype = H5Tcopy(H5T_C_S1)) < 0)
- return -1;
- if((ret = H5Tset_size(datatype,longueur+1)) < 0)
- return -1;
-
- if ( ((attr = H5Aopen_name(pere,nom)) > 0)
- && (mode != MED_REMP) )
- return -1;
- else
- if ( attr < 0)
- if ((attr = H5Acreate(pere,nom,datatype,aid,H5P_DEFAULT)) < 0) return -1;
-
- if ((ret = H5Awrite(attr, datatype, val)) < 0)
- return -1;
-
- if ((ret = H5Sclose(aid)) < 0)
- return -1;
- if ((ret = H5Tclose(datatype)) < 0)
- return -1;
- if ((ret = H5Aclose(attr)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDattrStringLire
- * - Description : lecture d'un attribut chaine de caracteres
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - nom (IN) : le nom de l'attribut
- * - longueur (IN) : strlen(val)
- * - val (OUT) : la valeur de l'attribut
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDattrStringLire(med_idt pere,char *nom,int longueur,char *val)
-{
- med_idt attid,datatype;
- med_err ret;
-
- if ((datatype = H5Tcopy(H5T_C_S1)) < 0)
- return -1;
- if ((ret = H5Tset_size(datatype,longueur+1)) < 0)
- return -1;
- if ((attid = H5Aopen_name(pere,nom)) < 0)
- return -1;
- if ((ret = H5Aread(attid,datatype,val)) < 0)
- return -1;
- if ((ret = H5Tclose(datatype)) < 0)
- return -1;
- if ((ret = H5Aclose(attid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med_outils.hxx"
-#include "med.hxx"
-
-#include <cstring>
-
-#if defined(HAVE_F77INT64)
-#define MED_INTEGER MED_INT64
-#else
-#define MED_INTEGER MED_INT32
-#endif
-
-namespace med_2_1{
-
-med_err
-MEDbodyFittedEcr(med_idt fid, char *maa, med_int mdim, med_float *coo, med_int *nbr, med_mode_switch mode_coo,
- med_repere repere, char *nomcoo, char *unicoo, med_int *fam, med_int nnoeuds, med_mode_acces mode )
-{
- /* ecriture des coordonnees */
- med_idt maaid, noeid, dataset;
- med_size dimd[1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_int type_rep_int;
- int d;
- char *ds;
-
- /* On inhibe le gestionnaire d'erreur HDF */
- _MEDmodeErreurVerrouiller();
-
- /* Si le maillage n'existe pas => erreur */
- strcpy(chemin, MED_MAA);
- strcat(chemin, maa);
- if ((maaid = _MEDdatagroupOuvrir(fid, chemin)) < 0) {
- return(-1);
- };
-
- /* Si le Data Group "NOE" n'existe pas on le cree */
- if ((noeid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE)) < 0) {
- if ((noeid = _MEDdatagroupCreer(maaid, MED_NOM_NOE)) < 0) {
- return(-1);
- };
- };
-
- /* Creation du Data Set "BOF" */
- dimd[0] = nnoeuds*mdim;
- if (_MEDdatasetNumEcrire(noeid, MED_NOM_BOF, MED_REEL64, mode_coo, mdim, MED_ALL, MED_NOPF, 0, 0, dimd, (unsigned char*)coo, mode) < 0) {
- return(-1);
- };
-
- /* On re-ouvre le Data Set "BOF" pour y placer des attributs */
- if ((dataset = _MEDdatasetOuvrir(noeid, MED_NOM_BOF)) < 0) {
- return(-1);
- };
-
- /* Attribut NBR (nombre de noeuds) */
- if (_MEDattrEntierEcrire(dataset, MED_NOM_NBR, &nnoeuds, mode) < 0) {
- return(-1);
- };
-
- /* L'attribut "REP" */
- type_rep_int = (med_int)repere;
- if (_MEDattrEntierEcrire(dataset, MED_NOM_REP, &type_rep_int, mode) < 0) {
- return(-1);
- };
-
- /* Attribut "NOM" */
- if (_MEDattrStringEcrire(dataset, MED_NOM_NOM, mdim*MED_TAILLE_PNOM, nomcoo, mode) < 0) {
- return(-1);
- };
-
- /* Attribut "UNI" */
- if (_MEDattrStringEcrire(dataset, MED_NOM_UNI, mdim*MED_TAILLE_PNOM, unicoo, mode) < 0) {
- return(-1);
- };
-
- if (_MEDdatasetFermer(dataset) < 0) return(-1);
-
- dimd[0] = 1;
- for (d=0; d<mdim; d++) {
- switch (d) {
- case 0 : {
- ds = MED_NOM_IN1;
- break;
- };
- case 1 : {
- ds = MED_NOM_IN2;
- break;
- };
- case 2 : {
- ds = MED_NOM_IN3;
- break;
- };
- default : {
- return(-1);
- };
- };
-
- /* Creation du Data Set "IN1", "IN2", "IN3" contenant la taille du bodyfitted sur cette dimension */
- if (_MEDdatasetNumEcrire(noeid, ds, MED_INTEGER, mode_coo, MED_DIM1, MED_ALL, MED_NOPF, 0, 0, dimd, (unsigned char*)&nbr[d], mode) < 0) {
- return(-1);
- };
-
- /* On re-ouvre ce Data Set pour y placer des attributs */
- if ((dataset = _MEDdatasetOuvrir(noeid, ds)) < 0) {
- return(-1);
- };
-
- /* Attribut NBR (nombre de noeuds dans l'une des dimensions) */
- if (_MEDattrEntierEcrire(dataset, MED_NOM_NBR, &nbr[d], mode) < 0) {
- return(-1);
- };
-
- if (_MEDdatasetFermer(dataset) < 0) return(-1);
- };
-
- /* Ecriture des numeros de familles */
- if (MEDfamEcr(fid, maa, fam, nnoeuds, mode, MED_NOEUD, MED_POINT1) < 0) {
- return(-1);
- };
-
- /* On ferme tout */
- if (_MEDdatagroupFermer(noeid) < 0) return(-1);
- if (_MEDdatagroupFermer(maaid) < 0) return(-1);
- return(0);
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med_outils.hxx"
-#include "med.hxx"
-
-#include <cstring>
-
-namespace med_2_1{
-
-med_err
-MEDbodyFittedLire(med_idt fid, char *maa, med_int mdim, med_float *coo, med_mode_switch mode_coo,
- med_repere *repere, char *nomcoo, char *unicoo, med_int *fam, med_int nnoeuds )
-{
- med_idt maaid, noeid, dataset;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_int type_rep_int;
-
- /* On inhibe le gestionnaire d'erreur */
- _MEDmodeErreurVerrouiller();
-
- /* Si le maillage n'existe pas => erreur */
- strcpy(chemin, MED_MAA);
- strcat(chemin, maa);
- maaid = _MEDdatagroupOuvrir(fid, chemin);
- if (maaid < 0) return(-1);
-
- /* Si le Data Group "NOE" n'existe pas => erreur */
- noeid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE);
- if (noeid < 0) return(-1);
-
- /* Lecture du Data Set "BOF" */
- if (_MEDdatasetNumLire(noeid, MED_NOM_BOF, MED_REEL64, mode_coo, mdim, MED_ALL, MED_NOPF, 0, 1, (unsigned char*)coo) < 0) {
- return(-1);
- };
-
- /* On re-ouvre le Data Set "BOF" pour y lire des attributs */
- dataset = _MEDdatasetOuvrir(noeid, MED_NOM_BOF);
- if (dataset < 0) return(-1);
-
- /* L'attribut "REP" */
- if (_MEDattrEntierLire(dataset, MED_NOM_REP, &type_rep_int) < 0) {
- return(-1);
- } else {
- *repere = (med_repere)type_rep_int;
- };
-
- /* Attribut "NOM" */
- if (_MEDattrStringLire(dataset, MED_NOM_NOM, mdim*MED_TAILLE_PNOM, nomcoo) < 0) {
- return(-1);
- };
-
- /* Attribut "UNI" */
- if (_MEDattrStringLire(dataset, MED_NOM_UNI, mdim*MED_TAILLE_PNOM, unicoo) < 0) {
- return(-1);
- };
-
- /* lecture des numeros de familles */
- if (MEDfamLire(fid, maa, fam, nnoeuds, MED_NOEUD, MED_POINT1) < 0) {
- return(-1);
- };
-
- /* On ferme tout */
- if (_MEDdatasetFermer(dataset) < 0) {
- return(-1);
- };
- if (_MEDdatagroupFermer(noeid) < 0) {
- return(-1);
- };
- if (_MEDdatagroupFermer(maaid) < 0) {
- return(-1);
- };
- return(0);
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDchampCr(med_idt fid, char *champ, med_type_champ type, char *comp,
- char *unit,med_int ncomp)
-{
- med_err ret = 0;
- med_idt root,gid;
- char chemin[MED_TAILLE_CHA+1];
- med_int _type = (med_int) type;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group "/CHA/" n'existe pas, on le cree
- */
- strncpy(chemin,MED_CHA,MED_TAILLE_CHA-1);
- chemin[MED_TAILLE_CHA-1] = '\0';
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- if ((root = _MEDdatagroupCreer(fid,chemin)) < 0)
- return -1;
-
- /*
- * Si le Data Group cha n'existe pas, on le cree
- * Sinon => erreur
- */
- if ((gid = _MEDdatagroupOuvrir(root,champ)) >= 0)
- return -1;
- if ((gid = _MEDdatagroupCreer(root,champ)) < 0)
- return -1;
-
- /*
- * Les infos sur les composants du champ
- */
- if ((ret = _MEDattrEntierEcrire(gid,MED_NOM_NCO,&ncomp,MED_REMP)) < 0)
- return -1;
- if ((ret = _MEDattrEntierEcrire(gid,MED_NOM_TYP,&_type,MED_REMP)) < 0)
- return -1;
- if ((ret = _MEDattrStringEcrire(gid,MED_NOM_NOM,MED_TAILLE_PNOM*ncomp,comp,MED_REMP)) < 0)
- return -1;
- if ((ret = _MEDattrStringEcrire(gid,MED_NOM_UNI,MED_TAILLE_PNOM*ncomp,unit,MED_REMP)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(gid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- return ret;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-/*
- * - Nom de la fonction : MEDchampEcr
- * - Description : ecriture d'un Champ Résultat
- * - Parametres :
- * - fid (IN) : ID du fichier HDF courant
- * - maa (IN) : le nom du maillage sur lequel s'applique le champ
- * - cha (IN) : le nom du champ
- * - val (IN) : valeurs du champ à stocker
- * - interlace(IN) : entrelacement utilisé en mémoire {MED_FULL_INTERLACE,MED_NO_INTERLACE}
- * - nbelem (IN) : nombre d'éléments (prend en compte le nbre
- * de points de Gauss (c'est demandé à l'utilisateur ds la doc) mais pas le nbre de composantes)
- * - ngauss (IN) : nbre de point de gauss utilisé (MED_NOPG si aucun)
- * - numco (IN) : n° de la composante à stocker (MED_ALL si toutes)
- * - profil (IN) : nom du profil utilisé (MED_NOPFL si inutilisé)
- * - mode (IN) : mode d'ecriture MED (MED_ECRI | MED_REMP)
- * - type_ent (IN) : entité concerné par le champ {MED_NOEUD,MED_ARETE,MED_FACE,MED_MAILLE}
- * - type_geo (IN) : type géométrique de l'entité concerné {MED_POINT,MED_SEG2 ......}
- * - numdt (IN) : n° du pas de temps (MED_NOPDT si aucun)
- * - dt_unit (IN) : chaine de taille MED_NOMP indiquant l'unité du champ
- * - dt (IN) : valeur du pas de temps
- * - numo (IN) : n° d'ordre utilisé MED_NONOR si inutile
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-MEDchampEcr(med_idt fid, char *maa, char *cha,unsigned char *val,med_mode_switch interlace,med_int nbelem,med_int ngauss,
- med_int numco, char * profil, med_mode_acces mode, med_entite_maillage type_ent,
- med_geometrie_element type_geo, med_int numdt,char * dt_unit, med_float dt, med_int numo)
-{
- med_err ret;
- med_idt chid,datagroup1,datagroup2;
- med_int ncomp, chtype, i, locnumdt,pfluse;
- char pflname [MED_TAILLE_NOM+1];
- char maillage[MED_TAILLE_NOM+1];
- char nomdatagroup1[2*MED_TAILLE_NOM_ENTITE+2],nomdatagroup2[2*MED_MAX_PARA+1];
- char tmp1[MED_TAILLE_NOM_ENTITE+1];
- med_size dimd[1],psize;
- med_int *pfltabtmp=0;
- med_ssize *pfltab=0;
- char chemin[MED_TAILLE_CHA+MED_TAILLE_NOM+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
-
- /*
- * Si le Data Group cha n'existe pas => erreur
- */
- strcpy(chemin,MED_CHA);
- strcat(chemin,cha);
- if ((chid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Creation du datagroup de niveau 1 <type_ent>[.<type_geo>]
- */
-
- if ((ret = _MEDnomEntite(nomdatagroup1,type_ent)) < 0)
- return -1;
- if ((type_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp1,type_geo)) < 0)
- return -1;
- strcat(nomdatagroup1,".");
- strcat(nomdatagroup1,tmp1);
- }
- datagroup1 = 0;
- if ( (datagroup1 = _MEDdatagroupOuvrir(chid,nomdatagroup1)) < 0)
- if ((datagroup1 = _MEDdatagroupCreer(chid,nomdatagroup1)) < 0)
- return -1;
-
- /* Creation du datagroup de niveau 2 <numdt>.<numoo> */
- if ( numdt == MED_NOPDT) locnumdt = MED_NOPDT; else locnumdt = numdt;
- sprintf(nomdatagroup2,"%*li%*li",MED_MAX_PARA,(long ) locnumdt,MED_MAX_PARA,(long ) numo);
-
-
- /*Cree ou ouvre (en mode MED_REMP) le datagroup nomdatagroup2 */
- datagroup2 = 0;
- if (((datagroup2 = _MEDdatagroupOuvrir(datagroup1,nomdatagroup2)) > 0)
- && (mode != MED_REMP))
- return -1;
- else
- if (datagroup2 < 0)
- if ((datagroup2 = _MEDdatagroupCreer(datagroup1,nomdatagroup2)) < 0)
- return -1;
-
- /*Cree ou ouvre (en mode MED_REMP) l'attribut MED_NOM_NDT */
- if ((ret = _MEDattrEntierEcrire(datagroup2,MED_NOM_NDT,&numdt,mode)) < 0)
- return -1;
-
- /*Cree ou ouvre (en mode MED_REMP) l'attribut MED_NOM_PDT */
- if ((ret = _MEDattrFloatEcrire(datagroup2,MED_NOM_PDT,&dt,mode)) < 0)
- return -1;
-
- /*Cree ou ouvre (en mode MED_REMP) l'attribut MED_NOM_NOR */
- if ((ret = _MEDattrEntierEcrire(datagroup2,MED_NOM_NOR,&numo,mode)) < 0)
- return -1;
-
- /*Cree ou ouvre (en mode MED_REMP) l'attribut MED_NOM_NBR */
- if ((ret = _MEDattrEntierEcrire(datagroup2,MED_NOM_NBR,&nbelem,mode)) < 0)
- return -1;
-
- /*Cree ou ouvre (en mode MED_REMP) l'attribut MED_MAA */
- /* rem : Aucune verification de l'existence du maillage */
- strncpy(maillage,maa,MED_TAILLE_NOM);
- maillage[MED_TAILLE_NOM]='\0';
- if ((ret = _MEDattrStringEcrire(datagroup2,MED_NOM_MAI,MED_TAILLE_NOM,maillage,mode)) < 0)
- return -1;
-
- /*Cree ou ouvre (en mode MED_REMP) l'attribut MED_NOM_PFL */
- pfluse = 0;
- if ( strlen(profil) == 0) /* idem MED_NOPFL*/
- strncpy(pflname,MED_NOPFLi,MED_TAILLE_NOM+1);
- else {
- strncpy(pflname,profil,MED_TAILLE_NOM);
- pflname[MED_TAILLE_NOM]='\0';
- pfluse = 1;
- }
- if ((ret = _MEDattrStringEcrire(datagroup2,MED_NOM_PFL,MED_TAILLE_NOM,pflname,mode)) < 0)
- return -1;
-
- /*Cree ou ouvre (en mode MED_REMP) l'attribut MED_NOM_UNI */
- if ( strlen(dt_unit) == 0) {
- if ((ret = _MEDattrStringEcrire(datagroup2,MED_NOM_UNI,MED_TAILLE_PNOM,(char*)" ",mode)) < 0)
- return -1;
- } else
- if ((ret = _MEDattrStringEcrire(datagroup2,MED_NOM_UNI,MED_TAILLE_PNOM,dt_unit,mode)) < 0)
- return -1;
-
-
- /* Cree ou ouvre (en mode MED_REMP) l'attribut MED_NOM_NGAU */
- /* Ecriture du nombre de pts de gauss propre au <type_ent>[.<type_geo>] */
- /* On n'utilise pas ngauss=MED_NOPG mais ngauss=1 si aucun pt de gauss */
- if ((ret = _MEDattrEntierEcrire(datagroup2,MED_NOM_NGA,&ngauss,mode)) < 0)
- return -1;
-
- /*Lecture de l'attribut MED_NOM_NCO */
- if ((ret = _MEDattrEntierLire(chid,MED_NOM_NCO,&ncomp)) < 0)
- return -1;
-
- /*Determination de la taille dimd[0] du dataset à stocker*/
- dimd[0] = nbelem*ncomp;
-
- /* Gestion des profils*/
- if ( pfluse ) {
-
- if ( ( i = MEDnValProfil(fid,pflname) ) < 0 )
- return -1;
- else
- psize = i;
-
- pfltabtmp = (med_int *) malloc (sizeof(med_int)*(size_t)psize);
- pfltab = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)psize);
- if ((ret = MEDprofilLire(fid,pfltabtmp,pflname)) < 0)
- return -1;
- for (i=0;i<psize;i++)
- pfltab[i] = (med_ssize) pfltabtmp[i];
-
- }
- else
- psize = MED_NOPF;
-
-
- /*
- * Ecriture du champ
- */
- if ((ret = _MEDattrEntierLire(chid,MED_NOM_TYP,&chtype)) < 0)
- return -1;
- switch(chtype)
- {
- case MED_REEL64 :
- if ((ret = _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_REEL64,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
- mode)) < 0)
- return -1;
- break;
-
- case MED_INT32 :
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_INT64,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
- mode)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_INT32,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
- mode)) < 0)
- return -1;
-#endif
- break;
-
- case MED_INT64 :
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(datagroup2,MED_NOM_CO,MED_INT64,interlace,ncomp,numco,psize,pfltab,ngauss,dimd,val,
- mode)) < 0)
- return -1;
-#else
- return -1;
-#endif
- break;
-
- default :
- return -1;
- }
-
- /*
- * On ferme tout
- */
- if ( pfluse ) { free(pfltab); free(pfltabtmp);}
-
- if ((ret = _MEDdatagroupFermer(datagroup2)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(datagroup1)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(chid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-namespace med_2_1{
-
-med_err
-MEDchampInfo(med_idt fid,int indice,char *champ,
- med_type_champ *type,char *comp,char *unit,
- med_int ncomp)
-{
- med_err ret=0;
- med_idt gid;
- char chemin[MED_TAILLE_CHA+MED_TAILLE_LNOM+1]; //SRN: Changed to MED_TAILLE_LNOM to avoid a crash
- // in case if a field name longer than MED_TAILLE_NOM
- int num;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On recupere le nom du champ
- */
- num = indice - 1;
- strcpy(chemin,MED_CHA);
- if ((ret = _MEDobjetIdentifier(fid,chemin,num,champ)) < 0)
- return -1;
-
- if(strlen(champ) > MED_TAILLE_NOM) return -1;
-
- /*
- * Si le Data Group cha n'existe pas => erreur
- */
- strcat(chemin,champ);
- if ((gid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
-
- /*
- * La liste des attributs
- */
-
- // MPV 05.10.2006
- // BUG IPAL 13482: on 64bit Mandriva OS sizeof(med_int)=8, but sizeof(med_type_champ)=4
- med_int aType;
- // if ((ret = _MEDattrEntierLire(gid,MED_NOM_TYP,(med_int*) type)) < 0)
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_TYP,&aType)) < 0)
- return -1;
- *type = (med_type_champ)aType;
-
- if ((ret = _MEDattrStringLire(gid,MED_NOM_NOM,ncomp*MED_TAILLE_PNOM,
- comp)) < 0)
- return -1;
- if ((ret = _MEDattrStringLire(gid,MED_NOM_UNI,ncomp*MED_TAILLE_PNOM,
- unit)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(gid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
- /*La taille de val allouée par l'utilisateur doit prendre en compte le nbre de points de gauss et le nbre de composantes*/
-
-namespace med_2_1{
-
-med_err
-MEDchampLire(med_idt fid,char *maa, char *cha, unsigned char *val,med_mode_switch interlace,med_int numco,
- char *profil,med_entite_maillage type_ent, med_geometrie_element type_geo,
- med_int numdt, med_int numo)
- /* VERIFIER LA POSSIBILITE DE RELIRE L'UNITE DE PAS DE TEMPS (DS CHAMPINFO) */
-{
- med_err ret;
- med_idt chid, datagroup1, datagroup2;
- med_int ncomp, chtype, ngauss, i, locnumdt, pfluse;
- char nomdatagroup1[2*MED_TAILLE_NOM_ENTITE+2],nomdatagroup2[2*MED_MAX_PARA+1];
- char tmp1[MED_TAILLE_NOM_ENTITE+1], pfltmp[MED_TAILLE_NOM+1];
- char chemin[MED_TAILLE_CHA+MED_TAILLE_NOM+1];
- med_size psize;
- med_int *pfltabtmp=0;
- med_ssize *pfltab=0;
- char maatmp[MED_TAILLE_NOM+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group cha n'existe pas => erreur
- */
- strcpy(chemin,MED_CHA);
- strcat(chemin,cha);
- if ((chid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Si le Data Group de niveau 1 <type_ent>[.<type_geo>] n'existe pas => erreur
- */
- if ((ret = _MEDnomEntite(nomdatagroup1,type_ent)) < 0)
- return -1;
- if ((type_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp1,type_geo)) < 0)
- return -1;
- strcat(nomdatagroup1,".");
- strcat(nomdatagroup1,tmp1);
- }
- datagroup1 = 0;
- if ( (datagroup1 = _MEDdatagroupOuvrir(chid,nomdatagroup1)) < 0 )
- return -1;
-
- /*
- * Si le Data Group de niveau 2 <numdtt>.<numoo> n'existe pas => erreur
- */
- if ( numdt == MED_NOPDT) locnumdt = MED_NOPDT; else locnumdt = numdt;
- sprintf(nomdatagroup2,"%*li%*li",MED_MAX_PARA,(long ) locnumdt,MED_MAX_PARA,(long ) numo);
-
- datagroup2 = 0;
- if ( (datagroup2 = _MEDdatagroupOuvrir(datagroup1,nomdatagroup2)) < 0)
- return -1;
-
- /* Lecture du nbre de composantes du champ */
-
- if ((ret = _MEDattrEntierLire(chid,MED_NOM_NCO,&ncomp)) < 0)
- return -1;
-
- /* Gestion des profils*/
-
- /*
- * Lire le profil demandé
- */
-
- if ((ret = _MEDattrStringLire(datagroup2,MED_NOM_PFL,MED_TAILLE_NOM,pfltmp)) < 0)
- return -1;
-
- if ( (pfluse = (strcmp(pfltmp,MED_NOPFLi) && strcmp(pfltmp,""))) ) /* le test "" pour des raisons de compatibilité */
- {
- strcpy(profil,pfltmp);
- if ( (i = MEDnValProfil(fid,profil)) < 0 )
- return -1;
- else
- psize = i;
-
- pfltabtmp = (med_int *) malloc (sizeof(med_int)*(size_t)psize);
- pfltab = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)psize);
- if ((ret = MEDprofilLire(fid,pfltabtmp,profil)) < 0)
- return -1;
- for (i=0;i<psize;i++)
- pfltab[i] = (med_ssize) pfltabtmp[i];
-
- }
- else {
- psize = MED_NOPF;
- strcpy(profil,MED_NOPFL);
- }
-
- /*
- * Lire le nom de maillage associé au champ
- */
- if ((ret = _MEDattrStringLire(datagroup2,MED_NOM_MAI,MED_TAILLE_NOM,maatmp)) < 0)
- return -1;
-
- if (strcmp(maa,maatmp))
- return -1;
-
- /* Lit le nbre de points de Gauss */
- /* (attribut MED_NOM_NGAU) propre au <type_ent>[.<type_geo>] pour simplifier la relecture */
- if ( (ret = _MEDattrEntierLire(datagroup2,MED_NOM_NGA,&ngauss)) < 0 )
- return -1;
-
- /*
- * Lecture du champ
- */
-
- if ((ret = _MEDattrEntierLire(chid,MED_NOM_TYP,&chtype)) < 0)
- return -1;
-
- switch(chtype)
- {
- case MED_REEL64 :
- if ((ret = _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_REEL64,
- interlace,ncomp,numco,
- psize,pfltab,ngauss,val))< 0)
- return -1;
- break;
-
- case MED_INT32 :
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_INT64,
- interlace,ncomp,numco,
- psize,pfltab,ngauss,val))< 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_INT32,
- interlace,ncomp,numco,
- psize, pfltab,ngauss,val))< 0)
- return -1;
-#endif
- break;
-
- case MED_INT64 :
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(datagroup2,MED_NOM_CO,MED_INT64,
- interlace,ncomp,numco,
- psize,pfltab,ngauss,val))< 0)
- return -1;
-#else
- return -1;
-#endif
- break;
-
- default :
- return -1;
- }
-
- /*
- * On ferme tout
- */
- if ( pfluse ) { free(pfltab); free(pfltabtmp);}
-
- if ((ret = _MEDdatagroupFermer(datagroup2)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(datagroup1)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(chid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-extern int mode_interlace;
-
-namespace med_2_1{
-
-med_err
-MEDconnEcr(med_idt fid,char *maa, med_int mdim, med_int *connectivite,med_mode_switch mode_switch,
- med_int nbre,med_mode_acces mode,med_entite_maillage type_ent,
- med_geometrie_element type_geo,med_connectivite type_conn)
-{
- med_idt maaid, entid, geoid, dataset;
- med_err ret;
- med_size dimd[1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
- char nom_dataset[MED_TAILLE_NOM_ENTITE+1];
- int dim, nnoe, ndes;
- int nsup = 0;
- int taille;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
- /*
- * Si le Data Group des entites n'existe pas on le cree
- */
- /*EF Gerer le mode */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- if ((entid = _MEDdatagroupCreer(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * On cree s'il n'existe pas le Data Group du type geometrique
- */
- /*EF Gerer le mode */
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- if ((geoid = _MEDdatagroupCreer(entid,nom_geo)) < 0)
- return -1;
-
- /*
- * On regarde si le Data Set existe et on le cree sinon
- */
- if ((ret=_MEDparametresGeometrie(type_ent,type_geo,&dim,&nnoe,&ndes))<0)
- return -1;
- if (mdim == 2 || mdim == 3)
- if (type_ent == MED_MAILLE && dim == 1)
- nsup = 1;
- if (mdim == 3)
- if (type_ent == MED_MAILLE && dim == 2)
- nsup = 1;
- switch(type_conn)
- {
- case MED_NOD :
- strcpy(nom_dataset,MED_NOM_NOD);
- taille = nsup + nnoe;
- break;
-
- case MED_DESC :
- strcpy(nom_dataset,MED_NOM_DES);
- taille = nsup + ndes;
- break;
-
- default :
- return -1;
- }
- dimd[0] = nbre*taille;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(geoid,nom_dataset,MED_INT64,mode_switch,(med_size)taille,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) connectivite,mode)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(geoid,nom_dataset,MED_INT32,mode_switch,(med_size)taille,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) connectivite,mode)) < 0)
- return -1;
-#endif
-
- /*
- * Attribut NBR (nombre de noeuds ou d'elements)
- */
- if ((dataset = _MEDdatasetOuvrir(geoid,nom_dataset)) < 0)
- return -1;
- if ((ret = _MEDattrEntierEcrire(dataset,MED_NOM_NBR,&nbre,mode)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatasetFermer(dataset)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-extern int mode_interlace;
-
-namespace med_2_1{
-
-med_err
-MEDconnLire(med_idt fid,char *maa,med_int mdim,med_int *connectivite,med_mode_switch mode_switch,
- med_int * pfltabtmp, med_size psizetmp,
- med_entite_maillage type_ent, med_geometrie_element type_geo,med_connectivite type_conn)
-{
- med_idt maaid,entid,geoid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
- char nom_dataset[MED_TAILLE_NOM_ENTITE+1];
- med_ssize * pfltab = NULL;
- med_size psize;
- int dim,nnoe,ndes;
- int nsup = 0;
- int taille;
- int i;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
- /*
- * Si le Data Group des entites n'existe pas => erreur
- */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * si le Data Group du type geometrique n'existe pas => erreur
- */
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- return -1;
-
- /*
- * Si le Data Set de la connectivite n'existe pas => erreur
- * Si oui => on le lit
- */
- if ((ret=_MEDparametresGeometrie(type_ent,type_geo,&dim,&nnoe,&ndes))<0)
- return -1;
- if (mdim == 2 || mdim == 3)
- if (type_ent == MED_MAILLE && dim == 1)
- nsup = 1;
- if (mdim == 3)
- if (type_ent == MED_MAILLE && dim == 2)
- nsup = 1;
-
-
- psize = psizetmp;
- switch(type_conn)
- {
- case MED_NOD :
- strcpy(nom_dataset,MED_NOM_NOD);
- taille = nsup + nnoe;
- break;
-
- case MED_DESC :
- strcpy(nom_dataset,MED_NOM_DES);
- taille = nsup + ndes;
- if ( psizetmp != MED_NOPF ) {
- psize = psizetmp;
- pfltab = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)psize);
- for (i=0;i<psizetmp;i++)
- pfltab[i] = (med_ssize) (pfltabtmp[i]);
- };
-
- break;
-
- default :
- return -1;
- }
-
-
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(geoid,nom_dataset,MED_INT64,
- mode_switch,(med_size)taille,MED_ALL,
- psize,pfltab,MED_NOPG,
- (unsigned char*) connectivite)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(geoid,nom_dataset,MED_INT32,
- mode_switch,(med_size) taille,MED_ALL,
- psize,pfltab,MED_NOPG,
- (unsigned char*) connectivite)) < 0)
- return -1;
-#endif
-
- /*
- * On ferme tout
- */
-
- if ( (psize != MED_NOPF) && (type_conn == MED_DESC) ) free(pfltab);
-
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med_outils.hxx"
-#include "med.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDcoordEcr(med_idt fid, char *maa, med_int mdim, med_float *coo,
- med_mode_switch mode_coo,med_int n,
- med_mode_acces mode, med_repere type_rep, char *nom, char *unit)
-{
- med_idt maaid, noeid, dataset;
- med_err ret;
- med_size dimd[1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_int type_rep_int;
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Si le Data Group "NOE" n'existe pas
- * on le cree
- */
- /* EF : A faire : gerer le mode MED_REMP*/
- if ((noeid = _MEDdatagroupOuvrir(maaid,MED_NOM_NOE)) < 0)
- if ((noeid = _MEDdatagroupCreer(maaid,MED_NOM_NOE)) < 0)
- return -1;
-
- /*
- * Creation du Data Set "COO"
- */
- dimd[0] = n*mdim;
- if ((ret = _MEDdatasetNumEcrire(noeid,MED_NOM_COO,MED_REEL64,mode_coo,mdim,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) coo,mode)) < 0)
- return -1;
-
- /*
- * On re-ouvre le Data Set "COO" pour y placer des attributs
- */
- if ((dataset = _MEDdatasetOuvrir(noeid,MED_NOM_COO)) < 0)
- return -1;
-
- /*
- * Attribut NBR (nombre de noeuds)
- */
- if ((ret = _MEDattrEntierEcrire(dataset,MED_NOM_NBR,&n,mode)) < 0)
- return -1;
-
- /*
- * L'attribut "REP"
- */
- type_rep_int = (med_int) type_rep;
- if ((ret = _MEDattrEntierEcrire(dataset,MED_NOM_REP,&type_rep_int,mode)) < 0)
- return -1;
-
- /*
- * Attribut "NOM"
- */
- if ((ret = _MEDattrStringEcrire(dataset,MED_NOM_NOM,mdim*MED_TAILLE_PNOM,nom,mode)) < 0)
- return -1;
-
- /*
- * Attribut "UNI"
- */
- if ((ret = _MEDattrStringEcrire(dataset,MED_NOM_UNI,mdim*MED_TAILLE_PNOM,unit,mode)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatasetFermer(dataset)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(noeid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med_outils.hxx"
-#include "med.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-extern int mode_interlace;
-
-namespace med_2_1{
-
-med_err
-MEDcoordLire(med_idt fid, char *maa, med_int mdim, med_float *coo,
- med_mode_switch mode_coo,med_int numco,
- med_int * pfltabtmp, med_size psize, med_repere *type_rep, char *nom, char *unit)
-{
- med_idt maaid, noeid, dataset;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- int i;
- med_int type_rep_int;
- med_ssize * pfltab = NULL;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- * Sinon on recupere sa dimension au passage
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Si le Data Group "NOE" n'existe pas => erreur
- */
- if ((noeid = _MEDdatagroupOuvrir(maaid,MED_NOM_NOE)) < 0)
- return -1;
-
- /*
- * Convertion de med_int en med_ssize
- */
- if ( psize != MED_NOPF ) {
- pfltab = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)psize);
- for (i=0;i<psize;i++)
- pfltab[i] = (med_ssize) pfltabtmp[i];
- }
-
- /*
- * Lecture du Data Set "COO"
- */
- if ((ret = _MEDdatasetNumLire(noeid,MED_NOM_COO,MED_REEL64,
- mode_coo,mdim,numco,
- psize,pfltab,MED_NOPG,
- (unsigned char*) coo)) < 0)
- return -1;
-
-
-
- /*
- * On re-ouvre le Data Set "COO" pour y lire des attributs
- */
- if ((dataset = _MEDdatasetOuvrir(noeid,MED_NOM_COO)) < 0)
- return -1;
-
- /*
- * L'attribut "REP"
- */
- if ((ret = _MEDattrEntierLire(dataset,MED_NOM_REP,&type_rep_int)) < 0)
- return -1;
- else
- *type_rep = (med_repere) type_rep_int;
-
- /*
- * Attribut "NOM"
- */
- if ((ret = _MEDattrStringLire(dataset,MED_NOM_NOM,mdim*MED_TAILLE_PNOM,
- nom)) < 0)
- return -1;
-
- /*
- * Attribut "UNI"
- */
- if ((ret = _MEDattrStringLire(dataset,MED_NOM_UNI,mdim*MED_TAILLE_PNOM,
- unit)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ( psize != MED_NOPF ) free(pfltab);
-
- if ((ret = _MEDdatasetFermer(dataset)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(noeid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include <stdlib.h>
-#include "med_misc.hxx"
-
-/*
- * - Nom de la fonction _MEDcstringFree
- * - Description : libere la chaine de caracteres creee par
- * les routines _MEDXcstring
- * - Parametres :
- * - chaine (IN/OUT) : la chaine de caracteres a detruire
- * - Resultat : 0 si succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDcstringFree(char *chaine)
-{
-
- free(chaine);
- return 0;
-
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatagroupCreer
- * - Description : creation et ouverture d'un Datagroup HDF
- * - Parametres :
- * - pid (IN) : l'ID de l'objet pere
- * - nom (IN) : le nom de l'objet fils
- * - Resultat : l'ID du fils en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_idt
-_MEDdatagroupCreer(med_idt pid, char *nom)
-{
- med_idt id;
-
- if ((id = H5Gcreate(pid,nom,0)) < 0)
- return -1;
-
- return id;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatagroupFermer
- * - Description : fermeture d'un datagroup HDF
- * - Parametres :
- * - id (IN) : l'ID du datagroup
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDdatagroupFermer(med_idt id)
-{
- med_err ret;
-
- if ((ret = H5Gclose(id)) < 0)
- return -1;
- else
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatagroupOuvrir
- * - Description : ouverture d'un datagroup HDF
- * - Parametres :
- * - pid (IN) : l'ID de l'objet pere
- * - nom (IN) : le nom de l'objet fils
- * - Resultat : l'ID du fils en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_idt
-_MEDdatagroupOuvrir(med_idt pid, char *nom)
-{
- med_idt id;
-
- if ((id = H5Gopen(pid,nom)) < 0)
- return -1;
-
- return id;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatasetFermer
- * - Description : fermeture d'un objet HDF dataset
- * - Parametres :
- * - id (IN) : l'ID de l'objet HDF dataset
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDdatasetFermer(med_idt id)
-{
- med_err ret;
-
- if ((ret = H5Dclose(id)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-#include <stdlib.h>
-#include "hdf5_version2api.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatasetNumEcrire
- * - Description : ecriture d'un dataset tableau numerique
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - nom (IN) : le nom du dataset
- * - type (IN) : type numerique MED { MED_REEL64 , MED_INT32 , MED_INT64 }
- * - interlace (IN) : Choix du type d'entrelacement utilisé par l'appelant { MED_FULL_INTERLACE(x1,y1,z1,x2,...)) , MED_NO_INTERLACE(x1,x2,y1,y2,z1,z2) }
- * - nbdim (IN) : Dimension des éléments
- * - fixdim (IN) : MED_ALL ou n° de la dimension a enregistrer
- * - psize (IN) : Taille du profil à utiliser, MED_NOPF si pas de profil
- * (référence les élements, cette taille ne prend pas en compte le nombre de pts de gauss ni la dimension )
- * - pfltab (IN) : Tableau contenant les n° déléments à traiter (1....oo)
- * - pflmod (IN) : PARAMETRE A AJOUTER : Indique comment lire les informations en mémoire { MED_COMPACT, MED_GLOBALE }.
- * - ngauss (IN) : Nombre de points de GAUSS par élément
- * - size (IN) : Taille du tableau de valeurs
- * (référence tous les élements, cette taille prend en compte le nombre de pts de gauss et la dimension )
- * - val (IN) : valeurs du tableau
- * - mode (IN) : mode d'ecriture MED (MED_ECRI | MED_REMP)
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDdatasetNumEcrire(med_idt pere,char *nom, med_type_champ type,
- med_mode_switch interlace, med_size nbdim, med_size fixdim,
- med_size psize, med_ssize * pfltab, med_int ngauss,
- med_size *size, unsigned char *val, med_mode_acces mode)
-{
- med_idt dataset, dataspace = 0, memspace = 0;
-#ifdef HDF_NEW_API
- med_size start_mem[1],start_data[1],*pflmem,*pfldsk;
-#else
- med_ssize start_mem[1],start_data[1],*pflmem,*pfldsk;
-#endif
- med_size stride[1],count[1],pcount[1],pflsize[1];
- med_err ret;
- int i,j,index,type_hdf;
- int dim, firstdim, dimutil, lastdim ;
- med_mode_profil pflmod;
-
- /* Verify fixdim is between [0, nbdim] ( 0 is MED_ALL ) */
- if ( ( fixdim < 0 ) || ( fixdim > nbdim ) )
- return -1;
-
- /* block pflmod to MED_COMPACT (until med2.2) */
- pflmod = MED_COMPACT;
-
- switch(type)
- {
- case MED_REEL64 :
- /* 1) IA32 is LE but due to an (?HDF convertion BUG?) when using H5T_NATIVE_DOUBLE/MED_REEL64? under PCLINUX
- the file read under SGI is incorrect
- 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
- REM : Be careful of compatibility between MED files when changing this (med2.2) */
-#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32) || defined(OSF1) || defined( PPRO_NT )
- type_hdf = H5T_IEEE_F64BE;
-#else
- type_hdf = H5T_IEEE_F64LE;
-#endif
- break;
-
- case MED_INT32 :
-#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32)
- type_hdf = H5T_STD_I32BE;
- if ((H5Tconvert(H5T_NATIVE_INT,H5T_STD_I32BE,(hsize_t)*size,(void *)val,NULL,(hid_t)0)) < 0)
- return -1;
-#else
- type_hdf = H5T_NATIVE_INT;
-#endif
- break;
-
- case MED_INT64 :
- type_hdf = H5T_NATIVE_LONG;
- break;
-
- default :
- return -1;
- }
-
-
- if ((dataset = H5Dopen(pere,nom)) < 0)
- {
- /* Whatever the size of the profil is we create a dataset with the size of the value array */
- /* Then if we used the MED_REMP mode we can append a new dimension to a previous one in the dataset */
- /* When we'll use the compression mode, the space used by unused values would be easily compressed */
-
- if ((dataspace = H5Screate_simple(1,size,NULL)) < 0)
- return -1;
- if ((dataset = H5Dcreate(pere,nom,type_hdf,dataspace,
- H5P_DEFAULT)) < 0)
- return -1;
- }
- else
- if (mode != MED_REMP)
- {
- H5Dclose(dataset);
- return -1;
- }
- else
- if ((dataspace = H5Dget_space(dataset)) <0)
- return -1;
-
-
- switch(interlace)
- { /* switch Interlace */
- case MED_FULL_INTERLACE :
-
- /*Initialisation des indices de boucle du traitement de l'entrelacement en fonction de la dimension fixee*/
- if ( fixdim != MED_ALL)
- {
- firstdim = (int)fixdim-1;
- lastdim = (int)fixdim;
- dimutil = 1;
- } else {
- firstdim = 0;
- lastdim = (int)nbdim;
- dimutil = (int)nbdim;
- }
-
- count [0] = (*size)/(nbdim);
-
-
- if ( psize == MED_NOPF ) {
-
- /* Creation d'un data space mémoire de dimension 1, de longeur size, et de longeur maxi size */
- if ( (memspace = H5Screate_simple (1, size, NULL)) <0)
- return -1;
-
- stride[0] = nbdim;
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- start_mem[0] = dim;
- if ( (ret = H5Sselect_hyperslab (memspace, H5S_SELECT_SET, start_mem, stride,
- count, NULL)) <0)
- return -1;
-
- start_data[0] = dim*count[0];
- if ( (ret = H5Sselect_hyperslab (dataspace, H5S_SELECT_SET, start_data, NULL,
- count, NULL)) <0)
- return -1;
-
- if ((ret = H5Dwrite(dataset,type_hdf,memspace,dataspace,
- H5P_DEFAULT, val)) < 0)
- return -1;
- }
-
- } else { /* psize != MED_NOPF */
-
- pflsize [0] = psize*ngauss*nbdim;
- pcount [0] = psize*ngauss*dimutil;
-#ifdef HDF_NEW_API
- pflmem = (med_size *) malloc (sizeof(med_size)*(size_t)pcount[0]);
- pfldsk = (med_size *) malloc (sizeof(med_size)*(size_t)pcount[0]);
-#else
- pflmem = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)pcount[0]);
- pfldsk = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)pcount[0]);
-#endif
-
- switch(pflmod)
- { /* switch pflmod pout FULL_INTERLACE*/
- case MED_GLOBALE :
-
- /* Creation d'un data space mémoire de dimension 1, de longeur size, et de longeur maxi size */
- if ( (memspace = H5Screate_simple (1, size, NULL)) <0)
- return -1;
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye les élements du profil */
- for (j=0; j < ngauss; j++) {
- index = i*ngauss+j + (dim-firstdim)*((int)psize*ngauss);
- pflmem[index] = (pfltab[i]-1)*ngauss*nbdim + j*nbdim+dim;
- pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- break;
-
- case MED_COMPACT :
-
- /* Creation d'un data space mémoire de dimension 1, de la longeur du profil */
- /* La dimension utilisée est ici nbdim, même pour un profil compact on suppose */
- /* que l'utilisateur a toutes les coordonées stockées, même si il en demande qu'une */
-
- if ( (memspace = H5Screate_simple (1, pflsize, NULL)) <0)
- return -1;
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye les élements du profil */
- for (j=0; j < ngauss; j++) {
- index = i*ngauss+j + (dim-firstdim)*((int)psize*ngauss);
- pflmem[index] = i*ngauss*nbdim + j*nbdim+dim;
- pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(memspace,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- break;
-
- default :
- return -1;
- }
-
- if ((ret = H5Dwrite(dataset,type_hdf,memspace,dataspace,H5P_DEFAULT, val)) < 0)
- return -1;
-
- free(pflmem);
- free(pfldsk);
- }
-
-
- break;
-
- case MED_NO_INTERLACE :
-
- /*Initialisation des indices de boucle du traitement de l'entrelacement en fonction de la dimension fixee*/
-
- count[0] = (*size)/nbdim;
-
- if ( psize == MED_NOPF ) {
-
- if ( fixdim != MED_ALL)
- start_data[0] = (fixdim-1)*count[0];
- else {
- count[0] = *size;
- start_data[0] = 0;
- };
-
- if ( (ret = H5Sselect_hyperslab (dataspace, H5S_SELECT_SET, start_data, NULL,
- count, NULL)) <0)
- return -1;
-
- if ((ret = H5Dwrite(dataset,type_hdf,dataspace,dataspace,
- H5P_DEFAULT, val)) < 0)
- return -1;
-
- } else {
-
- if ( fixdim != MED_ALL)
- {
- firstdim = (int)fixdim-1;
- lastdim = (int)fixdim;
- dimutil = 1;
- } else {
- firstdim = 0;
- lastdim = (int)nbdim;
- dimutil = (int)nbdim;
- }
-
- pflsize [0] = psize*ngauss*nbdim;
- pcount [0] = psize*ngauss*dimutil; /* nom pas très coherent avec count !!! A revoir */
-#ifdef HDF_NEW_API
- pfldsk = (med_size *) malloc(sizeof(med_size)*(size_t)pcount[0]);
-#else
- pfldsk = (med_ssize *) malloc(sizeof(med_ssize)*(size_t)pcount[0]);
-#endif
-
- switch(pflmod)
- { /*switch plfmod pour NO_INTERLACE */
- case MED_GLOBALE :
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */
- for (j=0; j < ngauss; j++) {
- index = i*ngauss+j + (dim-firstdim)*((int)psize*ngauss);
- pfldsk[index] = dim*count[0]+(pfltab[i]-1)*ngauss+j;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- if ((ret = H5Dwrite(dataset,type_hdf,dataspace,dataspace,H5P_DEFAULT, val)) < 0)
- return -1;
-
- break;
-
- case MED_COMPACT :
-
- /* Creation d'un data space mémoire de dimension 1, de la longeur du profil */
- /* La dimension utilisée est ici nbdim, même pour un profil compact on suppose */
- /* que l'utilisateur a toutes les coordonées stockées, même si il en demande qu'une */
-
- if ( (memspace = H5Screate_simple (1, pflsize, NULL)) <0)
- return -1;
-
-#ifdef HDF_NEW_API
- pflmem = (med_size *) malloc (sizeof(med_size)*(size_t)pcount[0]);
-#else
- pflmem = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)pcount[0]);
-#endif
-
- /* Le profil COMPACT est contigüe, mais il est possible que l'on selectionne uniquemenent une dimension*/
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */
- for (j=0; j < ngauss; j++) {
- index = i*ngauss+j + (dim-firstdim)*((int)psize*ngauss);
- pflmem[index] = dim*(psize*ngauss) + (pfltab[i]-1)*ngauss+j;
- pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t *) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET,(size_t)pcount[0], (const hssize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- if ((ret = H5Dwrite(dataset,type_hdf,memspace,dataspace,H5P_DEFAULT, val)) < 0)
- return -1;
-
- free(pflmem);
-
- break;
-
- default :
- return -1;
-
- }
-
- free(pfldsk);
-
- };
-
- break;
-
- default :
- return -1;
- }
-
-
- if (memspace)
- if ((ret = H5Sclose(memspace)) < 0)
- return -1;
-
- if ((ret = H5Sclose(dataspace)) < 0)
- return -1;
-
- if ((ret = H5Dclose(dataset)) < 0)
- return -1;
-
-#if defined(PCLINUX) || defined(PCLINUX64) || defined(PCLINUX64_32)
- if (type == MED_INT32)
- if ((H5Tconvert(H5T_STD_I32BE,H5T_NATIVE_INT,(hsize_t)*size,(void *)val,NULL,(hid_t)0)) < 0)
- return -1;
-#endif
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-#include <stdlib.h>
-#include "hdf5_version2api.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatasetNumLire
- * - Description : lecture d'un dataset tableau numerique
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - nom (IN) : le nom du dataset
- * - type (IN) : type numerique MED
- * - interlace (IN) : Choix du type d'entrelacement demandé par l'appelant { MED_FULL_INTERLACE(x1,y1,z1,x2,...)) , MED_NO_INTERLACE(x1,x2,y1,y2,z1,z2) }
- * - nbdim (IN) : Dimension des éléments
- * - fixdim (IN) : MED_ALL ou n° de la dimension a enregistrer à partir de 1..oo
- * - psize (IN) : Taille du profil à utiliser, MED_NOPF si pas de profil
- * - pfltab (IN) : Tableau contenant les n° déléments à traiter (1....oo)
- * - pflmod (IN) : PARAMETRE A AJOUTER : Indique comment lire les informations en mémoire { MED_COMPACT, MED_GLOBALE }.
- * - ngauss (IN) : Nombre de points de GAUSS par élément
- * - val (OUT) : valeurs du tableau
- * - Resultat : 0 en cas de succes, -1 sinon
- * Equivalent à l'ancienne routine si .....,MED_NO_INTERLACE,1,MED_ALL,MED_NOPF,0,1 (peu importe),....
- */
-
-namespace med_2_1{
-
-med_err
-_MEDdatasetNumLire(med_idt pere,char *nom,med_type_champ type,
- med_mode_switch interlace, med_size nbdim, med_size fixdim,
- med_size psize, med_ssize * pfltab, med_int ngauss,
- unsigned char *val)
-{
- med_idt dataset, dataspace = 0, memspace = 0;
-#ifdef HDF_NEW_API
- med_size start_mem[1],start_data[1],*pflmem=0,*pfldsk=0;
-#else
- med_ssize start_mem[1],start_data[1],*pflmem=0,*pfldsk=0;
-#endif
- med_size stride[1],count[1],pcount[1],size[1],pflsize[1];
- med_err ret;
- int i,j,index,type_hdf;
- hid_t datatype;
- size_t typesize;
- int dim, firstdim, dimutil, lastdim;
- med_mode_profil pflmod;
-
- /* Verify fixdim is between [0, nbdim] ( 0 is MED_ALL ) */
- if ( ( fixdim < 0 ) || ( fixdim > nbdim ) )
- return -1;
-
- /* block pflmod to MED_COMPACT (until med2.2) */
- pflmod = MED_COMPACT;
-
- switch(type)
- {
- case MED_REEL64 :
- /* 1) IA32 is LE but due to an (?HDF convertion BUG?) when using H5T_NATIVE_DOUBLE/MED_REEL64? under PCLINUX
- the file read under SGI is incorrect
- 2) Compaq OSF/1 is LE, since we force SGI64,SUN4SOL2,HP to write double in LE even if they are BE, mips OSF/1 must be BE
- REM : Be careful of compatibility between MED files when changing this (med2.2)
- 3) PPRO_NT is added for med2.1.6 support under Win32 */
-#if defined(PCLINUX) || defined(OSF1) || defined(PPRO_NT) || defined(PCLINUX64) || defined(PCLINUX64_32)
- type_hdf = H5T_IEEE_F64BE;
-#else
- type_hdf = H5T_IEEE_F64LE;
-#endif
- break;
-
- case MED_INT32 :
- type_hdf = H5T_NATIVE_INT;
- break;
-
- case MED_INT64 :
- type_hdf = H5T_NATIVE_LONG;
- break;
-
- default :
- return -1;
- }
-
- /* Ouverture du Dataset à lire */
- if ((dataset = H5Dopen(pere,nom)) < 0)
- return -1;
-
- /* Interrogation de la taille du dataset */
- if ( (datatype = H5Dget_type(dataset )) < 0) return -1;
- if ( (typesize = H5Tget_size(datatype)) < 0) return -1;
- size[0] = H5Dget_storage_size(dataset) / typesize;
- if ( H5Tclose(datatype) < 0) return -1;
-
- /* Create dataspace */
- if ((dataspace = H5Screate_simple(1,size,NULL)) < 0)
- return -1;
-
- switch(interlace)
- {
- case MED_FULL_INTERLACE :
-
- /*Initialisation des indices de boucle du traitement de l'entrelacement en fonction de la dimension fixee*/
- if ( fixdim != MED_ALL)
- {
- firstdim = (int)fixdim-1;
- lastdim = (int)fixdim;
- dimutil = 1;
- } else {
- firstdim = 0;
- lastdim = (int)nbdim;
- dimutil = (int)nbdim;
- }
-
- count [0] = (*size)/(nbdim);
-
-
- /*rem: Pas de vérification de l'assertion (*size)=n*nbdim */
- if ( psize == MED_NOPF ) {
-
- /* Creation d'un data space mémoire de dimension 1, de longeur size, et de longeur maxi size */
- if ( (memspace = H5Screate_simple (1, size, NULL)) <0)
- return -1;
-
- stride[0] = nbdim;
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- start_mem[0] = dim;
- if ( (ret = H5Sselect_hyperslab (memspace, H5S_SELECT_SET, start_mem, stride,
- count, NULL)) <0)
- return -1;
-
- start_data[0] = dim*count[0];
- if ( (ret = H5Sselect_hyperslab (dataspace, H5S_SELECT_SET, start_data, NULL,
- count, NULL)) <0)
- return -1;
-
- if ((ret = H5Dread(dataset,type_hdf,memspace,dataspace,
- H5P_DEFAULT, val)) < 0)
- return -1;
- }
-
- } else {
-
- pflsize [0] = psize*ngauss*nbdim;
- pcount [0] = psize*ngauss*dimutil;
-#ifdef HDF_NEW_API
- pflmem = (med_size *) malloc (sizeof(med_size)*(size_t)pcount[0]);
- pfldsk = (med_size *) malloc (sizeof(med_size)*(size_t)pcount[0]);
-#else
- pflmem = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)pcount[0]);
- pfldsk = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)pcount[0]);
-#endif
-
- switch(pflmod)
- { /* switch pflmod pour FULL_INTERLACE*/
- case MED_GLOBALE :
-
- /* Creation d'un data space mémoire de dimension 1, de longeur size, et de longeur maxi size */
- if ( (memspace = H5Screate_simple (1, size, NULL)) <0)
- return -1;
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye les élements du profil */
- for (j=0; j < ngauss; j++) {
- index = i*ngauss+j + (dim-firstdim)*((int)psize*ngauss);
- pflmem[index] = (pfltab[i]-1)*ngauss*nbdim + j*nbdim+dim;
- pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- break;
-
- case MED_COMPACT :
-
- /* Creation d'un data space mémoire de dimension 1, de la longeur du profil */
- /* La dimension utilisée est ici nbdim, même pour un profil compact on suppose */
- /* que l'utilisateur a toutes les coordonées stockées, même si il en demande qu'une */
-
- if ( (memspace = H5Screate_simple (1, pflsize, NULL)) <0)
- return -1;
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye les élements du profil */
- for (j=0; j < ngauss; j++) {
- index = i*ngauss+j + (dim-firstdim)*((int)psize*ngauss);
- pflmem[index] = i*ngauss*nbdim + j*nbdim+dim;
- pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- break;
-
- default :
- return -1;
- }
-
- if ((ret = H5Dread(dataset,type_hdf,memspace,dataspace,H5P_DEFAULT, val)) < 0)
- return -1;
-
- free(pflmem);
- free(pfldsk);
- }
-
- break;
-
- case MED_NO_INTERLACE :
-
- /*Initialisation des indices de boucle du traitement de l'entrelacement en fonction de la dimension fixee*/
-
- count[0] = (*size)/nbdim;
-
- if ( psize == MED_NOPF ) {
-
- if ( fixdim != MED_ALL)
- start_data[0] = (fixdim-1)*count[0];
- else {
- count[0] = *size;
- start_data[0] = 0;
- };
-
- if ( (ret = H5Sselect_hyperslab (dataspace, H5S_SELECT_SET, start_data, NULL,
- count, NULL)) <0)
- return -1;
-
- if ((ret = H5Dread(dataset,type_hdf,dataspace,dataspace,
- H5P_DEFAULT, val)) < 0)
- return -1;
-
- } else {
-
- if ( fixdim != MED_ALL)
- {
- firstdim = (int)fixdim-1;
- lastdim = (int)fixdim;
- dimutil = 1;
- } else {
- firstdim = 0;
- lastdim = (int)nbdim;
- dimutil = (int)nbdim;
- }
-
- pflsize [0] = psize*ngauss*nbdim;
- pcount [0] = psize*ngauss*dimutil; /* nom pas très coherent avec count !!! A revoir */
-#ifdef HDF_NEW_API
- pfldsk = (med_size *) malloc(sizeof(med_size)*(size_t)pcount[0]);
-#else
- pfldsk = (med_ssize *) malloc(sizeof(med_ssize)*(size_t)pcount[0]);
-#endif
-
- switch(pflmod)
- { /*switch plfmod pour NO_INTERLACE */
- case MED_GLOBALE :
-
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */
- for (j=0; j < ngauss; j++) {
- index = i*ngauss+j + (dim-firstdim)*((int)psize*ngauss);
- pfldsk[index] = dim*count[0]+(pfltab[i]-1)*ngauss+j;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- if ((ret = H5Dread(dataset,type_hdf,dataspace,dataspace,H5P_DEFAULT, val)) < 0)
- return -1;
-
- break;
-
- case MED_COMPACT :
-
- /* Creation d'un data space mémoire de dimension 1, de la longeur du profil */
- /* La dimension utilisée est ici nbdim, même pour un profil compact on suppose */
- /* que l'utilisateur a toutes les coordonées stockées, même si il en demande qu'une */
-
- if ( (memspace = H5Screate_simple (1, pflsize, NULL)) <0)
- return -1;
-
-#ifdef HDF_NEW_API
- pflmem = (med_size *) malloc (sizeof(med_size)*(size_t)pcount[0]);
-#else
- pflmem = (med_ssize *) malloc (sizeof(med_ssize)*(size_t)pcount[0]);
-#endif
-
- /* Le profil COMPACT est contigüe, mais il est possible que l'on selectionne uniquemenent une dimension*/
-
- index = 0;
- for (dim=firstdim; dim < lastdim; dim++) {
-
- for (i=0; i < psize; i++) /* i balaye le nbre d'élements du profil */
- for (j=0; j < ngauss; j++) {
-// index = i*ngauss+j + (dim-firstdim)*(psize*ngauss);
-// pflmem[index] = dim*(psize*ngauss) + (pfltab[i]-1)*ngauss+j;
-// pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j;
- pflmem[index] = ( (dim*psize) + i )*ngauss + j;
- pfldsk[index] = dim*count[0] + (pfltab[i]-1)*ngauss+j;
- index++;
- }
- }
-
-#ifdef HDF_NEW_API2
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t *) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t *) pfldsk ) ) <0)
- return -1;
-#elif defined HDF_NEW_API
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hsize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hsize_t **) pfldsk ) ) <0)
- return -1;
-#else
- if ( (ret = H5Sselect_elements(memspace ,H5S_SELECT_SET, (size_t)pcount[0], (const hssize_t **) pflmem ) ) <0)
- return -1;
-
- if ( (ret = H5Sselect_elements(dataspace,H5S_SELECT_SET,(size_t)pcount[0], (const hssize_t **) pfldsk ) ) <0)
- return -1;
-#endif
-
- if ((ret = H5Dread(dataset,type_hdf,memspace,dataspace,H5P_DEFAULT, val)) < 0)
- return -1;
-
- break;
-
- default :
- return -1;
-
- }
-
- free(pfldsk);
-
- };
-
- break;
-
- default :
- return -1;
- }
-
-
-
- if (memspace)
- if ((ret = H5Sclose(memspace)) < 0)
- return -1;
-
- if ((ret = H5Sclose(dataspace)) < 0)
- return -1;
-
- if ((ret = H5Dclose(dataset)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatasetOuvrir
- * - Description : ouverture d'un objet HDF dataset
- * - Parametres :
- * - pid (IN) : l'ID de l'objet HDF pere
- * - nom (IN) : le nom du dataset
- * - Resultat : ID du dataset en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_idt
-_MEDdatasetOuvrir(med_idt pid,char *nom)
-{
- med_idt id;
-
- if ((id = H5Dopen(pid,nom)) < 0)
- return -1;
-
- return id;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatasetStringEcrire
- * - Description : ecriture d'un dataset tableau de caracteres
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - nom (IN) : le nom de l'attribut
- * - dimd (IN) : profil du tableau
- * - val (IN) : valeurs du tableau
- * - mode (IN) : mode d'ecriture MED
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDdatasetStringEcrire(med_idt pere,char *nom,med_size *dimd,
- char *val, med_mode_acces mode)
-{
- med_idt dataset;
- med_idt datatype = 0;
- med_idt dataspace = 0;
- med_err ret;
-
- if ((dataset = H5Dopen(pere,nom)) < 0)
- {
- if ((dataspace = H5Screate_simple(1,dimd,NULL)) < 0)
- return -1;
- if((datatype = H5Tcopy(H5T_C_S1)) < 0)
- return -1;
- if((ret = H5Tset_size(datatype,1)) < 0)
- return -1;
- if ((dataset = H5Dcreate(pere,nom,datatype,dataspace,
- H5P_DEFAULT)) < 0)
- return -1;
- }
- else
- if (mode != MED_REMP)
- {
- H5Dclose(dataset);
- return -1;
- }
- else
- {
- if ((dataspace = H5Screate_simple(1,dimd,NULL)) < 0)
- return -1;
- if((datatype = H5Tcopy(H5T_C_S1)) < 0)
- return -1;
- if((ret = H5Tset_size(datatype,1)) < 0)
- return -1;
- }
- if ((ret = H5Dwrite(dataset,datatype,H5S_ALL,H5S_ALL,
- H5P_DEFAULT, val)) < 0)
- return -1;
- if (dataspace)
- if((ret = H5Sclose(dataspace)) < 0)
- return -1;
- if (datatype)
- if ((ret = H5Tclose(datatype)) < 0)
- return -1;
- if ((ret = H5Dclose(dataset)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDdatasetStringLire
- * - Description : lecture d'un dataset tableau de caracteres
- * - Parametres :
- * - pere (IN) : l'ID de l'objet HDF pere ou placer l'attribut
- * - nom (IN) : le nom de l'attribut
- * - val (IN) : valeurs du tableau
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDdatasetStringLire(med_idt pere,char *nom,char *val)
-{
- med_idt dataset,datatype;
- med_err ret;
-
- if ((dataset = H5Dopen(pere,nom)) < 0)
- return -1;
- if ((datatype = H5Tcopy(H5T_C_S1)) < 0)
- return -1;
- if ((ret = H5Tset_size(datatype,1)) < 0)
- return -1;
- if ((ret = H5Dread(dataset,datatype,H5S_ALL,H5S_ALL,H5P_DEFAULT,val)) < 0)
- return -1;
- if ((ret = H5Tclose(datatype)) < 0)
- return -1;
- if ((ret = H5Dclose(dataset)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-med_int
-MEDdimLire(med_idt fid, char *maillage)
-{
- med_idt maaid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_int dim;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On regarde si le groupe existe => erreur si non
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On va lire l'attribut dimension
- */
- if ((ret = _MEDattrEntierLire(maaid,MED_NOM_DIM,&dim)) < 0)
- return -1;
-
- /*
- * Fermetures des objets HDF
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return dim;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDelementsEcr(med_idt fid,char *maa,med_int mdim,med_int *connectivite,med_mode_switch mode_switch,
- char *nom,med_booleen inom,med_int *num,med_booleen inum,
- med_int *fam,med_int nele,med_entite_maillage typ_ent,
- med_geometrie_element typ_geo,med_connectivite typ_conn,
- med_mode_acces mode)
-{
- med_err ret;
-
- /* Ecriture de la connectivite */
- if ((ret = MEDconnEcr(fid,maa,mdim,connectivite,mode_switch,nele,mode,typ_ent,typ_geo,
- typ_conn)) < 0)
- return -1;
-
- /* Ecriture des noms */
- if (inom == MED_VRAI)
- if ((ret = MEDnomEcr(fid,maa,nom,nele,mode,typ_ent,typ_geo)) < 0)
- return -1;
-
- /* Ecriture des numeros */
- if (inum == MED_VRAI)
- if ((ret = MEDnumEcr(fid,maa,num,nele,mode,typ_ent,typ_geo)) < 0)
- return -1;
-
- /* Ecriture des numeros de familles */
- if ((ret = MEDfamEcr(fid,maa,fam,nele,mode,typ_ent,typ_geo)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDelementsLire(med_idt fid,char *maa,med_int mdim,med_int *connectivite,med_mode_switch mode_switch,
- char *nom,med_booleen *inom,med_int *num,med_booleen *inum,
- med_int *fam,med_int nele,med_entite_maillage typ_ent,
- med_geometrie_element typ_geo,med_connectivite typ_conn)
-{
- med_err ret;
-
- /* Lecure de la connectivite */
- if ((ret = MEDconnLire(fid,maa,mdim,connectivite,mode_switch,0,MED_NOPF,
- typ_ent,typ_geo,typ_conn)) < 0)
- return -1;
-
- /* Lecture des noms */
- if ((ret = MEDnomLire(fid,maa,nom,nele,typ_ent,typ_geo)) < 0)
- *inom = MED_FAUX;
- else
- *inom = MED_VRAI;
-
- /* Lecture des numeros */
- if ((ret = MEDnumLire(fid,maa,num,nele,typ_ent,typ_geo)) < 0)
- *inum = MED_FAUX;
- else
- *inum = MED_VRAI;
-
- /* Lecture des numeros de familles */
- if ((ret = MEDfamLire(fid,maa,fam,nele,typ_ent,typ_geo)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDequivCr(med_idt fid,char *maa, char *eq, char *desc)
-{
- med_idt root,eqid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_EQS+MED_TAILLE_NOM+1];
- char tmp[MED_TAILLE_EQS+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group "EQS" n'existe pas, on le cree
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strncpy(tmp,MED_EQS,MED_TAILLE_EQS-1);
- tmp[MED_TAILLE_EQS-1] = '\0';
- strcat(chemin,tmp);
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- if ((root = _MEDdatagroupCreer(fid,chemin)) < 0)
- return -1;
-
- /*
- * Si une equivalence du meme nom existe => erreur
- * Sinon on la cree
- */
- if ((eqid = _MEDdatagroupOuvrir(root,eq)) >= 0)
- return -1;
- if ((eqid = _MEDdatagroupCreer(root,eq)) < 0)
- return -1;
-
- /*
- * L'attribut "DES"
- */
- if ((ret = _MEDattrStringEcrire(eqid,MED_NOM_DES,MED_TAILLE_DESC,desc,MED_REMP)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(eqid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- return 0 ;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-extern int mode_interlace;
-
-namespace med_2_1{
-
-med_err
-MEDequivEcr(med_idt fid, char *maa, char *eq, med_int *corr, med_int n,
- med_mode_acces mode, med_entite_maillage typ_ent, med_geometrie_element typ_geo)
-{
- med_idt eqid, datagroup;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_EQS+2*MED_TAILLE_NOM+1];
- char nomdatagroup[MED_TAILLE_NOM+1];
- char tmp[MED_TAILLE_NOM_ENTITE+1];
- med_size dimd[1];
-
- if (typ_geo == MED_TETRA4 || typ_geo == MED_TETRA10 ||
- typ_geo == MED_HEXA8 || typ_geo == MED_HEXA20 ||
- typ_geo == MED_PENTA6 || typ_geo == MED_PENTA15 ||
- typ_geo == MED_PYRA5 || typ_geo == MED_PYRA13)
- return -1;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group de "eq" n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strcat(chemin,MED_EQS);
- strcat(chemin,eq);
- if ((eqid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Ecriture de l'equivalence
- */
- if ((ret = _MEDnomEntite(nomdatagroup,typ_ent)) < 0)
- return -1;
- if ((typ_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp,typ_geo)) < 0)
- return -1;
- strcat(nomdatagroup,".");
- strcat(nomdatagroup,tmp);
- }
- datagroup = 0;
- if (((datagroup = _MEDdatagroupOuvrir(eqid,nomdatagroup)) > 0) &&
- (mode != MED_REMP))
- return -1;
- else
- if (datagroup > 0)
- _MEDdatagroupFermer(datagroup);
-
- /* EF : verifier que çà marche si le data groupe existe déjà */
- if ((datagroup = _MEDdatagroupCreer(eqid,nomdatagroup)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierEcrire(datagroup,MED_NOM_NBR,&n,mode)) < 0)
- return -1;
-
- dimd[0] = 2*n;
-
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_COR,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) corr,mode)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_COR,MED_INT32,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) corr,mode)) < 0)
- return -1;
-#endif
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(eqid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDequivInfo(int fid, char *maa, int ind, char *eq, char *des)
-{
- med_idt eqid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_EQS+2*MED_TAILLE_NOM+1];
- int num;
- int idx;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On recupere le nom de l'equivalence
- */
- num = ind - 1;
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strcat(chemin,MED_EQS);
- if ((idx = _MEDobjetIdentifier(fid,chemin,num,eq)) < 0)
- return -1;
-
- /*
- * Si le Data Group eq n'existe pas => erreur
- */
- strcat(chemin,eq);
- if ((eqid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * L'attribut "DES"
- */
- if ((ret = _MEDattrStringLire(eqid,MED_NOM_DES,MED_TAILLE_DESC,des)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(eqid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-extern int mode_interlace;
-
-namespace med_2_1{
-
-med_err
-MEDequivLire(med_idt fid, char *maa, char *eq, med_int *corr, med_int n,
- med_entite_maillage typ_ent,med_geometrie_element typ_geo)
-{
- med_idt eqid, datagroup;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_EQS+2*MED_TAILLE_NOM+1];
- char nomdatagroup[MED_TAILLE_NOM+1];
- char tmp[MED_TAILLE_NOM_ENTITE+1];
-
- if (typ_geo == MED_TETRA4 || typ_geo == MED_TETRA10 ||
- typ_geo == MED_HEXA8 || typ_geo == MED_HEXA20 ||
- typ_geo == MED_PENTA6 || typ_geo == MED_PENTA15 ||
- typ_geo == MED_PYRA5 || typ_geo == MED_PYRA13)
- return -1;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group de "eq" n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strcat(chemin,MED_EQS);
- strcat(chemin,eq);
- if ((eqid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Lecture de l'equivalence
- */
- if ((ret = _MEDnomEntite(nomdatagroup,typ_ent)) < 0)
- return -1;
- if ((typ_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp,typ_geo)) < 0)
- return -1;
- strcat(nomdatagroup,".");
- strcat(nomdatagroup,tmp);
- }
- if ((datagroup = _MEDdatagroupOuvrir(eqid,nomdatagroup)) < 0)
- return -1;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_COR,MED_INT64,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *) corr)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_COR,MED_INT32,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *) corr)) < 0)
- return -1;
-#endif
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(eqid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "med.hxx"
-
-
-/***********************************************************************
- * FONCTION MEDfam2groA
- *
- * - DESCRIPTION : 1ere etape dans la conversion des familles de groupes
- * MED en goupes de noeuds et d'elements.
- * Calcul des tailles des tableaux a allouer pour stocker les
- * groupes que l'on veut creer.
- * Les parametres renvoyes sont :
- * 1 - le nombre de groupes de noeuds a creer (ngn)
- * 2 - le nombre de groupes d'elements (nge)
- * 3 - le nombre total de noeuds composant l'ensemble des groupes
- * de noeuds (nindn)
- * 4 - le nombre total d'elements composant l'ensemble des groupes
- * d'elements (ninde)
- * Ces parametres doivent permettre de creer les tables suivantes :
- * 1 - une table de taille (nindn) contenant pour chaque groupe
- * de noeuds la liste des noeuds le composant. Cette table
- * sera indexee par une table de taille (ngn) qui contiendra
- * pour chaque noeud un numero d'indice. Une table de taille
- * (ngn) qui contiendra la liste des noms des differents
- * groupes de noeuds.
- * 2 - idem pour les elements
- * Le remplissage de ces tables est realise par la fonction
- * MEDfam2groB().
- *
- * - PARAMETRES :
- * NOM .E/S. TYPE . DESCRIPTION
- * -------------------------------------------------------------------
- * nfam .E . med_int . nombre de familles
- * numfam .E . med_int*. table des numeros de familles
- * numfamnoe .E . med_int*. table des numeros de familles
- * . . . des noeuds
- * nnoeuds .E . med_int . nombre de noeuds
- * numfamele .E . med_int*. table des numeros de familles
- * . . . des elements
- * nelememts .E . . nombre total d'elements
- * grofam .E . char* . liste des groupes de familles
- * indfamgro .E . int* . liste des indices des groupes
- * . . . de familles dans grofam
- * ngn . S. med_int*. nombre de groupes de noeuds a
- * . . creer
- * nge . S. med_int*. nombre de groupes d'elements a
- * . . creer
- * nindn . S. med_int*. taille de la table
- * . . des groupes de noeuds a creer
- * ninde . S. med_int*. taille de la table
- * . . des groupes d'elements
- *
- * - RESULTAT : 0 si succes et -1 sinon
- *
- ***********************************************************************/
-
-namespace med_2_1{
-
-med_err
-MEDfam2groA (med_int nfam,med_int *numfam,med_int *numfamnoe,
- med_int nnoeuds,med_int *numfamele,med_int nelements,
- char *grofam,int *indfamgro,
- med_int *ngn,med_int *nge,med_int *nindn,med_int *ninde)
-{
- int i,j,k;
- char groupe[MED_TAILLE_LNOM];
- char *nomgronoe,*nomgroele,*tmp;
- med_int numc;
- int nnoe = 0,nele = 0;
- int flag = 0;
-
- *ngn = 0;
- *nge = 0;
- *nindn = 0;
- *ninde = 0;
-
- tmp = NULL;
- nomgronoe = NULL;
- nomgroele = NULL;
-
- /* Pour chaque famille, on regarde s'il y a de nouveaux groupes
- de noeuds ou d'elements a creer. Pour chaque nouveau groupe,
- on compte le nombre de noeuds ou d'elements qui devront lui etre
- rataches */
- for (i=1;i<=nfam;i++)
- if ((*(indfamgro+i)-*(indfamgro+i-1))/MED_TAILLE_LNOM > 0)
- {
- /* on releve le numero de la famille courante */
- numc = *(numfam+i-1);
- nnoe = 0;
- nele = 0;
- /* si c'est une famille de noeuds, on compte le nombre de
- noeuds qui y sont rattaches */
- if (numc > 0)
- for (j=0;j<nnoeuds;j++)
- if (*(numfamnoe+j) == numc)
- nnoe++;
- /* si c'est une famille d'elements, on compte le nombre d'elements
- qui y sont rattaches */
- if (numc < 0)
- for (j=0;j<nelements;j++)
- if (*(numfamele+j) == numc)
- nele++;
- /* on parcourt la liste des groupes de la famille et pour chaque
- groupe :
- 1 - on met a jour les compteurs nindn et ninde ;
- 2 - on verifie s'il s'agit d'un groupe deja repertorie.
- Si c'est le cas on ne fait rien, sinon on met a jour les
- compteurs ngn ou nge */
- for (j=0;j<(*(indfamgro+i)-*(indfamgro+i-1))/MED_TAILLE_LNOM;j++)
- {
- strncpy(groupe,grofam+*(indfamgro+i-1)+j*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM);
- if (numc > 0)
- {
- *nindn = *nindn+nnoe;
- if (*ngn == 0)
- {
- *ngn = 1;
- if ((nomgronoe=(char*)malloc(sizeof(char)*MED_TAILLE_LNOM))
- == NULL)
- return -1;
- strncpy(nomgronoe,groupe,MED_TAILLE_LNOM);
- }
- else
- {
- flag = 0;
- for (k=0;k<(*ngn);k++)
- if (strncmp(groupe,nomgronoe+k*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM) == 0)
- flag = 1;
- if (flag == 0)
- {
- *ngn = *ngn + 1;
- if ((tmp=(char*)malloc(sizeof(char)*
- MED_TAILLE_LNOM**ngn)) == NULL)
- return -1;
- strncpy(tmp,nomgronoe,MED_TAILLE_LNOM*(*ngn-1));
- strncpy(tmp+MED_TAILLE_LNOM*(*ngn-1),groupe,
- MED_TAILLE_LNOM);
- free(nomgronoe);
- nomgronoe = tmp;
- }
- }
- }
- if (numc < 0)
- {
- *ninde = *ninde+nele;
- if (*nge == 0)
- {
- *nge = 1;
- if ((nomgroele=(char *)malloc(sizeof(char)*
- MED_TAILLE_LNOM)) == NULL)
- return -1;
- strncpy(nomgroele,groupe,MED_TAILLE_LNOM);
- }
- else
- {
- flag = 0;
- for (k=0;k<(*nge);k++)
- if (strncmp(groupe,nomgroele+k*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM) == 0)
- flag = 1;
- if (flag == 0)
- {
- *nge = *nge + 1;
- if ((tmp = (char*) malloc(sizeof(char)*MED_TAILLE_LNOM*
- *nge)) == NULL)
- return -1;
- strncpy(tmp,nomgroele,MED_TAILLE_LNOM*(*nge-1));
- strncpy(tmp+MED_TAILLE_LNOM*(*nge-1), groupe,
- MED_TAILLE_LNOM);
- free(nomgroele);
- nomgroele = tmp;
- }
- }
- }
- }
- }
-
- /* nettoyage memoire */
- free(nomgronoe);
- free(nomgroele);
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "med.hxx"
-
-/***********************************************************************
- * FONCTION MEDfam2groB
- *
- * - DESCRIPTION : 2e etape dans la conversion des familles MED en
- * groupes de noeuds et d'elements. Les tables allouees a partir
- * des parametres calcules par MEDfam2groA() sont passees en argument
- * a MEDfam2groB et remplies par cette derniere fonction.
- * Il s'agit de :
- * 1 - la table des noms de groupes de noeuds, chaque nom ayant
- * une taille de MED_TAILLE_LNOM
- * 2 - la table des noms des groupes d'elements
- * 3 - la table des groupes de noeuds -i.e. pour chaque groupe
- * la liste des numeros des noeuds qui le composent
- * 4 - la table d'indexation de la table des groupes de noeuds
- * 5 - la table des groupes d'elements
- * 6 - la table d'indexation de la table des groupes d'elements
- *
- * - PARAMETRES :
- * NOM .E/S. TYPE . DESCRIPTION
- * -------------------------------------------------------------------
- * nfam .E . med_int . nombre de familles
- * numfam .E . med_int*. table des numeros de familles
- * numfamnoe .E . med_int*. table des numeros de familles
- * . . . des noeuds
- * nnoeuds .E . med_int . nombre de noeuds
- * numfamele .E . med_int*. table des numeros de familles
- * . . . des elements
- * nelememts .E . med_int . nombre total d'elements
- * grofam .E . char* . liste des groupes de familles
- * indfamgro .E . int* . liste des indices des groupes
- * . . . de familles dans indfamgro
- * numnoeuds .E . med_int*. numeros des noeuds
- * numele .E . med_int*. numeros des elements
- * ngn .E . med_int . nombre de groupes de noeuds
- * nge .E . med_int . nombre de groupes d'elements
- * nindn .E . med_int . nombre d'indices dans la table
- * . . des groupes de noeuds a creer
- * ninde .E . med_int . nombre d'indices dans la table
- * . . des groupes d'elements
- * nomgronoe . S. char* . noms des groupes de noeuds
- * nomgroele . S. char* . noms des groupes d'elements
- * indgronoe . S. int* . indices des groupes de noeuds
- * indgroele . S. int* . indices des groupes d'elements
- * tabgronoe . S. med_int*. table des groupes de noeuds
- * tabgroele . S. med_int*. table des groupes d'elements
- *
- * - RESULTAT : 0
- *
- ***********************************************************************/
-
-namespace med_2_1{
-
-med_err
-MEDfam2groB(med_int nfam,med_int *numfam,med_int *numfamnoe,
- med_int nnoeuds,med_int *numfamele,med_int nelements,
- char *grofam,int *indfamgro,med_int *numnoeuds,
- med_int *numele,med_int ngn,med_int nge,med_int nindn,
- med_int ninde,char *nomgronoe,char *nomgroele,
- int *indgronoe,int *indgroele,
- med_int *tabgronoe,med_int *tabgroele)
-{
- int i,j,k;
- char groupe[MED_TAILLE_LNOM];
- med_int numc;
- int nnoe = 0, nele = 0;
- int flag = 0;
- int nn = 0, ne = 0;
- int pos, cpt;
-
- /* initialisations */
- for (i=0;i<=ngn;i++)
- *(indgronoe+i) = 0;
- for (i=0;i<=nge;i++)
- *(indgroele+i) = 0;
-
- /* 1ere passe : on passe en revue toutes les familles :
- 1 - on etablit dans (nomgronoe) et dans (nomgroele) les listes
- des noms de groupes de noeuds et d'elements
- 2 - on place dans les tables d'index (indgronoe) et (indgroele)
- le nombre de noeuds ou d'elements que chaque groupe se verra
- attribuer */
- for (i=1;i<=nfam;i++)
- {
- numc = *(numfam+i-1);
- nnoe = 0;
- nele = 0;
- if (numc > 0)
- for (j=0;j<nnoeuds;j++)
- if (*(numfamnoe+j) == numc)
- nnoe++;
- if (numc < 0)
- for (j=0;j<nelements;j++)
- if (*(numfamele+j) == numc)
- nele++;
- for (j=0;j<(*(indfamgro+i)-*(indfamgro+i-1))/MED_TAILLE_LNOM; j++)
- {
- strncpy(groupe, grofam+*(indfamgro+i-1)+j*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM);
- if (numc > 0)
- {
- if (nn == 0)
- {
- strncpy(nomgronoe,groupe,MED_TAILLE_LNOM);
- nn = 1;
- pos = 1;
- }
- else
- {
- flag = 0;
- for (k=0; k<nn;k++)
- if (strncmp(groupe,nomgronoe+k*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM) == 0)
- {
- flag = 1;
- pos = k+1;
- }
- if (flag == 0)
- {
- strncpy(nomgronoe+nn*MED_TAILLE_LNOM,groupe,
- MED_TAILLE_LNOM);
- pos = nn + 1;
- nn = nn + 1;
- }
- }
- *(indgronoe+pos) = *(indgronoe+pos) + nnoe;
- }
- if (numc < 0)
- {
- if (ne == 0)
- {
- strncpy(nomgroele,groupe,MED_TAILLE_LNOM);
- ne = 1;
- pos = 1;
- }
- else
- {
- flag = 0;
- for (k=0; k<ne;k++)
- if (strncmp(groupe,nomgroele+k*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM) == 0)
- {
- flag = 1;
- pos = k + 1;
- }
- if (flag == 0)
- {
- strncpy(nomgroele+ne*MED_TAILLE_LNOM,groupe,
- MED_TAILLE_LNOM);
- pos = ne + 1;
- ne = ne + 1;
- }
- }
- *(indgroele+pos) = *(indgroele+pos) + nele;
- }
- }
- }
- *(nomgronoe+ngn*MED_TAILLE_LNOM) = '\0';
- *(nomgroele+nge*MED_TAILLE_LNOM) = '\0';
-
- /* 2e passe : on construit les listes des index ainsi que les
- les tables des groupes */
- for (i=1;i<=ngn;i++)
- {
- cpt = 0;
- *(indgronoe+i) = *(indgronoe+i-1) + *(indgronoe+i);
- strncpy(groupe,nomgronoe+(i-1)*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
- for (j=1;j<=nfam;j++)
- {
- numc = *(numfam+j-1);
- if (numc > 0)
- {
- flag = 0;
- for (k=0;k<(*(indfamgro+j)-*(indfamgro+j-1))/MED_TAILLE_LNOM;
- k++)
- if (! strncmp(groupe,
- grofam+*(indfamgro+j-1)+k*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM))
- flag = 1;
- if (flag == 1)
- for (k=0;k<nnoeuds;k++)
- if (*(numfamnoe+k) == numc)
- {
- *(tabgronoe+*(indgronoe+i-1)+cpt) = *(numnoeuds+k);
- cpt++;
- }
- }
- }
- }
-
- for (i=1;i<=nge;i++)
- {
- cpt = 0;
- *(indgroele+i) = *(indgroele+i-1) + *(indgroele+i);
- strncpy(groupe,nomgroele+(i-1)*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
- for (j=1;j<=nfam;j++)
- {
- numc = *(numfam+j-1);
- if (numc < 0)
- {
- flag = 0;
- for (k=0;k<(*(indfamgro+j)-*(indfamgro+j-1))/MED_TAILLE_LNOM;
- k++)
- if (! strncmp(groupe,
- grofam+*(indfamgro+j-1)+k*MED_TAILLE_LNOM,
- MED_TAILLE_LNOM))
- flag = 1;
- if (flag == 1)
- for (k=0;k<nelements;k++)
- if (*(numfamele+k) == numc)
- {
- *(tabgroele+*(indgroele+i-1)+cpt) = *(numele+k);
- cpt++;
- }
- }
- }
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDfamCr(med_idt fid,char* maa,char *famille,med_int numero,
- med_int *attr_ident, med_int *attr_val, char *attr_desc,
- med_int n_attr,char *groupe, med_int n_groupe)
-{
- med_idt root, datagroup, famid;
- med_err ret;
- med_size dimd[1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_FAS+MED_TAILLE_NOM+1];
- char tmp[MED_TAILLE_FAS+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group FAS n'existe pas, on le cree
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strncpy(tmp,MED_FAS,MED_TAILLE_FAS-1);
- tmp[MED_TAILLE_FAS-1] = '\0';
- strcat(chemin,tmp);
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- if ((root = _MEDdatagroupCreer(fid,chemin)) < 0)
- return -1;
-
- /*
- * Si le Data Group de meme nom que famille existe => erreur
- * Sinon on le cree
- */
- if ((famid = _MEDdatagroupOuvrir(root,famille)) >= 0)
- return -1;
- if ((famid = _MEDdatagroupCreer(root,famille)) < 0)
- return -1;
-
- /*
- * L'attribut NUM
- */
- if ((ret = _MEDattrEntierEcrire(famid,MED_NOM_NUM,&numero,MED_REMP)) < 0)
- return -1;
-
- /*
- * Le Data Group "GRO"
- */
- if (n_groupe > 0)
- {
- /*
- * On cree le Data Group
- */
- if ((datagroup = _MEDdatagroupCreer(famid,MED_NOM_GRO)) < 0)
- return -1;
-
- /*
- * L'attribut "NBR"
- */
- if ((ret = _MEDattrEntierEcrire(datagroup,MED_NOM_NBR,&n_groupe,MED_REMP)) < 0)
- return -1;
-
- /*
- * Data Set des noms des groupes "NOM"
- */
- dimd[0] = n_groupe*MED_TAILLE_LNOM+1;
- if ((ret = _MEDdatasetStringEcrire(datagroup,MED_NOM_NOM,dimd,groupe,
- MED_REMP))<0)
- return -1;
-
- /*
- * On ferme le Data Group
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- }
-
- /*
- * Le Data Group "ATT"
- */
-
- if (n_attr > 0)
- {
- if ((datagroup = _MEDdatagroupCreer(famid,MED_NOM_ATT)) < 0)
- return -1;
-
- /*
- * L'attribut "NBR"
- */
- if ((ret = _MEDattrEntierEcrire(datagroup,MED_NOM_NBR,&n_attr,MED_REMP)) < 0)
- return -1;
-
- /*
- * Le Data Set "IDE"
- */
- dimd[0] = n_attr;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_IDE,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char *)attr_ident,MED_REMP)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_IDE,MED_INT32,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char *)attr_ident,MED_REMP)) < 0)
- return -1;
-#endif
-
- /*
- * Le Data Set "VAL"
- */
- dimd[0] = n_attr;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_VAL,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*)attr_val,MED_REMP)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(datagroup,MED_NOM_VAL,MED_INT32,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*)attr_val,MED_REMP)) < 0)
- return -1;
-#endif
-
- /*
- * Le Data Set "DES"
- */
- dimd[0] = n_attr*MED_TAILLE_DESC+1;
- if ((ret = _MEDdatasetStringEcrire(datagroup,MED_NOM_DES,dimd,attr_desc,
- MED_REMP)) < 0)
- return -1;
-
- /*
- * On ferme le Data Group
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- }
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(famid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDfamEcr(med_idt fid,char *maa, med_int *fam, med_int n, med_mode_acces mode,
- med_entite_maillage type_ent, med_geometrie_element type_geo)
-{
- med_idt root, maaid, entid, geoid, dataset;
- med_err ret;
- med_size dimd[1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
-
- /*
- * Si le Data Group des entites n'existe pas on le cree
- */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- if ((entid = _MEDdatagroupCreer(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * Pour les mailles, les faces et le aretes, on cree
- * s'il n'existe pas le Data Group du type geometrique
- */
- if ((type_ent==MED_MAILLE)||(type_ent==MED_FACE)||(type_ent==MED_ARETE))
- {
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
-
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- if ((geoid = _MEDdatagroupCreer(entid,nom_geo)) < 0)
- return -1;
- }
- else
- geoid = -1;
-
- /*
- * Creation du Data Set "FAM"
- */
- if (geoid == -1)
- root = entid;
- else
- root = geoid;
- dimd[0] = n;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_FAM,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*)fam,mode)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_FAM,MED_INT32,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*)fam,mode)) < 0)
- return -1;
-#endif
-
- /*
- * Attribut NBR (nombre de noeuds)
- */
- if ((dataset = _MEDdatasetOuvrir(root,MED_NOM_FAM)) < 0)
- return -1;
- if ((ret = _MEDattrEntierEcrire(dataset,MED_NOM_NBR,&n,mode)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatasetFermer(dataset)) < 0)
- return -1;
- if (geoid != -1)
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDfamGridEcr(med_idt fid, char *maa, med_int *fam, med_int n, med_mode_acces mode, med_entite_maillage type_ent) {
- /* Ecrire des numeros de familles pour les grilles cartesiennes ou polaires :
- - pour les noeuds
- - pour les aretes
- - pour les faces
- - pour les mailles */
-
- med_geometrie_element type_geo;
-
- switch(type_ent) {
- case MED_NOEUD : {
- type_geo = MED_POINT1;
- break;
- };
- case MED_ARETE : {
- type_geo = MED_SEG2;
- break;
- };
- case MED_FACE : {
- type_geo = MED_QUAD4;
- break;
- };
- case MED_MAILLE : {
- type_geo = MED_HEXA8;
- break;
- };
- default : {
- return(-1);
- };
- };
-
- return(MEDfamEcr(fid, maa, fam, n, mode, type_ent, type_geo));
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDfamGridLire(med_idt fid, char *maa, med_int *fam, med_int n, med_entite_maillage type_ent) {
- /* lecture des numeros de familles pour les grilles cartesiennes ou polaires :
- - pour les noeuds
- - pour les aretes
- - pour les faces
- - pour les mailles */
-
- med_geometrie_element type_geo;
-
- switch(type_ent) {
- case MED_NOEUD : {
- type_geo = MED_POINT1;
- break;
- };
- case MED_ARETE : {
- type_geo = MED_SEG2;
- break;
- };
- case MED_FACE : {
- type_geo = MED_QUAD4;
- break;
- };
- case MED_MAILLE : {
- type_geo = MED_HEXA8;
- break;
- };
- default : {
- return(-1);
- };
- };
-
- return(MEDfamLire(fid, maa, fam, n, type_ent, type_geo));
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDfamInfo(med_idt fid,char *maa,int indice, char *famille,
- med_int *numero,
- med_int *attr_ident, med_int *attr_val, char *attr_desc,
- med_int *n_attr, char *groupe ,med_int *n_groupe)
-{
- med_idt famid,datagroup;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_FAS+2*MED_TAILLE_NOM+1];
- int num;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On recupere le nom de la famille
- */
- num = indice - 1;
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strcat(chemin,MED_FAS);
- if ((ret = _MEDobjetIdentifier(fid,chemin,num,famille)) < 0)
- return -1;
-
- /*
- * Si le Data Group de la famille n'existe pas => erreur
- */
- strcat(chemin,famille);
- if ((famid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * L'attribut NUM
- */
- if ((ret = _MEDattrEntierLire(famid,MED_NOM_NUM,numero)) < 0)
- return -1;
-
- /*
- * Le Data Group "GRO"
- */
- if ((datagroup = _MEDdatagroupOuvrir(famid,MED_NOM_GRO)) >= 0)
- {
- /*
- * L'attribut "NBR"
- */
- if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NBR,n_groupe)) < 0)
- return -1;
-
- /*
- * Data Set des noms des groupes "NOM"
- */
- if ((ret = _MEDdatasetStringLire(datagroup,MED_NOM_NOM,groupe)) < 0)
- return -1;
-
- /*
- * On ferme le Data Group
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- }
- else
- *n_groupe = 0;
-
- /*
- * Le Data Group "ATT"
- */
- if ((datagroup = _MEDdatagroupOuvrir(famid,MED_NOM_ATT)) >= 0)
- {
- /*
- * L'attribut "NBR"
- */
- if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NBR,n_attr)) < 0)
- return -1;
-
- /*
- * Le Data Set "IDE"
- */
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_IDE,MED_INT64,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char*) attr_ident)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_IDE,MED_INT32,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char*) attr_ident)) < 0)
- return -1;
-#endif
-
- /*
- * Le Data Set "VAL"
- */
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_VAL,MED_INT64,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *) attr_val)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(datagroup,MED_NOM_VAL,MED_INT32,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *) attr_val)) < 0)
- return -1;
-#endif
-
- /*
- * Le Data Set "DES"
- */
- ret = _MEDdatasetStringLire(datagroup,MED_NOM_DES,attr_desc);
-
- /*
- * On ferme le Data Group
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- }
- else
- *n_attr = 0;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(famid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDfamLire(med_idt fid,char *maa, med_int *fam, med_int n,
- med_entite_maillage type_ent,med_geometrie_element type_geo)
-{
- med_idt root,maaid, entid, geoid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
-
- /*
- * Si le Data Group des entites n'existe pas => erreur
- */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * Pour les mailles, les faces et le aretes, on cree
- * si le Data Group du type geometrique => erreur
- */
- if ((type_ent==MED_MAILLE)||(type_ent==MED_FACE)||(type_ent==MED_ARETE))
- {
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- return -1;
- }
- else
- geoid = -1;
-
- /*
- * lecture du Data Set "FAM"
- */
- if (geoid == -1)
- root = entid;
- else
- root = geoid;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(root,MED_NOM_FAM,MED_INT64,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *)fam)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(root,MED_NOM_FAM,MED_INT32,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *)fam)) < 0)
- return -1;
-#endif
-
- /*
- * On ferme tout
- */
- if (geoid != -1)
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdio.h>
-#include <cstring>
-
-namespace med_2_1{
-
-med_err
-MEDfamMaaCr(med_idt fid,char *maa,
- med_int *numfam,med_int *attide,
- med_int *attval,char *attdes,int *indatt,char *gro,int *indgro,
- med_int nfamilles)
-{
- med_err ret;
- med_int i;
- med_int natt,ngro;
- med_int numf;
- char nomfam[MED_TAILLE_NOM+1];
-
- /* La famille de numero 0 n'a aucun attribut, ni aucun groupe
- Les familles de numero > 0 sont des familles de noeuds
- Les familles de numero < 0 sont des familles d'elements */
- for (i=0;i<nfamilles;i++)
- {
- numf = *(numfam+i);
- if (numf == 0)
- strcpy(nomfam,"FAMILLE_0");
- if (numf > 0)
- {
- strcpy(nomfam,"FAMILLE_NOEUD_");
- sprintf(nomfam,"%s%d",nomfam,numf);
- nomfam[MED_TAILLE_NOM] = '\0';
- }
- if (numf < 0)
- {
- strcpy(nomfam,"FAMILLE_ELEMENT_");
- sprintf(nomfam,"%s%d",nomfam,-numf);
- nomfam[MED_TAILLE_NOM] = '\0';
- }
- natt = *(indatt+i+1) - *(indatt+i);
- ngro = (*(indgro+i+1) - *(indgro+i))/MED_TAILLE_LNOM;
- if ((ret = MEDfamCr(fid,maa,nomfam,numf,
- attide+*(indatt+i),
- attval+*(indatt+i),
- attdes+*(indatt+i)*MED_TAILLE_DESC,natt,
- gro+*(indgro+i),ngro)) < 0)
- return -1;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDfamMaaInfo(med_idt fid,char *maa,med_int *nfam,med_int *nattc,
- med_int *ngroc)
-{
- med_int ret;
- med_int i;
-
- /* Lecture du nombre de familles */
- if ((*nfam = MEDnFam(fid,maa,0,(med_dim_famille)0)) < 0)
- return -1;
-
- /* Lecture des nombres cumules de groupes et d'attributs dans toutes
- les familles du maillage */
- *nattc = 0;
- *ngroc = 0;
- for (i=0;i<*nfam;i++)
- {
- if ((ret = MEDnFam(fid,maa,i+1,MED_ATTR)) < 0)
- return -1;
- *nattc += ret;
- if ((ret = MEDnFam(fid,maa,i+1,MED_GROUPE)) < 0)
- return -1;
- *ngroc += ret;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDfamMaaLire(med_idt fid,char *maa,med_int *numfam,med_int *attide,
- med_int *attval,char *attdes,int *indatt,char *gro,int *indgro,
- med_int nfamilles)
-{
- med_err ret;
- med_int natt,ngro;
- med_int i;
- char nom[MED_TAILLE_NOM+1];
-
- *indatt = 0;
- *indgro = 0;
- for (i=0;i<nfamilles;i++)
- {
- if ((ret = MEDfamInfo(fid,maa,i+1,nom,numfam+i,attide+*(indatt+i),
- attval+*(indatt+i),
- attdes+*(indatt+i)*MED_TAILLE_DESC,
- &natt,gro+*(indgro+i),&ngro)) < 0)
- return -1;
- *(indatt+i+1) = *(indatt+i)+natt;
- *(indgro+i+1) = *(indgro+i)+ngro*MED_TAILLE_LNOM;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med_outils.hxx"
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDfermer(med_idt fid)
-{
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On ferme le fichier MED
- */
- if (_MEDfichierFermer(fid) < 0)
- return -1;
- else
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDfichDesEcr(med_idt fid, char *des, med_mode_acces mode)
-{
- med_idt root;
- med_err ret;
- char nom[] = MED_NOM_DESCRIPTEUR;
- char chemin[MED_TAILLE_MAA+1];
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On ouvre le Data Group racine
- * s'il n'existe pas on le cree
- */
- strncpy(chemin,MED_MAA,MED_TAILLE_MAA-1);
- chemin[MED_TAILLE_MAA-1] = '\0';
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- if ((root = _MEDdatagroupCreer(fid,chemin)) < 0)
- return -1;
-
- /*
- * On regarde si l'attribut existe
- * Si oui on le met a jour en fonction
- * du mode d'ouverture, sinon on le cree
- */
-
- if ((ret = _MEDattrStringEcrire(root,nom,MED_TAILLE_DESC,des,mode)) < 0)
- return -1;
-
- /*
- * Fermetures
- */
-
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDfichEntete(med_idt fid, med_fich_info quoi, char str[])
-{
- med_idt root;
- med_err ret;
- char locale[MED_TAILLE_DESC+1];
- char chemin[MED_TAILLE_MAA+1];
-
- switch (quoi)
- {
- case MED_HDF_VERSION :
- strcpy(str,HDF_VERSION_ACTUELLE);
- break;
-
- case MED_VERSION :
- strcpy(str,MED_VERSION_ACTUELLE);
- break;
-
- case MED_FICH_DES :
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On ouvre le Data Group racine
- */
- strncpy(chemin,MED_MAA,strlen(MED_MAA)-1);
- chemin[MED_TAILLE_MAA-1] = '\0';
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On regarde si l'attribut existe
- * Si non => erreur
- * Si oui => on le copie dans str
- */
- if ((ret = _MEDattrStringLire(root,(char*)MED_NOM_DESCRIPTEUR,
- MED_TAILLE_DESC,locale)) < 0)
- return -1;
- strcpy(str,locale);
-
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- break;
-
- default :
- return -1;
- }
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDfichierCreer
- * - Description : creation d'un fichier HDF
- * - Parametres :
- * - nom (IN) : le nom du fichier
- * - Resultat : ID du fichier en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_idt
-_MEDfichierCreer(char *nom)
-{
- med_idt fid,gid;
- med_err ret;
- med_int majeur = MED_NUM_MAJEUR;
- med_int mineur = MED_NUM_MINEUR;
- med_int release = MED_NUM_RELEASE;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- if ((fid = H5Fcreate(nom,H5F_ACC_TRUNC,
- H5P_DEFAULT,H5P_DEFAULT)) < 0)
- return -1;
-
- if ((gid = _MEDdatagroupCreer(fid,MED_NOM_INFOS)) < 0)
- return -1;
-
- /* Numero de versions de MED */
- if ((ret = _MEDattrEntierEcrire(gid,MED_NOM_MAJEUR,&majeur,MED_REMP)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierEcrire(gid,MED_NOM_MINEUR,&mineur,MED_REMP)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierEcrire(gid,MED_NOM_RELEASE,&release,MED_REMP)) < 0)
- return -1;
-
- /* On ferme tout */
- if ((ret = _MEDdatagroupFermer(gid)) < 0)
- return -1;
-
- return fid;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDfichierFermer
- * - Description : fermeture d'un fichier HDF
- * - Parametres :
- * - fid (IN) : ID du fichier
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDfichierFermer(med_idt fid)
-{
- med_err ret;
-
- if ((ret = H5Fclose(fid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDfichierOuvrir
- * - Description : ouverture d'un fichier HDF en fonction du mode passe
- * en parametre
- * - Parametres :
- * - nom (IN) : le nom du fichier
- * - mode (IN) : mode d'ouverture
- * - Resultat : ID du fichier en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_idt
-_MEDfichierOuvrir(char *nom,med_mode_acces mode)
-{
- med_idt fid;
- int hdf_mode;
-
- switch(mode)
- {
- case MED_ECRI :
- hdf_mode = H5F_ACC_RDWR;
- break;
-
- case MED_LECT :
- hdf_mode = H5F_ACC_RDONLY;
- break;
-
- default :
- return -1;
- }
-
- if ((fid = H5Fopen(nom,hdf_mode,H5P_DEFAULT)) < 0)
- return -1;
-
- return fid;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDformatConforme(const char * nomfich)
-{
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
-
- if ( H5Fis_hdf5(nomfich) > 0 )
- return 0;
- else
- return -1;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include <string.h>
-
-/*
- * Chaine C -> chaine FORTRAN completee par des blancs
- */
-
-namespace med_2_1{
-
-med_err
-_MEDfstring(char *chaine, med_int longueur_fixee)
-{
- int longueur_reelle, i;
-
- if (longueur_fixee == 0 ) return 0;
-
- longueur_reelle = (int)strlen(chaine);
- if (longueur_fixee < longueur_reelle)
- return -1;
-
- /* on supprime le caractere de fin de chaine C '\0'
- et complete par des blancs */
- for (i=longueur_reelle;i<longueur_fixee;i++)
- *(chaine+i) = ' ';
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-namespace med_2_1{
-
-med_err
-MEDgridCr(med_idt fid, char *maillage, med_int dim, med_grid_type typ)
-{
- med_idt maaid, root;
- char chemin[MED_TAILLE_MAA+1];
-
- /* On inhibe le gestionnaire d'erreur */
- _MEDmodeErreurVerrouiller();
-
- /* Si la racine n'existe pas on la cree */
- strncpy(chemin, MED_MAA, strlen(MED_MAA)-1);
- chemin[MED_TAILLE_MAA-1] = '\0';
- if ((root = _MEDdatagroupOuvrir(fid, chemin)) < 0)
- if ((root = _MEDdatagroupCreer(fid, chemin)) < 0)
- return(-1);
-
- /* si le maillage existe deja => erreur */
- if (_MEDdatagroupOuvrir(root, maillage) > 0) {
- return(-1);
- };
-
- /* Creation du Data Group */
- maaid = _MEDdatagroupCreer(root, maillage);
- if (maaid < 0) return(-1);
-
- /* Creation de l'attribut dimension */
- if (_MEDattrEntierEcrire(maaid, MED_NOM_DIM, &dim, MED_REMP) < 0) {
- return(-1);
- };
-
- /* Creation de l'attribut grille */
- if (_MEDattrEntierEcrire(maaid, MED_NOM_GRD, &typ, MED_REMP) < 0) {
- return(-1);
- };
-
- /* Nettoyages divers */
- if ( _MEDdatagroupFermer(maaid) < 0) return(-1);
- if (_MEDdatagroupFermer(root) < 0) return(-1);
- return(0);
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med_outils.hxx"
-#include "med.hxx"
-
-#include <cstring>
-
-namespace med_2_1{
-
-med_err
-MEDgridEcr(med_idt fid, char *maa, med_int mdim, med_float *coo, med_int nb, med_int dim, med_mode_switch mode_coo,
- med_repere repere, char *nomcoo, char *unicoo, med_mode_acces mode )
-{
- /* ecriture des indices */
-
- med_idt maaid, noeid, ds;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_size dimd[1];
- char *dataset;
- med_int type_rep_int;
-
- /* On inhibe le gestionnaire d'erreur HDF */
- _MEDmodeErreurVerrouiller();
-
- /* Si le maillage n'existe pas => erreur */
- strcpy(chemin, MED_MAA);
- strcat(chemin, maa);
- maaid = _MEDdatagroupOuvrir(fid, chemin);
- if (maaid < 0) return(-1);
-
- /* Si le Data Group "NOE" n'existe pas on le cree */
- if ((noeid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE)) < 0) {
- if ((noeid = _MEDdatagroupCreer(maaid, MED_NOM_NOE)) < 0) {
- return(-1);
- };
- };
-
- switch (dim) {
- case 0 : {
- dataset = MED_NOM_IN1;
- break;
- };
- case 1 : {
- dataset = MED_NOM_IN2;
- break;
- };
- case 2 : {
- dataset = MED_NOM_IN3;
- break;
- };
- default : {
- return(-1);
- };
- };
-
- /* Creation du Data Set "IN1" ou "IN2" ou "IN3" */
- dimd[0] = nb;
- if (_MEDdatasetNumEcrire(noeid, dataset, MED_REEL64, mode_coo, 1, MED_ALL, MED_NOPF, 0, 0, dimd, (unsigned char*)coo, mode) < 0) {
- return(-1);
- };
-
- /* On re-ouvre le Data Set "IN1" ou "IN2" ou "IN3" pour y placer des attributs */
- if ((ds = _MEDdatasetOuvrir(noeid, dataset)) < 0) {
- return(-1);
- };
-
- /* Attribut NBR (nombre de noeuds) */
- if (_MEDattrEntierEcrire(ds, MED_NOM_NBR, &nb, mode) < 0) {
- return(-1);
- };
-
- /* L'attribut "REP" */
- type_rep_int = (med_int)repere;
- if (_MEDattrEntierEcrire(ds, MED_NOM_REP, &type_rep_int, mode) < 0) {
- return(-1);
- };
-
- /* Attribut "NOM" */
- if (_MEDattrStringEcrire(ds, MED_NOM_NOM, mdim*MED_TAILLE_PNOM, nomcoo, mode) < 0) {
- return(-1);
- };
-
- /* Attribut "UNI" */
- if (_MEDattrStringEcrire(ds, MED_NOM_UNI, mdim*MED_TAILLE_PNOM, unicoo, mode) < 0) {
- return(-1);
- };
-
- /* On ferme tout */
- if (_MEDdatasetFermer(ds) < 0) return(-1);
- if (_MEDdatagroupFermer(noeid) < 0) return(-1);
- if (_MEDdatagroupFermer(maaid) < 0) return(-1);
- return(0);
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDgridInfo(med_idt fid, int indice, med_int *isAGrid, med_grid_type *typ)
-{
- int numero;
- med_idt maaid;
- char maillage[MED_TAILLE_NOM+1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
-
- /* On inhibe le gestionnaire d'erreur */
- _MEDmodeErreurVerrouiller();
-
- /* On recupere le nom du groupe de rang "indice" */
- numero = indice-1;
- if (_MEDobjetIdentifier(fid, MED_MAA, numero, maillage) < 0) {
- return(-1);
- };
-
- /* On va chercher l'attribut dimension */
- strcpy(chemin, MED_MAA);
- strcat(chemin, maillage);
- maaid = _MEDdatagroupOuvrir(fid, chemin);
- if (maaid < 0) return(-1);
-
- med_int aTmpType; // MPV bug IPAL 13621: for 64bits platform read 64 bits (not 32 - as for type)
- if (_MEDattrEntierLire(maaid, MED_NOM_GRD, &aTmpType) < 0) {
- *isAGrid = 0;
- } else {
- *isAGrid = 1;
- };
- *typ = (med_grid_type)aTmpType;// MPV bug IPAL 13621: now use this 64bits value to set enumeration
-
- if (_MEDdatagroupFermer(maaid) < 0) return(-1);
- return(0);
-}
-
-}
+++ /dev/null
-#include "med_outils.hxx"
-#include "med.hxx"
-
-#include <cstring>
-
-namespace med_2_1{
-
-med_err
-MEDgridLire(med_idt fid, char *maa, med_int mdim, med_float *coo, med_int dim, med_mode_switch mode_coo,
- med_repere *repere, char *nomcoo, char *unicoo )
-{
- med_idt maaid, noeid, ds;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char *dataset;
- med_int type_rep_int;
-
- /* On inhibe le gestionnaire d'erreur */
- _MEDmodeErreurVerrouiller();
-
- /* Si le maillage n'existe pas => erreur */
- strcpy(chemin, MED_MAA);
- strcat(chemin, maa);
- maaid = _MEDdatagroupOuvrir(fid, chemin);
- if (maaid < 0) return(-1);
-
- /* Si le Data Group "NOE" n'existe pas => erreur */
- noeid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE);
- if (noeid < 0) return(-1);
-
- switch (dim) {
- case 0 : {
- dataset = MED_NOM_IN1;
- break;
- };
- case 1 : {
- dataset = MED_NOM_IN2;
- break;
- };
- case 2 : {
- dataset = MED_NOM_IN3;
- break;
- };
- default : {
- return(-1);
- };
- };
-
- /* Lecture du Data Set "IN1" ou "IN2" ou "IN3" */
- if (_MEDdatasetNumLire(noeid, dataset, MED_REEL64, mode_coo, 1, MED_ALL, MED_NOPF, 0, 1, (unsigned char*)coo) < 0) {
- return(-1);
- };
-
- /* On re-ouvre le Data Set precedant pour y lire des attributs */
- ds = _MEDdatasetOuvrir(noeid, dataset);
- if (ds < 0) return(-1);
-
- /* L'attribut "REP" */
- if (_MEDattrEntierLire(ds, MED_NOM_REP, &type_rep_int) < 0) {
- return(-1);
- } else {
- *repere = (med_repere)type_rep_int;
- };
-
- /* Attribut "NOM" */
- if (_MEDattrStringLire(ds, MED_NOM_NOM, mdim*MED_TAILLE_PNOM, nomcoo) < 0) {
- return(-1);
- };
-
- /* Attribut "UNI" */
- if (_MEDattrStringLire(ds, MED_NOM_UNI, mdim*MED_TAILLE_PNOM, unicoo) < 0) {
- return(-1);
- };
-
- /* On ferme tout */
- if (_MEDdatasetFermer(ds) < 0) {
- return(-1);
- };
- if (_MEDdatagroupFermer(noeid) < 0) {
- return(-1);
- };
- if (_MEDdatagroupFermer(maaid) < 0) {
- return(-1);
- };
- return(0);
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "med.hxx"
-
-/***********************************************************************
- * FONCTION MEDgro2famA
- *
- * - DESCRIPTION : 1ere etape dans la conversion des groupes de noeuds
- * et d'elements en familles MED.
- * Calcul des tailles des tableaux que l'on devra allouer pour
- * stocker les familles qui seront construites par MEDgro2famB().
- * Les parametres renvoyes sont :
- * 1 - le nombre de familles MED a creer (nfamg)
- * 2 - le nombre de noms groupes associes a l'ensemble des familles
- * MED (nindf)
- * Ces parametres doivent permettre a l'appelant de creer les tables
- * suivantes :
- * 1 - une table des noms des groupes propres a chaque famille,
- * de taille : nindf*MED_TAILLE_LNOM+1
- * 2 - une table d'index donnant pour chaque famille son numero d'indice
- * dans la table des noms, de taille : nfamg+1
- * 3 - une table destinee a contenir la liste des numeros de familles
- * a creer, de taille : nfamg
- *
- * - PARAMETRES :
- * NOM .E/S. TYPE . DESCRIPTION
- * -------------------------------------------------------------------
- * nnoe .E . med_int . nombre de noeuds
- * nele .E . med_int . nombre d'elements
- * numnoe .E . med_int*. numeros des noeuds
- * numele .E . med_int*. numeros des elements
- * ngn .E . med_int . nombre de groupes de noeuds
- * nge .E . med_int . nombre de groupes d'elements
- * nindn .E . med_int . nombre d'indices dans la table
- * . . . des groupes de noeuds
- * ninde .E . med_int . nombre d'indices dans la table
- * . . . de groupes d'elements
- * indgronoe .E . int* . table index de la table des groupes
- * . . . de noeuds
- * indgroele .E . int* . table index de la table des groupes
- * . . . d'elements
- * tabgronoe .E . med_int*. table des groupes de noeuds
- * tabgroele .E . med_int*. table des groupes d'elements
- * nfamg . S. med_int*. nombre de familles MED a creer
- * nidnf . S. med_int*. nombre de noms groupes associes a
- * . . . l'ensemble des familles MED
- *
- * - RESULTAT : 0 si succes, -1 sinon
- *
- ***********************************************************************/
-
-namespace med_2_1{
-
-med_err
-MEDgro2famA (med_int nnoe,med_int nele,med_int *numnoe,med_int *numele,
- med_int ngn,med_int nge,med_int nindn,
- med_int ninde,int *indgronoe,int *indgroele,med_int *tabgronoe,
- med_int *tabgroele,med_int *nfamg,med_int *nindf)
-{
- int i,j,k;
- int *famnoe,*famele,*tmp;
- int *p;
- int flag, num,exist;
- int nfamn, nfame;
- int fam01 = 0;
- int fam02 = 0;
-
- /* initialisations */
- famnoe = NULL;
- famele = NULL;
-
- *nfamg = 0;
- *nindf = 0;
- nfamn = 0;
- nfame = 0;
-
- if ((ngn > 0) || (nge > 0))
- {
- /* pour chaque noeud :
- 1 - on dresse la liste des groupes de noeuds auquel il appartient
- 2 - en la comparant avec les listes pre-existantes, on
- estime s'il est necessaire de creer une nouvelle famille de noeuds.
- Si oui => on incremente le compteur local nfamn (nombre de familles
- de noeuds)
- on incremente le parametre nindf du nombre de groupes
- que devra compter cette famille de noeuds
- Si non => on ne fait rien */
- for (i=0;i<nnoe;i++)
- {
- if ((tmp = (int*) malloc(sizeof(int)*ngn)) == NULL)
- return -1;
- num = *(numnoe+i);
- for (j=0;j<ngn;j++)
- {
- flag = 0;
- /* on regarde si le noeud appartient au groupe */
- for (k=0;k<*(indgronoe+j+1)-*(indgronoe+j);k++)
- if (num == *(tabgronoe+*(indgronoe+j)+k))
- flag = 1;
- /* on met le flag a jour dans tmp */
- *(tmp+j) = flag;
- }
- /* on note la creation de la famille 0 */
- if (fam01 == 0)
- {
- flag = 1;
- for (j=0;j<ngn;j++)
- if (*(tmp+j) == 1)
- flag = 0;
- if (flag == 1)
- fam01 = 1;
- }
- /* faut-il creer une nouvelle famille ? */
- if (famnoe == NULL)
- {
- exist = 0;
- if ((famnoe = (int *) malloc (sizeof(int)*ngn)) == NULL)
- return -1;
- for (j=0;j<ngn;j++)
- {
- *(famnoe+j) = *(tmp+j);
- if (*(famnoe+j) == 1)
- *nindf = *nindf + 1;
- }
- nfamn = 1;
- }
- else
- {
- for (j=0;j<nfamn;j++)
- {
- p = famnoe + ngn*j;
- for (k=0;k<ngn;k++)
- {
- if (*(p+k) != *(tmp+k))
- {
- exist = 0;
- break;
- }
- else
- exist = 1;
- }
- if (exist == 1)
- break;
- }
- if (exist == 0)
- {
- nfamn = nfamn + 1;
- p = famnoe;
- if ((famnoe = (int*) malloc(sizeof(int)*ngn*nfamn)) == NULL)
- return -1;
- for (j=0;j<nfamn-1;j++)
- for (k=0;k<ngn;k++)
- *(famnoe+j*ngn+k) = *(p+j*ngn+k);
- free(p);
- p = famnoe+(nfamn-1)*ngn;
- for (j=0;j<ngn;j++)
- {
- *(p+j) = *(tmp+j);
- if (*(p+j) == 1)
- *nindf = *nindf + 1;
- }
- }
- }
- free(tmp);
- }
-
- /* pour chaque element : idem que pour les noeuds */
- for (i=0;i<nele;i++)
- {
- if ((tmp = (int*) malloc(sizeof(int)*nge)) == NULL)
- return -1;
- num = *(numele+i);
- for (j=0;j<nge;j++)
- {
- flag = 0;
- /* on regarde si l'element appartient au groupe */
- for (k=0;k<*(indgroele+j+1)-*(indgroele+j);k++)
- if (num == *(tabgroele+*(indgroele+j)+k))
- flag = 1;
- /* on met le flag a jour dans tmp */
- *(tmp+j) = flag;
- }
- /* on note la creation de la famille 0 */
- if (fam02 == 0)
- {
- flag = 1;
- for (j=0;j<nge;j++)
- if (*(tmp+j) == 1)
- flag = 0;
- if (flag == 1)
- fam02 = 1;
- }
- /* faut-il creer une nouvelle famille ? */
- if (famele == NULL)
- {
- exist = 0;
- if ((famele = (int *) malloc (sizeof(int)*nge)) == NULL)
- return -1;
- for (j=0;j<nge;j++)
- {
- *(famele+j) = *(tmp+j);
- if (*(famele+j) == 1)
- *nindf = *nindf + 1;
- }
- nfame = 1;
- }
- else
- {
- for (j=0;j<nfame;j++)
- {
- p = famele + nge*j;
- for (k=0;k<nge;k++)
- {
- if (*(p+k) != *(tmp+k))
- {
- exist = 0;
- break;
- }
- else
- exist = 1;
- }
- if (exist == 1)
- break;
- }
- if (exist == 0)
- {
- nfame = nfame + 1;
- p = famele;
- if ((famele = (int*) malloc(sizeof(int)*nge*nfame)) == NULL)
- return -1;
- for (j=0;j<nfame-1;j++)
- for (k=0;k<nge;k++)
- *(famele+j*nge+k) = *(p+j*nge+k);
- free(p);
- p = famele+(nfame-1)*nge;
- for (j=0;j<nge;j++)
- {
- *(p+j) = *(tmp+j);
- if (*(p+j) == 1)
- *nindf = *nindf + 1;
- }
- }
- }
- free(tmp);
- }
-
- /* la famille 0 existe pour les noeuds et les elements, on
- ne la compte qu'une fois */
- if (fam01 && fam02)
- nfamn = nfamn - 1;
-
- /* le nombre de familles a creer est egal au nombre de familles
- de noeuds + nombre de familles d'elements */
- *nfamg = nfamn + nfame;
-
-
- /* Nettoyage memoire */
- free(famnoe);
- free(famele);
- }
- else
- {
- /* on a aucun groupes de noeuds ou d'elements */
- *nfamg = 1; /* on a au moins la famille 0 */
- *nindf = 0;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "med.hxx"
-
-/***********************************************************************
- * FONCTION MEDgro2famB
- *
- * - DESCRIPTION : 2eme etape dans la conversion des groupes de noeuds
- * et d'elements en familles MED
- * Mise a jour des tables suivantes passees en parametres :
- * 1 - les nouveaux numeros des familles a creer
- * 2 - les nouveaux numeros des familles des elements
- * 3 - les nouveaux numeros des familles des noeuds
- * 4 - les noms des groupes composant ces familles
- * 5 - les index de la table des groupes
- *
- * - PARAMETRES :
- * NOM .E/S. TYPE . DESCRIPTION
- * -------------------------------------------------------------------
- * nnoe .E . med_int . nombre de noeuds
- * nele .E . med_int . nombre d'elements
- * numnoe .E . med_int*. numeros des noeuds
- * numele .E . med_int*. numeros des elements
- * ngn .E . med_int . nombre de groupes de noeuds
- * nge .E . med_int . nombre de groupes d'elements
- * nindn .E . med_int . nombre d'indices dans la table
- * . . . des groupes de noeuds
- * ninde .E . med_int . nombre d'indices dans la table
- * . . . de groupes d'elements
- * nomgronoe .E . char* . noms des groupes de noeuds
- * nomgroele .E . char* . noms des groupes d'elements
- * indgronoe .E . int* . table index de la table des groupes
- * . . . de noeuds
- * indgroele .E . int* . table index de la table des groupes
- * . . . d'elements
- * tabgronoe .E . int* . table des groupes de noeuds
- * tabgroele .E . int* . table des groupes d'elements
- * nfamg .E . med_int . nombre de familles MED a creer
- * nidnf .E . med_int . nombre de noms groupes associes a
- * . . . l'ensemble des familles MED
- * newnumfam . S. med_int*. nouveaux numeros de familles
- * newnumfamele . S. med_int*. nouveaux numeros de familles des
- * . . . elements
- * newnumfamnoe . S. med_int*. nouveaux numeros de familles des
- * . . . noeuds
- * newindfamgro . S. int* . table des index de la table des
- * . . . noms de groupes associes aux familles
- * newfamgro . . char* . table des noms des groupes des
- * . . . familles
- *
- * - RESULTAT : 0
- *
- ***********************************************************************/
-
-namespace med_2_1{
-
-med_err
-MEDgro2famB (med_int nnoe,med_int nele,med_int *numnoe,med_int *numele,
- med_int ngn,med_int nge,med_int nindn,
- med_int ninde, char *nomgronoe,char *nomgroele,
- int *indgronoe,int *indgroele,med_int *tabgronoe,
- med_int *tabgroele,med_int nfamg,med_int nindf,
- med_int *newnumfam,med_int *newnumfamele,
- med_int *newnumfamnoe,int *newindfamgro,
- char *newfamgro)
-{
- int i,j,k;
-
- med_int *famnoe, *famele, *tmp;
- med_int *p;
- med_int num;
- int flag,exist;
- int nfamn, nfame;
- int estfam0 = 1;
- int newnumnoe, newnumele;
- int tmp1;
- int existfam0 = 0;
- // int ind = 0;
-
- famnoe = NULL;
- famele = NULL;
-
- nfamn = 0;
- nfame = 0;
- newnumnoe = 0;
- newnumele = 0;
-
- *newindfamgro = 0;
-
- if (nfamg > 1)
- {
- /* pour chaque noeud :
- 1 - on dresse la liste des groupes de noeuds auquel il appartient
- 2 - en la comparant avec les listes pre-existantes, on
- estime s'il est necessaire de creer une nouvelle famille de noeuds.
- Si oui => - on cree le numero de famille que l'on reporte
- dans newnumfam
- - on reporte ce numero dans newnumnoe
- - on met a jour la table des noms des groupes des familles
- ainsi que sa table d'index
- Si non => on ne fait rien
- ATTENTION : pour la famille 0, on ne met a jour que les numeros */
- for (i=0;i<nnoe;i++)
- {
- if ((tmp = (med_int*) malloc(sizeof(med_int)*ngn)) == NULL)
- return -1;
- num = *(numnoe+i);
- for (j=0;j<ngn;j++)
- {
- flag = 0;
- /* on regarde si le noeud appartient au groupe */
- for (k=0;k<*(indgronoe+j+1)-*(indgronoe+j);k++)
- if (num == *(tabgronoe+*(indgronoe+j)+k))
- flag = 1;
- /* on met le flag a jour dans tmp */
- *(tmp+j) = flag;
- }
- /* on regarde si le numero de famille est 0 */
- estfam0 = 0;
- flag = 1;
- for (j=0;j<ngn;j++)
- if (*(tmp+j) == 1)
- flag = 0;
- if (flag == 1)
- {
- estfam0 = 1;
- *(newnumfamnoe+i) = 0;
- }
- if (flag == 1 && existfam0 == 0)
- existfam0 = 1;
- /* faut-il creer une nouvelle famille ? */
- if (famnoe == NULL)
- {
- exist = 0;
- if ((famnoe = (med_int *) malloc (sizeof(med_int)*ngn)) == NULL)
- return -1;
- /* on met a jour la table d'indices */
- nfamn = 1;
- *(newindfamgro+nfamn) = *(newindfamgro+nfamn-1);
- for (j=0;j<ngn;j++)
- {
- tmp1 = *(tmp+j);
- *(famnoe+j) = tmp1;
- if (tmp1 == 1)
- {
- strncpy(newfamgro+*(newindfamgro+nfamn),
- nomgronoe+j*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
- *(newindfamgro+nfamn) = *(newindfamgro+nfamn) +
- MED_TAILLE_LNOM;
- }
- }
- if (estfam0 == 0)
- {
- newnumnoe = 1;
- *newnumfamnoe = newnumnoe;
- *newnumfam = newnumnoe;
- }
- else
- *newnumfam = 0;
- }
- else
- {
- for (j=0;j<nfamn;j++)
- {
- p = famnoe + ngn*j;
- for (k=0;k<ngn;k++)
- {
- if (*(p+k) != *(tmp+k))
- {
- exist = 0;
- break;
- }
- else
- exist = 1;
- }
- if (exist == 1)
- {
- if (estfam0 == 0)
- *(newnumfamnoe+i) = *(newnumfam+j);
- break;
- }
- }
- if (exist == 0)
- {
- nfamn = nfamn + 1;
- *(newindfamgro+nfamn) = *(newindfamgro+nfamn-1);
- p = famnoe;
- if ((famnoe = (med_int*) malloc(sizeof(med_int)*ngn*nfamn))
- == NULL)
- return -1;
- for (j=0;j<nfamn-1;j++)
- for (k=0;k<ngn;k++)
- *(famnoe+j*ngn+k) = *(p+j*ngn+k);
- free(p);
- p = famnoe+(nfamn-1)*ngn;
- for (j=0;j<ngn;j++)
- {
- tmp1 = *(tmp+j);
- *(p+j) = tmp1;
- if (tmp1 == 1)
- {
- strncpy(newfamgro+*(newindfamgro+nfamn),
- nomgronoe+j*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
- *(newindfamgro+nfamn) = *(newindfamgro + nfamn)
- + MED_TAILLE_LNOM;
- }
- }
- if (estfam0 == 0)
- {
- newnumnoe = newnumnoe + 1;
- *(newnumfamnoe+i) = newnumnoe;
- *(newnumfam+nfamn-1) = newnumnoe;
- }
- else
- *(newnumfam+nfamn-1) = 0;
- }
- }
- free(tmp);
- }
-
- /* pour chaque element :
- 1 - on dresse la liste des groupes de noeuds auquel il appartient
- 2 - en la comparant avec les listes pre-existantes, on
- estime s'il est necessaire de creer une nouvelle famille d'elements.
- Si oui => - on cree le numero de famille que l'on reporte
- dans newnumfam
- - on reporte ce numero dans newnumele
- - on met a jour la table des noms des groupes des familles
- ainsi que sa table d'index
- Si non => on ne fait rien
- ATTENTION : pour la famille 0, on ne met a jour que les numeros */
- for (i=0;i<nele;i++)
- {
- if ((tmp = (med_int*) malloc(sizeof(med_int)*nge)) == NULL)
- return -1;
- num = *(numele+i);
- for (j=0;j<nge;j++)
- {
- flag = 0;
- /* on regarde si l'element appartient au groupe */
- for (k=0;k<*(indgroele+j+1)-*(indgroele+j);k++)
- if (num == *(tabgroele+*(indgroele+j)+k))
- flag = 1;
- /* on met le flag a jour dans tmp */
- *(tmp+j) = flag;
- }
- /* on regarde si le numero de famille est 0 */
- estfam0 = 0;
- flag = 1;
- for (j=0;j<nge;j++)
- if (*(tmp+j) == 1)
- flag = 0;
- if (flag == 1)
- {
- estfam0 = 1;
- *(newnumfamele+i) = 0;
- }
- /* faut-il creer une nouvelle famille ? */
- if (famele == NULL)
- {
- if (!(estfam0&&existfam0))
- {
- exist = 0;
- if ((famele = (med_int *) malloc (sizeof(med_int)*nge))
- == NULL)
- return -1;
- nfame = 1;
- *(newindfamgro+nfamn+nfame) = *(newindfamgro+nfamn+nfame-1);
- for (j=0;j<nge;j++)
- {
- tmp1 = *(tmp+j);
- *(famele+j) = tmp1;
- if (tmp1 == 1)
- {
- strncpy(newfamgro+*(newindfamgro+nfamn+nfame),
- nomgroele+j*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
- *(newindfamgro+nfamn+nfame) = *(newindfamgro+nfamn+nfame)
- + MED_TAILLE_LNOM;
- }
- }
- if (estfam0 == 0)
- {
- newnumele = -1;
- *(newnumfamele+i) = newnumele;
- *(newnumfam+nfamn+nfame-1) = newnumele;
- }
- else
- {
- newnumele = 0;
- *(newnumfam+nfamn+nfame-1) = newnumele;
- existfam0 = 1;
- }
- }
- }
- else
- {
- for (j=0;j<nfame;j++)
- {
- p = famele + nge*j;
- for (k=0;k<nge;k++)
- {
- if (*(p+k) != *(tmp+k))
- {
- exist = 0;
- break;
- }
- else
- exist = 1;
- }
- if (exist == 1)
- {
- if (estfam0 == 0)
- *(newnumfamele+i) = *(newnumfam+nfamn+j);
- break;
- }
- }
- if (exist == 0 && !(estfam0 && existfam0))
- /* on cree une nouvelle famille */
- {
- nfame = nfame + 1;
- *(newindfamgro+nfamn+nfame) = *(newindfamgro+nfamn+nfame-1);
- p = famele;
- if ((famele = (med_int*) malloc(sizeof(med_int)*nge*nfame))
- == NULL)
- return -1;
- for (j=0;j<nfame-1;j++)
- for (k=0;k<nge;k++)
- *(famele+j*nge+k) = *(p+j*nge+k);
- free(p);
- p = famele+(nfame-1)*nge;
- for (j=0;j<nge;j++)
- {
- tmp1 = *(tmp+j);
- *(p+j) = tmp1;
- if (tmp1 == 1)
- {
- strncpy((newfamgro+*(newindfamgro+nfamn+nfame)),
- nomgroele+j*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
- *(newindfamgro+nfamn+nfame) =
- *(newindfamgro+nfamn+nfame) + MED_TAILLE_LNOM;
- }
- }
- if (estfam0 == 0)
- {
- newnumele = newnumele - 1;
- *(newnumfamele+i) = newnumele;
- *(newnumfam+nfamn+nfame-1) = newnumele;
- }
- else
- if (existfam0 == 0)
- {
- *(newnumfam+nfamn+nfame-1) = 0;
- existfam0 =1;
- }
- }
- }
- free(tmp);
- }
-
- *(newfamgro+MED_TAILLE_LNOM*nindf) = '\0';
-
- free(famnoe);
- free(famele);
- }
- else
- {
- *newnumfam = 0;
- for (i=0;i<nele;i++)
- *(newnumfamele+i) = 0;
- for (i=0;i<nnoe;i++)
- *(newnumfamnoe+i) = 0;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-/*
- * - Nom de la fonction : _MEDindiceInfo
- * - Description : en argument de H5Giterate, donne le nom
- * de l'objet HDF (data set ou data group)
- * contenu dans l'objet HDF passe en argument
- * - Parametres :
- * - id (IN) : l'ID de l'objet HDF
- * - nom (OUT) : le nom recupere
- * - donnees (OUT) : tampon
- * - Resultat : 1 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDindiceInfo(med_idt id, const char *nom, void *donnees)
-{
- if (donnees != NULL)
- strcpy((char*)donnees,nom);
- else
- return -1;
-
- return 1;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDindiceNum
- * - Description : en argument de H5Giterate, donne le nombre
- * d'objets HDF (data set ou data group)
- * contenu dans l'objet HDF passe en argument
- * - Parametres :
- * - id (IN) : l'ID de l'objet HDF
- * - nom (OUT) : le nom du sous-objet
- * - donnees (OUT) : tampon
- * - Resultat : le nombre d'objets en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDindiceNum(med_idt id,const char *nom, void *donnees)
-{
- int *compteur;
-
- compteur = (int *) donnees;
- (*compteur)++;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-#include <string.h>
-
-namespace med_2_1{
-
-med_int
-MEDlFichDes(med_idt fid)
-{
- med_idt attr, root;
- med_err ret=0;
- char des[MED_TAILLE_DESC+1];
- med_int longueur=0;
- char nom[MED_TAILLE_NOM+1];
- char chemin[MED_TAILLE_MAA+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On ouvre le Data Group racine
- */
- strncpy(chemin,MED_MAA,MED_TAILLE_MAA-1);
- chemin[MED_TAILLE_MAA-1] = '\0';
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On regarde si l'attribut existe
- * Si non => erreur
- * Si oui => on retourne sa longueur
- */
- strcpy(nom,MED_NOM_DESCRIPTEUR);
-
- if ((attr = _MEDattrOuvrir(root,nom)) < 0) {
- _MEDdatagroupFermer(root);
- longueur=0;
- return 0;
- }
-
- if ((ret = _MEDattrFermer(attr)) < 0) {
- _MEDdatagroupFermer(root);
- return -1;
- }
-
- if ((ret = _MEDattrStringLire(root,nom,MED_TAILLE_DESC,des)) < 0) {
- _MEDdatagroupFermer(root);
- return -1;
- }
-
- longueur = (med_int)strlen(des);
-
- /*
- * fermetures
- */
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- return longueur;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDmaaCr(med_idt fid, char *maillage, med_int dim)
-{
- med_idt maaid, root;
- char chemin[MED_TAILLE_MAA+1];
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si la racine n'existe pas on la cree
- */
- strncpy(chemin,MED_MAA,strlen(MED_MAA)-1);
- chemin[MED_TAILLE_MAA-1] = '\0';
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- if ((root = _MEDdatagroupCreer(fid,chemin)) < 0)
- return -1;
-
- /*
- * si le maillage existe deja => erreur
- */
- if ((maaid = _MEDdatagroupOuvrir(root,maillage)) > 0)
- return -1;
-
- /*
- * Creation du Data Group
- */
- if ((maaid = _MEDdatagroupCreer(root,maillage)) < 0)
- return -1;
-
- /*
- * Creation de l'attribut dimension
- */
- if ((ret = _MEDattrEntierEcrire(maaid,MED_NOM_DIM,&dim,MED_REMP)) < 0)
- return -1;
-
- /*
- * Nettoyages divers
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDmaaInfo(med_idt fid, int indice, char *maillage, med_int *dim)
-{
- int numero;
- med_idt maaid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On recupere le nom du groupe de rang "indice"
- */
- numero = indice-1;
- if ((ret = _MEDobjetIdentifier(fid,MED_MAA,numero,maillage)) < 0)
- return -1;
-
- /*
- * On va chercher l'attribut dimension
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
- if ((ret = _MEDattrEntierLire(maaid,MED_NOM_DIM,dim)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDmodeErreurVerrouiller
- * - Description : inhibe le mode erreur HDF5
- * - Parametres : aucun
- * - Resultat : aucun
- */
-
-namespace med_2_1{
-
-void
-_MEDmodeErreurVerrouiller()
-{
- H5Eset_auto(NULL,NULL);
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include <string.h>
-#include <stdlib.h>
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_int
-MEDnChamp(med_idt fid, int indice)
-{
- int n1;
- med_int n2;
- med_idt datagroup;
- med_err ret;
- char nomdatagroup[MED_TAILLE_NOM+1];
- int num;
- char chemin[MED_TAILLE_CHA+MED_TAILLE_NOM+1];
-
- if (indice < 0)
- return -1;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group cha n'existe pas et indice == 0 => 0
- * sinon erreur => erreur
- */
- strcpy(chemin,MED_CHA);
-
- /*
- * Si indice == 0 => nombre de champs
- */
- if (indice == 0)
- {
- n1 = 0;
- _MEDnObjets(fid,chemin,&n1);
- n2 = n1;
- }
-
- /*
- * Si indice > 0 => nbre de composants
- */
- if (indice > 0)
- {
- /*
- * On recupere le nom du champ
- */
- num = indice-1;
- if ((ret = _MEDobjetIdentifier(fid,chemin,num,nomdatagroup)) < 0)
- return -1;
- strcat(chemin,nomdatagroup);
- /*
- * On recupere le nombre de composants
- */
- if ((datagroup = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
- if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NCO,&n2)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- }
-
- return n2;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnCorres(med_idt fid,char *maa,char *eq,med_entite_maillage typ_ent,
- med_geometrie_element typ_geo)
-{
- med_idt eqid, datagroup;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_EQS+2*MED_TAILLE_NOM+1];
- char nomdatagroup[MED_TAILLE_NOM+1];
- char tmp[MED_TAILLE_NOM_ENTITE+1];
- med_int n;
-
- if (typ_geo == MED_TETRA4 || typ_geo == MED_TETRA10 ||
- typ_geo == MED_HEXA8 || typ_geo == MED_HEXA20 ||
- typ_geo == MED_PENTA6 || typ_geo == MED_PENTA15 ||
- typ_geo == MED_PYRA5 || typ_geo == MED_PYRA13)
- return -1;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le Data Group de "eq" n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strcat(chemin,MED_EQS);
- strcat(chemin,eq);
- if ((eqid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
- if ((ret = _MEDnomEntite(nomdatagroup,typ_ent)) < 0)
- return -1;
- if ((typ_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp,typ_geo)) < 0)
- return -1;
- strcat(nomdatagroup,".");
- strcat(nomdatagroup,tmp);
- }
- if ((datagroup = _MEDdatagroupOuvrir(eqid,nomdatagroup)) < 0)
- return 0;
- if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NBR,&n)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(eqid)) < 0)
- return -1;
-
- return n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnEntMaa(med_idt fid, char *maa, med_table quoi, med_entite_maillage type_ent,
- med_geometrie_element type_geo, med_connectivite type_conn)
-{
- med_idt root, maaid, entid,geoid, dataset=0;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
- char nom_dataset[MED_TAILLE_NOM_ENTITE+1];
- med_int res = 0;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
-
- /*
- * Si le Data Group des entites n'existe pas => res = 0
- */
- entid = _MEDdatagroupOuvrir(maaid,nom_ent);
-
- /*
- * Pour les mailles, les faces et le aretes
- * si le Data Group du type geometrique n'existe pas => res = 0
- */
- if ((type_ent==MED_MAILLE)||(type_ent==MED_FACE)||(type_ent==MED_ARETE))
- {
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
- geoid = _MEDdatagroupOuvrir(entid,nom_geo);
- }
- else
- geoid = -1;
-
- /*
- * Ouverture du Data Set renvoye par _MEDnomDataset()
- * S'il n'existe pas => erreur
- * Sinon lecture de l'attribut NBR
- */
- if (geoid == -1)
- root = entid;
- else
- root = geoid;
- if ((ret = _MEDnomDataset(nom_dataset,quoi,type_conn)) < 0)
- return -1;
- dataset = _MEDdatasetOuvrir(root,nom_dataset);
- if (dataset > 0)
- if ((ret = _MEDattrEntierLire(dataset,MED_NOM_NBR,&res)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if (dataset > 0)
- if ((ret = _MEDdatasetFermer(dataset)) < 0)
- return -1;
- if (geoid > 0)
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if (entid > 0)
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return res;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_int
-MEDnEntites(med_idt fid,char *maa,med_entite_maillage typ_ent,
- med_connectivite typ_con)
-{
- med_int total = 0;
- int i;
- med_geometrie_element typ_mai[MED_NBR_GEOMETRIE_MAILLE] = {MED_POINT1,MED_SEG2,
- MED_SEG3,MED_TRIA3,
- MED_TRIA6,MED_QUAD4,
- MED_QUAD8,MED_TETRA4,
- MED_TETRA10,MED_HEXA8,
- MED_HEXA20,MED_PENTA6,
- MED_PENTA15,MED_PYRA5,
- MED_PYRA13};
- med_geometrie_element typ_fac[MED_NBR_GEOMETRIE_FACE] = {MED_TRIA3,MED_TRIA6,
- MED_QUAD4,MED_QUAD8};
- med_geometrie_element typ_are[MED_NBR_GEOMETRIE_ARETE] = {MED_SEG2,MED_SEG3};
-
- switch (typ_ent)
- {
- case MED_MAILLE :
- for (i=0;i<MED_NBR_GEOMETRIE_MAILLE;i++)
- total += MEDnEntMaa(fid,maa,MED_CONN,MED_MAILLE,typ_mai[i],typ_con);
- break;
-
- case MED_FACE :
- for (i=0;i<MED_NBR_GEOMETRIE_FACE;i++)
- total += MEDnEntMaa(fid,maa,MED_CONN,MED_FACE,typ_fac[i],typ_con);
- break;
-
- case MED_ARETE :
- for (i=0;i<MED_NBR_GEOMETRIE_ARETE;i++)
- total += MEDnEntMaa(fid,maa,MED_CONN,MED_ARETE,typ_are[i],typ_con);
- break;
-
- case MED_NOEUD :
- total = MEDnEntMaa(fid,maa,MED_COOR,MED_NOEUD,(med_geometrie_element)0,(med_connectivite)0);
- break;
-
- default :
- total = -1;
- }
-
- return total;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnEquiv(med_idt fid, char *maa)
-{
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+MED_TAILLE_EQS+1];
- int n;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strcat(chemin,MED_EQS);
- n = 0;
- _MEDnObjets(fid,chemin,&n);
-
- return (med_int) n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnFam(med_idt fid,char *maa, int indice, med_dim_famille quoi)
-{
- med_idt datagroup,famid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_FAS+2*MED_TAILLE_NOM+1];
- med_int n;
- int n_tmp;
- int num;
- char famille[MED_TAILLE_NOM+1];
-
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- strcat(chemin,MED_FAS);
- if (indice == 0)
- {
- n_tmp = 0;
- _MEDnObjets(fid,chemin,&n_tmp);
- n = (med_int ) n_tmp;
- }
- else
- {
- /*
- * On recupere le nom de la famille
- */
- num = indice - 1;
- if ((ret = _MEDobjetIdentifier(fid,chemin,num,
- famille)) < 0)
- return -1;
-
- /*
- * Si le Data Group de la famille n'existe pas => erreur
- */
- strcat(chemin,famille);
- if ((famid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- switch (quoi)
- {
- case MED_GROUPE :
- if ((datagroup = _MEDdatagroupOuvrir(famid,MED_NOM_GRO)) < 0)
- n = 0;
- else
- {
- if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NBR,&n)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- }
- break;
-
- case MED_ATTR :
- if ((datagroup = _MEDdatagroupOuvrir(famid,MED_NOM_ATT)) < 0)
- n = 0;
- else
- {
- if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NBR,&n)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
- }
- break;
-
- default :
- return -1;
- }
-
- if ((ret = _MEDdatagroupFermer(famid)) < 0)
- return -1;
-
- }
-
- return (med_int) n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-namespace med_2_1{
-
-med_int
-MEDnGrid(med_idt fid, char *maa, med_grid n)
-{
- med_idt maaid, entid, geoid, dataset;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char *nom_dataset;
- med_int res = (-1);
-
- /* On inhibe le gestionnaire d'erreur HDF 5 */
- _MEDmodeErreurVerrouiller();
-
- /* Si le maillage n'existe pas => erreur */
- strcpy(chemin, MED_MAA);
- strcat(chemin, maa);
- maaid = _MEDdatagroupOuvrir(fid, chemin);
- if (maaid < 0) return(-1);
-
- switch (n) {
- case MED_FAM_NOEUD : {
- nom_dataset = MED_NOM_FAM;
- if (_MEDnomEntite(nom_ent, MED_NOEUD) < 0) return(-1);
- entid = _MEDdatagroupOuvrir(maaid, nom_ent);
- break;
- };
- case MED_FAM_ARETE : {
- nom_dataset = MED_NOM_FAM;
- if (_MEDnomEntite(nom_ent, MED_ARETE) < 0) return(-1);
- geoid = _MEDdatagroupOuvrir(maaid, nom_ent);
- if (geoid < 0) return(-1);
- if (_MEDnomGeometrie(nom_ent, MED_SEG2) < 0) return(-1);
- entid = _MEDdatagroupOuvrir(geoid, nom_ent);
- break;
- };
- case MED_FAM_FACE : {
- nom_dataset = MED_NOM_FAM;
- if (_MEDnomEntite(nom_ent, MED_FACE) < 0) return(-1);
- geoid = _MEDdatagroupOuvrir(maaid, nom_ent);
- if (geoid < 0) return(-1);
- if (_MEDnomGeometrie(nom_ent, MED_QUAD4) < 0) return(-1);
- entid = _MEDdatagroupOuvrir(geoid, nom_ent);
- break;
- };
- case MED_FAM_MAILLE : {
- nom_dataset = MED_NOM_FAM;
- if (_MEDnomEntite(nom_ent, MED_MAILLE) < 0) return(-1);
- geoid = _MEDdatagroupOuvrir(maaid, nom_ent);
- if (geoid < 0) return(-1);
- if (_MEDnomGeometrie(nom_ent, MED_HEXA8) < 0) return(-1);
- entid = _MEDdatagroupOuvrir(geoid, nom_ent);
- break;
- };
- case MED_GRID_NOEUD : {
- nom_dataset = MED_NOM_BOF;
- entid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE);
- break;
- };
- case MED_GRID_D1 : {
- nom_dataset = MED_NOM_IN1;
- entid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE);
- break;
- };
- case MED_GRID_D2 : {
- nom_dataset = MED_NOM_IN2;
- entid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE);
- break;
- };
- case MED_GRID_D3 : {
- nom_dataset = MED_NOM_IN3;
- entid = _MEDdatagroupOuvrir(maaid, MED_NOM_NOE);
- break;
- };
- default : {
- return(-1);
- };
- };
-
- if (entid < 0) return(-1);
- dataset = _MEDdatasetOuvrir(entid, nom_dataset);
- if (dataset < 0) return(-1);
- if (_MEDattrEntierLire(dataset, MED_NOM_NBR, &res) < 0) return(-1);
-
- /* On ferme tout */
- if (_MEDdatasetFermer(dataset) < 0) return(-1);
- if (_MEDdatagroupFermer(entid) < 0) return(-1);
- if (_MEDdatagroupFermer(maaid) < 0) return(-1);
-
- return(res);
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-
-namespace med_2_1{
-
-med_int
-MEDnMaa(med_idt fid)
-{
- int n;
-
- _MEDmodeErreurVerrouiller();
-
- n = 0;
- _MEDnObjets(fid,MED_MAA,&n);
-
- return (med_int) n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDnObjets
- * - Description : indique le nombre d'objets HDF contenu dans le
- * datagroup passe en argument
- * - Parametres :
- * - fid (IN) : l'ID du fichier HDF
- * - chemin (IN) : chemin d'acces au datagroup
- * - n (OUT) : le nombre recherche
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDnObjets(med_idt fid,char *chemin,int *n)
-{
- int idx;
-
- if ((idx = H5Giterate(fid,chemin,NULL,_MEDindiceNum,(void *)n)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-/*
- * Nombre de Couple (PDT,NOR) pour le champ <cha>
- */
-
-namespace med_2_1{
-
-med_int
-MEDnPasdetemps(med_idt fid,char *cha,med_entite_maillage type_ent,
- med_geometrie_element type_geo)
-
-{
- med_err ret;
- int n1;
- char nomdatagroup1[MED_TAILLE_NOM+1];
- char tmp1 [MED_TAILLE_NOM_ENTITE+1];
- char chemin [MED_TAILLE_CHA+(MED_TAILLE_NOM+1)+MED_TAILLE_NOM+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Creation du chemin d'accès aux différents (PDT,NOR) pour les différents <type_ent>[.<type_geo>]
- */
- strcpy(chemin,MED_CHA);
- strcat(chemin,cha);
- strcat(chemin,"/");
-
- if ((ret = _MEDnomEntite(nomdatagroup1,type_ent)) < 0)
- return -1;
- if ((type_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp1,type_geo)) < 0)
- return -1;
- strcat(nomdatagroup1,".");
- strcat(nomdatagroup1,tmp1);
- }
- strcat(chemin,nomdatagroup1);
-
- n1 =0;
- _MEDnObjets(fid,chemin,&n1);
-
- return (med_int) n1;
-
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_int
-MEDnProfil(med_idt fid)
-{
- int n;
-
- _MEDmodeErreurVerrouiller();
-
- n = 0;
- _MEDnObjets(fid,MED_PROFILS,&n);
-
- return (med_int) n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include <string.h>
-#include <stdlib.h>
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_int
-MEDnVal(med_idt fid, char *champ, med_entite_maillage type_ent,
- med_geometrie_element type_geo,med_int numdt, med_int numo)
-{
- med_int n;
- med_idt datagroup;
- med_err ret;
- char nomdatagroup1[2*MED_TAILLE_NOM_ENTITE+2],nomdatagroup2[2*MED_MAX_PARA+1];
- char tmp1 [MED_TAILLE_NOM_ENTITE+1];
- char chemin [MED_TAILLE_CHA+(MED_TAILLE_NOM+1)+(2*MED_TAILLE_NOM_ENTITE+2)+(2*MED_MAX_PARA)+1+100];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On cree le chemin d'accès
- */
- strcpy(chemin,MED_CHA);
- strcat(chemin,champ);
- strcat(chemin,"/");
-
- /* On cree le nom du datagroup de niveau 1 */
- if ((ret = _MEDnomEntite(nomdatagroup1,type_ent)) < 0)
- return -1;
- if ((type_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp1,type_geo)) < 0)
- return -1;
- strcat(nomdatagroup1,".");
- strcat(nomdatagroup1,tmp1);
- }
- strcat(chemin,nomdatagroup1);
- strcat(chemin,"/");
-
- /* Creation du datagroup de niveau 2 <numdt>.<numoo> */
- sprintf(nomdatagroup2,"%*li%*li",MED_MAX_PARA,(long ) numdt,MED_MAX_PARA,(long ) numo);
- strcat(chemin,nomdatagroup2);
-
- /*
- * Acces au champ
- */
- if ((datagroup = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return 0;
- if ((ret = _MEDattrEntierLire(datagroup,MED_NOM_NBR,&n)) < 0)
- return -1;
-
- /*
- * fermetures
- */
- if ((ret = _MEDdatagroupFermer(datagroup)) < 0)
- return -1;
-
- return n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnValProfil(med_idt fid, char *nom)
-{
- med_int n = 0;
- med_idt pid;
- char chemin[MED_TAILLE_PROFILS+MED_TAILLE_NOM+1];
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * ouverture du groupe /PROFILS/"nom"
- */
- strcpy(chemin,MED_PROFILS);
- strcat(chemin,nom);
- if ((pid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierLire(pid,MED_NOM_N,&n)) < 0)
- return ret;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(pid)) < 0)
- return -1;
-
- return n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDnbnoisEcr(med_idt fid, char *nom_maillage,med_int n)
-{
- med_idt maaid;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,nom_maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Creation de l'attribut "Nombre de Noeuds Isoles"
- */
- if ((ret = _MEDattrEntierEcrire(maaid,MED_NOM_NNI,&n,MED_REMP)) < 0)
- return -1;
-
- /*
- * Fermetures des objets
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnbnoisLire(med_idt fid,char *nom_maillage)
-{
- med_idt maaid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_int n;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On regarde si le maillage existe => erreur si non
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,nom_maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On va lire l'attribut "NNI"
- */
- if ((ret = _MEDattrEntierLire(maaid,MED_NOM_NNI,&n)) < 0)
- return -1;
-
- /*
- * Fermetures des objets HDF
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDnbnomaEcr(med_idt fid, char *nom_maillage,med_int n)
-{
- med_idt maaid;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,nom_maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Creation de l'attribut "Nombre de Noeuds Max par maille"
- */
- if ((ret = _MEDattrEntierEcrire(maaid,MED_NOM_NNM,&n,MED_REMP)) < 0)
- return -1;
-
- /*
- * Nettoyages divers
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnbnomaLire(med_idt fid,char *nom_maillage)
-{
- med_idt maaid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_int n;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On regarde si le maillage existe => erreur si non
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,nom_maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On va lire l'attribut "NNM"
- */
- if ((ret = _MEDattrEntierLire(maaid,MED_NOM_NNM,&n)) < 0)
- return -1;
-
- /*
- * Fermetures des objets HDF
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDnbnosoEcr(med_idt fid, char *nom_maillage,med_int n)
-{
- med_idt maaid;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,nom_maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Creation de l'attribut "Nombre de Noeuds Sommets"
- */
- if ((ret = _MEDattrEntierEcrire(maaid,MED_NOM_NNS,&n,MED_REMP)) < 0)
- return -1;
-
- /*
- * Fermetures
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med_outils.hxx"
-#include "med.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_int
-MEDnbnosoLire(med_idt fid,char *nom_maillage)
-{
- med_idt maaid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_int n;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On regarde si le maillage existe => erreur si non
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,nom_maillage);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On va lire l'attribut "NNS"
- */
- if ((ret = _MEDattrEntierLire(maaid,MED_NOM_NNS,&n)) < 0)
- return -1;
-
- /*
- * Fermetures des objets HDF
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return n;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDnoeudsEcr(med_idt fid,char *maa,med_int mdim,med_float *coord,
- med_mode_switch mode_coo,
- med_repere repere,char *nomcoo, char *unicoo,char *nom,
- med_booleen inom,med_int *num,med_booleen inum,med_int *fam,
- med_int nnoeuds,med_mode_acces mode)
-{
- med_err ret;
-
- /* ecriture des coordonnees */
- if ((ret = MEDcoordEcr(fid,maa,mdim,coord,mode_coo,
- nnoeuds,mode,repere,nomcoo,
- unicoo)) < 0)
- return -1;
-
- /* ecriture des noms (facultatifs) */
- if (inom == MED_VRAI)
- if ((ret = MEDnomEcr(fid,maa,nom,nnoeuds,mode,MED_NOEUD,MED_POINT1)) < 0)
- return -1;
-
- /* ecriture des numeros (facultatifs) */
- if (inum == MED_VRAI)
- if ((ret = MEDnumEcr(fid,maa,num,nnoeuds,mode,MED_NOEUD,MED_POINT1)) < 0)
- return -1;
-
- /* ecriture des numeros de familles */
- if ((ret = MEDfamEcr(fid,maa,fam,nnoeuds,mode,MED_NOEUD,MED_POINT1)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDnoeudsLire(med_idt fid,char *maa,med_int mdim, med_float *coord,
- med_mode_switch mode_coo,
- med_repere *repere,char *nomcoo, char *unicoo,char *nom,
- med_booleen *inom,med_int *num,med_booleen *inum,med_int *fam,
- med_int nnoeuds)
-{
- med_err ret;
-
- /* lecture des coordonnees */
- if ((ret = MEDcoordLire(fid,maa,mdim,coord,mode_coo,MED_ALL,0,MED_NOPF,repere,nomcoo,
- unicoo)) < 0)
- return -1;
-
- /* lecture des noms (facultatifs) */
- if ((ret = MEDnomLire(fid,maa,nom,nnoeuds,MED_NOEUD,MED_POINT1)) < 0)
- *inom = MED_FAUX;
- else
- *inom = MED_VRAI;
-
- /* lecture des numeros (facultatifs) */
- if ((ret = MEDnumLire(fid,maa,num,nnoeuds,MED_NOEUD,MED_POINT1)) < 0)
- *inum = MED_FAUX;
- else
- *inum = MED_VRAI;
-
- /* lecture des numeros de familles */
- if ((ret = MEDfamLire(fid,maa,fam,nnoeuds,MED_NOEUD,MED_POINT1)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-/*
- * - Nom de la fonction : _MEDnomDataset
- * - Description : fournit un nom de dataset
- * - Parametres :
- * - nom_dataset (OUT) : le nom du data set
- * - quoi (IN) : le type de table MED
- * - type_conn (IN) : le type de connectivite
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDnomDataset(char *nom_dataset,med_table quoi,med_connectivite type_conn)
-{
- switch(quoi)
- {
- case MED_COOR :
- strcpy(nom_dataset,MED_NOM_COO);
- break;
-
- case MED_CONN :
- switch(type_conn)
- {
- case MED_NOD :
- strcpy(nom_dataset,MED_NOM_NOD);
- break;
-
- case MED_DESC :
- strcpy(nom_dataset,MED_NOM_DES);
- break;
-
- default :
- return -1;
- }
- break;
-
- case MED_NOM :
- strcpy(nom_dataset,MED_NOM_NOM);
- break;
-
- case MED_NUM :
- strcpy(nom_dataset,MED_NOM_NUM);
- break;
-
- case MED_FAM :
- strcpy(nom_dataset,MED_NOM_FAM);
- break;
-
- default :
- return -1;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDnomEcr(med_idt fid,char *maa, char *nom, med_int n, med_mode_acces mode,
- med_entite_maillage type_ent,med_geometrie_element type_geo)
-{
- med_idt root, maaid, entid, geoid, dataset;
- med_err ret;
- med_size dimd[1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
-
- /*
- * Si le Data Group des entites n'existe pas on le cree
- */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- if ((entid = _MEDdatagroupCreer(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * Pour les mailles, les faces et le aretes, on cree
- * s'il n'existe pas le Data Group du type geometrique
- */
- if ((type_ent==MED_MAILLE)||(type_ent==MED_FACE)||(type_ent==MED_ARETE))
- {
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
-
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- if ((geoid = _MEDdatagroupCreer(entid,nom_geo)) < 0)
- return -1;
- }
- else
- geoid = -1;
-
- /*
- * Creation du Data Set "NOM"
- */
- if (geoid == -1)
- root = entid;
- else
- root = geoid;
- dimd[0] = n*MED_TAILLE_PNOM+1;
- if ((ret = _MEDdatasetStringEcrire(root,MED_NOM_NOM,dimd,nom,mode)) < 0)
- return -1;
-
- /*
- * Attribut NBR (nombre de noeuds)
- */
- if ((dataset = _MEDdatasetOuvrir(root,MED_NOM_NOM)) < 0)
- return -1;
- if ((ret = _MEDattrEntierEcrire(dataset,MED_NOM_NBR,&n,mode)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatasetFermer(dataset)) < 0)
- return -1;
- if (geoid > 0)
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-/*
- * - Nom de la fonction : _MEDnomEntite
- * - Description : fournit le nom associe a un type d'entite MED
- * - Parametres :
- * - nom_ent (OUT) : le nom de l'entite
- * - type_ent (IN) : le type de l'entite
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDnomEntite(char *nom_ent,med_entite_maillage type_ent)
-{
- switch(type_ent)
- {
- case MED_NOEUD :
- strcpy(nom_ent,MED_NOM_NOE);
- break;
-
- case MED_MAILLE :
- strcpy(nom_ent,MED_NOM_MAI);
- break;
-
- case MED_FACE :
- strcpy(nom_ent,MED_NOM_FAC);
- break;
-
- case MED_ARETE :
- strcpy(nom_ent,MED_NOM_ARE);
- break;
-
- default :
- return -1;
- }
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-/*
- * - Nom de la fonction : _MEDnomGeometrie
- * - Description : fournit le nom de l'element geometrique associe
- * au type geometrique MED
- * - Parametres :
- * - nom_geo (OUT) : le nom de l'element
- * - type_geo (IN) : le type de l'element
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDnomGeometrie(char *nom_geo,med_geometrie_element type_geo)
-{
- switch (type_geo)
- {
- case MED_POINT1 :
- strcpy(nom_geo,MED_NOM_PO1);
- break;
-
- case MED_SEG2 :
- strcpy(nom_geo,MED_NOM_SE2);
- break;
-
- case MED_SEG3 :
- strcpy(nom_geo,MED_NOM_SE3);
- break;
-
- case MED_TRIA3 :
- strcpy(nom_geo,MED_NOM_TR3);
- break;
-
- case MED_TRIA6 :
- strcpy(nom_geo,MED_NOM_TR6);
- break;
-
- case MED_QUAD4 :
- strcpy(nom_geo,MED_NOM_QU4);
- break;
-
- case MED_QUAD8 :
- strcpy(nom_geo,MED_NOM_QU8);
- break;
-
- case MED_TETRA4 :
- strcpy(nom_geo,MED_NOM_TE4);
- break;
-
- case MED_TETRA10 :
- strcpy(nom_geo,MED_NOM_T10);
- break;
-
- case MED_HEXA8 :
- strcpy(nom_geo,MED_NOM_HE8);
- break;
-
- case MED_HEXA20 :
- strcpy(nom_geo,MED_NOM_H20);
- break;
-
- case MED_PENTA6 :
- strcpy(nom_geo,MED_NOM_PE6);
- break;
-
- case MED_PENTA15 :
- strcpy(nom_geo,MED_NOM_P15);
- break;
-
- case MED_PYRA5 :
- strcpy(nom_geo,MED_NOM_PY5);
- break;
-
- case MED_PYRA13 :
- strcpy(nom_geo,MED_NOM_P13);
- break;
-
- default :
- return -1;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDnomLire(med_idt fid,char *maa, char *nom, med_int n,
- med_entite_maillage type_ent,med_geometrie_element type_geo)
-{
- med_idt root, maaid, entid, geoid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
-
- /*
- * Si le Data Group des entites n'existe pas => erreur
- */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * Pour les mailles, les faces et le aretes,
- * on ouvre le Data Group du type geometrique
- */
- if ((type_ent==MED_MAILLE)||(type_ent==MED_FACE)||(type_ent==MED_ARETE))
- {
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- return -1;
- }
- else
- geoid = -1;
-
- /*
- * lecture du Data Set "NOM"
- */
- if (geoid == -1)
- root = entid;
- else
- root = geoid;
- if ((ret = _MEDdatasetStringLire(root,MED_NOM_NOM,nom)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if (geoid > 0)
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDnumEcr(med_idt fid,char *maa, med_int *num, med_int n, med_mode_acces mode,
- med_entite_maillage type_ent,med_geometrie_element type_geo)
-{
- med_idt root, maaid, entid, geoid, dataset;
- med_err ret;
- med_size dimd[1];
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
-
- /*
- * Si le Data Group des entites n'existe pas on le cree
- */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- if ((root = _MEDdatagroupCreer(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * Pour les mailles, les faces et le aretes, on cree
- * s'il n'existe pas le Data Group du type geometrique
- */
- if ((type_ent==MED_MAILLE)||(type_ent==MED_FACE)||(type_ent==MED_ARETE))
- {
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
-
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- if ((geoid = _MEDdatagroupCreer(entid,nom_geo)) < 0)
- return -1;
- }
- else
- geoid = -1;
-
- /*
- * Creation du Data Set "NUM"
- */
- if (geoid == -1)
- root = entid;
- else
- root = geoid;
- dimd[0] = n;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_NUM,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) num,mode)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(root,MED_NOM_NUM,MED_INT32,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) num,mode)) < 0)
- return -1;
-#endif
-
- /*
- * Attribut NBR (nombre de noeuds)
- */
- if ((dataset = _MEDdatasetOuvrir(root,MED_NOM_NUM)) < 0)
- return -1;
- if ((ret = _MEDattrEntierEcrire(dataset,MED_NOM_NBR,&n,mode)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatasetFermer(dataset)) < 0)
- return -1;
- if (geoid != -1)
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <stdlib.h>
-#include <string.h>
-
-namespace med_2_1{
-
-med_err
-MEDnumLire(med_idt fid,char *maa, med_int *num, med_int n,
- med_entite_maillage type_ent,med_geometrie_element type_geo)
-{
- med_idt root,maaid,entid,geoid;
- med_err ret;
- char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nom_ent[MED_TAILLE_NOM_ENTITE+1];
- char nom_geo[MED_TAILLE_NOM_ENTITE+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * On met a jour le nom du Data Group representant
- * le type des entites
- */
- if ((ret = _MEDnomEntite(nom_ent,type_ent)) < 0)
- return -1;
-
- /*
- * Si le Data Group des entites n'existe pas => erreur
- */
- if ((entid = _MEDdatagroupOuvrir(maaid,nom_ent)) < 0)
- return -1;
-
- /*
- * Pour les mailles, les faces et le aretes,
- * si le Data Group du type geometrique => erreur
- */
- if ((type_ent==MED_MAILLE)||(type_ent==MED_FACE)||(type_ent==MED_ARETE))
- {
- if ((ret = _MEDnomGeometrie(nom_geo,type_geo)) < 0)
- return -1;
- if ((geoid = _MEDdatagroupOuvrir(entid,nom_geo)) < 0)
- return -1;
- }
- else
- geoid = -1;
-
- /*
- * lecture du Data Set "NUM"
- */
- if (geoid == -1)
- root = entid;
- else
- root = geoid;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(root,MED_NOM_NUM,MED_INT64,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char*) num)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(root,MED_NOM_NUM,MED_INT32,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char*) num)) < 0)
- return -1;
-#endif
-
- /*
- * On ferme tout
- */
- if (geoid != -1)
- if ((ret = _MEDdatagroupFermer(geoid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(entid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDobjetIdentifier
- * - Description : retrouve le nom de l'objet de rang "indice"
- * se trouvant dans le datagroup "chemin"
- * - Parametres :
- * - fid (IN) : l'ID du fichier ou se trouve le datagroup
- * - chemin (IN) : chemin d'acces au datagroup
- * - indice (IN) : indice de l'objet du datagroup dont on veut
- * le nom
- * - nom (OUT) : le nom
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDobjetIdentifier(med_idt fid,char *chemin,int indice,void *nom)
-{
- int idx;
-
- if ((idx = H5Giterate(fid,chemin,&indice,_MEDindiceInfo,
- nom)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-//#ifdef PPRO_NT
-#ifdef WIN32
-#include <io.h>
-#define F_OK 0
-#define access _access
-#else
-#include <unistd.h>
-#endif
-
-namespace med_2_1{
-
-med_idt
-MEDouvrir(char *nom, med_mode_acces mode_acces)
-{
- med_idt fid;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On ouvre le fichier MED sous HDF
- */
- switch(mode_acces)
- {
- case MED_LECT :
- if (access(nom,F_OK))
- return -1;
- else
- if ((fid = _MEDfichierOuvrir(nom,mode_acces)) < 0)
- return -1;
- break;
-
- case MED_ECRI :
- if (access(nom,F_OK))
- {
- if ((fid = _MEDfichierCreer(nom)) < 0)
- return -1;
- }
- else
- if ((fid = _MEDfichierOuvrir(nom,mode_acces)) < 0)
- return -1;
- break;
-
- case MED_REMP :
- if ((fid = _MEDfichierCreer(nom)) < 0)
- return -1;
- break;
-
- default :
- return -1;
- }
-
- return fid;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-/*
- * - Nom de la fonction : _MEDparametresGeometrie
- * - Description : fournit les parametres geometriques des differents
- * entites et elements MED
- * - Parametres :
- * - typ_ent (IN) : type d'entite de l'element
- * - type_geo (IN) : le type geometrique de l'element
- * - dim (OUT) : dimension de l'element
- * - nnoe (OUT) : nombre de noeuds composant l'element (connectivite
- * nodale)
- * - ndes (OUT) : nombre de composants dans l'elements (connectivite
- * descendante)
- * - Resultat : 0 en cas de succes, -1 sinon
- */
-
-namespace med_2_1{
-
-med_err
-_MEDparametresGeometrie(med_entite_maillage type_ent,
- med_geometrie_element type_geo, int *dim,
- int *nnoe,int *ndes)
-{
- *nnoe = type_geo % 100;
- *dim = type_geo / 100;
-
- switch(type_ent)
- {
- case MED_MAILLE :
- switch (type_geo)
- {
- case MED_POINT1 :
- *ndes = 0;
- break;
-
- case MED_SEG2 :
- *ndes = 2;
- break;
-
- case MED_SEG3 :
- *ndes = 3;
- break;
-
- case MED_TRIA3 :
- *ndes = 3;
- break;
-
- case MED_TRIA6 :
- *ndes = 3;
- break;
-
- case MED_QUAD4 :
- *ndes = 4;
- break;
-
- case MED_QUAD8 :
- *ndes = 4;
- break;
-
- case MED_TETRA4 :
- *ndes = 4;
- break;
-
- case MED_TETRA10 :
- *ndes = 4;
- break;
-
- case MED_HEXA8 :
- *ndes = 6;
- break;
-
- case MED_HEXA20 :
- *ndes = 6;
- break;
-
- case MED_PENTA6 :
- *ndes = 5;
- break;
-
- case MED_PENTA15 :
- *ndes = 5;
- break;
-
- case MED_PYRA5 :
- *ndes = 5;
- break;
-
- case MED_PYRA13 :
- *ndes = 5;
- break;
-
- default :
- return -1;
- }
- break;
-
- case MED_FACE :
- switch(type_geo)
- {
- case MED_TRIA3 :
- *ndes = 3;
- break;
-
- case MED_TRIA6 :
- *ndes = 3;
- break;
-
- case MED_QUAD4 :
- *ndes = 4;
- break;
-
- case MED_QUAD8 :
- *ndes = 4;
- break;
-
- default :
- return -1;
- }
- break;
-
- case MED_ARETE :
- switch(type_geo)
- {
- case MED_SEG2 :
- *ndes = 2;
- break;
-
- case MED_SEG3 :
- *ndes = 3;
- break;
-
- default :
- return -1;
- }
- break;
-
- default :
- return -1;
- }
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <cstring>
-
-/* Le nom de cette fonction n'est pas très bien choisie */
-
-namespace med_2_1{
-
-med_err
-MEDpasdetempsInfo(med_idt fid,char *champ
- ,med_entite_maillage type_ent, med_geometrie_element type_geo,
- int indice, char *maa, med_int * ngauss, med_int * numdt, char * dt_unit, med_float * dt,
- med_int * numo)
-{
-
- med_err ret=0;
- med_idt gid;
- char chemin[(MED_TAILLE_CHA+MED_TAILLE_NOM+1)+(2*MED_TAILLE_NOM_ENTITE+2)+2*MED_MAX_PARA+1];
- int num;
- char nomdatagroup1[2*MED_TAILLE_NOM_ENTITE+2],nomdatagroup2[2*MED_MAX_PARA+1];
- char tmp1 [MED_TAILLE_NOM_ENTITE+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On recupere le nom du datagroup <numdtt>.<numoo>
- */
- strcpy(chemin,MED_CHA);
- strcat(chemin,champ);
- strcat(chemin,"/");
-
- if ((ret = _MEDnomEntite(nomdatagroup1,type_ent)) < 0)
- return -1;
- if ((type_ent != MED_NOEUD))
- {
- if ((ret = _MEDnomGeometrie(tmp1,type_geo)) < 0)
- return -1;
- strcat(nomdatagroup1,".");
- strcat(nomdatagroup1,tmp1);
- }
- strcat(chemin,nomdatagroup1);
- strcat(chemin,"/");
-
- num = indice - 1;
- if ((ret = _MEDobjetIdentifier(fid,chemin,num,nomdatagroup2)) < 0)
- return -1;
- strcat(chemin,nomdatagroup2);
- if ((gid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * La liste des attributs
- */
- if ((ret = _MEDattrStringLire(gid,MED_NOM_MAI,MED_TAILLE_NOM,maa)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_NDT,(med_int*) numdt)) < 0)
- return -1;
-
- if ((ret = _MEDattrFloatLire(gid,MED_NOM_PDT,(med_float*) dt)) < 0)
- return -1;
-
- if ((ret = _MEDattrStringLire(gid,MED_NOM_UNI,MED_TAILLE_PNOM,dt_unit)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_NOR,(med_int*) numo)) < 0)
- return -1;
-
- if ( (ret = _MEDattrEntierLire(gid,MED_NOM_NGA,ngauss)) < 0 )
- return -1;
-
-
- if ((ret = _MEDdatagroupFermer(gid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDprofilEcr(med_idt fid,med_int *pflval,med_int n,char *nom)
-{
- med_idt root, pid;
- med_size dimd[1];
- med_err ret;
- char chemin[MED_TAILLE_PROFILS+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le groupe "PROFILS" n'existe pas, on le cree
- */
- strncpy(chemin,MED_PROFILS,MED_TAILLE_PROFILS-1);
- chemin[MED_TAILLE_PROFILS-1] = '\0';
- if ((root = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- if ((root = _MEDdatagroupCreer(fid,chemin)) < 0)
- return -1;
-
- /*
- * Si le groupe "nom" n'existe pas, on le cree
- * Sinon => erreur
- */
- if ((pid = _MEDdatagroupOuvrir(root,nom)) >= 0)
- return -1;
- if ((pid = _MEDdatagroupCreer(root,nom)) < 0)
- return -1;
-
- /*
- * On stocke "n" sous forme d'attribut
- */
- if ((ret = _MEDattrEntierEcrire(pid,MED_NOM_N,&n,MED_REMP)) < 0)
- return -1;
-
- /*
- * On stocke le profil dans un dataset
- */
- dimd[0] = n;
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumEcrire(pid,MED_NOM_PFL,MED_INT64,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) pflval,MED_REMP)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumEcrire(pid,MED_NOM_PFL,MED_INT32,MED_NO_INTERLACE,MED_DIM1,MED_ALL,MED_NOPF,0,MED_NOPG,dimd,
- (unsigned char*) pflval,MED_REMP)) < 0)
- return -1;
-#endif
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(pid)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(root)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDprofilInfo(med_idt fid, int indice, char *profil, med_int *n)
-{
- int numero;
- med_idt proid;
- med_err ret;
- char chemin[MED_TAILLE_PROFILS+MED_TAILLE_NOM+1];
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On recupere le nom du groupe de rang "indice"
- */
- numero = indice-1;
- if ((ret = _MEDobjetIdentifier(fid,MED_PROFILS,numero,profil)) < 0)
- return -1;
-
- /*
- * On va chercher l'attribut taille du profil
- */
- strcpy(chemin,MED_PROFILS);
- strcat(chemin,profil);
- if ((proid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
- if ((ret = _MEDattrEntierLire(proid,MED_NOM_N,n)) < 0)
- return -1;
- if ((ret = _MEDdatagroupFermer(proid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-namespace med_2_1{
-
-med_err
-MEDprofilLire(med_idt fid,med_int *pflval, char *nom)
-{
- med_err ret = 0;
- med_idt pid;
- char chemin[MED_TAILLE_PROFILS+MED_TAILLE_NOM+1];
-
- /*
- * On inhibe le gestionnaire d'erreur HDF 5
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * ouverture du groupe /PROFILS/"nom"
- */
- strcpy(chemin,MED_PROFILS);
- strcat(chemin,nom);
- if ((pid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Lecture du profil
- */
-#if defined(HAVE_F77INT64)
- if ((ret = _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT64,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *) pflval)) < 0)
- return -1;
-#else
- if ((ret = _MEDdatasetNumLire(pid,MED_NOM_PFL,MED_INT32,
- MED_NO_INTERLACE,1,MED_ALL,
- MED_NOPF,0,MED_NOPG,
- (unsigned char *) pflval)) < 0)
- return -1;
-#endif
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(pid)) < 0)
- return -1;
-
- return ret;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <stdio.h>
-#include <time.h>
-
-//#ifdef PPRO_NT
-#ifdef WIN32
-// Windows Header Files:
-#include <windows.h>
-#include <Lmcons.h>
-#include <sys/timeb.h>
-#else
-#include <sys/time.h>
-#endif
-
-namespace med_2_1{
-
-med_err
-MEDunvCr(med_idt fid, char *maa)
-{
- med_idt maaid;
- char chemin [MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- char nomu [MED_TAILLE_LNOM+1];
- time_t temps;
-//#ifdef PPRO_NT
-#ifdef WIN32
- struct timeb tp;
- char lpBuffer [UNLEN+1];
- long nSize = UNLEN+1;
-#else
- struct timeval tp;
-#endif
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Creation/Ecriture de l'attribut nom universel
- */
-
-//#ifdef PPRO_NT
-#ifdef WIN32
- if ( GetUserName(lpBuffer,LPDWORD(&nSize)) == 0 ) return -1;
- if ( nSize > MED_TAILLE_NOM ) nSize = MED_TAILLE_NOM;
- strncpy(nomu,lpBuffer,nSize);
- strcat(nomu," ");
- temps=time(&temps);
- strcat(nomu,ctime(&temps));
- ftime(&tp);
- nSize = (long)strlen(nomu)-1;
- if ( sprintf(&nomu[nSize]," %hu",tp.millitm) < 0 ) return -1;
-#else
- if (cuserid(nomu) == (void*) NULL) return -1;
- strcat(nomu," ");
- temps=time(&temps);
- strcat(nomu,ctime(&temps));
- if ( gettimeofday(&tp,NULL) < 0 ) return -1;
- if ( sprintf(&nomu[strlen(nomu)-1]," %li",tp.tv_usec) < 0 ) return -1;
-#endif
- if ((ret = _MEDattrStringEcrire(maaid,MED_NOM_UNV,MED_TAILLE_LNOM,nomu,MED_REMP)) < 0)
- return -1;
-
- /*
- * Nettoyages divers
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <stdio.h>
-#include <time.h>
-
-namespace med_2_1{
-
-med_err
-MEDunvLire(med_idt fid, char *maa,char *nomu)
-{
- med_idt maaid;
- char chemin [MED_TAILLE_MAA+MED_TAILLE_NOM+1];
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * Si le maillage n'existe pas => erreur
- */
- strcpy(chemin,MED_MAA);
- strcat(chemin,maa);
- if ((maaid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
- return -1;
-
- /*
- * Creation/Ecriture de l'attribut nom universel
- */
- if ((ret = _MEDattrStringLire(maaid,MED_NOM_UNV,MED_TAILLE_LNOM,
- nomu )) < 0)
- return -1;
-
- /*
- * Nettoyages divers
- */
- if ((ret = _MEDdatagroupFermer(maaid)) < 0)
- return -1;
-
- return 0;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDversionConforme(const char *nom) {
- med_int majeur, mineur;
- med_idt fid, gid;
- med_err ret;
-
- /*
- * On inhibe le gestionnaire d'erreur HDF
- */
- _MEDmodeErreurVerrouiller();
-
- /*
- * On ouvre le fichier MED en mode MED_LECT
- */
- if ((fid = _MEDfichierOuvrir((char *)nom,MED_LECT)) < 0)
- return -1;
-
- /*
- * Lecture du numero de version
- */
- if ((gid = _MEDdatagroupOuvrir(fid,MED_NOM_INFOS)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_MAJEUR,&majeur)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_MINEUR,&mineur)) < 0)
- return -1;
-
- /*
- * On ferme tout
- */
- if ((ret = _MEDdatagroupFermer(gid)) < 0)
- return -1;
-
- if ((ret = _MEDfichierFermer(fid)) < 0)
- return -1;
-
- if ((majeur == MED_NUM_MAJEUR) && (mineur == MED_NUM_MINEUR))
- return 0;
- else
- return -1;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-void
-MEDversionDonner(med_int *majeur, med_int *mineur, med_int *release) {
- *majeur = MED_NUM_MAJEUR;
- *mineur = MED_NUM_MINEUR;
- *release = MED_NUM_RELEASE;
-}
-
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#include "med.hxx"
-#include "med_outils.hxx"
-
-namespace med_2_1{
-
-med_err
-MEDversionLire(med_idt fid, med_int *majeur, med_int *mineur, med_int *release)
-{
- med_err ret = 0;
- med_idt gid;
-
- /* On ouvre le group ou se trouvent les infos */
- if ((gid = _MEDdatagroupOuvrir(fid,MED_NOM_INFOS)) < 0) {
- *majeur = 2;
- *mineur = -1;
- *release = -1;
- ret = 0;
- }
- else {
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_MAJEUR,majeur)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_MINEUR,mineur)) < 0)
- return -1;
-
- if ((ret = _MEDattrEntierLire(gid,MED_NOM_RELEASE,release)) < 0)
- return -1;
-
- /* On ferme tout */
- if ((ret = _MEDdatagroupFermer(gid)) < 0)
- return -1;
- }
-
- return ret;
-}
-
-}
+++ /dev/null
-# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-# File :
-# Author :
-# Module :
-# $Header$
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-lib_LTLIBRARIES= libmed_V2_1.la
-
-LIB_SRC_TOOLS_HDFI= \
-MEDattrFermer.cxx \
-MEDattrNumEcrire.cxx \
-MEDattrNumLire.cxx \
-MEDattrOuvrir.cxx \
-MEDattrStringEcrire.cxx \
-MEDattrStringLire.cxx \
-MEDdatagroupCreer.cxx \
-MEDdatagroupFermer.cxx \
-MEDdatagroupOuvrir.cxx \
-MEDdatasetFermer.cxx \
-MEDdatasetNumEcrire.cxx \
-MEDdatasetNumLire.cxx \
-MEDdatasetOuvrir.cxx \
-MEDdatasetStringEcrire.cxx \
-MEDdatasetStringLire.cxx \
-MEDfichierCreer.cxx \
-MEDfichierFermer.cxx \
-MEDfichierOuvrir.cxx \
-MEDindiceInfo.cxx \
-MEDindiceNum.cxx \
-MEDmodeErreurVerrouiller.cxx \
-MEDnObjets.cxx \
-MEDobjetIdentifer.cxx
-
-LIB_SRC_TOOLS_MISC= \
-MED1cstring.cxx MEDnomDataset.cxx \
-MED2cstring.cxx MEDnomEntite.cxx \
-MEDGeometrieElement.cxx MEDnomGeometrie.cxx \
-MEDcstringFree.cxx MEDparametresGeometrie.cxx \
-MEDfstring.cxx
-
-LIB_SRC_API_CI= \
-MEDchampCr.cxx \
-MEDchampEcr.cxx \
-MEDchampInfo.cxx \
-MEDchampLire.cxx \
-MEDconnEcr.cxx \
-MEDconnLire.cxx \
-MEDcoordEcr.cxx \
-MEDcoordLire.cxx \
-MEDdimLire.cxx \
-MEDelementsEcr.cxx \
-MEDelementsLire.cxx \
-MEDequivCr.cxx \
-MEDequivEcr.cxx \
-MEDequivInfo.cxx \
-MEDequivLire.cxx \
-MEDfam2groA.cxx \
-MEDfam2groB.cxx \
-MEDfamCr.cxx \
-MEDfamEcr.cxx \
-MEDfamInfo.cxx \
-MEDfamLire.cxx \
-MEDfamMaaCr.cxx \
-MEDfamMaaInfo.cxx \
-MEDfamMaaLire.cxx \
-MEDfermer.cxx \
-MEDfichDesEcr.cxx \
-MEDfichEntete.cxx \
-MEDgro2famA.cxx \
-MEDgro2famB.cxx \
-MEDlFichDes.cxx \
-MEDmaaCr.cxx \
-MEDmaaInfo.cxx \
-MEDnChamp.cxx \
-MEDnCorres.cxx \
-MEDnEntMaa.cxx \
-MEDnEntites.cxx \
-MEDnEquiv.cxx \
-MEDnFam.cxx \
-MEDnMaa.cxx \
-MEDnPasdetemps.cxx \
-MEDnProfil.cxx \
-MEDnVal.cxx \
-MEDnValProfil.cxx \
-MEDnbnoisEcr.cxx \
-MEDnbnoisLire.cxx \
-MEDnbnomaEcr.cxx \
-MEDnbnomaLire.cxx \
-MEDnbnosoEcr.cxx \
-MEDnbnosoLire.cxx \
-MEDnoeudsEcr.cxx \
-MEDnoeudsLire.cxx \
-MEDnomEcr.cxx \
-MEDnomLire.cxx \
-MEDnumEcr.cxx \
-MEDnumLire.cxx \
-MEDouvrir.cxx \
-MEDpasdetempsInfo.cxx \
-MEDprofilEcr.cxx \
-MEDprofilLire.cxx \
-MEDprofilInfo.cxx \
-MEDunvCr.cxx \
-MEDunvLire.cxx \
-MEDformatConforme.cxx \
-MEDversionConforme.cxx \
-MEDversionDonner.cxx \
-MEDversionLire.cxx \
-MEDbodyFittedEcr.cxx \
-MEDbodyFittedLire.cxx \
-MEDfamGridEcr.cxx \
-MEDfamGridLire.cxx \
-MEDgridCr.cxx \
-MEDgridEcr.cxx \
-MEDgridInfo.cxx \
-MEDgridLire.cxx \
-MEDnGrid.cxx
-
-dist_libmed_V2_1_la_SOURCES= \
- $(LIB_SRC_TOOLS_HDFI) \
- $(LIB_SRC_TOOLS_MISC) \
- $(LIB_SRC_API_CI)
-
-salomeinclude_HEADERS= \
- med.hxx \
- med_proto.hxx \
- hdf5_version2api.hxx
-
-EXTRA_DIST+= med_outils.hxx \
- med_misc.hxx \
- med_hdfi.hxx \
- med_utils.hxx
-
-libmed_V2_1_la_CPPFLAGS= -D@MACHINE@ $(HDF5_INCLUDES) $(MED_CPPFLAGS)
-libmed_V2_1_la_LDFLAGS= $(HDF5_LIBS)
-
-# Executables targets
-bin_PROGRAMS= mdump_V2_1 test1_V2_1
-
-dist_mdump_V2_1_SOURCES= mdump_V2_1.cxx
-mdump_V2_1_CPPFLAGS= $(libmed_V2_1_la_CPPFLAGS)
-mdump_V2_1_LDADD= $(HDF5_LIBS) libmed_V2_1.la
-
-dist_test1_V2_1_SOURCES= test1_V2_1.cxx
-test1_V2_1_CPPFLAGS= $(libmed_V2_1_la_CPPFLAGS)
-test1_V2_1_LDADD= $(HDF5_LIBS) libmed_V2_1.la
+++ /dev/null
-#ifndef _hdf5_version2api_hxx_
-#define _hdf5_version2api_hxx_
-
-#include <H5public.h>
-
-#if H5_VERS_MAJOR < 1
-#elif H5_VERS_MAJOR == 1
-
-#if H5_VERS_MINOR < 6
-#elif H5_VERS_MINOR == 6
-
-#if H5_VERS_RELEASE < 4
-#else
-#if H5_VERS_RELEASE >= 7
-#define HDF_NEW_API2
-#define HDF_NEW_API
-#else
-#define HDF_NEW_API
-#endif
-#endif
-
-#else /* H5_VERS_MINOR >= 7 */
-#define HDF_NEW_API2
-#define HDF_NEW_API
-#endif /* H5_VERS_MINOR */
-
-#else /* H5_VERS_MAJOR >= 2 */
-#define HDF_NEW_API2
-#define HDF_NEW_API
-#endif /* H5_VERS_MAJOR */
-
-#endif
+++ /dev/null
-/******************************************************************************
- * - Nom du fichier : mdump.c
- *
- * - Description : utilitaire de dump pour fichier MED V2.1
- *
- *****************************************************************************/
-#define NBR_MAILLE_EQU 7
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "med.hxx"
-using namespace med_2_1;
-
-/*******************************************************************
- * DUMP D'UN FICHIER MED STRUCTURE EN GRILLE : *
- * NOEUDS, ELEMENTS, FAMILLES, EQUIVALENCES, CHAMPS DE RESULTATS *
- *******************************************************************/
-
-int grid_cartesian_or_polar(med_idt fid, int numero, med_mode_switch mode_coo) {
- med_int mdim, nnoe, nfam, i, j;
- char nommaa[MED_TAILLE_NOM+1];
- char nom_universel[MED_TAILLE_LNOM+1];
- med_float *coo;
- med_int *fam;
- char nomcoo[3*MED_TAILLE_PNOM+1];
- char unicoo[3*MED_TAILLE_PNOM+1];
- med_repere rep;
- char str[MED_TAILLE_PNOM+1];
-
- fprintf(stdout,"\n(****************************)\n");
- fprintf(stdout,"(* INFORMATIONS GENERALES : *)\n");
- fprintf(stdout,"(****************************)\n");
-
- /* lecture du nom et de la dimension de la grille */
- if (MEDmaaInfo(fid, numero, nommaa, &mdim) < 0) {
- fprintf(stderr, ">> ERREUR : lecture du nom de la grille\n");
- return(EXIT_FAILURE);
- };
- fprintf(stdout, "- Nom de la grille : <<%s>>\n", nommaa);
- fprintf(stdout, "- Dimension de la grille : %d\n", mdim);
-
- /* lecture du nom universel (presence optionnelle) */
- if (MEDunvLire(fid, nommaa, nom_universel) > 0) {
- fprintf(stdout, "- Nom universel de la grille : %s \n", nom_universel);
- } else {
- fprintf(stdout, "- Pas de nom universel \n");
- };
-
- /* nombre de familles */
- nfam = MEDnFam(fid, nommaa, 0, (med_dim_famille)0);
- if (nfam < 0) {
- fprintf(stderr, ">> ERREUR : lecture du nombre de familles\n");
- return(EXIT_FAILURE);
- };
- fprintf(stdout, "- Nombre de familles : %d \n", nfam);
-
- fprintf(stdout, "\n- Lecture des indices : \n");
- for (i=0; i<mdim; i++) {
- fprintf(stdout, "-- Lecture de l'indice : %d\n", i);
- nnoe = MEDnGrid(fid, nommaa, (med_grid)i);
- fprintf(stdout, "-- nombre d'indice : %d\n", nnoe);
- coo = (med_float*)malloc(sizeof(med_float)*nnoe);
-
- if (MEDgridLire(fid, nommaa, mdim, coo, i, mode_coo, &rep, nomcoo, unicoo) < 0) {
- fprintf(stderr, ">> ERREUR : lecture des indices \n");
- return(EXIT_FAILURE);
- };
-
- fprintf(stdout, "- Type de repere des coordonnees : %d \n", rep);
-
- fprintf(stdout, "- Nom des coordonnees : \n");
- for (j=0; j<mdim; j++) {
- strncpy(str, nomcoo+j*MED_TAILLE_PNOM, MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout, " %s ", str);
- };
-
- fprintf(stdout, "\n- Unites des coordonnees : \n");
- for (j=0; j<mdim; j++) {
- strncpy(str, unicoo+j*MED_TAILLE_PNOM, MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout, " %s ", str);
- };
-
- fprintf(stdout, "\n-- Coordonnees des indices : \n");
- for (j=0; j<nnoe; j++) {
- fprintf(stdout, " %f ", *(coo+j));
- };
-
- fprintf(stdout, "\n\n");
- free(coo);
- };
-
- nfam = MEDnGrid(fid, nommaa, (med_grid)-2);
- fprintf(stdout, "- Nombre de noeud pour les familles : %d\n", nfam);
- if (nfam > 0) {
- fam = (med_int*)malloc(sizeof(med_int)*nfam);
- if (MEDfamGridLire(fid, nommaa, fam, nfam,MED_NOEUD) < 0) {
- fprintf(stderr, ">> ERREUR : lecture des familles\n");
- return(EXIT_FAILURE);
- };
-
- fprintf(stdout, "\n- Numeros des familles des noeuds :\n");
- for (i=0; i<nfam; i++) {
- fprintf(stdout, " %d ", *(fam+i));
- };
- fprintf(stdout, "\n");
- free(fam);
- };
-
- return(0);
-}
-
-int grid_body_fitted(med_idt fid, int numero, med_mode_switch mode_coo) {
- med_int mdim, nnoe, nfam, i;
- char nommaa[MED_TAILLE_NOM+1];
- char nom_universel[MED_TAILLE_LNOM+1];
- char str[MED_TAILLE_PNOM+1];
- char nomcoo[3*MED_TAILLE_PNOM+1];
- char unicoo[3*MED_TAILLE_PNOM+1];
- med_float *coo;
- med_int *fam;
- med_repere rep;
-
- fprintf(stdout,"\n(****************************)\n");
- fprintf(stdout,"(* INFORMATIONS GENERALES : *)\n");
- fprintf(stdout,"(****************************)\n");
-
- /* lecture du nom et de la dimension du maillage */
- if (MEDmaaInfo(fid, numero, nommaa, &mdim) < 0) {
- fprintf(stderr, ">> ERREUR : lecture du nom du maillage body fitted\n");
- return(EXIT_FAILURE);
- };
- fprintf(stdout, "- Nom du maillage body fitted : <<%s>>\n", nommaa);
- fprintf(stdout, "- Dimension du maillage body fitted : %d\n", mdim);
-
- /* lecture du nom universel (presence optionnelle) */
- if (MEDunvLire(fid, nommaa, nom_universel) > 0) {
- fprintf(stdout, "- Nom universel du maillage body fitted : %s \n", nom_universel);
- } else {
- fprintf(stdout, "- Pas de nom universel \n");
- };
-
- /* Combien de noeuds ? */
- /* nnoe = MEDnGrid(fid, nommaa, -1);*/
- nnoe = MEDnGrid(fid, nommaa, MED_GRID_NOEUD);
- if (nnoe < 0) {
- fprintf(stderr, ">> ERREUR : lecture du nombre de noeuds (via MEDnGrid) \n");
- return(EXIT_FAILURE);
- };
- fprintf(stdout, "- Nombre de noeuds : %d \n", nnoe);
-
- /* Combien de noeuds dans la dimension 1 ? */
- i = MEDnGrid(fid, nommaa, (med_grid)0);
- if (i < 0) {
- fprintf(stderr, ">> ERREUR : lecture du nombre de noeuds (via MEDnGrid) dans la dimension 1 \n");
- return(EXIT_FAILURE);
- };
- fprintf(stdout, "- Nombre de noeuds dans la dimension 1 : %d \n", i);
-
- /* Combien de noeuds dans la dimension 2 ? */
- i = MEDnGrid(fid, nommaa, (med_grid)1);
- if (i < 0) {
- fprintf(stderr, ">> ERREUR : lecture du nombre de noeuds (via MEDnGrid) dans la dimension 2 \n");
- return(EXIT_FAILURE);
- };
- fprintf(stdout, "- Nombre de noeuds dans la dimension 2 : %d \n", i);
-
- /* nombre de familles */
- nfam = MEDnFam(fid, nommaa, 0,(med_dim_famille)0);
- if (nfam < 0) {
- fprintf(stderr, ">> ERREUR : lecture du nombre de familles \n");
- return(EXIT_FAILURE);
- };
- fprintf(stdout, "- Nombre de familles : %d \n", nfam);
-
- coo = (med_float*)malloc(sizeof(med_float)*nnoe*mdim);
- fam = (med_int*)malloc(sizeof(med_int)*nnoe);
-
- if (MEDbodyFittedLire(fid, nommaa, mdim, coo, mode_coo, &rep, nomcoo, unicoo, fam, nnoe) < 0) {
- fprintf(stderr, ">> ERREUR : lecture des noeuds \n");
- return(EXIT_FAILURE);
- };
-
- fprintf(stdout, "- Type de repere des coordonnees : %d \n", rep);
-
- fprintf(stdout, "- Nom des coordonnees : \n");
- for (i=0; i<mdim; i++) {
- strncpy(str, nomcoo+i*MED_TAILLE_PNOM, MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout, " %s ", str);
- };
-
- fprintf(stdout, "\n- Unites des coordonnees : \n");
- for (i=0; i<mdim; i++) {
- strncpy(str, unicoo+i*MED_TAILLE_PNOM, MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout, " %s ", str);
- };
-
- fprintf(stdout, "\n- Coordonnees des noeuds : \n");
- for (i=0; i<nnoe*mdim; i++) {
- fprintf(stdout, " %f ", *(coo+i));
- };
-
- fprintf(stdout, "\n- Numeros des familles des noeuds : \n");
- for (i=0; i<nnoe; i++) {
- fprintf(stdout, " %d ", *(fam+i));
- };
- fprintf(stdout, "\n");
-
- if (nnoe) {
- free(coo);
- free(fam);
- };
- return(0);
-}
-
-int grid(med_idt fid, int numero, med_grid_type theType, med_mode_switch mode_coo) {
- switch (theType) {
- case MED_CARTESIAN : {
- fprintf(stdout, "- Type de la grille : MED_CARTESIAN\n");
- return(grid_cartesian_or_polar(fid, numero, mode_coo));
- };
- case MED_POLAR : {
- fprintf(stdout, "- Type de la grille : MED_POLAR\n");
- return(grid_cartesian_or_polar(fid, numero, mode_coo));
- };
- case MED_BODY_FITTED : {
- fprintf(stdout, "- Type de la grille : MED_BODY_FITTED\n");
- return(grid_body_fitted(fid, numero, mode_coo));
- };
- default : {
- fprintf(stderr, ">> ERREUR : type de maillage inconnu\n");
- return(EXIT_FAILURE);
- };
- };
-}
-
-/******************************************************************************
- * DUMP D'UN FICHIER MED : NOEUDS,
- * ELEMENTS, FAMILLES, EQUIVALENCES, CHAMPS DE RESULTATS
- *****************************************************************************/
-
-int main (int argc, char **argv)
-{
- med_err ret = 0;
- med_idt fid;
- int i,j,k,l,kp;
- int numero;
- char message[200];
- /* nombre d'objets MED */
- char nom_universel[MED_TAILLE_LNOM+1];
- med_int long_fichier_en_tete;
- char *fichier_en_tete;
- char version_hdf[10];
- char version_med[10];
- med_int nmaa,mdim,nnoe;
- //med_int nmai[MED_NBR_GEOMETRIE_MAILLE],nfac[MED_NBR_GEOMETRIE_FACE];
- //med_int nare[MED_NBR_GEOMETRIE_ARETE];
- /* nom du maillage */
- char nommaa[MED_TAILLE_NOM+1];
- /* noeuds */
- med_float *coo;
- char nomcoo[3*MED_TAILLE_PNOM+1];
- char unicoo[3*MED_TAILLE_PNOM+1];
- char *nomnoe;
- med_int *numnoe;
- med_int *nufano;
- med_repere rep;
- med_booleen inonoe,inunoe;
- med_mode_switch mode_coo;
- char str[MED_TAILLE_PNOM+1];
- /* elements */
- med_int nsup;
- med_int edim;
- med_int taille;
- med_int *connectivite;
- char *nomele;
- med_int *numele;
- med_int *nufael;
- med_booleen inoele, inuele;
- med_connectivite typ_con;
- med_geometrie_element typgeo;
- med_geometrie_element typmai[MED_NBR_GEOMETRIE_MAILLE] = {MED_POINT1,MED_SEG2,
- MED_SEG3,MED_TRIA3,
- MED_TRIA6,MED_QUAD4,
- MED_QUAD8,MED_TETRA4,
- MED_TETRA10,MED_HEXA8,
- MED_HEXA20,MED_PENTA6,
- MED_PENTA15,MED_PYRA5,
- MED_PYRA13};
- med_int desmai[MED_NBR_GEOMETRIE_MAILLE] = {0,2,3,3,3,4,4,4,4,6,6,5,5,5,5};
- med_int nmailles[MED_NBR_GEOMETRIE_MAILLE];
- char nommai[MED_NBR_GEOMETRIE_MAILLE] [MED_TAILLE_NOM+1] = {"MED_POINT1",
- "MED_SEG2",
- "MED_SEG3",
- "MED_TRIA3",
- "MED_TRIA6",
- "MED_QUAD4",
- "MED_QUAD8",
- "MED_TETRA4",
- "MED_TETRA10",
- "MED_HEXA8",
- "MED_HEXA20",
- "MED_PENTA6",
- "MED_PENTA15",
- "MED_PYRA5",
- "MED_PYRA13"};
- med_geometrie_element typfac[MED_NBR_GEOMETRIE_FACE] = {MED_TRIA3,MED_TRIA6,
- MED_QUAD4,MED_QUAD8};
- med_int desfac[MED_NBR_GEOMETRIE_FACE] = {3,3,4,4};
- med_int nfaces[MED_NBR_GEOMETRIE_FACE];
- char nomfac[MED_NBR_GEOMETRIE_FACE][MED_TAILLE_NOM+1] = {"MED_TRIA3","MED_TRIA6",
- "MED_QUAD4","MED_QUAD8"};
- med_geometrie_element typare[MED_NBR_GEOMETRIE_ARETE] = {MED_SEG2,MED_SEG3};
- med_int desare[MED_NBR_GEOMETRIE_ARETE] = {2,3};
- med_int naretes[MED_NBR_GEOMETRIE_ARETE];
- char nomare[MED_NBR_GEOMETRIE_ARETE] [MED_TAILLE_NOM+1] = {"MED_SEG2","MED_SEG3"};
- /* familles */
- med_int nfam;
- med_int natt,ngro;
- char *attdes,*gro;
- med_int *attval,*attide;
- char nomfam[MED_TAILLE_NOM+1];
- med_int numfam;
- char str1[MED_TAILLE_DESC+1];
- char str2[MED_TAILLE_LNOM+1];
- /* equivalences */
- med_int nequ,ncor;
- med_int *cor;
- char equ[MED_TAILLE_NOM+1];
- char des[MED_TAILLE_DESC+1];
- /* champs de resultats */
- char *comp;
- char *unit;
- char nomcha[MED_TAILLE_NOM+1];
- char maillage_champ[MED_TAILLE_NOM+1];
- med_int ncomp;
- med_float *valr;
- med_int *vale;
- med_type_champ typcha;
- med_int ncha;
- med_int nval;
- int reponse;
- int lecture_en_tete_seulement = 0;
- med_int npdt;
- med_int ngauss,numdt,numo;
- med_float dt;
- char dtunit[MED_TAILLE_PNOM+1];
- char pflnom[MED_TAILLE_NOM+1];
- med_int pflsize;
- med_int *pflval;
- med_int isGrid;
- med_grid_type theType;
-
- /****************************************************************************
- * TEST DU NOMBRE D'ARGUMENTS *
- * argument 1 = nom du fichier MED *
- ****************************************************************************/
- if (argc != 2 && argc != 5)
- {
- fprintf(stderr,">> ERREUR : nombre de parametres incorrects \n");
- exit(EXIT_FAILURE);
- }
-
- /****************************************************************************
- * OUVERTURE DU FICHIER EN LECTURE *
- ****************************************************************************/
- fid = MEDouvrir(argv[1],MED_LECT);
- if (fid < 0)
- {
- fprintf(stderr,">> ERREUR : ouverture du fichier %s \n",argv[1]);
- exit(EXIT_FAILURE);
- }
-
-
- /****************************************************************************
- * QUESTIONS PRELIMINAIRES *
- * 1. Mode d'affichage des coordonnees (entrelace ou non) ? *
- * 2. Connectivite des elements (nodale ou descendante) *
- ****************************************************************************/
- fprintf(stdout,"\n >>>>>> DUMP DU FICHIER %s >>>>>>\n",argv[1]);
-
- /* en-tete du fichier (presence optionnelle) */
- long_fichier_en_tete = MEDlFichDes(fid);
- if (long_fichier_en_tete > 0)
- {
- fichier_en_tete = (char *) malloc(sizeof(char)*(long_fichier_en_tete+1));
- ret = MEDfichEntete(fid,MED_FICH_DES,fichier_en_tete);
- if (ret < 0)
- {
- fprintf(stderr,">> ERREUR : lecture de l'en-tete du fichier \n");
- exit(EXIT_FAILURE);
- }
- fprintf(stdout,"- En-tete du fichier : %s \n",fichier_en_tete);
- free(fichier_en_tete);
- }
- /* versions hdf et med */
- ret = MEDfichEntete(fid,MED_HDF_VERSION,version_hdf);
- if (ret < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du numero de version de HDF \n");
- exit(EXIT_FAILURE);
- }
- ret = MEDfichEntete(fid,MED_VERSION,version_med);
- if (ret < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du numero de version de MED \n");
- exit(EXIT_FAILURE);
- }
- fprintf(stdout,"- Version de HDF utilisee : %s \n",version_hdf);
- fprintf(stdout,"- Version de MED utilisee : %s \n",version_med);
-
- if (argc == 2)
- {
- fprintf(stdout,"(*****************)\n");
- fprintf(stdout,"(* PARAMETRAGE : *)\n");
- fprintf(stdout,"(*****************)\n");
- fprintf(stdout,"- Mode d'affichage des coordonnées des noeuds ? \n");
- fprintf(stdout," 1. Mode entrelacé : taper 1 \n");
- fprintf(stdout," 2. Mode non entrelacé : taper 2 \n");
- reponse = 0;
- do
- {
- fprintf(stdout," Reponse : ");
- scanf("%d",&reponse);
- }
- while (reponse != 1 && reponse != 2);
- if (reponse == 1)
- mode_coo = MED_FULL_INTERLACE;
- else
- mode_coo = MED_NO_INTERLACE;
-
- fprintf(stdout,"- Connectivité des éléments ? \n");
- fprintf(stdout," 1. Nodale : taper 1 \n");
- fprintf(stdout," 2. Descendante : taper 2 \n");
- reponse = 0;
- do
- {
- fprintf(stdout," Reponse : ");
- scanf("%d",&reponse);
- }
- while (reponse != 1 && reponse != 2);
- if (reponse == 1)
- typ_con = MED_NOD;
- else
- typ_con = MED_DESC;
- }
- else
- {
- if (! strcmp(argv[3],"NODALE"))
- typ_con = MED_NOD;
- if (! strcmp(argv[3],"DESCENDANTE"))
- typ_con = MED_DESC;
-
- if (!strcmp(argv[4],"NO_INTERLACE"))
- mode_coo = MED_NO_INTERLACE;
- if (!strcmp(argv[4],"FULL_INTERLACE"))
- mode_coo = MED_FULL_INTERLACE;
- if (! strcmp(argv[4],"LECTURE_EN_TETE_SEULEMENT"))
- lecture_en_tete_seulement = 1;
-
- }
-
- /****************************************************************************
- * QUEL MAILLAGE LIRE *
- ****************************************************************************/
- nmaa = MEDnMaa(fid);
- if (nmaa < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre de maillages \n");
- exit(EXIT_FAILURE);
- }
-
- /* Quel maillage lire ? */
- if (argc == 2)
- {
- fprintf(stdout,"- Il y a %d maillages dans ce fichier \n",nmaa);
- fprintf(stdout," Lequel voulez-vous lire (1|2|3|...|n) ?\n");
- do
- {
- fprintf(stdout," Reponse : ");
- scanf("%d",&numero);
- }
- while (numero > nmaa || numero <= 0);
- }
- else
- {
- numero = atoi(argv[2]);
- if (numero > nmaa || numero <= 0)
- {
- fprintf(stderr,">> ERREUR : il y a %d maillages dans ce fichier \n",
- nmaa);
- exit(EXIT_FAILURE);
- }
- }
-
-/*****************************************************************************
- * QUELLE SORTE DE MAILLAGE : GRILLE OU PAS *
- *****************************************************************************/
-
- fprintf(stdout,"\n(**************************************************)\n");
- fprintf(stdout,"(* MAILLAGE STRUCTURE (GRILLE) OU NON STRUCTURE : *)\n");
- fprintf(stdout,"(**************************************************)\n");
-
- /* lecture de la sorte de maillage : structure ou pas */
- ret = MEDgridInfo(fid, numero, &isGrid, &theType);
- if (ret < 0) {
- fprintf(stderr, ">> ERREUR : lecture de la sorte de maillage (structure ou pas)\n");
- exit(EXIT_FAILURE);
- };
- fprintf(stdout, "- Sorte de maillage : %s\n", isGrid? "structure (grille)": "non structure");
- if (isGrid) {
- ret = grid(fid, numero, theType, mode_coo);
- if (ret == 0) {
- ret = MEDfermer(fid);
- if (ret == 0) {
- fprintf(stdout, "\n >>>>>> FIN DU DUMP DU FICHIER %s >>>>>>\n", argv[1]);
- } else {
- fprintf(stderr, ">> ERREUR : erreur a la fermeture du fichier %s\n", argv[1]);
- };
- };
- if (ret == 0) {
- return(0);
- } else {
- exit(EXIT_FAILURE);
- };
- };
-
- /****************************************************************************
- * NOMBRES D'OBJETS MED *
- ****************************************************************************/
- fprintf(stdout,"\n(****************************)\n");
- fprintf(stdout,"(* INFORMATIONS GENERALES : *)\n");
- fprintf(stdout,"(****************************)\n");
-
- /* lecture du nom et de la dimension du maillage */
- ret = MEDmaaInfo(fid,numero,nommaa,&mdim);
- if (ret < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nom du maillage \n");
- exit(EXIT_FAILURE);
- }
- fprintf(stdout,"- Nom du maillage : <<%s>>\n",nommaa);
- fprintf(stdout,"- Dimension du maillage : %d\n",mdim);
-
- /* lecture du nom universel (presence optionnelle) */
- ret = MEDunvLire(fid,nommaa,nom_universel);
- if (ret > 0)
- fprintf(stdout,"- Nom universel du maillage : %s \n",nom_universel);
- else
- fprintf(stdout,"- Pas de nom universel \n");
-
-
- /* Combien de noeuds ? */
- nnoe = MEDnEntMaa(fid,nommaa,MED_COOR,MED_NOEUD,(med_geometrie_element)0,(med_connectivite)0);
- if (nnoe < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre de noeuds (via MEDnEntMaa) \n");
- exit(EXIT_FAILURE);
- }
- fprintf(stdout,"- Nombre de noeuds : %d \n",nnoe);
-
- /* Combien de mailles, faces ou aretes ? */
- for (i=0;i<MED_NBR_GEOMETRIE_MAILLE;i++)
- {
- nmailles[i] = MEDnEntMaa(fid,nommaa,MED_CONN,MED_MAILLE,typmai[i],
- typ_con);
- if (nmailles[i] < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre de mailles \n");
- exit(EXIT_FAILURE);
- }
- fprintf (stdout,"- Nombre de mailles de type %s : %d \n",nommai[i],nmailles[i]);
- }
-
- for (i=0;i<MED_NBR_GEOMETRIE_FACE;i++)
- {
- nfaces[i] = MEDnEntMaa(fid,nommaa,MED_CONN,MED_FACE,typfac[i],
- typ_con);
- if (nfaces[i] < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre de faces \n");
- exit(EXIT_FAILURE);
- }
- fprintf (stdout,"- Nombre de faces de type %s : %d \n",nomfac[i],nfaces[i]);
- }
-
- for (i=0;i<MED_NBR_GEOMETRIE_ARETE;i++)
- {
- naretes[i] = MEDnEntMaa(fid,nommaa,MED_CONN,MED_ARETE,typare[i],
- typ_con);
- if (naretes[i] < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre d'aretes \n");
- exit(EXIT_FAILURE);
- }
- fprintf (stdout,"- Nombre d'aretes de type %s : %d \n",nomare[i],naretes[i]);
- }
-
- /* nombre de familles */
- nfam = MEDnFam(fid,nommaa,0,(med_dim_famille)0);
- if (nfam < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre de familles \n");
- exit(EXIT_FAILURE);
- }
- fprintf(stdout,"- Nombre de familles : %d \n",nfam);
-
- /* combien d'equivalences dans le fichier */
- nequ = MEDnEquiv(fid,nommaa);
- if (nequ < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre d'equivalences \n");
- exit(EXIT_FAILURE);
- }
- fprintf(stdout,"- Nombre d'equivalences : %d \n",nequ);
-
- /* combien de champs dans le fichier */
- ncha = MEDnChamp(fid,0);
- if (ncha < 0)
- {
- fprintf(stderr,">> ERREUR : lecture du nombre de champs \n");
- exit(EXIT_FAILURE);
- }
- fprintf(stdout,"- Nombre de champs : %d \n",ncha);
-
- /* Doit-on s'arreter ? */
- if (lecture_en_tete_seulement)
- {
- ret = MEDfermer(fid);
- if (ret == 0)
- {
- fprintf(stdout,"\n >>>>>> FIN DU DUMP DU FICHIER %s >>>>>>\n",argv[1]);
- return 0;
- }
- else
- {
- fprintf(stderr,">> ERREUR : fermeture du fichier %s \n",argv[1]);
- exit(EXIT_FAILURE);
- }
- }
-
- /****************************************************************************
- * LECTURE DES NOEUDS *
- ****************************************************************************/
- fprintf(stdout,"\n(************************)\n");
- fprintf(stdout,"(* NOEUDS DU MAILLAGE : *)\n");
- fprintf(stdout,"(************************)\n");
-
- /* Allocations memoires */
- /* table des coordonnees
- profil : (dimension * nombre de noeuds ) */
- coo = (med_float*) malloc(sizeof(med_float)*nnoe*mdim);
- /* table des numeros, des numeros de familles des noeuds
- profil : (nombre de noeuds) */
- numnoe = (med_int*) malloc(sizeof(med_int)*nnoe);
- nufano = (med_int*) malloc(sizeof(med_int)*nnoe);
- /* table des noms des noeuds
- profil : (nnoe*MED_TAILLE_PNOM+1) */
- nomnoe = (char*) malloc(MED_TAILLE_PNOM*nnoe+1);
-
- /* lecture des noeuds :
- - coordonnees
- - noms (optionnel dans un fichier MED)
- - numeros (optionnel dans un fichier MED)
- - numeros des familles */
- ret = MEDnoeudsLire(fid,nommaa,mdim,coo,mode_coo,&rep,
- nomcoo,unicoo,nomnoe,&inonoe,numnoe,&inunoe,
- nufano,nnoe);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des noeuds \n");
-
- /* affichage des resultats */
- if (ret == 0)
- {
- fprintf(stdout,"- Type de repere des coordonnees : %d \n",rep);
- fprintf(stdout,"- Nom des coordonnees : \n");
- for (i=0;i<mdim;i++)
- {
- strncpy(str,nomcoo+i*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout," %s ",str);
- }
- fprintf(stdout,"\n- Unites des coordonnees : \n");
- for (i=0;i<mdim;i++)
- {
- strncpy(str,unicoo+i*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout," %s ",str);
- }
- fprintf(stdout,"\n- Coordonnees des noeuds : \n");
- for (i=0;i<nnoe*mdim;i++)
- fprintf(stdout," %f ",*(coo+i));
- if (inonoe)
- {
- fprintf(stdout,"\n- Noms des noeuds : \n");
- for (i=0;i<nnoe;i++)
- {
- strncpy(str,nomnoe+i*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout," %s ",str);
- }
- }
- if (inunoe)
- {
- fprintf(stdout,"\n- Numeros des noeuds : \n");
- for (i=0;i<nnoe;i++)
- fprintf(stdout," %d ",*(numnoe+i));
- }
- fprintf(stdout,"\n- Numeros des familles des noeuds : \n");
- for (i=0;i<nnoe;i++)
- fprintf(stdout," %d ",*(nufano+i));
- fprintf(stdout,"\n");
- }
-
- /* liberation memoire */
- free(coo);
- free(nomnoe);
- free(numnoe);
- free(nufano);
-
- /****************************************************************************
- * LECTURE DES ELEMENTS *
- ****************************************************************************/
- fprintf(stdout,"\n(**************************)\n");
- fprintf(stdout,"(* ELEMENTS DU MAILLAGE : *)\n");
- fprintf(stdout,"(**************************)");
- /* Lecture des connectivites, noms, numeros des mailles */
- if (ret == 0)
- for (i=0;i<MED_NBR_GEOMETRIE_MAILLE;i++)
- {
- if (nmailles[i] > 0 && ret == 0)
- {
- /* dimension de la maille */
- edim = typmai[i] / 100;
- nsup = 0;
- if (mdim == 2 || mdim == 3)
- if (edim == 1)
- nsup = 1;
- if (mdim == 3)
- if (edim == 2)
- nsup = 1;
- switch(typ_con)
- {
- case MED_NOD :
- taille = nsup+typmai[i]%100;
- break;
-
- case MED_DESC :
- taille = nsup+desmai[i];
- break;
-
- default :
- ret = -1;
- }
-
- /* allocation memoire */
- connectivite = (med_int*)malloc(sizeof(med_int)*
- taille*nmailles[i]);
- nomele = (char*)malloc(sizeof(char)*MED_TAILLE_PNOM*
- nmailles[i]+1);
- numele = (med_int*)malloc(sizeof(med_int)*
- nmailles[i]);
- nufael = (med_int*)malloc(sizeof(med_int)*
- nmailles[i]);
-
- /* lecture des données */
- ret = MEDelementsLire(fid,nommaa,mdim,connectivite,mode_coo,
- nomele,&inoele,numele,&inuele,nufael,
- nmailles[i],MED_MAILLE,typmai[i],
- typ_con);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des mailles \n");
-
- /* affichage des resultats */
- if (ret == 0)
- {
- fprintf(stdout,"\n\n- Mailles de type %s : ", nommai[i]);
- fprintf(stdout,"\n - Connectivité : \n");
- for (j=0;j<nmailles[i]*taille;j++)
- fprintf(stdout," %d ",*(connectivite+j));
- if (inoele)
- {
- fprintf(stdout,"\n - Noms : \n");
- for (j=0;j<nmailles[i];j++)
- {
- fprintf(stdout," %d ",*(connectivite+j));
- strncpy(str,nomele+j*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout," %s ",str);
- }
- }
- if (inuele)
- {
- fprintf(stdout,"\n - Numeros :\n");
- for (j=0;j<nmailles[i];j++)
- fprintf(stdout," %d ",*(numele+j));
- }
- fprintf(stdout,"\n - Numéros de familles : \n");
- for (j=0;j<nmailles[i];j++)
- fprintf(stdout," %d ",*(nufael+j));
- }
-
- /* liberation memoire */
- free(connectivite);
- free(nomele);
- free(numele);
- free(nufael);
- }
- }
-
- if (ret == 0)
- for (i=0;i<MED_NBR_GEOMETRIE_FACE;i++)
- {
- if (nfaces[i] > 0 && ret == 0)
- {
- /* dimension de la face */
- edim = typfac[i] / 100;
- nsup = 0;
- if (mdim == 2 || mdim == 3)
- if (edim == 1)
- nsup = 1;
- if (mdim == 3)
- if (edim == 2)
- nsup = 1;
- switch(typ_con)
- {
- case MED_NOD :
- taille = nsup+typfac[i]%100;
- break;
-
- case MED_DESC :
- taille = nsup+desfac[i];
- break;
-
- default :
- ret = -1;
- }
-
- /* allocation memoire */
- connectivite = (med_int*)malloc(sizeof(med_int)*
- taille*nfaces[i]);
- nomele = (char*)malloc(sizeof(char)*MED_TAILLE_PNOM*
- nfaces[i]+1);
- numele = (med_int*)malloc(sizeof(med_int)*
- nfaces[i]);
- nufael = (med_int*)malloc(sizeof(med_int)*
- nfaces[i]);
-
- /* lecture des données */
- ret = MEDelementsLire(fid,nommaa,mdim,connectivite,mode_coo,
- nomele,&inoele,numele,&inuele,nufael,
- nfaces[i],MED_FACE,typfac[i],
- typ_con);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des faces \n");
-
- /* affichage des resultats */
- if (ret == 0)
- {
- fprintf(stdout,"\n- Faces de type %s : ", nomfac[i]);
- fprintf(stdout,"\n - Connectivité : \n");
- for (j=0;j<nfaces[i]*taille;j++)
- fprintf(stdout," %d ",*(connectivite+j));
- if (inoele)
- {
- fprintf(stdout,"\n - Noms : \n");
- for (j=0;j<nfaces[i];j++)
- {
- fprintf(stdout," %d ",*(connectivite+j));
- strncpy(str,nomele+j*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout," %s ",str);
- }
- }
- if (inuele)
- {
- fprintf(stdout,"\n - Numeros :\n");
- for (j=0;j<nfaces[i];j++)
- fprintf(stdout," %d ",*(numele+j));
- }
- fprintf(stdout,"\n - Numéros de familles : \n");
- for (j=0;j<nfaces[i];j++)
- fprintf(stdout," %d ",*(nufael+j));
- }
-
- /* liberation memoire */
- free(connectivite);
- free(nomele);
- free(numele);
- free(nufael);
- }
- }
-
- if (ret == 0)
- for (i=0;i<MED_NBR_GEOMETRIE_ARETE;i++)
- {
- if (naretes[i] > 0 && ret == 0)
- {
- /* dimension de l'arete */
- edim = typare[i] / 100;
- nsup = 0;
- if (mdim == 2 || mdim == 3)
- if (edim == 1)
- nsup = 1;
- if (mdim == 3)
- if (edim == 2)
- nsup = 1;
- switch(typ_con)
- {
- case MED_NOD :
- taille = nsup+typare[i]%100;
- break;
-
- case MED_DESC :
- taille = nsup+desare[i];
- break;
-
- default :
- ret = -1;
- }
-
- /* allocation memoire */
- connectivite = (med_int*)malloc(sizeof(med_int)*
- taille*naretes[i]);
- nomele = (char*)malloc(sizeof(char)*MED_TAILLE_PNOM*
- naretes[i]+1);
- numele = (med_int*)malloc(sizeof(med_int)*
- naretes[i]);
- nufael = (med_int*)malloc(sizeof(med_int)*
- naretes[i]);
-
- /* lecture des données */
- ret = MEDelementsLire(fid,nommaa,mdim,connectivite,mode_coo,
- nomele,&inoele,numele,&inuele,nufael,
- naretes[i],MED_ARETE,typare[i],
- typ_con);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des aretes \n");
-
- /* affichage des resultats */
- if (ret == 0)
- {
- fprintf(stdout,"\n- Aretes de type %s : ", nomare[i]);
- fprintf(stdout,"\n - Connectivité : \n");
- for (j=0;j<naretes[i]*taille;j++)
- fprintf(stdout," %d ",*(connectivite+j));
- if (inoele)
- {
- fprintf(stdout,"\n - Noms : \n");
- for (j=0;j<naretes[i];j++)
- {
- fprintf(stdout," %d ",*(connectivite+j));
- strncpy(str,nomele+j*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
- str[MED_TAILLE_PNOM] = '\0';
- fprintf(stdout," %s ",str);
- }
- }
- if (inuele)
- {
- fprintf(stdout,"\n - Numeros :\n");
- for (j=0;j<naretes[i];j++)
- fprintf(stdout," %d ",*(numele+j));
- }
- fprintf(stdout,"\n - Numéros de familles : \n");
- for (j=0;j<naretes[i];j++)
- fprintf(stdout," %d ",*(nufael+j));
- }
-
- /* liberation memoire */
- free(connectivite);
- free(nomele);
- free(numele);
- free(nufael);
- }
- }
-
- /****************************************************************************
- * LECTURE DES FAMILLES *
- ****************************************************************************/
- printf("\n(*************************)\n");
- printf("(* FAMILLES DU MAILLAGE : *)\n");
- printf("(*************************)\n");
- if (ret == 0)
- for (i=0;i<nfam;i++)
- {
-
- /* nombre de groupes */
- ngro = MEDnFam(fid,nommaa,i+1,MED_GROUPE);
- if (ngro < 0)
- {
- ret = -1;
- strcpy(message,
- ">> ERREUR : lecture du nombre de groupes d'une famille \n");
- }
-
- /* nombre d'attributs */
- if (ret == 0)
- {
- natt = MEDnFam(fid,nommaa,i+1,MED_ATTR);
- if (natt < 0)
- {
- ret = -1;
- strcpy(message,
- ">> ERREUR : lecture du nombre d'attributs d'une famille\n");
- }
- }
-
- if (ret == 0)
- fprintf(stdout,"- Famille %d a %d attributs et %d groupes \n",i+1,natt,ngro);
-
- /* nom,numero,attributs,groupes */
- if (ret == 0)
- {
- attide = (med_int*) malloc(sizeof(med_int)*natt);
- attval = (med_int*) malloc(sizeof(med_int)*natt);
- attdes = (char *) malloc(MED_TAILLE_DESC*natt+1);
- gro = (char*) malloc(MED_TAILLE_LNOM*ngro+1);
- ret = MEDfamInfo(fid,nommaa,i+1,nomfam,&numfam,attide,attval,
- attdes,&natt,gro,&ngro);
- fprintf(stdout," - Famille de nom %s et de numero %d : \n",nomfam,numfam);
- fprintf(stdout," - Attributs : \n");
- for (j=0;j<natt;j++)
- {
- strncpy(str1,attdes+j*MED_TAILLE_DESC,MED_TAILLE_DESC);
- str1[MED_TAILLE_DESC] = '\0';
- fprintf(stdout," ide = %d - val = %d - des = %s\n",*(attide+j),
- *(attval+j),str1);
- }
- free(attide);
- free(attval);
- free(attdes);
- fprintf(stdout," - Groupes :\n");
- for (j=0;j<ngro;j++)
- {
- strncpy(str2,gro+j*MED_TAILLE_LNOM,MED_TAILLE_LNOM);
- str2[MED_TAILLE_LNOM] = '\0';
- fprintf(stdout," gro = %s\n",str2);
- }
- free(gro);
- }
- }
-
- /****************************************************************************
- * LECTURE DES EQUIVALENCES *
- ****************************************************************************/
- fprintf(stdout,"\n(******************************)\n");
- fprintf(stdout,"(* EQUIVALENCES DU MAILLAGE : *)\n");
- fprintf(stdout,"(******************************)\n");
-
- /* lecture de toutes les equivalences associes a nommaa */
- if (ret == 0)
- for (i = 0;i<nequ;i++)
- {
- fprintf(stdout,"- Equivalence numero : %d ",i+1);
-
- /* lecture des infos sur l'equivalence */
- ret = MEDequivInfo(fid,nommaa,i+1,equ,des);
- if (ret == 0)
- {
- fprintf(stdout,"\n - Nom de l'equivalence: %s \n",equ);
- fprintf(stdout,"\n - Description de l'equivalence : %s \n",des);
- }
- else
- strcpy(message,">> ERREUR : lecture informations sur equivalence\n");
-
- /* lecture des correspondances sur les differents types d'entites */
- if (ret == 0)
- {
- /* les noeuds */
- if ((ncor = MEDnCorres(fid,nommaa,equ,MED_NOEUD,(med_geometrie_element)0)) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : lecture nombre de correspondances\n");
- }
- else
- fprintf(stdout,"\n - Il y a %d correspondances sur les noeuds \n",ncor);
- if (ncor > 0)
- {
- cor = (med_int*) malloc(sizeof(med_int)*ncor*2);
- ret = MEDequivLire(fid,nommaa,equ,cor,ncor,MED_NOEUD,(med_geometrie_element)0);
- if (ret == 0)
- for (j=0;j<ncor;j++)
- fprintf(stdout,"\n - Correspondance %d : %d et %d \n",j+1,*(cor+2*j),
- *(cor+2*j+1));
- else
- strcpy(message,">> ERREUR : lecture des correspondances\n");
- free(cor);
- }
-
- /* sur les mailles : on ne prend pas en compte les mailles 3D */
- if (ret ==0)
- for (j=0;j<NBR_MAILLE_EQU;j++)
- {
- if ((ncor = MEDnCorres(fid,nommaa,equ,MED_MAILLE,typmai[j])) < 0)
- {
- ret = -1;
- strcpy(message,
- ">> ERREUR : lecture informations sur nombre de correspondances \n");
- }
- else
- fprintf(stdout,"\n - Il y a %d correspondances sur les mailles %s \n",ncor,
- nommai[j]);
- if (ncor > 0)
- {
- cor = (med_int*) malloc(sizeof(med_int)*ncor*2);
- ret = MEDequivLire(fid,nommaa,equ,cor,ncor,MED_MAILLE,
- typmai[j]);
- if (ret == 0)
- for (k=0;k<ncor;k++)
- fprintf(stdout,"\n - Correspondance %d : %d et %d \n",k+1,*(cor+2*k),
- *(cor+2*k+1));
- else
- strcpy(message,">> ERREUR : correspondances\n");
- free(cor);
- }
- }
-
- /* sur les faces */
- if (ret == 0)
- for (j=0;j<MED_NBR_GEOMETRIE_FACE;j++)
- {
- if ((ncor = MEDnCorres(fid,nommaa,equ,MED_FACE,typfac[j])) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : informations sur correspondances \n");
- }
- else
- fprintf(stdout,"\n - Il y a %d correspondances sur les faces %s\n",ncor,
- nomfac[j]);
- if (ncor > 0)
- {
- cor = (med_int*) malloc(sizeof(med_int)*ncor*2);
- ret = MEDequivLire(fid,nommaa,equ,cor,ncor,MED_FACE,
- typfac[j]);
- if (ret < 0)
- strcpy(message,"ERREUR : lecture des equivalences \n");
- else
- for (k=0;k<ncor;k++)
- fprintf(stdout,"\n - Correspondance %d : %d et %d \n",k+1,*(cor+2*k),
- *(cor+2*k+1));
- free(cor);
- }
- }
-
- /* sur les aretes */
- for (j=0;j<MED_NBR_GEOMETRIE_ARETE;j++)
- {
- if ((ncor = MEDnCorres(fid,nommaa,equ,MED_ARETE,typare[j])) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : nombre de correspondances \n");
- }
- else
- fprintf(stdout,"\n - Il y a %d correspondances sur les aretes %s \n",
- ncor,nomare[j]);
- if (ncor > 0)
- {
- cor = (med_int*) malloc(sizeof(med_int)*ncor*2);
- ret = MEDequivLire(fid,nommaa,equ,cor,ncor,MED_ARETE,
- typare[j]);
- if (ret < 0)
- strcpy(message,">> ERREUR : equivalences \n");
- else
- for (k=0;k<ncor;k++)
- fprintf(stdout,"\n Correspondance %d : %d et %d \n",k+1,*(cor+2*k),
- *(cor+2*k+1));
- free(cor);
- }
- }
- }
- }
-
- /****************************************************************************
- * LECTURE DES CHAMPS *
- ****************************************************************************/
- fprintf(stdout,"\n(************************)\n");
- fprintf(stdout,"(* CHAMPS DU MAILLAGE : *)\n");
- fprintf(stdout,"(************************)\n");
-
- if (ret == 0)
- for (i=0;i<ncha;i++)
- {
- fprintf(stdout,"- Champ numero : %d \n",i+1);
-
- /* combien de composantes */
- if ((ncomp = MEDnChamp(fid,i+1)) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : nombre de composants d'un champ\n");
- }
-
- /* allocation memoire de comp et unit*/
- if (ret == 0)
- {
- comp = (char*) malloc(ncomp*MED_TAILLE_PNOM+1);
- unit = (char*) malloc(ncomp*MED_TAILLE_PNOM+1);
- }
-
- /* infos sur les champs */
- if (ret == 0)
- ret = MEDchampInfo(fid,i+1,nomcha,&typcha,comp,unit,ncomp);
- if (ret < 0)
- strcpy(message,">> ERREUR : information sur les champs \n");
-
- if (ret == 0) {
- fprintf(stdout," - Nom du champ : %s de type %d\n",nomcha,typcha);
- fprintf(stdout," - Nom des composantes : %s\n",comp);
- fprintf(stdout," - Unites des composantes : %s \n",unit);
- free(comp);
- free(unit);
- }
-
-
- if (ret == 0) /* Valeurs sur les noeuds */
- {
- /* Combien de pas de temps ? */
- npdt = MEDnPasdetemps(fid,nomcha,MED_NOEUD,(med_geometrie_element)0);
- if (npdt < 0)
- ret = -1;
- if (ret == -1)
- strcpy(message,">> ERREUR : la lecture du nombe de pas de temps");
- else
- fprintf(stdout,"\n - Il y a %d pas de temps sur les noeuds \n",npdt);
-
- /* Lecture des valeurs pour tous les pas de temps */
- if (ret == 0)
- for (j=0;j<npdt;j++)
- {
- /* Informations sur les pas de temps */
- if (ret == 0)
- ret = MEDpasdetempsInfo(fid,nomcha,MED_NOEUD,(med_geometrie_element)0,
- j+1, maillage_champ, &ngauss, &numdt, dtunit, &dt, &numo);
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- fprintf(stdout,"\n -> \tPas de Temps n° %4i (%f), N°d'ordre %4i, avec %i pts de gauss\n",
- numdt,dt,numo,ngauss);
- else
- strcpy(message,">> ERREUR : information sur les pas de temps \n");
-
- /* Combien de valeurs a lire ? */
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if ((nval = MEDnVal(fid,nomcha,MED_NOEUD,(med_geometrie_element)0,numdt,numo)) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : nombre de valeurs d'un champ\n");
- }
- else
- fprintf(stdout,"\n - Il y a %d valeurs sur les noeuds \n",nval);
- }
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if (typcha == MED_REEL64)
- {
- valr = (med_float*) malloc(sizeof(med_float)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)valr,mode_coo,MED_ALL,
- pflnom,MED_NOEUD,(med_geometrie_element)0,numdt,numo);
-
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (k=0;k<nval*ncomp;k++)
- fprintf(stdout," %f ",*(valr+k));
- free(valr);
- }
- else
- {
- vale = (med_int*) malloc(sizeof(med_int)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)vale,mode_coo,MED_ALL,
- pflnom,MED_NOEUD,(med_geometrie_element)0,numdt,numo);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (k=0;k<nval*ncomp;k++)
- fprintf(stdout," %d ",*(vale+k));
- free(vale);
- }
-
- /* Lecture d'un profil eventuel */
- if (strcmp(pflnom,MED_NOPFL) == 0 )
- fprintf(stdout,"\n \t- Pas de profil\n");
- else
- {
- if ( (pflsize = MEDnValProfil(fid,pflnom)) <0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : lecture de la taille du profil \n");
- }
- else
- {
- fprintf(stdout,"\n \t- Profil : %s de taille %i\n",pflnom,pflsize);
- pflval = (med_int*) malloc(sizeof(med_int)*pflsize);
-
- if ( (ret = MEDprofilLire(fid,pflval,pflnom)) <0)
- strcpy(message,">> ERREUR : lecture du profil \n");
- else
- for (l=0;l<pflsize;l++)
- fprintf(stdout,"\t%i\n",*(pflval+l));
-
- free(pflval);
- }
- }
- }
- }
- }
-
-
- if (ret == 0) /* Valeurs sur les mailles */
- {
- for (k=0;k<MED_NBR_GEOMETRIE_MAILLE;k++)
- {
- typgeo = typmai[k];
-
- /* Combien de pas de temps ? */
- npdt = MEDnPasdetemps(fid,nomcha,MED_MAILLE,typgeo);
- if (npdt < 0)
- ret = -1;
- if (ret == -1)
- strcpy(message,">> ERREUR : la lecture du nombe de pas de temps");
- else
- fprintf(stdout,"\n - Il y a %d pas de temps sur les mailles de type %d \n",npdt,typgeo);
-
- /* Lecture des valeurs pour tous les pas de temps */
- if (ret == 0)
- for (j=0;j<npdt;j++)
- {
- /* Informations sur les pas de temps */
- if (ret == 0)
- ret = MEDpasdetempsInfo(fid,nomcha,MED_MAILLE,typgeo,
- j+1, maillage_champ, &ngauss, &numdt, dtunit, &dt, &numo);
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- fprintf(stdout,"\n -> \tPas de Temps n° %4i (%f), N°d'ordre %4i, avec %i pts de gauss\n",
- numdt,dt,numo,ngauss);
- else
- strcpy(message,">> ERREUR : information sur les pas de temps \n");
-
- /* Combien de valeurs a lire ? */
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if ((nval = MEDnVal(fid,nomcha,MED_MAILLE,typgeo,numdt,numo)) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : nombre de valeurs d'un champ\n");
- }
- else
- fprintf(stdout,"\n - Il y a %d valeurs sur les noeuds \n",nval);
- }
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if (typcha == MED_REEL64)
- {
- valr = (med_float*) malloc(sizeof(med_float)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)valr,mode_coo,MED_ALL,
- pflnom,MED_MAILLE,typgeo,numdt,numo);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (kp=0;kp<nval*ncomp;kp++)
- fprintf(stdout," %f ",*(valr+kp));
- free(valr);
- }
- else
- {
- vale = (med_int*) malloc(sizeof(med_int)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)vale,mode_coo,MED_ALL,
- pflnom,MED_MAILLE,typgeo,numdt,numo);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (kp=0;kp<nval*ncomp;kp++)
- fprintf(stdout," %d ",*(vale+kp));
- free(vale);
- }
-
- /* Lecture d'un profil eventuel */
- if (strcmp(pflnom,MED_NOPFL) == 0 )
- fprintf(stdout,"\n \t- Pas de profil\n");
- else
- {
- if ( (pflsize = MEDnValProfil(fid,pflnom)) <0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : lecture de la taille du profil \n");
- }
- else
- {
- fprintf(stdout,"\n \t- Profil : %s de taille %i\n",pflnom,pflsize);
- pflval = (med_int*) malloc(sizeof(med_int)*pflsize);
-
- if ( (ret = MEDprofilLire(fid,pflval,pflnom)) <0)
- strcpy(message,">> ERREUR : lecture du profil \n");
- else
- for (l=0;l<pflsize;l++)
- fprintf(stdout,"\t%i\n",*(pflval+l));
-
- free(pflval);
- }
- }
- }
- }
- }
- }
-
-
- if (ret == 0) /* Valeurs sur les faces */
- {
- for (k=0;k<MED_NBR_GEOMETRIE_FACE;k++)
- {
- typgeo = typfac[k];
-
- /* Combien de pas de temps ? */
- npdt = MEDnPasdetemps(fid,nomcha,MED_FACE,typgeo);
- if (npdt < 0)
- ret = -1;
- if (ret == -1)
- strcpy(message,">> ERREUR : la lecture du nombe de pas de temps");
- else
- fprintf(stdout,"\n - Il y a %d pas de temps sur les faces de type %d \n",npdt,typgeo);
-
- /* Lecture des valeurs pour tous les pas de temps */
- if (ret == 0)
- for (j=0;j<npdt;j++)
- {
- /* Informations sur les pas de temps */
- if (ret == 0)
- ret = MEDpasdetempsInfo(fid,nomcha,MED_FACE,typgeo,
- j+1, maillage_champ, &ngauss, &numdt, dtunit, &dt, &numo);
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- fprintf(stdout,"\n -> \tPas de Temps n° %4i (%f), N°d'ordre %4i, avec %i pts de gauss\n",
- numdt,dt,numo,ngauss);
- else
- strcpy(message,">> ERREUR : information sur les pas de temps \n");
-
- /* Combien de valeurs a lire ? */
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if ((nval = MEDnVal(fid,nomcha,MED_FACE,typgeo,numdt,numo)) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : nombre de valeurs d'un champ\n");
- }
- else
- fprintf(stdout,"\n - Il y a %d valeurs sur les noeuds \n",nval);
- }
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if (typcha == MED_REEL64)
- {
- valr = (med_float*) malloc(sizeof(med_float)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)valr,mode_coo,MED_ALL,
- pflnom,MED_FACE,typgeo,numdt,numo);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (kp=0;kp<nval*ncomp;kp++)
- fprintf(stdout," %f ",*(valr+kp));
- free(valr);
- }
- else
- {
- vale = (med_int*) malloc(sizeof(med_int)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)vale,mode_coo,MED_ALL,
- pflnom,MED_FACE,typgeo,numdt,numo);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (kp=0;kp<nval*ncomp;kp++)
- fprintf(stdout," %d ",*(vale+kp));
- free(vale);
- }
-
- /* Lecture d'un profil eventuel */
- if (strcmp(pflnom,MED_NOPFL) == 0 )
- fprintf(stdout,"\n \t- Pas de profil\n");
- else
- {
- if ( (pflsize = MEDnValProfil(fid,pflnom)) <0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : lecture de la taille du profil \n");
- }
- else
- {
- fprintf(stdout,"\n \t- Profil : %s de taille %i\n",pflnom,pflsize);
- pflval = (med_int*) malloc(sizeof(med_int)*pflsize);
-
- if ( (ret = MEDprofilLire(fid,pflval,pflnom)) <0)
- strcpy(message,">> ERREUR : lecture du profil \n");
- else
- for (l=0;l<pflsize;l++)
- fprintf(stdout,"\t%i\n",*(pflval+l));
-
- free(pflval);
- }
- }
- }
- }
- }
- }
-
-
- if (ret == 0) /* Valeurs sur les aretes */
- {
- for (k=0;k<MED_NBR_GEOMETRIE_ARETE;k++)
- {
- typgeo = typare[k];
-
- /* Combien de pas de temps ? */
- npdt = MEDnPasdetemps(fid,nomcha,MED_ARETE,typgeo);
- if (npdt < 0)
- ret = -1;
- if (ret == -1)
- strcpy(message,">> ERREUR : la lecture du nombe de pas de temps");
- else
- fprintf(stdout,"\n - Il y a %d pas de temps sur les aretes de type %d \n",npdt,typgeo);
-
- /* Lecture des valeurs pour tous les pas de temps */
- if (ret == 0)
- for (j=0;j<npdt;j++)
- {
- /* Informations sur les pas de temps */
- if (ret == 0)
- ret = MEDpasdetempsInfo(fid,nomcha,MED_ARETE,typgeo,
- j+1, maillage_champ, &ngauss, &numdt, dtunit, &dt, &numo);
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- fprintf(stdout,"\n -> \tPas de Temps n° %4i (%f), N°d'ordre %4i, avec %i pts de gauss\n",
- numdt,dt,numo,ngauss);
- else
- strcpy(message,">> ERREUR : information sur les pas de temps \n");
-
- /* Combien de valeurs a lire ? */
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if ((nval = MEDnVal(fid,nomcha,MED_ARETE,typgeo,numdt,numo)) < 0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : nombre de valeurs d'un champ\n");
- }
- else
- fprintf(stdout,"\n - Il y a %d valeurs sur les noeuds \n",nval);
- }
-
- if (ret == 0 && (! strcmp(maillage_champ,nommaa)))
- {
- if (typcha == MED_REEL64)
- {
- valr = (med_float*) malloc(sizeof(med_float)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)valr,mode_coo,MED_ALL,
- pflnom,MED_ARETE,typgeo,numdt,numo);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (kp=0;kp<nval*ncomp;kp++)
- fprintf(stdout," %f ",*(valr+kp));
- free(valr);
- }
- else
- {
- vale = (med_int*) malloc(sizeof(med_int)*ncomp*nval);
- ret = MEDchampLire(fid,nommaa,nomcha,(unsigned char*)vale,mode_coo,MED_ALL,
- pflnom,MED_ARETE,typgeo,numdt,numo);
- if (ret < 0)
- strcpy(message,">> ERREUR : lecture des champs \n");
- else
- for (kp=0;kp<nval*ncomp;kp++)
- fprintf(stdout," %d ",*(vale+kp));
- free(vale);
- }
-
- /* Lecture d'un profil eventuel */
- if (strcmp(pflnom,MED_NOPFL) == 0 )
- fprintf(stdout,"\n \t- Pas de profil\n");
- else
- {
- if ( (pflsize = MEDnValProfil(fid,pflnom)) <0)
- {
- ret = -1;
- strcpy(message,">> ERREUR : lecture de la taille du profil \n");
- }
- else
- {
- fprintf(stdout,"\n \t- Profil : %s de taille %i\n",pflnom,pflsize);
- pflval = (med_int*) malloc(sizeof(med_int)*pflsize);
-
- if ( (ret = MEDprofilLire(fid,pflval,pflnom)) <0)
- strcpy(message,">> ERREUR : lecture du profil \n");
- else
- for (l=0;l<pflsize;l++)
- fprintf(stdout,"\t%i\n",*(pflval+l));
-
- free(pflval);
- }
- }
- }
- }
- }
- }
-
- }
-
- if (ret < 0)
- fprintf(stderr,"%s\n",message);
-
- /****************************************************************************
- * FERMETURE DU FICHIER *
- ****************************************************************************/
- ret = MEDfermer(fid);
-
- if (ret == 0)
- fprintf(stdout,"\n >>>>>> FIN DU DUMP DU FICHIER %s >>>>>>\n",argv[1]);
- else
- fprintf(stderr,">> ERREUR : erreur a la fermeture du fichier %s\n",argv[1]);
-
- return 0;
-}
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2003 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#ifndef MED_H
-#define MED_H
-
-
-#include <hdf5.h>
-
-namespace med_2_1{
-
-
-#define MED_NULL (void *) NULL
-#define MED_MAX_PARA 20
-
-#define MED_TAILLE_DESC 200
-#define MED_TAILLE_IDENT 8
-#define MED_TAILLE_NOM 32
-#define MED_TAILLE_LNOM 80
-#define MED_TAILLE_PNOM 8
-
-/* Integration des developpements OCC */
-typedef enum {MED_CARTESIAN, MED_POLAR, MED_BODY_FITTED} med_grid_type;
-
-typedef enum {MED_GRID_D1=0, MED_GRID_D2=1, MED_GRID_D3=2,
- MED_GRID_NOEUD=3,
- MED_FAM_NOEUD=4, MED_FAM_ARETE=5, MED_FAM_FACE=6, MED_FAM_MAILLE=7 } med_grid;
-
-/* Fin de l'integration*/
-
-typedef enum {MED_FULL_INTERLACE,
- MED_NO_INTERLACE} med_mode_switch;
-
-typedef enum {MED_GLOBALE,
- MED_COMPACT } med_mode_profil;
-
-typedef enum {MED_LECT,MED_ECRI,MED_REMP} med_mode_acces;
-
-typedef enum {MED_MAILLE, MED_FACE, MED_ARETE, MED_NOEUD} med_entite_maillage;
-
-typedef enum {MED_COOR, MED_CONN, MED_NOM, MED_NUM, MED_FAM} med_table;
-
-typedef enum {MED_REEL64=6, MED_INT32=24,MED_INT64=26, MED_INT} med_type_champ;
-
-#define MED_NBR_GEOMETRIE_MAILLE 15
-#define MED_NBR_GEOMETRIE_FACE 4
-#define MED_NBR_GEOMETRIE_ARETE 2
-typedef enum {MED_POINT1=1, MED_SEG2=102, MED_SEG3=103, MED_TRIA3=203,
- MED_QUAD4=204, MED_TRIA6=206,MED_QUAD8=208, MED_TETRA4=304,
- MED_PYRA5=305, MED_PENTA6=306, MED_HEXA8=308, MED_TETRA10=310,
- MED_PYRA13=313, MED_PENTA15=315, MED_HEXA20=320}
-med_geometrie_element;
-
-typedef enum {MED_NOD, MED_DESC} med_connectivite ;
-
-typedef enum {MED_CART, MED_CYL, MED_SPHER} med_repere;
-
-typedef enum {MED_FAUX, MED_VRAI} med_booleen ;
-
-typedef enum {MED_GROUPE, MED_ATTR, MED_FAMILLE} med_dim_famille;
-
-typedef enum {MED_COMP, MED_DTYPE} med_dim_champ;
-
-typedef enum {MED_HDF_VERSION, MED_VERSION, MED_FICH_DES} med_fich_info;
-
-#define MED_NOPG 1 /* -> pas de point de Gauss */
-#define MED_NOPFL "" /* -> pas de profils utilisateur */
-#define MED_NOPFLi " " /* Variable Interne */
-#define MED_NOPF 0 /* -> pas de profils pour _MEDdataseNnumEcrire */
-#define MED_NOPDT -1 /* rem: pas de pas de temps negatifs */
-#define MED_NONOR -1 /* rem: pas de n°ordre negatif */
-#define MED_DIM1 1 /* PAS */
-#define MED_ALL 0
-
-
-
-
-/* correspondance des types avec HDF 5 */
-typedef hsize_t med_size;
-typedef hssize_t med_ssize;
-typedef hid_t med_idt;
-typedef herr_t med_err;
-
-/* types elementaires */
-
-typedef double med_float;
-#if defined(HAVE_F77INT64)
- typedef long med_int;
-#else
- typedef int med_int;
-#endif
-
-}
-
-#include "med_proto.hxx"
-
-#endif /* MED_H */
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#ifndef MED_HDFI_H
-#define MED_HDFI_H
-#include "med.hxx"
-
-/* FONCTIONS INTERFACE MED/HDF */
-namespace med_2_1{
-
-/* Gestion des fichiers HDF */
-extern
-med_idt _MEDfichierCreer(char *nom);
-
-extern
-med_idt _MEDfichierOuvrir(char *nom,med_mode_acces mode);
-
-extern
-med_err _MEDfichierFermer(med_idt fid);
-
-
-/* Gestion des datagroups HDF */
-extern
-med_idt _MEDdatagroupCreer(med_idt pid, char *nom);
-
-extern
-med_idt _MEDdatagroupOuvrir(med_idt pid, char *nom);
-
-extern
-med_err _MEDdatagroupFermer(med_idt id);
-
-
-/* Gestion des datasets HDF */
-
-extern
-med_idt _MEDdatasetOuvrir(med_idt pid,char *nom);
-
-extern
-med_err _MEDdatasetFermer(med_idt id);
-
-extern
-med_err _MEDdatasetNumEcrire (med_idt pere,char *nom, med_type_champ type,
- med_mode_switch interlace, med_size nbdim, med_size fixdim,
- med_size psize, med_ssize * profil, med_int ngauss,
- med_size *size, unsigned char *val, med_mode_acces mode);
-
-
-extern
-med_err _MEDdatasetNumLire(med_idt pere,char *nom,med_type_champ type,
- med_mode_switch interlace, med_size nbdim, med_size fixdim,
- med_size psize, med_ssize * pfltab, med_int ngauss,
- unsigned char *val);
-
-extern
-med_err _MEDdatasetStringEcrire(med_idt pere,char *nom,med_size *dimd,
- char *val, med_mode_acces mode);
-
-extern
-med_err _MEDdatasetStringLire(med_idt pere,char *nom,char *val);
-
-/* Gestion des attributs HDF */
-extern
-med_idt _MEDattrOuvrir(med_idt pid,char * nom);
-
-extern
-med_err _MEDattrFermer(med_idt id);
-
-extern
-med_err _MEDattrNumEcrire(med_idt pere,med_type_champ type,char *nom,unsigned char *val,med_mode_acces mode);
-
-#define _MEDattrEntierEcrire(w,x,y,z) _MEDattrNumEcrire(w,MED_INT ,x,(unsigned char *) y,z)
-#define _MEDattrFloatEcrire(w,x,y,z) _MEDattrNumEcrire(w,MED_REEL64,x,(unsigned char *) y,z)
-
-extern
-med_err _MEDattrNumLire(med_idt pere,med_type_champ type,char *nom,unsigned char *val);
-
-#define _MEDattrEntierLire(x,y,z) _MEDattrNumLire(x,MED_INT ,y,(unsigned char*)z)
-#define _MEDattrFloatLire(x,y,z) _MEDattrNumLire(x,MED_REEL64,y,(unsigned char*)z)
-
-extern
-med_err _MEDattrStringEcrire(med_idt pere,char *nom,int longueur,char *val,med_mode_acces mode);
-
-extern
-med_err _MEDattrStringLire(med_idt pere,char *nom,int longueur,char *val);
-
-
-/* Divers */
-extern
-med_err _MEDindiceInfo(med_idt id, const char *nom, void *donnees);
-
-extern
-med_err _MEDindiceNum(med_idt id,const char *nom, void *donnees);
-
-extern
-med_err _MEDobjetIdentifier(med_idt fid,char *chemin,int indice,void *nom);
-
-extern
-med_err _MEDnObjets(med_idt fid,char *chemin,int *n);
-
-extern
-void _MEDmodeErreurVerrouiller();
-
-}
-
-#endif /* MED_HDFI_H */
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#ifndef MED_MISC_H
-#define MED_MISC_H
-#include "med.hxx"
-
-
-/* CHAINES DE CARACTERES FORTRAN => C */
-namespace med_2_1{
-
-extern
-char *_MED1cstring(char *chaine,int longueur_reelle,int longueur_fixee);
-
-extern
-char *_MED2cstring(char *chaine, int longueur);
-
-extern
-med_err _MEDcstringFree(char *chaine);
-
-extern
-med_err _MEDfstring(char *chaine, med_int longueur_fixee);
-
-/* Noms associes aux objets MED */
-extern
-med_err _MEDnomEntite(char *nom_ent,med_entite_maillage type_ent);
-
-extern
-med_err _MEDnomGeometrie(char *nom_geo,med_geometrie_element type_geo);
-
-extern
-med_err _MEDparametresGeometrie(med_entite_maillage type_ent,
- med_geometrie_element type_geo, int *dim, int *nnoe,
- int *ndes);
-extern
-med_err _MEDnomDataset(char *nom_dataset,med_table quoi,
- med_connectivite type_conn);
-
-/* Geometrie des objets MED */
-extern
-med_err _MEDGeometrieElement(med_geometrie_element typ_geo[],
- med_entite_maillage typ_ent);
-
-}
-
-#endif /* MED_MISC_H */
-
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2003 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#ifndef MED_OUTILS_H
-#define MED_OUTILS_H
-#include "med.hxx"
-
-#define MED_NOM_MAJEUR (char*)"MAJ"
-#define MED_NOM_MINEUR (char*)"MIN"
-#define MED_NOM_RELEASE (char*)"REL"
-
-#define MED_NUM_MAJEUR 2
-#define MED_NUM_MINEUR 1
-#define MED_NUM_RELEASE 6
-
-#define MED_NOM_INFOS (char*)"INFOS_GENERALES"
-
-#define MED_NOM_DESCRIPTEUR "descripteur de fichier"
-#define MED_VERSION_ACTUELLE "2.1.6"
-#define HDF_VERSION_ACTUELLE "5-1.4.4"
-
-/* Noms des data sets ou attributs correspondant a des entites MED */
-#define MED_TAILLE_NOM_ENTITE 3
-#define MED_NOM_NUM (char*)"NUM"
-#define MED_NOM_NBR (char*)"NBR"
-#define MED_NOM_NOM (char*)"NOM"
-#define MED_NOM_UNV (char*)"UNV"
-#define MED_NOM_NNS (char*)"NNS"
-#define MED_NOM_NNM (char*)"NNM"
-#define MED_NOM_NNI (char*)"NNI"
-#define MED_NOM_GRO (char*)"GRO"
-#define MED_NOM_ATT (char*)"ATT"
-#define MED_NOM_NCO (char*)"NCO"
-#define MED_NOM_DIM (char*)"DIM"
-#define MED_NOM_FAM (char*)"FAM"
-#define MED_NOM_IDE (char*)"IDE"
-#define MED_NOM_VAL (char*)"VAL"
-#define MED_NOM_DES (char*)"DES"
-#define MED_NOM_COR (char*)"COR"
-#define MED_NOM_DIM (char*)"DIM"
-#define MED_NOM_NOE (char*)"NOE"
-#define MED_NOM_COO (char*)"COO"
-#define MED_NOM_REP (char*)"REP"
-#define MED_NOM_UNI (char*)"UNI"
-#define MED_NOM_NOD (char*)"NOD"
-#define MED_NOM_TYP (char*)"TYP"
-#define MED_NOM_CO (char*)"CO"
-#define MED_NOM_NCW (char*)"NCW"
-#define MED_NOM_TYW (char*)"TYW"
-#define MED_NOM_MAI (char*)"MAI"
-#define MED_NOM_FAC (char*)"FAC"
-#define MED_NOM_ARE (char*)"ARE"
-#define MED_NOM_PO1 (char*)"PO1"
-#define MED_NOM_SE2 (char*)"SE2"
-#define MED_NOM_SE3 (char*)"SE3"
-#define MED_NOM_TR3 (char*)"TR3"
-#define MED_NOM_TR6 (char*)"TR6"
-#define MED_NOM_QU4 (char*)"QU4"
-#define MED_NOM_QU8 (char*)"QU8"
-#define MED_NOM_TE4 (char*)"TE4"
-#define MED_NOM_T10 (char*)"T10"
-#define MED_NOM_HE8 (char*)"HE8"
-#define MED_NOM_H20 (char*)"H20"
-#define MED_NOM_PE6 (char*)"PE6"
-#define MED_NOM_P15 (char*)"P15"
-#define MED_NOM_PY5 (char*)"PY5"
-#define MED_NOM_P13 (char*)"P13"
-
-#define MED_NOM_GEO (char*)"GEO"
-#define MED_NOM_GAU (char*)"GAU"
-#define MED_NOM_NGA (char*)"NGA"
-#define MED_NOM_N (char*)"N"
-#define MED_NOM_PFL (char*)"PFL"
-#define MED_NOM_NDT (char*)"NDT"
-#define MED_NOM_PDT (char*)"PDT"
-#define MED_NOM_NOR (char*)"NOR"
-
-/* Integration des developpements OCC */
-#define MED_NOM_GRD (char*)"GRD"
-#define MED_NOM_BOF (char*)"BOF"
-#define MED_NOM_IN1 (char*)"IN1"
-#define MED_NOM_IN2 (char*)"IN2"
-#define MED_NOM_IN3 (char*)"IN3"
-
-/* Nom du DATA GROUP CONTENANT TOUS LES MAILLAGES DU FICHIER HDF */
-#define MED_MAA (char*)"/ENS_MAA/"
-#define MED_TAILLE_MAA 9
-
-/* Nom du data group ou ranger les champs solution */
-#define MED_CHA (char*)"/CHA/"
-#define MED_TAILLE_CHA 5
-
-/* Nom du data group ou ranger les familles */
-#define MED_FAS (char*)"/FAS/"
-#define MED_TAILLE_FAS 5
-
-/* Nom du data group ou ranger les equivalences */
-#define MED_EQS (char*)"/EQS/"
-#define MED_TAILLE_EQS 5
-
-/* Nom du data groupe contenant les profils */
-#define MED_PROFILS (char*)"/PROFILS/"
-#define MED_TAILLE_PROFILS 9
-
-/*Pour eviter le bug solaris*/
-#include <malloc.h>
-
-/* Interface des routines du composant tools */
-#include "med_misc.hxx"
-#include "med_hdfi.hxx"
-#include "med_utils.hxx"
-#endif /* MED_OUTILS_H */
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-#ifndef MED_PROTO_H
-#define MED_PROTO_H
-
-#ifdef WNT
- #if defined MEDWRAPPER_V2_1_CORE_EXPORTS || defined med_V2_1_EXPORTS
- #if defined WIN32
- #define MEDWRAPPER_V2_1_CORE_EXPORT __declspec( dllexport )
- #else
- #define MEDWRAPPER_V2_1_CORE_EXPORT
- #endif
- #else
- #if defined WIN32
- #define MEDWRAPPER_V2_1_CORE_EXPORT __declspec( dllimport )
- #else
- #define MEDWRAPPER_V2_1_CORE_EXPORT
- #endif
- #endif
-#else
- #define MEDWRAPPER_V2_1_CORE_EXPORT
-#endif
-
-/* Interface de l'API MED */
-namespace med_2_1{
-/* Fichier */
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_idt
-MEDouvrir(char *nom, med_mode_acces mode_acces);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfermer(med_idt fid);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDlFichDes(med_idt fid);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfichEntete(med_idt fid, med_fich_info quoi, char str[]);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfichDesEcr(med_idt fid, char *des, med_mode_acces mode);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDunvCr(med_idt fid, char *maa);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDunvLire(med_idt fid, char *maa,char *nomu);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDformatConforme(const char * nomfich);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDversionConforme(const char *nom);
-MEDWRAPPER_V2_1_CORE_EXPORT extern void
-MEDversionDonner(med_int *majeur, med_int *mineur, med_int *release);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDversionLire(med_idt fid, med_int *majeur, med_int *mineur, med_int *release);
-
-
-
-/* Maillage */
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDmaaCr(med_idt fid, char *maillage, med_int dim);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDdimLire(med_idt fid, char *maillage);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDmaaInfo(med_idt fid, int indice, char *maillage, med_int *dim);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnMaa(med_idt fid);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnbnosoEcr(med_idt fid, char *nom_maillage,med_int n);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnbnosoLire(med_idt fid,char *nom_maillage);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnbnoisEcr(med_idt fid, char *nom_maillage,med_int n);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnbnoisLire(med_idt fid,char *nom_maillage);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnbnomaEcr(med_idt fid, char *nom_maillage,med_int n);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnbnomaLire(med_idt fid,char *nom_maillage);
-
-/* EntMaillage */
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDconnEcr(med_idt fid,char *maa, med_int mdim, med_int *connectivite,med_mode_switch mode_switch,
- med_int nbre,med_mode_acces mode,med_entite_maillage type_ent,
- med_geometrie_element type_geo,med_connectivite type_conn);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDconnLire(med_idt fid,char *maa,med_int mdim,med_int *connectivite,med_mode_switch mode_switch,
- med_int * pfltab, med_size psize,
- med_entite_maillage type_ent, med_geometrie_element type_geo,med_connectivite type_conn);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnomEcr(med_idt fid,char *maa, char *nom, med_int n, med_mode_acces mode,
- med_entite_maillage type_ent,med_geometrie_element type_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnomLire(med_idt fid,char *maa, char *nom, med_int n,
- med_entite_maillage type_ent,med_geometrie_element type_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnumLire(med_idt fid,char *maa, med_int *num, med_int n,
- med_entite_maillage type_ent,med_geometrie_element type_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnumEcr(med_idt fid,char *maa, med_int *num, med_int n, med_mode_acces mode,
- med_entite_maillage type_ent,med_geometrie_element type_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDcoordEcr(med_idt fid, char *maa, med_int mdim, med_float *coo,
- med_mode_switch mode_coo,med_int n,
- med_mode_acces mode, med_repere type_rep, char *nom, char *unit);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDcoordLire(med_idt fid, char *maa, med_int mdim, med_float *coo,
- med_mode_switch mode_coo,med_int numco,
- med_int * pfltab, med_size psize, med_repere *type_rep, char *nom, char *unit);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnEntMaa(med_idt fid, char *maa, med_table quoi, med_entite_maillage type_ent,
- med_geometrie_element type_geo, med_connectivite type_conn);
-
-
-/* Resultat */
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err MEDchampCr(med_idt fid, char *champ, med_type_champ type, char *comp,
- char *unit,med_int ncomp);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDchampEcr(med_idt fid, char *maa, char *cha,unsigned char *val,med_mode_switch interlace,med_int nbelem,med_int ngauss,
- med_int numco, char * profil, med_mode_acces mode, med_entite_maillage type_ent,
- med_geometrie_element type_geo, med_int numdt,char * dt_unit, med_float dt, med_int numo);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDchampLire(med_idt fid,char *maa, char *cha, unsigned char *val,med_mode_switch interlace,med_int numco,
- char *profil,med_entite_maillage type_ent, med_geometrie_element type_geo,
- med_int numdt, med_int numo);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDchampInfo(med_idt fid,int indice,char *champ,
- med_type_champ *type,char *comp,char *unit,
- med_int ncomp);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnChamp(med_idt fid, int indice);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnVal(med_idt fid, char *champ, med_entite_maillage typ_ent,
- med_geometrie_element typ_geo,med_int numdt, med_int numo);
-
-
-/* Famille */
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfamEcr(med_idt fid,char *maa, med_int *fam, med_int n, med_mode_acces mode,
- med_entite_maillage type_ent, med_geometrie_element type_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfamLire(med_idt fid,char *maa, med_int *fam, med_int n,
- med_entite_maillage type_ent,med_geometrie_element type_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfamCr(med_idt fid,char* maa,char *famille,med_int numero,
- med_int *attr_ident, med_int *attr_val,char *attr_desc,med_int n_attr,
- char *groupe , med_int n_groupe);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnFam(med_idt fid,char *maa, int indice, med_dim_famille quoi);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfamInfo(med_idt fid,char *maa,int indice, char *famille,
- med_int *numero,
- med_int *attr_ident, med_int *attr_val, char *attr_desc,
- med_int *n_attr,char *groupe ,med_int *n_groupe);
-
-/* Equivalence */
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDequivCr(med_idt fid,char *maa, char *eq, char *desc);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDequivLire(med_idt fid, char *maa, char *eq, med_int *corr, med_int n,
- med_entite_maillage typ_ent,med_geometrie_element typ_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDequivEcr(med_idt fid, char *maa, char *eq, med_int *corr, med_int n,
- med_mode_acces mode, med_entite_maillage typ_ent, med_geometrie_element typ_geo);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDequivInfo(med_idt fid, char *maa, int ind, char *eq, char *des);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnEquiv(med_idt fid, char *maa);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnCorres(med_idt fid,char *maa,char *eq,med_entite_maillage typ_ent,
- med_geometrie_element typ_geo);
-
-
-/* Routines de niveau intermediaire */
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnEntites(med_idt fid,char *maa,med_entite_maillage typ_ent,
- med_connectivite typ_con);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnoeudsLire(med_idt fid,char *maa,med_int mdim, med_float *coord,
- med_mode_switch mode_coo,
- med_repere *repere,char *nomcoo, char *unicoo,char *nom,
- med_booleen *inom,med_int *num,med_booleen *inum,med_int *fam,
- med_int nnoeuds);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDnoeudsEcr(med_idt fid,char *maa,med_int mdim,med_float *coord,
- med_mode_switch mode_coo,
- med_repere repere,char *nomcoo, char *unicoo,char *nom,
- med_booleen inom,med_int *num,med_booleen inum,med_int *fam,
- med_int nnoeuds,med_mode_acces mode);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDelementsEcr(med_idt fid,char *maa,med_int mdim,med_int *connectivite,med_mode_switch mode_switch,
- char *nom,med_booleen inom,med_int *num,med_booleen inum,
- med_int *fam,med_int nele,med_entite_maillage typ_ent,
- med_geometrie_element typ_geo,med_connectivite typ_conn,med_mode_acces mode);
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDelementsLire(med_idt fid,char *maa,med_int mdim,med_int *connectivite,med_mode_switch mode_switch,
- char *nom,med_booleen *inom,med_int *num,med_booleen *inum,
- med_int *fam,med_int nele,med_entite_maillage typ_ent,
- med_geometrie_element typ_geo,med_connectivite typ_conn);
-
-/* Routines de haut niveau */
-
-/*(? On enlève le reste ?)*/
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfamMaaInfo(med_idt fid,char *maa,med_int *nfam,med_int *nattc,
- med_int *ngroc);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfamMaaLire(med_idt fid,char *maa,
- med_int *numfam,med_int *attide,
- med_int *attval,char *attdes,int *indatt,char *gro,int *indgro,
- med_int nfamilles);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDfamMaaCr(med_idt fid,char *maa,
- med_int *numfam,med_int *attide,
- med_int *attval,char *attdes,int *indatt,char *gro,int *indgro,
- med_int nfamilles);
-
-/* Routines concernant les profils */
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDprofilInfo(med_idt fid, int indice, char *profil, med_int *n);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnProfil(med_idt fid);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDprofilEcr(med_idt fid,med_int *pflval,med_int n,char *nom);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnValProfil(med_idt fid, char *nom);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDprofilLire(med_idt fid, med_int *pflval, char *nom);
-
-/* Routines concernant les pas de temps/ numéros d'ordre */
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_int
-MEDnPasdetemps(med_idt fid,char *cha,med_entite_maillage type_ent,
- med_geometrie_element type_geo);
-
-MEDWRAPPER_V2_1_CORE_EXPORT extern med_err
-MEDpasdetempsInfo(med_idt fid,char *champ
- ,med_entite_maillage type_ent, med_geometrie_element type_geo,
- int indice, char *maa, med_int * ngauss, med_int * numdt, char * dt_unit, med_float * dt,
- med_int * numo);
-
-/* Grilles */
-
-MEDWRAPPER_V2_1_CORE_EXPORT med_int MEDnGrid(med_idt fid, char *maa, med_grid n);
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDgridCr(med_idt fid, char *maillage, med_int dim, med_grid_type typ);
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDgridInfo(med_idt fid, int indice, med_int *isAGrid, med_grid_type *typ);
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDgridEcr(
- med_idt fid, char *maa, med_int mdim, med_float *coo, med_int nb, med_int dim, med_mode_switch mode_coo,
- med_repere repere, char *nomcoo, char *unicoo, med_mode_acces mode );
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDgridLire(
- med_idt fid, char *maa, med_int mdim, med_float *coo, med_int dim, med_mode_switch mode_coo,
- med_repere *repere, char *nomcoo, char *unicoo );
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDfamGridEcr(med_idt fid, char *maa, med_int *fam, med_int n, med_mode_acces mode, med_entite_maillage type_ent);
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDfamGridLire(med_idt fid, char *maa, med_int *fam, med_int n, med_entite_maillage type_ent);
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDbodyFittedEcr(
- med_idt fid, char *maa, med_int mdim, med_float *coo, med_int *nbr, med_mode_switch mode_coo,
- med_repere repere, char *nomcoo, char *unicoo, med_int *fam, med_int nnoeuds, med_mode_acces mode );
-MEDWRAPPER_V2_1_CORE_EXPORT med_err MEDbodyFittedLire(
- med_idt fid, char *maa, med_int mdim, med_float *coo, med_mode_switch mode_coo,
- med_repere *repere, char *nomcoo, char *unicoo, med_int *fam, med_int nnoeuds );
-}
-
-#endif /* MED_PROTO_H */
-
-
-
-
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-# ifndef __UTILITES_H__
-# define __UTILITES_H__
-
-
-/* pour indiquer le statut des arguments des fonctions. */
-
-#ifdef _IN
-#error _IN already defined
-#endif
-#define _IN
-
-#ifdef _OUT
-#error _OUT already defined
-#endif
-#define _OUT
-
-#ifdef _INOUT
-#error _INOUT already defined
-#endif
-#define _INOUT
-
-#ifdef _UNUSED
-#error _UNUSED already defined
-#endif
-#define _UNUSED
-
-
-
-
-
-
-
-/* --- Pour afficher le nom du fichier source courant et le numero de la ligne courante --- */
-/* --- sur la stderr. --- */
-
-# define ICI {\
- fflush(stdout);\
- fprintf(stderr, "%s [%d] : " , __FILE__ , __LINE__ ) ;\
- fflush(stderr) ;\
- }
-
-
-
-
-
-
-
-/* --- Pour afficher la date et l'heure de la compilation du fichier source courant, --- */
-/* --- sur la stdout. --- */
-
-# ifdef INFOS_COMPILATION
-# error INFOS_COMPILATION already defined
-# endif
-# define INFOS_COMPILATION {\
- fflush(stderr);\
- fprintf(stdout, "%s [%d] : " , __FILE__ , __LINE__ ) ;\
- fprintf(stdout,"Compilation le %s" , __DATE__);\
- fprintf(stdout," a %s" , __TIME__ );\
- fprintf(stdout,"\n\n\n" );\
- fflush(stdout) ;\
- }
-
-
-
-
-
-
-
-/* --- Pour attendre "secondes" secondes et afficher un message sur la stderr indiquant --- */
-/* --- cette attente volontaire. --- */
-
-# ifdef ATTENTE
-# error ATTENTE already defined
-# endif
-# define ATTENTE(secondes) {\
- ICI ;\
- fprintf( stderr, "ATTENTE de %d secondes" , secondes);\
- fflush(stderr) ;\
- sleep(secondes) ;\
- fprintf( stderr, "\n" );\
- fflush(stderr) ;\
- }
-
-
-
-
-
-
-
-/* ---------- Les macros suivantes ne doivent pas deja exister ! ---------- */
-
-# ifdef EXECUTION
-# error EXECUTION already defined
-# endif
-# ifdef INTERRUPTION
-# error INTERRUPTION already defined
-# endif
-# ifdef ISCRUTE
-# error ISCRUTE already defined
-# endif
-# ifdef RSCRUTE
-# error RSCRUTE already defined
-# endif
-# ifdef SSCRUTE
-# error SSCRUTE already defined
-# endif
-# ifdef CSCRUTE
-# error CSCRUTE already defined
-# endif
-# ifdef XSCRUTE
-# error XSCRUTE already defined
-# endif
-# ifdef MESSAGE
-# error MESSAGE already defined
-# endif
-
-
-
-
-
-# ifdef _DEBOG_
-
-
-/* --- Pour tracer sur la stderr l'execution d"une instruction. --- */
-
-# define EXECUTION(instruction) {\
- ICI ;\
- fprintf( stderr,"INSTRUCTION %s" , #instruction ) ;\
- fflush(stderr);\
- instruction ;\
- fflush(stdout);\
- fprintf( stderr," FRANCHIE\n" ) ;\
- fflush(stderr);\
- }
-
-
-
-
-
-
-
-/* --- Pour afficher un message d'interruption volontaire et retourner le code retour --- */
-/* --- "code" --- */
-
-# define INTERRUPTION(code) {\
- ICI ;\
- fprintf( stderr," INTERRUPTION code = %d",code) ;\
- fprintf(stderr,"\n") ;\
- exit(code) ;\
- }
-
-
-
-
-
-
-
-/* --- Pour conditionner la poursuite du traitement par la validite de la condition --- */
-/* --- "condiiton". --- */
-
-# ifndef ASSERT
-# define ASSERT(condition) if( !(condition) ){\
- ICI ;\
- fprintf(stderr,"condition %s VIOLEE\n",#condition);\
- INTERRUPTION(17);\
- }
-# endif /* # ifndef ASSERT */
-
-
-
-
-
-
-
-/* --- Pour afficher sur la stderr la valeur d'une variable precedee de son nom. --- */
-
-# define ISCRUTE(entier) {\
- ICI ;\
- fprintf(stderr,"%s = %d\n",#entier,entier) ;\
- fflush(stderr) ;\
- }
-# define RSCRUTE(reel) {\
- ICI ;\
- fprintf(stderr,"%s = %f\n",#reel,reel) ;\
- fflush(stderr) ;\
- }
-# define XSCRUTE(pointeur) {\
- ICI ;\
- fprintf(stderr,"%s = %x\n",#pointeur,pointeur) ;\
- fflush(stderr) ;\
- }
-# define CSCRUTE(car) {\
- ICI ;\
- fprintf(stderr,"%s = %c\n",#car,car) ;\
- fflush(stderr) ;\
- }
-# define SSCRUTE(chaine) {\
- ICI ;\
- fprintf(stderr,"%s = \"%s\"\n",#chaine,chaine) ;\
- fflush(stderr) ;\
- }
-# define MESSAGE(chaine) {\
- ICI ;\
- fprintf(stderr,"%s\n",chaine) ;\
- fflush(stderr) ;\
- }
-# define FIN(nom) {\
- ICI ;\
- fprintf( stderr , "} FIN %s\n\n\n" , nom ) ;\
- fflush(stderr) ;\
- }
-# define DEBUT(nom) {\
- fprintf( stderr , "\n\n\n") ;\
- ICI ;\
- fprintf( stderr , "{ DEBUT %s\n" , nom ) ;\
- fflush(stderr) ;\
- }
-
-
-# else /* # ifdef _DEBOG_ */
-
-
-
-# define EXECUTION(instruction) instruction
-# define INTERRUPTION(code)
-
-# ifndef ASSERT
-# define ASSERT(condition)
-# endif
-
-# define ISCRUTE(entier)
-# define RSCRUTE(reel)
-# define CSCRUTE(car)
-# define SSCRUTE(chaine)
-# define MESSAGE(chaine)
-# define DEBUT(nom)
-# define FIN(nom)
-
-
-# endif /* # ifdef _DEBOG_ */
-
-
-# endif /* # ifndef __UTILITES_H__ */
+++ /dev/null
-/*************************************************************************
-* COPYRIGHT (C) 1999 - 2002 EDF R&D
-* THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-* IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
-* EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
-*
-* THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-* WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-* LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-*
-* YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
-* ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
-* INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
-*
-*************************************************************************/
-
-/******************************************************************************
- * - Nom du fichier : test1.c
- *
- * - Description : tests des routines d'ouverture/fermeture des
- * fichiers MED
- *
- *****************************************************************************/
-
-#include "med.hxx"
-using namespace med_2_1;
-
-/******************************************************************************
- * OUVERTURE/FERMETURE DE FICHIERS :
- *
- * Description :
- * - ouverture du fichier en mode ecriture avec remplacement
- * - ecriture d'une description du fichier (optionnel)
- * - fermeture du fichier
- * - ouverture du fichier en mode de lecture
- * - fermeture du fichier
- *****************************************************************************/
-
-int main (int argc, char **argv)
-{
- med_err ret = 0;
- med_idt fid;
- char des[MED_TAILLE_DESC+1]="Ceci est un courte description du mon fichier test1.med";
-
- fid = MEDouvrir((char*)"test1.med",MED_REMP);
- if (fid < 0)
- ret = -1;
- printf("%d\n",ret);
-
- if (ret == 0)
- ret = MEDfichDesEcr(fid,des, MED_REMP);
- printf("%d\n",ret);
-
- ret = MEDfermer(fid);
- printf("%d\n",ret);
-
- fid = MEDouvrir((char*)"test1.med",MED_LECT);
- if (fid < 0)
- ret = -1;
- printf("%d\n",ret);
-
- ret = MEDfermer(fid);
- printf("%d\n",ret);
-
- return 0;
-}
-
-
-
-
+++ /dev/null
-# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-# File :
-# Author :
-# Module :
-# $Header$
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-# if without KERNEL, build only med 2.1 library
-if MED_ENABLE_KERNEL
- SUBDIRS = Core Wrapper
-else !MED_ENABLE_KERNEL
- SUBDIRS = Core
-endif
-
-DIST_SUBDIRS = Core Wrapper
+++ /dev/null
-# Copyright (C) 2007-2012 CEA/DEN, EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-INCLUDE_DIRECTORIES(
- ${HDF5_INCLUDE_DIRS}
- ${BOOST_INCLUDE_DIRS}
- ${CMAKE_CURRENT_SOURCE_DIR}/../../Base
- ${CMAKE_CURRENT_SOURCE_DIR}/../Core
- )
-
-IF(MED_ENABLE_KERNEL)
- INCLUDE_DIRECTORIES(${KERNEL_ROOT_DIR}/include/salome)
-ELSE(MED_ENABLE_KERNEL)
- INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/adm_local_without_kernel/unix)
-ENDIF(MED_ENABLE_KERNEL)
-
-SET(MEDWrapper_V2_1_SOURCES
- MED_V2_1_Wrapper.cxx
- )
-
-ADD_LIBRARY(MEDWrapper_V2_1 SHARED ${MEDWrapper_V2_1_SOURCES})
-SET_TARGET_PROPERTIES(MEDWrapper_V2_1 PROPERTIES COMPILE_FLAGS "-D${MACHINE} ${BOOST_DEFINITIONS} ${HDF5_DEFINITIONS}")
-TARGET_LINK_LIBRARIES(MEDWrapper_V2_1 med_V2_1 MEDWrapperBase)
-INSTALL(TARGETS MEDWrapper_V2_1 DESTINATION ${MED_salomelib_LIBS})
-
-FILE(GLOB med_V2_1_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
-INSTALL(FILES ${med_V2_1_HEADERS_HXX} DESTINATION ${MED_salomeinclude_HEADERS})
+++ /dev/null
-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-
-// File :
-// Author :
-// Module :
-// $Header$
-//
-#include "MED_V2_1_Wrapper.hxx"
-#include "MED_Algorithm.hxx"
-#include "MED_Utilities.hxx"
-
-#include "med.hxx"
-using namespace med_2_1;
-
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-// static int MYDEBUG = 0;
-#endif
-
-
-
-namespace MED
-{
-
- template<>
- TInt
- GetDESCLength<eV2_1>()
- {
- return 200;
- }
-
- template<>
- TInt
- GetIDENTLength<eV2_1>()
- {
- return 8;
- }
-
- template<>
- TInt
- GetLNOMLength<eV2_1>()
- {
- return 80;
- }
-
- template<>
- TInt
- GetNOMLength<eV2_1>()
- {
- return 32;
- }
-
- template<>
- TInt
- GetPNOMLength<eV2_1>()
- {
- return 8;
- }
-
- template<>
- void
- GetVersionRelease<eV2_1>(TInt& majeur, TInt& mineur, TInt& release)
- {
- MEDversionDonner(&majeur, &mineur, &release);
- }
-
- template<>
- TInt
- GetNbConn<eV2_1>(EGeometrieElement typmai,
- EEntiteMaillage typent,
- TInt mdim)
- {
- TInt nsup = 0;
-
- if(typent == eMAILLE){
- TInt edim = typmai / 100;
- if(mdim == 2 || mdim == 3)
- if(edim == 1)
- nsup = 1;
-
- if(mdim == 3)
- if (edim == 2)
- nsup = 1;
- }
-
- return nsup + typmai%100;
- }
-
- namespace V2_1
- {
-
- //---------------------------------------------------------------
- class TFile{
- TFile();
- TFile(const TFile&);
-
- public:
- TFile(const std::string& theFileName):
- myFid(-1),
- myCount(0),
- myFileName(theFileName)
- {}
-
- ~TFile()
- {
- Close();
- }
-
- void
- Open(EModeAcces theMode, TErr* theErr = NULL)
- {
- if(myCount++ == 0){
- char* aFileName = const_cast<char*>(myFileName.c_str());
- myFid = MEDouvrir(aFileName,med_mode_acces(theMode));
- }
- if(theErr){
- *theErr = TErr(myFid);
- INITMSG(MYDEBUG && myFid < 0,"TFile::Open - MED_MODE_ACCES = "<<theMode<<"; myFid = "<<myFid<<std::endl);
- }else if(myFid < 0)
- EXCEPTION(std::runtime_error, "TFile - MEDouvrir('"<<myFileName<<"',"<<theMode<<")");
- }
-
- const TIdt& Id() const
- {
- if(myFid < 0)
- EXCEPTION(std::runtime_error, "TFile - GetFid() < 0");
- return myFid;
- }
-
- void Close()
- {
- if(--myCount == 0)
- MEDfermer(myFid);
- }
-
- protected:
- std::string myFileName;
- TInt myCount;
- TIdt myFid;
- };
-
-
- //---------------------------------------------------------------
- class TFileWrapper
- {
- PFile myFile;
-
- public:
- TFileWrapper(const PFile& theFile, EModeAcces theMode, TErr* theErr = NULL):
- myFile(theFile)
- {
- myFile->Open(theMode,theErr);
- }
-
- ~TFileWrapper(){
- myFile->Close();
- }
- };
-
-
- //---------------------------------------------------------------
- TVWrapper
- ::TVWrapper(const std::string& theFileName):
- myFile(new TFile(theFileName))
- {}
-
-
- TInt
- TVWrapper
- ::GetNbMeshes(TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- return MEDnMaa(myFile->Id());
- }
-
-
- void
- TVWrapper
- ::GetMeshInfo(TInt theMeshId,
- TMeshInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TValueHolder<TString, char> aMeshName(theInfo.myName);
- TValueHolder<TInt, med_int> aDim(theInfo.mySpaceDim);
-
- TErr aRet = MEDmaaInfo(myFile->Id(),
- theMeshId,
- &aMeshName,
- &aDim);
-
- if ( theInfo.mySpaceDim < 1 )
- theInfo.mySpaceDim = MEDdimLire( myFile->Id(), &aMeshName );
-
- theInfo.myDim = theInfo.mySpaceDim;
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetMeshInfo - MEDmaaInfo(...)");
- }
-
-
- void
- TVWrapper
- ::SetMeshInfo(const TMeshInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,theMode,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TMeshInfo& anInfo = const_cast<TMeshInfo&>(theInfo);
- TValueHolder<TString, char> aMeshName(anInfo.myName);
- TValueHolder<TInt, med_int> aDim(anInfo.myDim);
-
- TErr aRet = MEDmaaCr(myFile->Id(),
- &aMeshName,
- aDim);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"SetMeshInfo - MEDmaaCr(...)");
- }
-
-
- void
- TVWrapper
- ::SetMeshInfo(const TMeshInfo& theInfo,
- TErr* theErr)
- {
- TErr aRet;
- SetMeshInfo(theInfo,eECRI,&aRet);
-
- if(aRet < 0)
- SetMeshInfo(theInfo,eREMP,&aRet);
-
- if(theErr)
- *theErr = aRet;
- }
-
-
- TInt
- TVWrapper
- ::GetNbFamilies(const TMeshInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- TMeshInfo& anInfo = const_cast<TMeshInfo&>(theInfo);
- TValueHolder<TString, char> aMeshName(anInfo.myName);
-
- return MEDnFam(myFile->Id(),
- &aMeshName,
- 0,
- MED_FAMILLE);
- }
-
-
- TInt
- TVWrapper
- ::GetNbFamAttr(TInt theFamId,
- const TMeshInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- TMeshInfo& anInfo = const_cast<TMeshInfo&>(theInfo);
- TValueHolder<TString, char> aMeshName(anInfo.myName);
-
- return MEDnFam(myFile->Id(),
- &aMeshName,
- theFamId,
- MED_ATTR);
- }
-
-
- TInt
- TVWrapper
- ::GetNbFamGroup(TInt theFamId,
- const TMeshInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- TMeshInfo& anInfo = const_cast<TMeshInfo&>(theInfo);
- TValueHolder<TString, char> aMeshName(anInfo.myName);
-
- return MEDnFam(myFile->Id(),
- &aMeshName,
- theFamId,
- MED_GROUPE);
- }
-
-
- void
- TVWrapper
- ::GetFamilyInfo(TInt theFamId,
- TFamilyInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TMeshInfo& aMeshInfo = *theInfo.myMeshInfo;
-
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
- TValueHolder<TString, char> aFamilyName(theInfo.myName);
- TValueHolder<TInt, med_int> aFamilyId(theInfo.myId);
- TValueHolder<TFamAttr, med_int> anAttrId(theInfo.myAttrId);
- TValueHolder<TFamAttr, med_int> anAttrVal(theInfo.myAttrVal);
- TValueHolder<TInt, med_int> aNbAttr(theInfo.myNbAttr);
- TValueHolder<TString, char> anAttrDesc(theInfo.myAttrDesc);
- TValueHolder<TInt, med_int> aNbGroup(theInfo.myNbGroup);
- TValueHolder<TString, char> aGroupNames(theInfo.myGroupNames);
-
- TErr aRet = MEDfamInfo(myFile->Id(),
- &aMeshName,
- theFamId,
- &aFamilyName,
- &aFamilyId,
- &anAttrId,
- &anAttrVal,
- &anAttrDesc,
- &aNbAttr,
- &aGroupNames,
- &aNbGroup);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetFamilyInfo - MEDfamInfo - "<<
- "&aMeshInfo.myName[0] = '"<<&aMeshName<<"'; "<<
- "theFamId = "<<theFamId<<"; "<<
- "&theInfo.myName[0] = '"<<&aFamilyName<<"'; "<<
- "theInfo.myId = "<<theInfo.myId);
- }
-
-
- void
- TVWrapper
- ::SetFamilyInfo(const TFamilyInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,theMode,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TFamilyInfo& anInfo = const_cast<TFamilyInfo&>(theInfo);
- TMeshInfo& aMeshInfo = *anInfo.myMeshInfo;
-
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
- TValueHolder<TString, char> aFamilyName(anInfo.myName);
- TValueHolder<TInt, med_int> aFamilyId(anInfo.myId);
- TValueHolder<TFamAttr, med_int> anAttrId(anInfo.myAttrId);
- TValueHolder<TFamAttr, med_int> anAttrVal(anInfo.myAttrVal);
- TValueHolder<TInt, med_int> aNbAttr(anInfo.myNbAttr);
- TValueHolder<TString, char> anAttrDesc(anInfo.myAttrDesc);
- TValueHolder<TInt, med_int> aNbGroup(anInfo.myNbGroup);
- TValueHolder<TString, char> aGroupNames(anInfo.myGroupNames);
-
- TErr aRet = MEDfamCr(myFile->Id(),
- &aMeshName,
- &aFamilyName,
- aFamilyId,
- &anAttrId,
- &anAttrVal,
- &anAttrDesc,
- aNbAttr,
- &aGroupNames,
- aNbGroup);
-
- INITMSG(MYDEBUG && aRet,"TVWrapper::SetFamilyInfo - MED_MODE_ACCES = "<<theMode<<"; aRet = "<<aRet<<std::endl);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"SetFamilyInfo - MEDfamCr(...)");
- }
-
-
- void
- TVWrapper
- ::SetFamilyInfo(const TFamilyInfo& theInfo,
- TErr* theErr)
- {
- TErr aRet;
- SetFamilyInfo(theInfo,eECRI,&aRet);
-
- if(aRet < 0)
- SetFamilyInfo(theInfo,eREMP,&aRet);
-
- if(theErr)
- *theErr = aRet;
- }
-
-
- TInt
- TVWrapper
- ::GetNbNodes(const TMeshInfo& theMeshInfo,
- TErr* theErr)
- {
- MSG(MYDEBUG,"TVWrapper::GetNbNodes");
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- TMeshInfo& aMeshInfo = const_cast<TMeshInfo&>(theMeshInfo);
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
-
- TInt aRet = MEDnEntMaa(myFile->Id(),
- &aMeshName,
- MED_COOR,
- MED_NOEUD,
- med_geometrie_element(0),
- med_connectivite(0));
- return aRet;
- }
-
-
- void
- TVWrapper
- ::GetNodeInfo(TNodeInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TMeshInfo& aMeshInfo = *theInfo.myMeshInfo;
-
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
- TValueHolder<TInt, med_int> aDim(aMeshInfo.myDim);
- TValueHolder<TNodeCoord, med_float> aCoord(theInfo.myCoord);
- TValueHolder<EModeSwitch, med_mode_switch> aModeSwitch(theInfo.myModeSwitch);
- TValueHolder<ERepere, med_repere> aSystem(theInfo.mySystem);
- TValueHolder<TString, char> aCoordNames(theInfo.myCoordNames);
- TValueHolder<TString, char> aCoordUnits(theInfo.myCoordUnits);
- TValueHolder<TString, char> anElemNames(theInfo.myElemNames);
- TValueHolder<EBooleen, med_booleen> anIsElemNames(theInfo.myIsElemNames);
- TValueHolder<TElemNum, med_int> anElemNum(theInfo.myElemNum);
- TValueHolder<EBooleen, med_booleen> anIsElemNum(theInfo.myIsElemNum);
- TValueHolder<TElemNum, med_int> aFamNum(theInfo.myFamNum);
- TValueHolder<TInt, med_int> aNbElem(theInfo.myNbElem);
-
- TErr aRet = MEDnoeudsLire(myFile->Id(),
- &aMeshName,
- aDim,
- &aCoord,
- aModeSwitch,
- &aSystem,
- &aCoordNames,
- &aCoordUnits,
- &anElemNames,
- &anIsElemNames,
- &anElemNum,
- &anIsElemNum,
- &aFamNum,
- aNbElem);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetNodeInfo - MEDnoeudsLire(...)");
- }
-
-
- void
- TVWrapper
- ::SetNodeInfo(const MED::TNodeInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,theMode,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- MED::TNodeInfo& anInfo = const_cast<MED::TNodeInfo&>(theInfo);
- MED::TMeshInfo& aMeshInfo = *anInfo.myMeshInfo;
-
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
- TValueHolder<TInt, med_int> aDim(aMeshInfo.myDim);
- TValueHolder<TNodeCoord, med_float> aCoord(anInfo.myCoord);
- TValueHolder<EModeSwitch, med_mode_switch> aModeSwitch(anInfo.myModeSwitch);
- TValueHolder<ERepere, med_repere> aSystem(anInfo.mySystem);
- TValueHolder<TString, char> aCoordNames(anInfo.myCoordNames);
- TValueHolder<TString, char> aCoordUnits(anInfo.myCoordUnits);
- TValueHolder<TString, char> anElemNames(anInfo.myElemNames);
- TValueHolder<EBooleen, med_booleen> anIsElemNames(anInfo.myIsElemNames);
- TValueHolder<TElemNum, med_int> anElemNum(anInfo.myElemNum);
- TValueHolder<EBooleen, med_booleen> anIsElemNum(anInfo.myIsElemNum);
- TValueHolder<TElemNum, med_int> aFamNum(anInfo.myFamNum);
- TValueHolder<TInt, med_int> aNbElem(anInfo.myNbElem);
-
- TErr aRet = MEDnoeudsEcr(myFile->Id(),
- &aMeshName,
- aDim,
- &aCoord,
- aModeSwitch,
- aSystem,
- &aCoordNames,
- &aCoordUnits,
- &anElemNames,
- anIsElemNames,
- &anElemNum,
- anIsElemNum,
- &aFamNum,
- aNbElem,
- MED_REMP);
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"SetNodeInfo - MEDnoeudsEcr(...)");
- }
-
-
- void
- TVWrapper
- ::SetNodeInfo(const MED::TNodeInfo& theInfo,
- TErr* theErr)
- {
- TErr aRet;
- SetNodeInfo(theInfo,eECRI,&aRet);
-
- if(aRet < 0)
- SetNodeInfo(theInfo,eREMP,&aRet);
-
- if(theErr)
- *theErr = aRet;
- }
-
-
- TEntityInfo
- TVWrapper
- ::GetEntityInfo(const TMeshInfo& theMeshInfo,
- EConnectivite theConnMode,
- TErr* theErr)
- {
- TEntityInfo anInfo;
-
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return anInfo;
-
- TInt aNbElem = GetNbNodes(theMeshInfo);
- if(aNbElem > 0){
- anInfo[eNOEUD][ePOINT1] = aNbElem;
- const TEntity2GeomSet& anEntity2GeomSet = GetEntity2GeomSet();
- TEntity2GeomSet::const_iterator anIter = anEntity2GeomSet.begin();
- TEntity2GeomSet::const_iterator anIterEnd = anEntity2GeomSet.end();
- for(; anIter != anIterEnd; anIter++){
- const EEntiteMaillage& anEntity = anIter->first;
- const TGeomSet& aGeomSet = anIter->second;
- TGeomSet::const_iterator anIter2 = aGeomSet.begin();
- TGeomSet::const_iterator anIterEnd2 = aGeomSet.end();
- for(; anIter2 != anIterEnd2; anIter2++){
- const EGeometrieElement& aGeom = *anIter2;
- aNbElem = GetNbCells(theMeshInfo,anEntity,aGeom,theConnMode,theErr);
- if(aNbElem > 0)
- anInfo[anEntity][aGeom] = aNbElem;
- }
- }
- }
- return anInfo;
- }
-
-
- TInt
- TVWrapper
- ::GetNbCells(const MED::TMeshInfo& theMeshInfo,
- EEntiteMaillage theEntity,
- EGeometrieElement theGeom,
- EConnectivite theConnMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- MED::TMeshInfo& aMeshInfo = const_cast<MED::TMeshInfo&>(theMeshInfo);
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
-
- return MEDnEntMaa(myFile->Id(),
- &aMeshName,
- MED_CONN,
- med_entite_maillage(theEntity),
- med_geometrie_element(theGeom),
- med_connectivite(theConnMode));
- }
-
-
- void
- TVWrapper
- ::GetCellInfo(MED::TCellInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- MED::TMeshInfo& aMeshInfo = *theInfo.myMeshInfo;
- TInt aNbElem = theInfo.myElemNum->size();
-
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
- TValueHolder<TInt, med_int> aDim(aMeshInfo.myDim);
- TValueHolder<TElemNum, med_int> aConn(theInfo.myConn);
- TValueHolder<EModeSwitch, med_mode_switch> aModeSwitch(theInfo.myModeSwitch);
- TValueHolder<TString, char> anElemNames(theInfo.myElemNames);
- TValueHolder<EBooleen, med_booleen> anIsElemNames(theInfo.myIsElemNames);
- TValueHolder<TElemNum, med_int> anElemNum(theInfo.myElemNum);
- TValueHolder<EBooleen, med_booleen> anIsElemNum(theInfo.myIsElemNum);
- TValueHolder<TElemNum, med_int> aFamNum(theInfo.myFamNum);
- TValueHolder<EEntiteMaillage, med_entite_maillage> anEntity(theInfo.myEntity);
- TValueHolder<EGeometrieElement, med_geometrie_element> aGeom(theInfo.myGeom);
- TValueHolder<EConnectivite, med_connectivite> aConnMode(theInfo.myConnMode);
-
- TErr aRet;
- aRet = MEDelementsLire(myFile->Id(),
- &aMeshName,
- aDim,
- &aConn,
- aModeSwitch,
- &anElemNames,
- &anIsElemNames,
- &anElemNum,
- &anIsElemNum,
- &aFamNum,
- aNbElem,
- anEntity,
- aGeom,
- aConnMode);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetCellInfo - MEDelementsLire(...)");
- }
-
-
- void
- TVWrapper
- ::SetCellInfo(const MED::TCellInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,theMode,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- MED::TCellInfo& anInfo = const_cast<MED::TCellInfo&>(theInfo);
- MED::TMeshInfo& aMeshInfo = *anInfo.myMeshInfo;
-
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
- TValueHolder<TInt, med_int> aDim(aMeshInfo.myDim);
- TValueHolder<TElemNum, med_int> aConn(anInfo.myConn);
- TValueHolder<EModeSwitch, med_mode_switch> aModeSwitch(anInfo.myModeSwitch);
- TValueHolder<TString, char> anElemNames(anInfo.myElemNames);
- TValueHolder<EBooleen, med_booleen> anIsElemNames(anInfo.myIsElemNames);
- TValueHolder<TElemNum, med_int> anElemNum(anInfo.myElemNum);
- TValueHolder<EBooleen, med_booleen> anIsElemNum(anInfo.myIsElemNum);
- TValueHolder<TElemNum, med_int> aFamNum(anInfo.myFamNum);
- TValueHolder<EEntiteMaillage, med_entite_maillage> anEntity(anInfo.myEntity);
- TValueHolder<EGeometrieElement, med_geometrie_element> aGeom(anInfo.myGeom);
- TValueHolder<EConnectivite, med_connectivite> aConnMode(anInfo.myConnMode);
-
- TErr aRet;
- aRet = MEDelementsEcr(myFile->Id(),
- &aMeshName,
- aDim,
- &aConn,
- aModeSwitch,
- &anElemNames,
- anIsElemNames,
- &anElemNum,
- anIsElemNum,
- &aFamNum,
- anInfo.myNbElem,
- anEntity,
- aGeom,
- aConnMode,
- MED_REMP);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetCellInfo - MEDelementsLire(...)");
- }
-
-
- void
- TVWrapper
- ::SetCellInfo(const MED::TCellInfo& theInfo,
- TErr* theErr)
- {
- TErr aRet;
- SetCellInfo(theInfo,eECRI,&aRet);
-
- if(aRet < 0)
- SetCellInfo(theInfo,eREMP,&aRet);
-
- if(theErr)
- *theErr = aRet;
- }
-
-
- TInt
- TVWrapper
- ::GetNbFields(TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- return MEDnChamp(myFile->Id(),0);
- }
-
-
- TInt
- TVWrapper
- ::GetNbComp(TInt theFieldId,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- return MEDnChamp(myFile->Id(),theFieldId);
- }
-
-
- void
- TVWrapper
- ::GetFieldInfo(TInt theFieldId,
- MED::TFieldInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TString aFieldName(256); // Protect from memory problems with too long names
- TValueHolder<ETypeChamp, med_type_champ> aType(theInfo.myType);
- TValueHolder<TString, char> aCompNames(theInfo.myCompNames);
- TValueHolder<TString, char> anUnitNames(theInfo.myUnitNames);
-
- TErr aRet;
- aRet = MEDchampInfo(myFile->Id(),
- theFieldId,
- &aFieldName[0],
- &aType,
- &aCompNames,
- &anUnitNames,
- theInfo.myNbComp);
-
- theInfo.SetName(aFieldName);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetFieldInfo - MEDchampInfo(...)");
- }
-
-
- void
- TVWrapper
- ::SetFieldInfo(const MED::TFieldInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,theMode,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- MED::TFieldInfo& anInfo = const_cast<MED::TFieldInfo&>(theInfo);
-
- TValueHolder<TString, char> aFieldName(anInfo.myName);
- TValueHolder<ETypeChamp, med_type_champ> aType(anInfo.myType);
- TValueHolder<TString, char> aCompNames(anInfo.myCompNames);
- TValueHolder<TString, char> anUnitNames(anInfo.myUnitNames);
-
- TErr aRet;
- aRet = MEDchampCr(myFile->Id(),
- &aFieldName,
- aType,
- &aCompNames,
- &anUnitNames,
- anInfo.myNbComp);
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"SetFieldInfo - MEDchampCr(...)");
- }
-
-
- void
- TVWrapper
- ::SetFieldInfo(const MED::TFieldInfo& theInfo,
- TErr* theErr)
- {
- try{
-
- TErr aRet;
- SetFieldInfo(theInfo,eECRI,&aRet);
-
- if(aRet < 0)
- SetFieldInfo(theInfo,eREMP,&aRet);
-
- if(theErr)
- *theErr = aRet;
-
- }catch(const std::exception& theExc){
- EXCEPTION(std::runtime_error,"SetFieldInfo(...)"<<std::endl<<
- theExc.what());
- }catch(...){
- throw;
- }
- }
-
- //-----------------------------------------------------------------
- TInt
- TVWrapper
- ::GetNbProfiles(TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return -1;
-
- return MEDnProfil(myFile->Id());
- }
-
-
- TProfileInfo::TInfo
- TVWrapper
- ::GetProfilePreInfo(TInt theId,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return TProfileInfo::TInfo("",-1);
-
- med_int aSize = -1;
- TVector<char> aName(GetNOMLength<eV2_1>()+1);
-
- TErr aRet;
- aRet = MEDprofilInfo(myFile->Id(),
- theId,
- &aName[0],
- &aSize);
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetProfilePreInfo - MEDprofilInfo(...)");
-
- return TProfileInfo::TInfo(&aName[0],aSize);
- }
-
-
- void
- TVWrapper
- ::GetProfileInfo(TInt theId,
- TProfileInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TValueHolder<TElemNum, med_int> anElemNum(theInfo.myElemNum);
- TValueHolder<TString, char> aProfileName(theInfo.myName);
-
- TErr aRet;
- aRet = MEDprofilLire(myFile->Id(),
- &anElemNum,
- &aProfileName);
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetProfileInfo - MEDprofilLire(...)");
- }
-
- void
- TVWrapper
- ::SetProfileInfo(const TProfileInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,theMode,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TProfileInfo& anInfo = const_cast<TProfileInfo&>(theInfo);
- TValueHolder<TElemNum, med_int> anElemNum(anInfo.myElemNum);
- TValueHolder<TString, char> aProfileName(anInfo.myName);
-
- TErr aRet;
- aRet = MEDprofilEcr(myFile->Id(), // descripteur du fichier.
- &anElemNum, // tableau de valeurs du profil.
- theInfo.GetSize(), // taille du profil.
- &aProfileName); // nom profil.
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"SetProfileInfo - MEDprofilEcr(...)");
- }
-
- void
- TVWrapper
- ::SetProfileInfo(const TProfileInfo& theInfo,
- TErr* theErr)
- {
- TErr aRet;
- SetProfileInfo(theInfo,eECRI,&aRet);
-
- if(aRet < 0)
- SetProfileInfo(theInfo,eREMP,&aRet);
-
- if(theErr)
- *theErr = aRet;
- }
-
- //-----------------------------------------------------------------
- TInt
- TVWrapper
- ::GetNbTimeStamps(const MED::TFieldInfo& theInfo,
- const MED::TEntityInfo& theEntityInfo,
- EEntiteMaillage& theEntity,
- TGeom2Size& theGeom2Size,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr){
- if(theEntityInfo.empty())
- *theErr = -1;
- if(*theErr < 0)
- return -1;
- }else if(theEntityInfo.empty())
- EXCEPTION(std::runtime_error,"GetNbTimeStamps - There is no any Entity on the Mesh");
-
- bool anIsPerformAdditionalCheck = GetNbMeshes() > 1;
-#ifdef _DEBUG_
- static bool anIsCheckOnlyFirstTimeStamp = false;
-#else
- static bool anIsCheckOnlyFirstTimeStamp = true;
-#endif
-
- theGeom2Size.clear();
- TInt aNbTimeStamps = 0;
- TIdt anId = myFile->Id();
-
- MED::TFieldInfo& anInfo = const_cast<MED::TFieldInfo&>(theInfo);
- TValueHolder<TString, char> aFieldName(anInfo.myName);
- MED::TMeshInfo& aMeshInfo = anInfo.myMeshInfo;
-
- TEntityInfo::const_iterator anIter = theEntityInfo.begin();
- for(; anIter != theEntityInfo.end(); anIter++){
- med_entite_maillage anEntity = med_entite_maillage(anIter->first);
- const TGeom2Size& aGeom2Size = anIter->second;
- TGeom2Size::const_iterator anGeomIter = aGeom2Size.begin();
- for(; anGeomIter != aGeom2Size.end(); anGeomIter++){
- med_geometrie_element aGeom = med_geometrie_element(anGeomIter->first);
- TInt aNbStamps = MEDnPasdetemps(anId,
- &aFieldName,
- anEntity,
- aGeom);
- bool anIsSatisfied = aNbStamps > 0;
- if(anIsSatisfied){
- INITMSG(MYDEBUG,
- "GetNbTimeStamps aNbTimeStamps = "<<aNbStamps<<
- "; aGeom = "<<aGeom<<"; anEntity = "<<anEntity<<"\n");
- if(anIsPerformAdditionalCheck){
- TInt iTimeStampEnd = anIsCheckOnlyFirstTimeStamp? 1: aNbStamps;
- for(TInt iTimeStamp = 1; iTimeStamp <= iTimeStampEnd; iTimeStamp++){
- TVector<char> aMeshName(GetNOMLength<eV2_1>()+1);
- TVector<char> aDtUnit(GetPNOMLength<eV2_1>()+1);
- med_int aNbGauss;
- med_int aNumDt;
- med_int aNumOrd;
- med_float aDt;
- TErr aRet = MEDpasdetempsInfo(anId,
- &aFieldName,
- anEntity,
- aGeom,
- iTimeStamp,
- &aMeshName[0],
- &aNbGauss,
- &aNumDt,
- &aDtUnit[0],
- &aDt,
- &aNumOrd);
-
- anIsSatisfied = (aRet == 0 && (!strcmp(&aMeshName[0],&aMeshInfo.myName[0])));
- if(!anIsSatisfied){
- INITMSG(MYDEBUG,
- "GetNbTimeStamps aMeshName = '"<<&aMeshName[0]<<"' != "<<
- "; aMeshInfo.myName = '"<<&aMeshInfo.myName[0]<<"'\n");
- break;
- }
- }
- }
- }
- if(anIsSatisfied){
- theGeom2Size[EGeometrieElement(aGeom)] = anGeomIter->second;
- theEntity = EEntiteMaillage(anEntity);
- aNbTimeStamps = aNbStamps;
- }
- }
- if(!theGeom2Size.empty())
- break;
- }
- return aNbTimeStamps;
- }
-
-
- void
- TVWrapper
- ::GetTimeStampInfo(TInt theTimeStampId,
- MED::TTimeStampInfo& theInfo,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- const TGeom2Size& aGeom2Size = theInfo.myGeom2Size;
-
- if(theErr){
- if(aGeom2Size.empty())
- *theErr = -1;
- if(*theErr < 0)
- return;
- }else if(aGeom2Size.empty())
- EXCEPTION(std::runtime_error,"GetTimeStampInfo - There is no any cell");
-
- MED::TFieldInfo& aFieldInfo = *theInfo.myFieldInfo;
- MED::TMeshInfo& aMeshInfo = *aFieldInfo.myMeshInfo;
-
- TValueHolder<TString, char> aFieldName(aFieldInfo.myName);
- TValueHolder<EEntiteMaillage, med_entite_maillage> anEntity(theInfo.myEntity);
- TValueHolder<TInt, med_int> aNumDt(theInfo.myNumDt);
- TValueHolder<TInt, med_int> aNumOrd(theInfo.myNumOrd);
- TValueHolder<TString, char> anUnitDt(theInfo.myUnitDt);
- TValueHolder<TFloat, med_float> aDt(theInfo.myDt);
- TValueHolder<TString, char> aMeshName(aMeshInfo.myName);
-
- TGeom2NbGauss& aGeom2NbGauss = theInfo.myGeom2NbGauss;
-
- TGeom2Size::const_iterator anIter = aGeom2Size.begin();
- for(; anIter != aGeom2Size.end(); anIter++){
- const EGeometrieElement& aGeom = anIter->first;
- med_int aNbGauss = -1;
-
- TErr aRet;
- aRet = MEDpasdetempsInfo(myFile->Id(),
- &aFieldName,
- anEntity,
- med_geometrie_element(aGeom),
- theTimeStampId,
- &aMeshName,
- &aNbGauss,
- &aNumDt,
- &anUnitDt,
- &aDt,
- &aNumOrd);
-
-
- static TInt MAX_NB_GAUSS_POINTS = 32;
- if(aNbGauss <= 0 || aNbGauss > MAX_NB_GAUSS_POINTS)
- aNbGauss = 1;
-
- aGeom2NbGauss[aGeom] = aNbGauss;
-
- if(theErr)
- *theErr = aRet;
- else if(aRet < 0)
- EXCEPTION(std::runtime_error,"GetTimeStampInfo - MEDpasdetempsInfo(...)");
- }
- }
-
-
- void
- TVWrapper
- ::GetTimeStampValue(const PTimeStampValueBase& theTimeStampValue,
- const TMKey2Profile& theMKey2Profile,
- const TKey2Gauss& theKey2Gauss,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,eLECT,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TIdt anId = myFile->Id();
-
- TValueHolder<EModeSwitch, med_mode_switch> aModeSwitch(theTimeStampValue->myModeSwitch);
- MED::TGeom2Profile& aGeom2Profile = theTimeStampValue->myGeom2Profile;
-
- MED::PTimeStampInfo aTimeStampInfo = theTimeStampValue->myTimeStampInfo;
- TValueHolder<EEntiteMaillage, med_entite_maillage> anEntity(aTimeStampInfo->myEntity);
- TValueHolder<TInt, med_int> aNumDt(aTimeStampInfo->myNumDt);
- TValueHolder<TInt, med_int> aNumOrd(aTimeStampInfo->myNumOrd);
-
- MED::PFieldInfo aFieldInfo = aTimeStampInfo->myFieldInfo;
- TValueHolder<TString, char> aFieldName(aFieldInfo->myName);
-
- MED::PMeshInfo aMeshInfo = aFieldInfo->myMeshInfo;
- TValueHolder<TString, char> aMeshName(aMeshInfo->myName);
-
- MED::TKey2Profile aKey2Profile = boost::get<1>(theMKey2Profile);
- TVector<char> aProfileName(GetNOMLength<eV2_1>()+1);
-
- TGeom2Size& aGeom2Size = aTimeStampInfo->myGeom2Size;
- TGeom2Size::iterator anIter = aGeom2Size.begin();
- for(; anIter != aGeom2Size.end(); anIter++){
- EGeometrieElement aGeom = anIter->first;
- TInt aNbElem = anIter->second;
-
- TInt aNbVal = MEDnVal(anId,
- &aFieldName,
- anEntity,
- med_geometrie_element(aGeom),
- aNumDt,
- aNumOrd);
- if(aNbVal <= 0){
- if(theErr){
- *theErr = -1;
- return;
- }
- EXCEPTION(std::runtime_error,"GetTimeStampValue - MEDnVal(...) - aNbVal == "<<aNbVal<<" <= 0");
- }
-
- TInt aNbGauss = aTimeStampInfo->GetNbGauss(aGeom);
- TInt aNbComp = aFieldInfo->myNbComp;
- TInt aNbValue = aNbVal / aNbGauss;
- theTimeStampValue->AllocateValue(aGeom,
- aNbValue,
- aNbGauss,
- aNbComp);
- TInt aValueSize = theTimeStampValue->GetValueSize(aGeom);
-
- INITMSG(MYDEBUG,
- "TVWrapper::GetTimeStampValue - aGeom = "<<aGeom<<
- "; aNbVal = "<<aNbVal<<
- "; aNbValue = "<<aNbValue<<
- "; aNbGauss = "<<aNbGauss<<
- "; aNbComp = "<<aNbComp<<
- std::endl);
-
- TErr aRet = MEDchampLire(anId,
- &aMeshName,
- &aFieldName,
- theTimeStampValue->GetValuePtr(aGeom),
- aModeSwitch,
- MED_ALL,
- &aProfileName[0],
- anEntity,
- med_geometrie_element(aGeom),
- aNumDt,
- aNumOrd);
- if(aRet < 0){
- if(theErr){
- *theErr = aRet;
- return;
- }
- EXCEPTION(std::runtime_error,"GetTimeStampValue - MEDchampLire(...)");
- }
-
- MED::PProfileInfo aProfileInfo;
- if(strcmp(&aProfileName[0],"") != 0){
- MED::TKey2Profile::const_iterator anIter = aKey2Profile.find(&aProfileName[0]);
- if(anIter != aKey2Profile.end()){
- aProfileInfo = anIter->second;
- aGeom2Profile[aGeom] = aProfileInfo;
- }
- }
-
- if(aProfileInfo && aProfileInfo->IsPresent()){
- TInt aNbSubElem = aProfileInfo->GetSize();
- TInt aProfileSize = aNbSubElem*aNbComp*aNbGauss;
- if(aProfileSize > aValueSize){
- if(theErr){
- *theErr = -1;
- return;
- }
- EXCEPTION(std::runtime_error,
- "GetTimeStampValue - aProfileSize("<<aProfileSize<<
- ") != aValueSize("<<aValueSize<<
- "); aNbVal = "<<aNbVal<<
- "; anEntity = "<<anEntity<<
- "; aGeom = "<<aGeom<<
- "; aNbElem = "<<aNbElem<<
- "; aNbSubElem = "<<aNbSubElem<<
- "; aNbComp = "<<aNbComp<<
- "; aNbGauss = "<<aNbGauss<<
- "");
- }else{
- if(aNbElem != aNbValue){
- if(theErr){
- *theErr = -1;
- return;
- }
- EXCEPTION(std::runtime_error,
- "GetTimeStampValue - aNbElem("<<aNbElem<<
- ") != aNbValue("<<aNbValue<<
- "); aNbVal = "<<aNbVal<<
- "; anEntity = "<<anEntity<<
- "; aGeom = "<<aGeom<<
- "; aNbElem = "<<aNbElem<<
- "; aNbComp = "<<aNbComp<<
- "; aNbGauss = "<<aNbGauss<<
- "");
- }
- }
- }
- }
- }
-
-
- void
- TVWrapper
- ::SetTimeStampValue(const MED::PTimeStampValueBase& theTimeStampValue,
- EModeAcces theMode,
- TErr* theErr)
- {
- TFileWrapper aFileWrapper(myFile,theMode,theErr);
-
- if(theErr && *theErr < 0)
- return;
-
- TErr aRet;
- TIdt anId = myFile->Id();
-
- TValueHolder<EModeSwitch, med_mode_switch> aModeSwitch(theTimeStampValue->myModeSwitch);
- MED::TGeom2Profile& aGeom2Profile = theTimeStampValue->myGeom2Profile;
-
- MED::PTimeStampInfo aTimeStampInfo = theTimeStampValue->myTimeStampInfo;
- TValueHolder<EEntiteMaillage, med_entite_maillage> anEntity(aTimeStampInfo->myEntity);
- TValueHolder<TInt, med_int> aNumDt(aTimeStampInfo->myNumDt);
- TValueHolder<TInt, med_int> aNumOrd(aTimeStampInfo->myNumOrd);
- TValueHolder<TString, char> anUnitDt(aTimeStampInfo->myUnitDt);
- TValueHolder<TFloat, med_float> aDt(aTimeStampInfo->myDt);
-
- MED::PFieldInfo aFieldInfo = aTimeStampInfo->myFieldInfo;
- TValueHolder<TString, char> aFieldName(aFieldInfo->myName);
-
- MED::PMeshInfo aMeshInfo = aFieldInfo->myMeshInfo;
- TValueHolder<TString, char> aMeshName(aMeshInfo->myName);
-
- const TGeomSet& aGeomSet = theTimeStampValue->myGeomSet;
- TGeomSet::const_iterator anIter = aGeomSet.begin();
- for(; anIter != aGeomSet.end(); anIter++){
- EGeometrieElement aGeom = *anIter;
-
- TVector<char> aProfileName(GetNOMLength<eV2_1>()+1);
- MED::TGeom2Profile::iterator aProfileIter = aGeom2Profile.find(aGeom);
- if(aProfileIter != aGeom2Profile.end()){
- MED::TProfileInfo& aProfileInfo = aProfileIter->second;
- aProfileName = aProfileInfo.myName;
- }
-
- med_int aNbGauss = aTimeStampInfo->GetNbGauss(aGeom);
- med_int aNbVal = theTimeStampValue->GetNbVal(aGeom);
-
- aRet = MEDchampEcr(anId,
- &aMeshName,
- &aFieldName,
- theTimeStampValue->GetValuePtr(aGeom),
- aModeSwitch,
- aNbVal,
- aNbGauss,
- MED_ALL,
- &aProfileName[0],
- MED_ECRI,
- anEntity,
- med_geometrie_element(aGeom),
- aNumDt,
- &anUnitDt,
- aDt,
- aNumOrd);
- if(aRet < 0){
- if(theErr){
- *theErr = aRet;
- break;
- }
- EXCEPTION(std::runtime_error,"SetTimeStampValue - MEDchampEcr(...)");
- }
-
- }
-
- INITMSG(MYDEBUG,"TVWrapper::SetTimeStampValue - MED_MODE_ACCES = "<<theMode<<"; aRet = "<<aRet<<std::endl);
- }
-
-
- void
- TVWrapper
- ::SetTimeStampValue(const PTimeStampValueBase& theTimeStampValue,
- TErr* theErr)
- {
- TErr aRet;
- SetTimeStampValue(theTimeStampValue,eECRI,&aRet);
-
- if(aRet < 0)
- SetTimeStampValue(theTimeStampValue,eREMP,&aRet);
-
- if(theErr)
- *theErr = aRet;
- }
-
- }
-}
+++ /dev/null
-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-
-// File :
-// Author :
-// Module :
-// $Header$
-//
-#ifndef MED_V2_1_Wrapper_HeaderFile
-#define MED_V2_1_Wrapper_HeaderFile
-
-#ifdef WNT
- #if defined MEDWRAPPER_V2_1_EXPORTS || defined MEDWrapper_V2_1_EXPORTS
- #if defined WIN32
- #define MED_V21_WRAPPER_EXPORT __declspec( dllexport )
- #else
- #define MED_V21_WRAPPER_EXPORT
- #endif
- #else
- #if defined WIN32
- #define MED_V21_WRAPPER_EXPORT __declspec( dllimport )
- #else
- #define MED_V21_WRAPPER_EXPORT
- #endif
- #endif
-#else
- #define MED_V21_WRAPPER_EXPORT
-#endif
-
-#include "MED_TWrapper.hxx"
-
-namespace MED
-{
- template<>
- TInt MED_V21_WRAPPER_EXPORT
- GetDESCLength<eV2_1>();
-
- template<>
- TInt MED_V21_WRAPPER_EXPORT
- GetIDENTLength<eV2_1>();
-
- template<>
- TInt MED_V21_WRAPPER_EXPORT
- GetNOMLength<eV2_1>();
-
- template<>
- TInt MED_V21_WRAPPER_EXPORT
- GetLNOMLength<eV2_1>();
-
- template<>
- TInt MED_V21_WRAPPER_EXPORT
- GetPNOMLength<eV2_1>();
-
- template<>
- void MED_V21_WRAPPER_EXPORT
- GetVersionRelease<eV2_1>(TInt& majeur, TInt& mineur, TInt& release);
-
- template<>
- TInt MED_V21_WRAPPER_EXPORT
- GetNbConn<eV2_1>(EGeometrieElement typmai,
- EEntiteMaillage typent,
- TInt mdim);
-
- namespace V2_1
- {
- //----------------------------------------------------------------------------
- class TFile;
- typedef boost::shared_ptr<TFile> PFile;
-
- typedef enum {eLECT, eECRI, eREMP} EModeAcces;
-
- //----------------------------------------------------------------------------
- class MED_V21_WRAPPER_EXPORT TVWrapper: public MED::TTWrapper<eV2_1>
- {
- TVWrapper();
- TVWrapper(const TVWrapper&);
- TVWrapper& operator=(const TVWrapper&);
-
- public:
- TVWrapper(const std::string& theFileName);
-
-
- //----------------------------------------------------------------------------
- virtual
- TInt
- GetNbMeshes(TErr* theErr = NULL);
-
- virtual
- void
- GetMeshInfo(TInt theMeshId, MED::TMeshInfo&,
- TErr* theErr = NULL);
-
- virtual
- void
- SetMeshInfo(const MED::TMeshInfo& theInfo,
- TErr* theErr = NULL);
-
- void
- SetMeshInfo(const MED::TMeshInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr = NULL);
-
-
- //----------------------------------------------------------------------------
- virtual
- TInt
- GetNbFamilies(const MED::TMeshInfo& theMeshInfo,
- TErr* theErr = NULL);
- virtual
- TInt
- GetNbFamAttr(TInt theFamId,
- const MED::TMeshInfo& theInfo,
- TErr* theErr = NULL);
- virtual
- TInt
- GetNbFamGroup(TInt theFamId,
- const MED::TMeshInfo& theInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- GetFamilyInfo(TInt theFamId,
- MED::TFamilyInfo& theInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- SetFamilyInfo(const MED::TFamilyInfo& theInfo,
- TErr* theErr = NULL);
-
- void
- SetFamilyInfo(const MED::TFamilyInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr = NULL);
-
-
- //----------------------------------------------------------------------------
- virtual
- TInt
- GetNbNodes(const MED::TMeshInfo& theMeshInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- GetNodeInfo(MED::TNodeInfo& theInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- SetNodeInfo(const MED::TNodeInfo& theInfo,
- TErr* theErr = NULL);
-
- void
- SetNodeInfo(const MED::TNodeInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr = NULL);
-
-
- //----------------------------------------------------------------------------
- virtual
- TEntityInfo
- GetEntityInfo(const MED::TMeshInfo& theMeshInfo,
- EConnectivite theConn = eNOD,
- TErr* theErr = NULL);
-
- virtual
- TInt
- GetNbCells(const MED::TMeshInfo& theMeshInfo,
- EEntiteMaillage,
- EGeometrieElement,
- EConnectivite theConn = eNOD,
- TErr* theErr = NULL);
-
- virtual
- void
- GetCellInfo(MED::TCellInfo& theInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- SetCellInfo(const MED::TCellInfo& theInfo,
- TErr* theErr = NULL);
-
- void
- SetCellInfo(const MED::TCellInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr = NULL);
-
-
- //----------------------------------------------------------------------------
- virtual
- TInt
- GetNbFields(TErr* theErr = NULL);
-
- virtual
- TInt
- GetNbComp(TInt theFieldId,
- TErr* theErr = NULL);
-
- virtual
- void
- GetFieldInfo(TInt theFieldId,
- MED::TFieldInfo& theInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- SetFieldInfo(const MED::TFieldInfo& theInfo,
- TErr* theErr = NULL);
-
- void
- SetFieldInfo(const MED::TFieldInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr = NULL);
-
-
- //----------------------------------------------------------------------------
- virtual
- TInt
- GetNbProfiles(TErr* theErr = NULL);
-
- virtual
- TProfileInfo::TInfo
- GetProfilePreInfo(TInt theId,
- TErr* theErr = NULL);
-
- virtual
- void
- GetProfileInfo(TInt theId,
- TProfileInfo& theInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- SetProfileInfo(const TProfileInfo& theInfo,
- TErr* theErr = NULL);
-
- void
- SetProfileInfo(const TProfileInfo& theInfo,
- EModeAcces theMode,
- TErr* theErr = NULL);
-
- //----------------------------------------------------------------------------
- virtual
- TInt
- GetNbTimeStamps(const MED::TFieldInfo& theInfo,
- const MED::TEntityInfo& theEntityInfo,
- EEntiteMaillage& theEntity,
- TGeom2Size& theGeom2Size,
- TErr* theErr = NULL);
-
- virtual
- void
- GetTimeStampInfo(TInt theTimeStampId,
- MED::TTimeStampInfo& theInfo,
- TErr* theErr = NULL);
-
- virtual
- void
- GetTimeStampValue(const PTimeStampValueBase& theTimeStampValue,
- const TMKey2Profile& theMKey2Profile,
- const TKey2Gauss& theKey2Gauss,
- TErr* theErr = NULL);
-
- virtual
- void
- SetTimeStampValue(const PTimeStampValueBase& theTimeStampValue,
- TErr* theErr = NULL);
-
- void
- SetTimeStampValue(const PTimeStampValueBase& theTimeStampValue,
- EModeAcces theMode,
- TErr* theErr = NULL);
-
- protected:
- PFile myFile;
- };
- }
-}
-
-#endif
+++ /dev/null
-# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-# File :
-# Author :
-# Module :
-# $Header$
-#
-include $(top_srcdir)/adm_local/unix/make_common_starter.am
-
-lib_LTLIBRARIES= libMEDWrapper_V2_1.la
-
-salomeinclude_HEADERS = \
- MED_V2_1_Wrapper.hxx
-
-dist_libMEDWrapper_V2_1_la_SOURCES= \
- MED_V2_1_Wrapper.cxx
-
-libMEDWrapper_V2_1_la_CPPFLAGS= -D@MACHINE@ $(BOOST_CPPFLAGS) $(HDF5_INCLUDES) \
- -I$(srcdir)/../../Base -I$(srcdir)/../Core
-if MED_ENABLE_KERNEL
- libMEDWrapper_V2_1_la_CPPFLAGS+= -I$(KERNEL_ROOT_DIR)/include/salome
-else
- libMEDWrapper_V2_1_la_CPPFLAGS+= -I$(top_builddir)/adm_local_without_kernel/unix
-endif
-libMEDWrapper_V2_1_la_LDFLAGS= $(HDF5_LIBS)
-libMEDWrapper_V2_1_la_LIBADD= ../../Base/libMEDWrapperBase.la ../Core/libmed_V2_1.la