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_idt fid;
00045
00046 med_int mdim,axe;
00047 med_float indice[4];
00048 med_float coo[8] = {0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0};
00049 med_int nnoeuds = 4;
00050 med_int structure_grille[2] = {2,2};
00051 med_int nind;
00052
00053 char maa[MED_TAILLE_NOM+1];
00054
00055 char comp[MED_TAILLE_PNOM+1];
00056 char unit[MED_TAILLE_PNOM+1];
00057
00058 char comp2[2*MED_TAILLE_PNOM+1] = "X Y ";
00059 char unit2[2*MED_TAILLE_PNOM+1] = "cm cm ";
00060
00061
00062 fid = MEDouvrir("test27.med",MODE_ACCES);
00063 if (fid < 0) {
00064 MESSAGE("Erreur a la creation du fichier test27.med");
00065 return -1;
00066 }
00067 printf("Creation du fichier test27.med \n");
00068
00069
00070 if (MEDmaaCr(fid,"maillage vide",3,MED_NON_STRUCTURE,"un maillage vide") < 0) {
00071 MESSAGE("Erreur a la creation du maillage MED_NON_STRUCTURE");
00072 return -1;
00073 }
00074
00075
00076 strcpy(maa,"grille_cartesienne");
00077 mdim = 2;
00078
00079
00080 if (MEDmaaCr(fid,maa,mdim,MED_STRUCTURE,
00081 "un exemple de grille cartesienne") < 0) {
00082 MESSAGE("Erreur a la creation de la grille");
00083 return -1;
00084 }
00085 printf("Creation d'un maillage structure MED_STRUCTURE \n");
00086
00087
00088 if (MEDnatureGrilleEcr(fid,maa,MED_GRILLE_CARTESIENNE) < 0) {
00089 MESSAGE("Erreur a l'ecriture de la nature de la grille");
00090 return -1;
00091 }
00092 printf("On definit la nature du maillage structure : MED_GRILLE_CARTESIENNE \n");
00093
00094
00095
00096 indice[0] = 1.1;
00097 indice[1] = 1.2;
00098 indice[2] = 1.3;
00099 indice[3] = 1.4;
00100 nind = 4;
00101 axe = 1;
00102
00103 strcpy(comp,"X");
00104 strcpy(unit,"cm");
00105 if (MEDindicesCoordEcr(fid,maa,mdim,indice,nind,axe,comp,unit) < 0) {
00106 MESSAGE("Erreur a l'ecriture de l'axe X");
00107 return -1;
00108 }
00109 printf("Ecriture des indices des coordonnees selon l'axe des X \n");
00110
00111
00112 indice[0] = 2.1;
00113 indice[1] = 2.2;
00114 indice[2] = 2.3;
00115 indice[3] = 2.4;
00116 nind = 4;
00117
00118 strcpy(comp,"Y");
00119 strcpy(unit,"cm");
00120 axe = 2;
00121 if (MEDindicesCoordEcr(fid,maa,mdim,indice,nind,axe,comp,unit) < 0) {
00122 MESSAGE("Erreur a l'ecriture de l'axe Y");
00123 return -1;
00124 }
00125 printf("Ecriture des indices des coordonnees selon l'axe des Y \n");
00126
00127
00128 strcpy(maa,"grille_standard");
00129 mdim = 2;
00130
00131
00132 if (MEDmaaCr(fid,maa,mdim,MED_STRUCTURE,
00133 "un exemple de grille standard") < 0) {
00134 MESSAGE("Erreur a la creation de la 2e grille");
00135 return -1;
00136 }
00137 printf("Creation d'un maillage structure MED_STRUCTURE \n");
00138
00139
00140 if (MEDnatureGrilleEcr(fid,maa,MED_GRILLE_STANDARD) < 0) {
00141 MESSAGE("Erreur a l'ecriture du type de la grille");
00142 return -1;
00143 }
00144 printf("On definit la nature du maillage structure : MED_GRILLE_STANDARD \n");
00145
00146
00147 if (MEDcoordEcr(fid,maa,mdim,coo,MED_FULL_INTERLACE,nnoeuds,MED_CART,comp2,unit2) < 0) {
00148 MESSAGE("Erreur a l'ecriture des noeuds de la grille MED_GRILLE_STANDARD");
00149 return -1;
00150 }
00151 printf("Ecriture des coordonnees des noeuds \n");
00152
00153
00154 if (MEDstructureCoordEcr(fid,maa,mdim,structure_grille) < 0) {
00155 MESSAGE("Erreur a l'ecriture de la structure de la grille");
00156 return -1;
00157 }
00158 printf("Ecriture de la structure de la grille : / 2,2 / \n");
00159
00160
00161 if (MEDfermer(fid) < 0) {
00162 MESSAGE("Erreur a la fermeture du fichier");
00163 return -1;
00164 }
00165 printf("Fermeture du fichier \n");
00166
00167 return 0;
00168 }