1 /*************************************************************************
2 * COPYRIGHT (C) 1999 - 2007 EDF R&D, CEA/DEN
3 * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
4 * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
5 * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
6 * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
7 *
8 * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
9 * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
11 * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
12 *
13 * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
14 * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
15 * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
16 *
17 *************************************************************************/
18
19
20 /******************************************************************************
21 * - Nom du fichier : test3.c
22 *
23 * - Description : lecture des informations sur les maillages d'un fichier MED.
24 *
25 *****************************************************************************/
26
27 #include <med.h>
28 #define MESGERR
29 #include <med_utils.h>
30
31 #ifdef DEF_LECT_ECR
32 #define MODE_ACCES MED_LECTURE_ECRITURE
33 #elif DEF_LECT_AJOUT
34 #define MODE_ACCES MED_LECTURE_AJOUT
35 #else
36 #define MODE_ACCES MED_CREATION
37 #endif
38
39 int main (int argc, char **argv)
40
41
42 {
43 med_err ret = 0;
44 med_idt fid;
45 med_int nmaa,i,mdim,edim;
46 char maa[MED_TAILLE_NOM+1];
47 char nomu[MED_TAILLE_LNOM+1];
48 char desc[MED_TAILLE_DESC+1];
49 med_maillage type;
50 med_err inomu;
51
52 /* Ouverture du fichier "test2.med" en lecture seule */
53 fid = MEDouvrir("test2.med",MED_LECTURE);
54 if (fid < 0) {
55 MESSAGE("Erreur a l'ouverture du fichier test2.med");
56 return -1;
57 }
58
59 /* Lecture du nombre de maillage dans le fichier */
60 nmaa = MEDnMaa(fid);
61 if (nmaa < 0) {
62 MESSAGE("Erreur a la lecture du nombre de maillage");
63 ret = -1;
64 }
65 if (ret == 0)
66 printf("- Nombre de maillage dans test2.med = %d\n",nmaa);
67
68 /* Boucle sur tous les maillages, pour chaque maillage, on lit :
69 - Le nom.
70 - Le type
71 - La dimension
72 - La description
73 - La dimension de l'espace si elle existe
74 - Le nom universel s'il existe
75 */
76 if (ret == 0)
77 for (i=0;i<nmaa;i++) {
78 /* lecture des informations */
79 if (MEDmaaInfo(fid,i+1,maa,&mdim,&type,desc) < 0) {
80 MESSAGE("Erreur a la lecture des informations du maillage :"); SSCRUTE(maa);
81 ret = -1;
82 }
83 /* lecture de la dimension de l'espace */
84 edim = MEDdimEspaceLire(fid,maa);
85 /* lecture du nom universel */
86 inomu = MEDunvLire(fid,maa,nomu);
87 /* affichage des donnees lues */
88 if (inomu < 0)
89 printf("maillage %d de nom %s, de dimension %d \n",i+1,maa,mdim);
90 else
91 printf("maillage %d de nom %s, de dimension %d et de nom univ. %s\n",i+1,maa,mdim,nomu);
92 if (edim > 0)
93 printf("La dimension de l'espace est %d \n",edim);
94 else
95 printf("La dimension de l'espace est %d \n",mdim);
96 if (type == MED_STRUCTURE)
97 printf("Il s'agit d'un maillage structure \n");
98 else
99 printf("Il s'agit d'un maillage non structure \n");
100 printf("Description associee au maillage : %s \n\n",desc);
101 }
102
103 /* Fermeture du fichier */
104 ret = MEDfermer(fid);
105 if (ret < 0) {
106 MESSAGE("Erreur a la fermeture du fichier test2.med");
107 return -1;
108 }
109
110 return ret;
111 }
112
113
114
115