2.3.6/test15.c
Aller à la documentation de ce fichier.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 #include <med.h>
00028 #define MESGERR 1
00029 #include "med_utils.h"
00030 #include <string.h>
00031 
00032 #ifdef DEF_LECT_ECR
00033 #define MODE_ACCES MED_LECTURE_ECRITURE
00034 #elif DEF_LECT_AJOUT
00035 #define MODE_ACCES MED_LECTURE_AJOUT
00036 #else
00037 #define MODE_ACCES MED_CREATION
00038 #endif
00039 
00040 int main (int argc, char **argv)
00041 
00042 
00043 {
00044   med_err ret = 0;
00045   med_idt fid;
00046   
00047   med_int mdim;
00048   
00049   char maa[MED_TAILLE_NOM+1];
00050   
00051   med_int nnoe = 0;
00052   
00053   med_float *coo;
00054   
00055 
00056   char nomcoo[3*MED_TAILLE_PNOM+1];
00057   char unicoo[3*MED_TAILLE_PNOM+1];
00058   
00059 
00060 
00061   char *nomnoe;
00062   med_int *numnoe;
00063   med_int *nufano; 
00064   med_repere rep;
00065   med_booleen inonoe,inunoe;
00066   char str[MED_TAILLE_PNOM+1];
00067   med_int i;
00068   char desc[MED_TAILLE_DESC+1];
00069   med_maillage type;
00070 
00071   
00072   if ((fid= MEDouvrir(argv[1],MED_LECTURE)) < 0) {
00073     MESSAGE("Erreur a l'ouverture du fichier :");
00074     SSCRUTE(argv[1]);
00075     return -1;
00076   }
00077 
00078   
00079   if (MEDmaaInfo(fid,1,maa,&mdim,&type,desc) < 0) {
00080     MESSAGE("Erreur a la lecture des informations du 1er maillage");
00081     return -1;
00082   }
00083   printf("Maillage de nom : %s et de dimension : "IFORMAT" \n",maa,mdim);
00084 
00085   
00086   if ((nnoe = MEDnEntMaa(fid,maa,MED_COOR,MED_NOEUD,0,0)) < 0) {
00087     MESSAGE("Erreur a la lecture du nombre de noeuds ");
00088     return -1;
00089   }
00090   printf("Nombre de noeuds : %d \n",nnoe);
00091 
00092   
00093   
00094 
00095   if (nnoe > 0) {
00096     coo = (med_float*) malloc(sizeof(med_float)*nnoe*mdim);
00097     
00098 
00099     numnoe = (med_int*) malloc(sizeof(med_int)*nnoe);
00100     nufano = (med_int*) malloc(sizeof(med_int)*nnoe);
00101     
00102 
00103     nomnoe = (char*) malloc(MED_TAILLE_PNOM*nnoe+1);
00104 
00105     
00106 
00107 
00108 
00109 
00110     if (MEDnoeudsLire(fid,maa,mdim,coo,MED_FULL_INTERLACE,&rep,nomcoo,unicoo,
00111                       nomnoe,&inonoe,numnoe,&inunoe,nufano,nnoe) < 0) {
00112       MESSAGE("Erreur a la lecture des noeuds du maillage");
00113       ret = -1;
00114     }
00115 
00116     
00117     if (ret == 0) {
00118       printf("Type de repere : %d \n",rep);
00119       printf("Nom des coordonnees : \n");
00120       for (i=0;i<mdim;i++) {
00121         strncpy(str,nomcoo+i*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
00122         str[MED_TAILLE_PNOM] = '\0';
00123         printf("%s ",str);
00124       }
00125       printf("\nUnites des coordonnees : \n");
00126       for (i=0;i<mdim;i++) {
00127         strncpy(str,unicoo+i*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
00128         str[MED_TAILLE_PNOM] = '\0';
00129         printf("%s ",str);
00130       }     
00131       printf("\nCoordonnees des noeuds : \n");
00132       for (i=0;i<nnoe*mdim;i++)
00133         printf("%f ",*(coo+i));
00134       if (inonoe) {
00135         printf("\nNoms des noeuds : \n");
00136         for (i=0;i<nnoe;i++) {
00137           strncpy(str,nomnoe+i*MED_TAILLE_PNOM,MED_TAILLE_PNOM);
00138           str[MED_TAILLE_PNOM] = '\0';
00139           printf(" %s ",str);
00140         }
00141       }
00142       if (inunoe) {
00143         printf("\nNumeros des noeuds : \n");
00144         for (i=0;i<nnoe;i++)
00145           printf("%d ",*(numnoe+i));
00146       }
00147       printf("\nNumeros des familles des noeuds : \n");
00148       for (i=0;i<nnoe;i++)
00149         printf(IFORMAT" ",*(nufano+i));
00150       printf("\n");
00151     }
00152 
00153     
00154     free(coo);
00155     free(nomnoe);
00156     free(numnoe);
00157     free(nufano);
00158   }
00159 
00160   
00161   if (MEDfermer(fid) < 0) {
00162     MESSAGE("Erreur a la fermeture du fichier");
00163     return -1;
00164   }
00165  
00166   return ret;
00167 }
00168 
00169 
00170 
00171