124 #define USER_MODE MED_COMPACT_STMODE
126 #define xstr(s) str(s)
132 EXIT_IF(nfam < 0,
"lors de la lecture du nombre de familles",NULL);
133 fprintf(stdout,
"- Nombre de familles : "IFORMAT" \n",nfam);
142 char *attdes=NULL,*gro=NULL;
143 med_int *attval=NULL,*attide=NULL;
151 fprintf(stdout,
"\n(**************************)\n");
152 fprintf(stdout,
"(* FAMILLES DU MAILLAGE : *)\n");
153 fprintf(stdout,
"(**************************)\n");
155 for (i=0;i<nfam;i++) {
159 EXIT_IF(ngro < 0,
"lors de la lecture du nombre de groupe d'une famille",
164 EXIT_IF(natt < 0,
"lors de la lecture du nombre d'attributs d'une famille",
174 EXIT_IF(attide == NULL,NULL,NULL);
176 EXIT_IF(attval == NULL,NULL,NULL);
178 EXIT_IF(attdes == NULL,NULL,NULL);
180 EXIT_IF(gro == NULL,NULL,NULL);
183 EXIT_IF(ret < 0,
"lors de la lecture des informations d'une famille",
190 fprintf(stdout,
" - Famille de nom %s et de numero "IFORMAT" : \n",nomfam,numfam);
191 fprintf(stdout,
" - Attributs : \n");
192 for (j=0;j<natt;j++) {
195 fprintf(stdout,
" ide = "IFORMAT" - val = "IFORMAT" - des = %s\n",*(attide+j),
201 if (attide) {free(attide);attide=NULL;}
202 if (attval) {free(attval);attval=NULL;}
203 if (attdes) {free(attdes);attdes=NULL;}
206 fprintf(stdout,
" - Groupes :\n");
207 for (j=0;j<ngro;j++) {
210 fprintf(stdout,
" gro = %s\n",str2);
215 if (gro) {free(gro);gro=NULL;}
218 if (famille_0 != 1) {
219 MESSAGE(
"Erreur : La famille FAMILLE_ZERO n'a pas été trouvée, elle est obligatoire. ");
228 EXIT_IF(nequ < 0,
"lors de la lecture du nombre d'equivalences",NULL);
229 fprintf(stdout,
"- Nombre d'equivalences : "IFORMAT" \n",nequ);
247 fprintf(stdout,
"\n(******************************)\n");
248 fprintf(stdout,
"(* EQUIVALENCES DU MAILLAGE : *)\n");
249 fprintf(stdout,
"(******************************)\n");
252 fprintf(stdout,
"- Aucune équivalence \n");
255 for (i = 0;i<nequ;i++) {
256 fprintf(stdout,
"- Equivalence numero : "IFORMAT" ",i+1);
260 EXIT_IF(ret < 0,
"lors de la lecture des informations sur une equivalence",
262 fprintf(stdout,
"\n - Nom de l'equivalence: %s \n",equ);
263 fprintf(stdout,
"\n - Description de l'equivalence : %s \n",des);
265 fprintf(stdout,
"\n - L'equivalence est définie sur "IFORMAT" étapes de calcul\n",nstep);
267 for (_cstpit=1; _cstpit <= nstep; ++_cstpit) {
270 & _numdt, &_numit,&nocstpncor);
272 "lors de la lecture des valeurs d'étape de calcul d'une equivalence",
275 fprintf(stdout,
"\n - Etape de calcul définie sur (numdt,numit) ("IFORMAT","IFORMAT") :\n",_numdt,_numit);
282 "lors de la lecture du nombre de correspondances d'une equivalence",
284 fprintf(stdout,
"\n - Il y a "IFORMAT" correspondances sur les noeuds \n",ncor);
290 EXIT_IF(cor == NULL,NULL,NULL);
293 EXIT_IF(ret < 0,
"lors de la lecture du tableau des correspondances",
308 "lors de la lecture du nombre de correspondances dans une equivalence",
310 fprintf(stdout,
"\n - Il y a "IFORMAT" correspondances sur les mailles %s \n",ncor,
317 EXIT_IF(cor == NULL,NULL,NULL);
320 EXIT_IF(ret < 0,
"lors de la lecture du tableau des equivalences",
326 *(cor+2*k),*(cor+2*k+1));
340 "lors de la lecture du nombre de correspondances dans une equivalence",
342 fprintf(stdout,
"\n - Il y a "IFORMAT" correspondances sur les faces %s\n",ncor,
349 EXIT_IF(cor == NULL,NULL,NULL);
352 EXIT_IF(ret < 0,
"lors de la lecture du tableau des equivalences",
370 EXIT_IF(ret < 0,
"lors de la lecture du nombre de correspondances",
372 fprintf(stdout,
"\n - Il y a "IFORMAT" correspondances sur les aretes %s \n",
379 EXIT_IF(cor == NULL,NULL,NULL);
382 EXIT_IF(ret < 0,
"lors de la lecture du tableau des equivalences",
404 EXIT_IF(njnt < 0,
"lors de la lecture du nombre de joints",NULL);
405 fprintf(stdout,
"- Nombre de joints : "IFORMAT" \n",njnt);
416 med_int typ_ent_local,typ_geo_local,typ_ent_distant,typ_geo_distant;
426 med_int njstep=0,ncor=0,nodtitncor=0;
430 fprintf(stdout,
"\n(******************************)\n");
431 fprintf(stdout,
"(* JOINTS DU MAILLAGE : *)\n");
432 fprintf(stdout,
"(******************************)\n");
435 fprintf(stdout,
"- Aucun joint \n");
438 for (i = 0;i<njnt;i++) {
439 fprintf(stdout,
"- Joint numero : "IFORMAT" ",i+1);
443 EXIT_IF(ret < 0,
"lors de la lecture des informations sur un joint",
446 fprintf(stdout,
"\n - Nom du joint: %s \n",jn);
447 fprintf(stdout,
"\n - Description du joint : %s ",des);
448 fprintf(stdout,
"\n - Domaine en regard : "IFORMAT" ",ndom);
449 fprintf(stdout,
"\n - Maillage distant : %s ",maa_dist);
451 printf(
"Nombre d'étapes de calcul : "IFORMAT" \n",njstep);
452 printf(
"Nombre de correspondance pour (NO_DT,NO_IT) : "IFORMAT" \n",nodtitncor);
455 for (csit=1; csit <= njstep; ++csit) {
458 EXIT_IF(ret < 0,
"Erreur a la lecture des valeurs (numdt,numit) dans les joints",
461 printf(
"Etape de calcul (numdt,numit) : ("IFORMAT","IFORMAT")\n",_numdt,_numit);
464 while ( corit <= ncor ) {
470 EXIT_IF(ret < 0,
"Erreur a la lecture des infos sur le nombre d'entite en regard",
473 if (typ_ent_local ==
MED_NODE) strcpy(nom_geo_ent_local,
"MED_NOEUD");
475 EXIT_IF(ret < 0,
"Erreur à l'appel de _MEDgetExternalGeometryTypeName", NULL);
476 if (typ_ent_distant ==
MED_NODE) strcpy(nom_geo_ent_distant,
"MED_NOEUD");
478 EXIT_IF(ret < 0,
"Erreur à l'appel de _MEDgetExternalGeometryTypeName", NULL);
479 fprintf(stdout,
"\n\t\t- nb de couples d'entites en regard (local,distant)=(%s,%s) : "IFORMAT" \n",
480 nom_geo_ent_local,nom_geo_ent_distant, nent);
485 typ_ent_local,typ_geo_local,typ_ent_distant,typ_geo_distant,
487 fprintf(stdout,
"\n\t\t- Erreur a la lecture des correspondances sur (%s,%s,%s,%s)",
494 *(cortab+2*k),*(cortab+2*k+1));
521 EXIT_IF(nnoe < 0,
"lors de la lecture du nombre de noeuds",NULL);
522 fprintf(stdout,
"- Nombre de noeuds : "IFORMAT" \n",nnoe);
529 const char *
const nommaa,
536 const char *
const nomcoo,
537 const char *
const unicoo,
554 EXIT_IF(coo == NULL,NULL,NULL);
558 EXIT_IF(numnoe == NULL,NULL,NULL);
560 EXIT_IF(nufano == NULL,NULL,NULL);
564 EXIT_IF(nomnoe == NULL,NULL,NULL);
572 &inonoe,nomnoe,&inunoe,numnoe,&ifano,nufano);
575 EXIT_IF(ret < 0,
"lors de la lecture des noeuds du maillage \n",NULL);
578 fprintf(stdout,
"\n(************************)\n");
579 fprintf(stdout,
"(* NOEUDS DU MAILLAGE : *)\n");
580 fprintf(stdout,
"(************************)\n");
581 fprintf(stdout,
"- Type de repere des coordonnees : %d \n",*rep);
582 fprintf(stdout,
"- Nom des coordonnees : \n");
583 for (i=0;i<edim;i++) {
586 fprintf(stdout,
" %s ",
str);
588 fprintf(stdout,
"\n- Unites des coordonnees : \n");
589 for (i=0;i<edim;i++) {
592 fprintf(stdout,
" %s ",
str);
595 fprintf(stdout,
"\n- Coordonnees des noeuds : \n");
596 for (i=0;i<nnoe*edim;i++) {
598 fprintf(stdout,
"\n [ %5"MED_IFORMAT" ] : ", (i/edim + 1) );
600 fprintf(stdout,
"\n\n ");
601 fprintf(stdout,
" %-+9.6f ",*(coo+i));
605 fprintf(stdout,
"\n- Noms des noeuds : \n");
606 for (i=0;i<nnoe;i++) {
609 fprintf(stdout,
" %s ",
str);
613 fprintf(stdout,
"\n- Numeros des noeuds : \n");
615 fprintf(stdout,
" "IFORMAT" ",*(numnoe+i));
618 fprintf(stdout,
"\n- Numeros des familles des noeuds : \n");
619 for (i=0;i<nnoe;i++) {
621 fprintf(stdout,
" "IFORMAT" ",*(nufano+i));
623 fprintf(stdout,
" %d ",0);
625 fprintf(stdout,
"\n");
640 const char *
const nommaa,
653 EXIT_IF(nmailles < 0,
" lors de la lecture du nombre de mailles",NULL);
657 fprintf (stdout,
"- Nombre de mailles de type %s : "IFORMAT" \n",
nommai[indice],
668 const med_int *
const nmailles,
686 fprintf(stdout,
"\n(**************************)\n");
687 fprintf(stdout,
"(* ELEMENTS DU MAILLAGE : *)\n");
688 fprintf(stdout,
"(**************************)");
692 if (nmailles[i] > 0) {
695 EXIT_IF(ret < 0,
"lors de la lecture des caractéristiques des mailles",NULL);
711 connectivite = (
med_int*) malloc(
sizeof(
med_int)*taille*nmailles[i]);
712 EXIT_IF(connectivite == NULL,NULL,NULL);
713 nomele = (
char*) malloc(
sizeof(
char)*
MED_SNAME_SIZE*nmailles[i]+1);
714 EXIT_IF(nomele == NULL,NULL,NULL);
716 EXIT_IF(numele == NULL,NULL,NULL);
718 EXIT_IF(nufael == NULL,NULL,NULL);
722 typ_con, mode_coo, connectivite,
723 &inoele,nomele,&inuele,numele,&inufael,nufael );
725 EXIT_IF(ret < 0,
"lors de la lecture des mailles",NULL);
729 fprintf(stdout,
"\n\n- Mailles de type %s : ",
nommai[i]);
730 fprintf(stdout,
"\n - Connectivité : \n");
731 for (j=0;j<nmailles[i]*taille;j++) {
733 fprintf(stdout,
"\n [ %5"MED_IFORMAT" ] : ", (j/taille +1) );
735 fprintf(stdout,
"\n");
736 fprintf(stdout,
" %9"MED_IFORMAT" ",*(connectivite+j));
740 fprintf(stdout,
"\n - Noms : \n");
741 for (j=0;j<nmailles[i];j++) {
744 fprintf(stdout,
" %s ",
str);
748 fprintf(stdout,
"\n - Numeros :\n");
749 for (j=0;j<nmailles[i];j++)
750 fprintf(stdout,
" "IFORMAT" ",*(numele+j));
752 fprintf(stdout,
"\n - Numéros de familles : \n");
753 for (j=0;j<nmailles[i];j++)
755 fprintf(stdout,
" "IFORMAT" ",*(nufael+j));
757 fprintf(stdout,
" %d ",0);
772 const char *
const nommaa,
784 EXIT_IF(nmpolygones < 0,
"lors de la lecture du nombre de mailles polygone\n",
786 if (nmpolygones > 0 ) nmpolygones--;
else nmpolygones=0;
787 fprintf(stdout,
"- Nombre de mailles de type MED_POLYGONE : "IFORMAT" \n",
794 const char *
const nommaa,
820 EXIT_IF(taille < 0,
"lors de la lecture des parametres des mailles polygones",
825 EXIT_IF(indexp == NULL,NULL,NULL);
827 EXIT_IF(connectivite == NULL,NULL,NULL);
829 EXIT_IF(numele == NULL,NULL,NULL);
831 EXIT_IF(nufael == NULL,NULL,NULL);
832 nomele = (
char *) malloc(
sizeof(
char)*
MED_SNAME_SIZE*nmpolygones+1);
833 EXIT_IF(nomele == NULL,NULL,NULL);
837 indexp,connectivite);
839 EXIT_IF(ret < 0,
"lors de la lecture des connectivites des mailles polygones",
856 fprintf(stdout,
"\n\n- Mailles de type MED_POLYGONE : ");
857 for (i=0;i<nmpolygones;i++) {
858 fprintf(stdout,
"\n >> Maille MED_POLYGONE "IFORMAT" : \n",i+1);
859 fprintf(stdout,
"\n - Connectivité : ");
860 ind1 = *(indexp+i)-1;
861 ind2 = *(indexp+i+1)-1;
862 for (j=ind1;j<ind2;j++)
863 printf(
" "IFORMAT" ",*(connectivite+j));
867 fprintf(stdout,
"\n - Nom : %s \n",tmp);
870 fprintf(stdout,
"\n - Numero : "IFORMAT" \n",*(numele+i));
873 fprintf(stdout,
"\n - Numéro de famille : "IFORMAT" \n",*(nufael+i));
875 fprintf(stdout,
"\n - Numéro de famille : %d \n",0);
891 const char *
const nommaa,
902 EXIT_IF(npolyedres < 0,
"lors de la lecture du nombre de mailles polyedre \n",
904 if ( npolyedres > 0 ) npolyedres--;
else npolyedres=0;
906 fprintf(stdout,
"- Nombre de mailles de type MED_POLYEDRE : "IFORMAT" \n",
914 const char *
const nommaa,
942 EXIT_IF(taille < 0,
"lors de la lecture des parametres des mailles polyedres",
948 EXIT_IF(nindn < 0,
"lors de la lecture des parametres des mailles polyedres",
954 EXIT_IF(indexf == NULL,NULL,NULL);
956 EXIT_IF(indexn == NULL,NULL,NULL);
958 EXIT_IF(connectivite == NULL,NULL,NULL);
960 EXIT_IF(numele == NULL,NULL,NULL);
962 EXIT_IF(nufael == NULL,NULL,NULL);
963 nomele = (
char *) malloc(
sizeof(
char)*
MED_SNAME_SIZE*npolyedres+1);
964 EXIT_IF(nomele == NULL,NULL,NULL);
967 indexf,indexn,connectivite);
969 "lors de la lecture de la connectivite des mailles polyedres",
983 fprintf(stdout,
"\n\n- Mailles de type MED_POLYEDRE : ");
984 for (i=0;i<npolyedres;i++) {
985 fprintf(stdout,
"\n >> Maille MED_POLYEDRE "IFORMAT" : \n",i+1);
986 fprintf(stdout,
"\n - Connectivité : \n");
987 nfa = *(indexf+i+1) - *(indexf+i);
989 ind1 = *(indexf+i) - 1;
990 for (j=0;j<nfa;j++) {
994 ind2 = *(indexn+ind1+j) - 1;
995 nnoe = *(indexn+ind1+j+1) - *(indexn+ind1+j);
996 fprintf(stdout,
" - Face "IFORMAT" : [ ", j+1);
998 printf(
" "IFORMAT" ",*(connectivite+ind2+k));
1002 nfa = *(indexf+i+1) - *(indexf+i);
1005 ind1 = *(indexf+i) - 1;
1008 *(connectivite+ind1+j),*(indexn+ind1+j));
1014 fprintf(stdout,
"\n - Nom : %s \n",tmp);
1017 fprintf(stdout,
"\n - Numero : "IFORMAT" \n",*(numele+i));
1019 fprintf(stdout,
"\n - Numéro de famille : "IFORMAT" \n",*(nufael+i));
1021 fprintf(stdout,
"\n - Numéro de famille : %d \n",0);
1038 const char *
const nommaa,
1051 EXIT_IF(nfaces < 0,
"lors de la lecture du nombre de faces",NULL);
1055 fprintf (stdout,
"- Nombre de faces de type %s : "IFORMAT" \n",
1062 const char *
const nommaa,
1083 if (nfaces[i] > 0 ) {
1087 EXIT_IF(ret < 0,
"lors de la lecture des caractéristiques des mailles",NULL);
1090 connectivite = (
med_int*)malloc(
sizeof(
med_int)*taille*nfaces[i]);
1091 EXIT_IF(connectivite == NULL,NULL,NULL);
1093 EXIT_IF(nomele == NULL,NULL,NULL);
1095 EXIT_IF(numele == NULL,NULL,NULL);
1097 EXIT_IF(nufael == NULL,NULL,NULL);
1102 &inoele,nomele,&inuele,numele,&inufael,nufael );
1103 EXIT_IF(ret < 0,
"lors de la lecture des faces",NULL);
1107 fprintf(stdout,
"\n- Faces de type %s : ",
nomfac[i]);
1108 fprintf(stdout,
"\n - Connectivité : \n");
1109 for (j=0;j<nfaces[i]*taille;j++) {
1111 fprintf(stdout,
"\n [ %5"MED_IFORMAT" ] : ", (j/taille+1) );
1113 fprintf(stdout,
"\n");
1114 fprintf(stdout,
" %9"MED_IFORMAT" ",*(connectivite+j));
1118 fprintf(stdout,
"\n - Noms : \n");
1119 for (j=0;j<nfaces[i];j++) {
1122 fprintf(stdout,
" %s ",
str);
1126 fprintf(stdout,
"\n - Numeros :\n");
1127 for (j=0;j<nfaces[i];j++)
1128 fprintf(stdout,
" "IFORMAT" ",*(numele+j));
1130 fprintf(stdout,
"\n - Numéros de familles : \n");
1131 for (j=0;j<nfaces[i];j++)
1133 fprintf(stdout,
" "IFORMAT" ",*(nufael+j));
1135 fprintf(stdout,
" %d ",0);
1149 const char *
const nommaa,
1160 EXIT_IF(nfpolygones < 0,
"lors de la lecture du nombre de faces polygone \n",
1163 fprintf(stdout,
"- Nombre de faces de type MED_POLYGONE : "IFORMAT" \n",
1170 const char *
const nommaa,
1193 EXIT_IF(taille < 0,
"lors de la lecture des parametres des faces polygones",
1198 EXIT_IF(indexp == NULL,NULL,NULL);
1200 EXIT_IF(connectivite == NULL,NULL,NULL);
1202 EXIT_IF(numele == NULL,NULL,NULL);
1204 EXIT_IF(nufael == NULL,NULL,NULL);
1205 nomele = (
char *) malloc(
sizeof(
char)*
MED_SNAME_SIZE*nfpolygones+1);
1206 EXIT_IF(nomele == NULL,NULL,NULL);
1210 indexp,connectivite);
1211 EXIT_IF(ret < 0,
"lors de la lecture des connectivites des faces polygones",
1228 fprintf(stdout,
"\n\n- Faces de type MED_POLYGONE : ");
1229 for (i=0;i<nfpolygones;i++) {
1230 fprintf(stdout,
"\n >> Face MED_POLYGONE "IFORMAT" : \n",i+1);
1231 fprintf(stdout,
"\n - Connectivité : ");
1232 ind1 = *(indexp+i)-1;
1233 ind2 = *(indexp+i+1)-1;
1234 for (j=ind1;j<ind2;j++)
1235 fprintf(stdout,
" %d ",*(connectivite+j));
1239 fprintf(stdout,
"\n - Nom : %s \n",tmp);
1242 fprintf(stdout,
"\n - Numero : "IFORMAT" \n",*(numele+j));
1244 fprintf(stdout,
"\n - Numéro de famille : "IFORMAT" \n",*(nufael+i));
1246 fprintf(stdout,
"\n - Numéro de famille : %d \n",0);
1262 const char *
const nommaa,
1274 EXIT_IF(naretes < 0,
"lors de la lecture du nombre d'aretes",NULL);
1279 "- Nombre d'aretes de type %s : "IFORMAT" \n",
nomare[indice],naretes);
1285 const char *
const nommaa,
1289 const med_int *
const naretes,
1306 if (naretes[i] > 0) {
1309 EXIT_IF(ret < 0,
"lors de la lecture des caractéristiques des mailles",NULL);
1312 connectivite = (
med_int*)malloc(
sizeof(
med_int)*taille*naretes[i]);
1313 EXIT_IF(connectivite == NULL,NULL,NULL);
1314 nomele = (
char*)malloc(
sizeof(
char)*
MED_SNAME_SIZE*naretes[i]+1);
1315 EXIT_IF(nomele == NULL,NULL,NULL);
1317 EXIT_IF(numele == NULL,NULL,NULL);
1319 EXIT_IF(nufael == NULL,NULL,NULL);
1324 &inoele,nomele,&inuele,numele,&inufael,nufael );
1325 EXIT_IF(ret < 0,
"lors de la lecture des aretes",
1330 fprintf(stdout,
"\n- Aretes de type %s : ",
nomare[i]);
1331 fprintf(stdout,
"\n - Connectivité : \n");
1332 for (j=0;j<naretes[i]*taille;j++) {
1334 fprintf(stdout,
"\n [ %5"MED_IFORMAT" ] : ", (j/taille+1) );
1336 fprintf(stdout,
"\n");
1337 fprintf(stdout,
" %9"MED_IFORMAT" ",*(connectivite+j));
1341 fprintf(stdout,
"\n - Noms : \n");
1342 for (j=0;j<naretes[i];j++) {
1345 fprintf(stdout,
" %s ",
str);
1349 fprintf(stdout,
"\n - Numeros :\n");
1350 for (j=0;j<naretes[i];j++)
1351 fprintf(stdout,
" "IFORMAT" ",*(numele+j));
1353 fprintf(stdout,
"\n - Numéros de familles : \n");
1354 for (j=0;j<naretes[i];j++)
1356 fprintf(stdout,
" "IFORMAT" ",*(nufael+j));
1358 fprintf(stdout,
" %d ",0);
1396 const char *
const nomcoo,
1397 const char *
const unicoo,
1399 const int lecture_en_tete_seulement)
1408 med_int nmpolygones, npolyedres, nfpolygones;
1457 if (lecture_en_tete_seulement)
1463 lecture_noeuds_maillage_non_structure(fid,nommaa,numdt,numit,mdim,edim,nnoe,mode_coo,nomcoo,unicoo,rep);
1482 if (nmpolygones > 0)
1493 if (nfpolygones > 0)
1528 const char *
const nommaa,
1546 EXIT_IF(ret < 0,
"a la lecture du type d'une grille ",NULL);
1553 fprintf(stdout,
"- Type de grille : MED_GRILLE_CARTESIENNE \n");
1555 fprintf(stdout,
"- Type de grille : MED_GRILLE_POLAIRE \n");
1556 for (axe=1;axe<=mdim;axe++) {
1575 "lors de la lecture de la taille d'un indice d'une grille",
1577 *nnoe = nind[axe - 1] * (*nnoe);
1578 *nmai = (nind[axe - 1] - 1) * (*nmai);
1580 "- Taille de l'indice de l'axe "IFORMAT" des coordonnees : "IFORMAT" \n",
1586 fprintf(stdout,
"- Type de grille : MED_GRILLE_DESTRUCTUREE \n");
1589 EXIT_IF(*nnoe < 0,
"lors de la lecture du nombre de noeuds du maillage "
1594 EXIT_IF(structure_grille == NULL,NULL,NULL);
1598 EXIT_IF(ret < 0,
"lors de la lecture de la structure de la grille",
1600 fprintf(stdout,
"- Structure de la grille : [ ");
1601 for (j=0;j<mdim;j++) {
1602 *nmai = (*(structure_grille+j) - 1) * (*nmai);
1603 fprintf(stdout,
" "IFORMAT" ",*(structure_grille+j));
1605 fprintf(stdout,
" ] \n");
1607 free(structure_grille);
1612 EXIT_IF(-1,
"Type de grille non reconnu.",nommaa);
1616 fprintf(stdout,
"- Nombre de noeuds : "IFORMAT" \n",*nnoe);
1617 fprintf(stdout,
"- Nombre de mailles : "IFORMAT" \n",*nmai);
1624 const char *
const nommaa,
1631 const char *
const comp,
1632 const char *
const unit,
1643 char *nomnoe = NULL;
1646 fprintf(stdout,
"\n(*************************)\n");
1647 fprintf(stdout,
"(* NOEUDS DE LA GRILLE : *)\n");
1648 fprintf(stdout,
"(*************************)\n");
1655 for (axe = 1; axe<=mdim; axe++) {
1658 EXIT_IF(indices == NULL,NULL,NULL);
1662 EXIT_IF(ret < 0,
"lors de la lecture d'un tableau d'indice",
1666 for (j=0;j<nind[axe - 1];j++)
1667 fprintf(stdout,
" %f ",*(indices+j));
1677 EXIT_IF(coo == NULL,NULL,NULL);
1681 EXIT_IF(ret < 0,
"lors de la lecture des noeuds du maillage",NULL);
1683 fprintf(stdout,
"- Nom des coordonnees : \n");
1684 for (i=0;i<edim;i++) {
1687 fprintf(stdout,
" %s ",
str);
1689 fprintf(stdout,
"\n- Unites des coordonnees : \n");
1690 for (i=0;i<edim;i++) {
1693 fprintf(stdout,
" %s ",
str);
1696 fprintf(stdout,
"\n - Coordonnees des noeuds : [ ");
1697 for (j=0;j<nnoe*edim;j++)
1698 fprintf(stdout,
" %f ",*(coo+j));
1699 fprintf(stdout,
" ] \n");
1708 EXIT_IF(-1,
"Type de grille non reconnu.",nommaa);
1719 EXIT_IF(numnoe == NULL,NULL,NULL);
1721 EXIT_IF(nomnoe == NULL,NULL,NULL);
1723 EXIT_IF(nufano == NULL,NULL,NULL);
1727 if (ret < 0) ret=0;
else inufael=
MED_TRUE;
1729 EXIT_IF(ret < 0,
"lors de la lecture des numeros de familles des noeuds",
1733 fprintf(stdout,
"\n- Numeros des familles des noeuds : \n");
1734 for (i=0;i<nnoe;i++)
1736 fprintf(stdout,
" "IFORMAT" ",*(nufano+i));
1738 fprintf(stdout,
" %d ",0);
1739 fprintf(stdout,
"\n");
1745 fprintf(stdout,
"\n- Noms des noeuds : \n");
1746 for (i=0;i<nnoe;i++) {
1749 fprintf(stdout,
" %s ",
str);
1757 fprintf(stdout,
"\n- Numeros des noeuds : \n");
1758 for (i=0;i<nnoe;i++)
1759 fprintf(stdout,
" %d ",*(numnoe+i));
1773 const char *
const nommaa,
1783 char *nomele = NULL;
1789 fprintf(stdout,
"\n(***************************)\n");
1790 fprintf(stdout,
"(* ELEMENTS DE LA GRILLE : *)\n");
1791 fprintf(stdout,
"(***************************)\n");
1816 EXIT_IF(numele == NULL,NULL,NULL);
1818 EXIT_IF(nomele == NULL,NULL,NULL);
1820 EXIT_IF(nufael == NULL,NULL,NULL);
1825 for (i=0;i<nmai;i++)
1830 fprintf(stdout,
"\n- Numeros des familles des mailles : \n");
1831 for (i=0;i<nmai;i++)
1832 fprintf(stdout,
" %d ",*(nufael+i));
1833 fprintf(stdout,
"\n");
1839 fprintf(stdout,
"\n - Noms : \n");
1840 for (i=0;i<nmai;i++) {
1843 fprintf(stdout,
" %s ",
str);
1851 fprintf(stdout,
"\n - Numeros :\n");
1852 for (i=0;i<nmai;i++)
1853 fprintf(stdout,
" %d ",*(numele+i));
1866 const char *
const nommaa,
1872 const char *
const comp,
1873 const char *
const unit,
1874 const int lecture_en_tete_seulement)
1906 if (lecture_en_tete_seulement)
1912 lecture_noeuds_maillage_structure(fid,nommaa,numdt,numit,mdim,edim,nind,nnoe,comp,unit,type,mode_coo);
1938 const char *
const maillage,
1941 const char *
const nomcha,
1942 const char *
const dtunit,
1949 int i,j,k,l,m,n,nb_geo=0;
1950 med_int nbpdtnor=0,pflsize,*pflval,ngauss=0,ngauss_maa_ass=0,ngroup,*vale=NULL,nval;
1951 med_int numdt=0,numo=0,_nprofile;
1952 med_int meshnumdt=0,meshnumit=0;
1965 const char *
const * AFF;
1991 for (k=1;k<=nb_geo;k++) {
1995 if (nbpdtnor < 1 )
continue;
1997 for (j=0;j<nbpdtnor;j++) {
2000 &nmesh, maa_ass,&localmesh, &meshnumdt, &meshnumit ) <0) {
2001 MESSAGE(
"Erreur a la demande d'information sur (pdt,nor) : ");
2007 for (i=0;i< nmesh;++i) {
2009 if ( (_nprofile =
MEDfield23nProfile(fid,nomcha,numdt,numo,entite,type_geo[k],i+1,meshname,
2010 pflname,locname ) ) < 0 ) {
2011 MESSAGE(
"Erreur a la demande du nombre de profils referencés par le champ : ");
2018 for (l=0;l<_nprofile;l++) {
2022 locname, &ngauss) ) < 0 ) {
2023 MESSAGE(
"Erreur a la lecture du nombre de valeurs du champ : ");
2029 if (!strcmp(meshname,maa_ass) ) ngauss_maa_ass = ngauss;
2032 printf(
"\n +Pas de Temps n."IFORMAT" (%f) [%s], n. d'ordre "IFORMAT", avec "IFORMAT" valeur(s) par entité.\n",numdt,dt,dtunit,numo,ngauss);
2034 printf(
"\n +Pas de Temps n."IFORMAT" (%f) [%s], n. d'ordre "IFORMAT", avec "IFORMAT" pts de gauss sur le maillage par defaut.\n",numdt,dt,dtunit,numo,ngauss_maa_ass);
2035 printf(
"\tLe maillage par defaut est : |%s|, sur un total de : %i maillages associes\n", maa_ass, nmesh);
2038 if ( (!strcmp(meshname,maillage)) && (meshnumdt == mnumdt) && (meshnumit == mnumit) ) {
2040 if (_nprofile > 1 ) {
2041 printf(
"\t- Il y a "IFORMAT" entités qui portent des valeurs en mode %i. Chaque entite %s\
2042 de type geometrique %s associes au profile |%s| a "IFORMAT" valeurs associées \n",
2043 nval,
USER_MODE,AFF_ENT[(
int)entite],AFF[k],pflname,ngauss);
2044 printf(
"\t- Le maillage associé est |%s|\n",meshname);
2047 printf(
"\t- Il y a %d valeurs en mode %i. Chaque entite %s\
2048 de type geometrique %s associes au maillage |%s| a %i pts de gauss \n",
2049 nval*ngauss,
USER_MODE,AFF_ENT[(
int)entite],AFF[k],
2054 printf(
"\t- l'étape de calcul utilisée dans le maillage associé |%s| est (numdt,numit) : ("IFORMAT","IFORMAT") \n",meshname,meshnumdt,meshnumit);
2060 MESSAGE(
"Erreur a la lecture de la taille du lien : ");
2064 lien = (
char *)malloc(lnsize*
sizeof(
char) + 1);
2065 EXIT_IF(lien == NULL,NULL,NULL);
2067 if (
MEDlinkRd(fid, maa_ass, lien) < 0 ) {
2068 MESSAGE(
"Erreur a la lecture du lien : ");
2072 lien[lnsize] =
'\0';
2073 printf(
"\tLe maillage |%s| est porte par un fichier distant |%s|\n",maa_ass,lien);
2083 EXIT_IF(valr == NULL,NULL,NULL);
2087 (
unsigned char*) valr) < 0 ) {
2088 MESSAGE(
"Erreur a la lecture des valeurs du champ : ");
2096 EXIT_IF(vale == NULL,NULL,NULL);
2100 (
unsigned char*) vale) < 0 ) {
2101 MESSAGE(
"Erreur a la lecture des valeurs du champ : ");
2108 if ( strlen(locname) && (_nprofile > 1) )
2109 printf(
"\t- Modèle de localisation des points de Gauss de nom |%s|\n",locname);
2112 ngroup = (type_geo[k] % 100);
2120 printf(
"\t- Valeurs :\n\t");
2121 for (m=0;m<(nval*ngauss)/ngroup;m++) {
2123 for (n=0;n<ngroup*ncomp;n++)
2125 printf(
" %f ",*(valr+(m*ngroup*ncomp)+n));
2127 printf(
" "IFORMAT" ",*(vale+(m*ngroup*ncomp)+n));
2135 printf(
"\t- Valeurs :\n\t");
2136 for (m=0;m<ncomp;m++) {
2138 for (n=0;n<(nval*ngauss);n++)
2140 printf(
" %f ",*(valr+(m*nval)+n));
2142 printf(
" "IFORMAT" ",*(vale+(m*nval)+n));
2153 if ( valr ) {free(valr);valr = NULL;}}
2155 if (vale) { free(vale);vale = NULL; }
2159 printf(
"\t- Profil : MED_NOPFL\n");
2164 MESSAGE(
"Erreur a la lecture du nombre de valeurs du profil : ");
2169 printf(
"\t- Profil : |%s| de taille "IFORMAT"\n",pflname,pflsize);
2172 EXIT_IF(pflval == NULL,NULL,NULL);
2174 MESSAGE(
"Erreur a la lecture des valeurs du profil : ");
2180 for (m=0;m<pflsize;m++) printf(
" "IFORMAT" ",*(pflval+m));
2209 const char *
const maillage,
2213 const int lecture_en_tete_seulement)
2221 med_int mdim,ncomp,ncha,npro,nln,pflsize,*pflval,nval,nloc,ngauss;
2240 if (! lecture_en_tete_seulement) {
2241 fprintf(stdout,
"\n(************************)\n");
2242 fprintf(stdout,
"(* CHAMPS DU MAILLAGE : *)\n");
2243 fprintf(stdout,
"(************************)\n");
2248 EXIT_IF(ncha < 0,
"lors de la lecture du nombre de champs",NULL);
2249 fprintf(stdout,
"- Nombre de champs : "IFORMAT" \n",ncha);
2251 if (lecture_en_tete_seulement)
2260 for (i =0;i<ncha;i++) {
2262 printf(
"\nChamp numero : |%d| \n",i+1);
2266 MESSAGE(
"Erreur à la lecture du nombre de composantes : ");
2274 EXIT_IF(comp == NULL,NULL,NULL);
2276 EXIT_IF(unit == NULL,NULL,NULL);
2279 &typcha, comp, unit, dtunit, &ncstp) < 0 ) {
2280 MESSAGE(
"Erreur à la demande d'information sur les champs : ");
2284 printf(
"Nom du champ : |%s| de type |%d|\n",nomcha,typcha);
2285 printf(
"Nom des composantes : |%s|\n",comp);
2286 printf(
"Unites des composantes : |%s| \n",unit);
2297 lret =
getFieldsOn(fid, maillage, mnumdt, mnumit, nomcha, dtunit, typcha, ncomp,
MED_NODE,mode_coo, ncstp);
2300 if (lret == 0) lret =
getFieldsOn(fid, maillage, mnumdt, mnumit , nomcha, dtunit, typcha, ncomp,
MED_CELL,mode_coo, ncstp);
2301 else {
MESSAGE(
"Erreur à la lecture des champs aux noeuds "); ret = -1;
continue;}
2303 if (lret == 0) lret =
getFieldsOn(fid, maillage, mnumdt, mnumit , nomcha, dtunit, typcha, ncomp,
MED_DESCENDING_FACE,mode_coo, ncstp);
2304 else {
MESSAGE(
"Erreur à la lecture des champs aux mailles "); ret = -1;
continue;}
2306 if (lret == 0) lret =
getFieldsOn(fid, maillage, mnumdt, mnumit , nomcha, dtunit, typcha, ncomp,
MED_DESCENDING_EDGE,mode_coo, ncstp);
2307 else {
MESSAGE(
"Erreur à la lecture des champs aux faces "); ret = -1;
continue;}
2309 if (lret == 0) lret =
getFieldsOn(fid, maillage, mnumdt, mnumit , nomcha, dtunit, typcha, ncomp,
MED_NODE_ELEMENT,mode_coo, ncstp);
2310 else {
MESSAGE(
"Erreur a la lecture des champs aux aretes "); ret = -1;
continue;}
2312 if (lret != 0) {
MESSAGE(
"Erreur a la lecture des champs aux noeuds des mailles "); ret = -1;};
2319 printf(
"\nNombre de profils stockes : "IFORMAT"\n\n",npro);
2320 for (i=1 ; i <= npro ; i++ ) {
2325 printf(
"\t- Profil n°%i de nom |%s| et de taille "IFORMAT"\n",i,pflname,nval);
2328 MESSAGE(
"Erreur a la lecture des valeurs du profil : ");
2333 for (j=0;j<nval;j++) printf(
" "IFORMAT" ",*(pflval+j));
2342 printf(
"\nNombre de liens stockes : "IFORMAT"\n\n",nln);
2343 for (i=1 ; i <= nln ; i++ ) {
2348 printf(
"\t- Lien n°%i de nom |%s| et de taille "IFORMAT"\n",i,nomlien,nval);
2350 lien = (
char * ) malloc((nval+1)*
sizeof(char));
2351 EXIT_IF(lien == NULL,NULL,NULL);
2353 if (
MEDlinkRd(fid, nomlien, lien ) < 0 ) {
2354 MESSAGE(
"Erreur a la lecture du lien : ");
2359 printf(
"\t\t|%s|\n\n",lien);
2367 printf(
"\nNombre de localisations stockees : "IFORMAT"\n\n",nloc);
2368 for (i=1 ; i <= nloc ; i++ ) {
2370 geointerpname, ipointstructmeshname,&nsectionmeshcell,
2371 §iongeotype) < 0) {
2372 MESSAGE(
"Erreur a la demande d'information sur la localisation n° : ");
ISCRUTE_int(i);
2375 printf(
"\t- Loc. n°%i de nom |%s| de dimension "IFORMAT" avec "IFORMAT" pts de GAUSS \n",i,locname,locsdim,ngauss);
2376 t1 = (type_geo%100)*(type_geo/100);
2377 t2 = ngauss*(type_geo/100);
2384 MESSAGE(
"Erreur a la lecture des valeurs de la localisation : ");
2388 printf(
"\t Coordonnees de l'element de reference de type %i :\n\t\t",type_geo);
2389 for (j=0;j<t1;j++) printf(
" %f ",*(refcoo+j));
2391 printf(
"\t Localisation des points de GAUSS : \n\t\t");
2392 for (j=0;j<t2;j++) printf(
" %f ",*(gscoo+j));
2394 printf(
"\t Poids associes aux points de GAUSS :\n\t\t");
2395 for (j=0;j<t3;j++) printf(
" %f ",*(wg+j));
2418 int lecture_en_tete_seulement)
2431 fprintf(stdout,
"\n(*******************************)\n");
2432 fprintf(stdout,
"(* VARIABLES SCALAIRES : *)\n");
2433 fprintf(stdout,
"(*******************************)\n");
2437 EXIT_IF(n < 0,
"lors de la lecture du nombre de scalaires",NULL);
2438 fprintf(stdout,
"- Nombre de variables scalaires : "IFORMAT"\n",n);
2440 if (lecture_en_tete_seulement)
2443 for (i=1;i<=n;i++) {
2448 EXIT_IF(ret < 0,
"lors de la lecture des parametres d'un scalaire",NULL);
2449 fprintf(stdout,
"- Scalaire n°"IFORMAT" de nom %s \n",i,nom_scalaire);
2451 fprintf(stdout,
" Type flottant. \n");
2453 fprintf(stdout,
" Type entier. \n");
2454 printf(
" Description associee : [%s] \n",description);
2459 "lors de la lecture du nombre de pas de temps d'un scalaire"
2461 fprintf(stdout,
" Nombre de valeurs stockees : "IFORMAT" \n",npdt);
2463 for (j=1;j<=npdt;j++) {
2467 "lors de la lecture des parametres d'un pas de temps d'un scalaire",
2471 fprintf(stdout,
" - Aucun de pas de temps \n");
2474 " - Pas de de temps de numero "IFORMAT" de valeur %f [%s] \n",numdt,
2477 fprintf(stdout,
" - Aucun numero d'ordre \n");
2479 fprintf(stdout,
" - Numero d'ordre : "IFORMAT" \n",numo);
2483 fprintf(stdout,
" - Valeur : %f \n",valr);
2487 fprintf(stdout,
" - Valeur : "IFORMAT" \n",vali);
2489 EXIT_IF(ret < 0,
"lors de la lecture de la valeur d'un scalaire",NULL);
2501 med_int majeur,mineur,release;
2506 ret = (int) access(fichier,F_OK);
2507 EXIT_IF(ret < 0,
"Le fichier n'est pas accessible ou n'existe pas ",
2512 EXIT_IF(ret < 0,
"Impossible de déterminer la compatibilité de format. ",
2515 EXIT_IF(!hdfok,
"Le fichier n'est pas dans un format HDF compatible ", fichier);
2516 EXIT_IF(!medok,
"Le fichier n'est pas dans un format MED compatible ", fichier);
2522 majeur,mineur,release);
2526 EXIT_IF( fid < 0,
"Ouverture du du fichier ",fichier);
2529 EXIT_IF(( (majeur < 2) || ( (majeur == 2) && (mineur < 2)) ),
"Le fichier est antérieur à la version 2.2", NULL);
2545 fprintf(stdout,
"- En-tete du fichier : %s \n",fichier_en_tete);
2555 fprintf(stdout,
"(*****************)\n");
2556 fprintf(stdout,
"(* PARAMETRAGE : *)\n");
2557 fprintf(stdout,
"(*****************)\n");
2558 fprintf(stdout,
"- Mode d'affichage des coordonnées des noeuds ? \n");
2559 fprintf(stdout,
" 1. Mode entrelacé : taper 1 \n");
2560 fprintf(stdout,
" 2. Mode non entrelacé : taper 2 \n");
2563 fprintf(stdout,
" Reponse : ");
2564 scanf(
"%d",&reponse);
2565 }
while (reponse != 1 && reponse != 2);
2571 fprintf(stdout,
"- Connectivité des éléments ? \n");
2572 fprintf(stdout,
" 1. Nodale : taper 1 \n");
2573 fprintf(stdout,
" 2. Descendante : taper 2 \n");
2576 fprintf(stdout,
" Reponse : ");
2577 scanf(
"%d",&reponse);
2578 }
while (reponse != 1 && reponse != 2);
2594 char *
const maillage_description,
2596 char *
const dtunit,
2597 char *
const nomcoo,
2598 char *
const unicoo,
2605 fprintf(stdout,
"\n(********************************************)\n");
2606 fprintf(stdout,
"(* INFORMATIONS GENERALES SUR LE MAILLAGE : *)\n");
2607 fprintf(stdout,
"(********************************************)\n");
2610 ret =
MEDmeshInfo(fid, numero,nommaa,edim,mdim,type_maillage,maillage_description,
2611 dtunit,&sortingtype,nstep,rep,nomcoo,unicoo);
2612 EXIT_IF(ret < 0,
"Lecture des informations sur le maillage",NULL);
2615 fprintf(stdout,
"- Nom du maillage : <<%s>>\n",nommaa);
2616 fprintf(stdout,
"- Dimension du maillage : "IFORMAT"\n",*mdim);
2618 fprintf(stdout,
"- La dimension de l'espace est "IFORMAT" \n",*edim);
2620 fprintf(stdout,
"- Type du maillage : MED_NON_STRUCTURE \n");
2622 fprintf(stdout,
"- Type du maillage : MED_STRUCTURE \n");
2623 fprintf(stdout,
"- Description associee au maillage : %s\n",
2624 maillage_description);
2627 fprintf(stdout,
"- Nombre d'étapes de calcul associées au maillage : "IFORMAT"\n",
2630 fprintf(stdout,
"- Unité des dates d'étapes de calcul associées au maillage : %s\n",
2636 fprintf(stdout,
"- Nom universel du maillage : %s \n",nom_universel);
2651 int main (
int argc,
char **argv)
2658 int lecture_en_tete_seulement = 0;
2680 if (argc > 2 && strcmp(argv[1],
"--structure") == 0) {
2686 EXIT_IF(argc != 2 && argc != 5,
"nombre de parametres incorrects\n",NULL);
2700 fprintf(stdout,
"\n >>>>>> DUMP DU FICHIER %s >>>>>>\n",argv[1 + decalage]);
2709 if (! strcmp(argv[3 + decalage],
"NODALE"))
2711 if (! strcmp(argv[3 + decalage],
"DESCENDANTE"))
2714 if (!strcmp(argv[4 + decalage],
"NO_INTERLACE"))
2716 if (!strcmp(argv[4 + decalage],
"FULL_INTERLACE"))
2718 if (! strcmp(argv[4 + decalage],
"LECTURE_EN_TETE_SEULEMENT"))
2719 lecture_en_tete_seulement = 1;
2729 EXIT_IF(nmaa < 0,
"lors de la lecture du nombre de maillages",NULL);
2733 fprintf(stdout,
"- Il y a %d maillages dans ce fichier \n",nmaa);
2734 fprintf(stdout,
" Lequel voulez-vous lire (1|2|3|...|n) ?\n");
2736 fprintf(stdout,
" Reponse : ");
2737 scanf(
"%d",&numero);
2738 }
while ( (numero > nmaa) || (numero <= 0) );
2741 numero = atoi(argv[2 + decalage]);
2742 EXIT_IF(numero > nmaa || numero <= 0,
"ce numero de maillage n'existe pas",
2758 maillage_description,&nstep,dtunit,nomcoo,unicoo,&rep);
2761 for (csit=1; csit <= nstep; ++csit) {
2764 EXIT_IF(ret < 0,
"lors de l'appel à MEDmeshComputationStepInfo",NULL);
2773 nomcoo,unicoo,&rep,lecture_en_tete_seulement);
2776 nomcoo,unicoo,lecture_en_tete_seulement);
2790 EXIT_IF(ret < 0,
"lors de la fermeture du fichier",argv[1 + decalage]);
2792 fprintf(stdout,
"\n >>>>>> FIN DU DUMP DU FICHIER %s >>>>>>\n",argv[1 + decalage]);
2794 return EXIT_SUCCESS;