00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #define _a 0.446948490915965
00018 #define _b 0.091576213509771
00019 #define _p1 0.11169079483905
00020 #define _p2 0.0549758718227661
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include <med.h>
00030 #define MESGERR 1
00031 #include "med_utils.h"
00032 #include <string.h>
00033
00034 #ifdef DEF_LECT_ECR
00035 #define MODE_ACCES MED_LECTURE_ECRITURE
00036 #elif DEF_LECT_AJOUT
00037 #define MODE_ACCES MED_LECTURE_AJOUT
00038 #else
00039 #define MODE_ACCES MED_CREATION
00040 #endif
00041
00042 #ifndef USER_INTERLACE
00043 #define USER_INTERLACE MED_FULL_INTERLACE
00044 #endif
00045
00046 #define USER_MODE MED_COMPACT
00047
00048 int main (int argc, char **argv)
00049
00050
00051 {
00052 med_err ret=0;
00053 med_idt fid;
00054
00055
00056
00057
00058
00059 char maa1[MED_TAILLE_NOM+1]= "maa1";
00060 char maa2[MED_TAILLE_NOM+1]= "maa2";
00061 char * lien_maa2 = "./testfoo.med";
00062 char maa3[MED_TAILLE_NOM+1]= "maa3";
00063
00064
00065
00066 char nomcha1[MED_TAILLE_NOM+1] = "champ reel";
00067 char comp1[2*MED_TAILLE_PNOM+1] = "comp1 comp2 ";
00068
00069 char unit1[2*MED_TAILLE_PNOM+1] = "unit1 unit2 ";
00070 med_int ncomp1 = 2;
00071
00072 med_int ngauss1_1 = 6;
00073 char gauss1_1[MED_TAILLE_NOM+1] = "Model n1";
00074 med_float refcoo1[12] = { -1.0,1.0, -1.0,-1.0, 1.0,-1.0, -1.0,0.0, 0.0,-1.0, 0.0,0.0 };
00075
00076
00077
00078 med_float gscoo1_1[12] = { 2*_b-1, 1-4*_b, 2*_b-1, 2*_b-1, 1-4*_b,
00079 2*_b-1, 1-4*_a, 2*_a-1, 2*_a-1, 1-4*_a, 2*_a-1, 2*_a-1 };
00080 med_float wg1_1[6] = { 4*_p2, 4*_p2, 4*_p2, 4*_p1, 4*_p1, 4*_p1 };
00081
00082 med_int nval1_1= 1*6;
00083 med_float valr1_1[1*6*2] = {0.0,1.0, 2.0,3.0, 10.0,11.0, 12.0,13.0, 20.0,21.0, 22.0,23.0};
00084
00085 med_int ngauss1_2 = 3;
00086 char gauss1_2[MED_TAILLE_NOM+1] = "Model n2";
00087 med_float gscoo1_2[6] = { -2.0/3,1.0/3, -2.0/3,-2.0/3, 1.0/3,-2.0/3 };
00088 med_float wg1_2[3] = { 2.0/3, 2.0/3, 2.0/3 };
00089 med_int nval1_2= 2*3;
00090 med_float valr1_2[2*3*2] = {0.0,1.0, 2.0,3.0, 10.0,11.0, 12.0,13.0, 20.0,21.0, 22.0,23.0};
00091 med_float valr1_2p[2*3*2] = { 12.0,13.0, 20.0,21.0, 22.0,23.0};
00092
00093 med_int nval1_3= 6;
00094 med_float valr1_3[2*3*2] = {0.0,1.0, 2.0,3.0, 10.0,11.0, 12.0,13.0, 20.0,21.0, 22.0,23.0};
00095 med_float valr1_3p[2*2*2] = { 2.0,3.0, 10.0,11.0 };
00096
00097
00098 char nomcha2[MED_TAILLE_NOM+1] = "champ entier";
00099 char comp2[3*MED_TAILLE_PNOM+1] = "comp1 comp2 comp3 ";
00100
00101 char unit2[3*MED_TAILLE_PNOM+1] = "unit1 unit2 unit3 ";
00102 med_int ncomp2 = 3;
00103 med_int nval2 = 5;
00104 med_int valr2[5*3 ] = {0,1,2, 10,11,12, 20,21,22, 30,31,32, 40,41,42};
00105 med_int valr2p[3*3 ] = {0,1,2, 20,21,22, 40,41,42};
00106
00107
00108 char nomprofil1[MED_TAILLE_NOM+1] = "PROFIL(champ(1))";
00109 char nomprofil2[MED_TAILLE_NOM+1] = "PROFIL(champ2)";
00110 med_int profil1[2] = { 2, 3 };
00111 med_int profil2[3] = { 1, 3, 5 };
00112
00113
00114
00115 char nomcha3[MED_TAILLE_NOM+1] = "champ entier 3";
00116 char comp3[3*MED_TAILLE_PNOM+1] = "comp1 comp2 ";
00117
00118 char unit3[3*MED_TAILLE_PNOM+1] = "unit1 unit2 ";
00119 med_int ncomp3 = 2;
00120 med_int nval3 = 5*4;
00121 med_int valr3[5*4*2] = {0,1, 10,11, 20,21, 30,31,
00122 40,41, 50,51, 60,61, 70,71,
00123 80,81, 90,91, 100,101, 110,111,
00124 120,121, 130,131, 140,141, 150,151,
00125 160,161, 170,171, 180,181, 190,191};
00126 med_int valr3p[3*4*2] = {0,1, 10,11, 20,21, 30,31,
00127 80,81, 90,91, 100,101, 110,111,
00128 160,161, 170,171, 180,181, 190,191};
00129
00130
00131
00132
00133
00134
00135
00136 if ((fid = MEDouvrir("test10.med",MODE_ACCES)) < 0){
00137 MESSAGE("Erreur à l'ouverture du fichier : ");
00138 return -1;
00139 }
00140
00141
00142 if ( MEDmaaCr(fid,maa1,3,MED_NON_STRUCTURE,"Maillage vide") < 0) {
00143 MESSAGE("Erreur à la création du maillage : ");SSCRUTE(maa1);
00144 ret = -1;
00145 };
00146
00147
00148 if ( MEDmaaCr(fid,maa3,3,MED_NON_STRUCTURE,"Maillage vide") < 0) {
00149 MESSAGE("Erreur à la création du maillage : ");SSCRUTE(maa3);
00150 ret = -1;
00151 };
00152
00153
00154 if ( MEDchampCr(fid,nomcha1,MED_FLOAT64,comp1,unit1,ncomp1) < 0) {
00155 MESSAGE("Erreur à la création du champ : ");SSCRUTE(nomcha1);
00156 ret = -1;
00157 };
00158
00159
00160 if ( MEDchampCr(fid,nomcha2,MED_INT32,comp2,unit2,ncomp2) < 0) {
00161 MESSAGE("Erreur à la création du champ : ");SSCRUTE(nomcha2);
00162 ret = -1;
00163 };
00164
00165
00166 if (MEDlienEcr(fid,lien_maa2,maa2) < 0) {
00167 MESSAGE("Erreur à la création du lien : ");SSCRUTE(lien_maa2);
00168 ret = -1;
00169 };
00170
00171
00172 if (MEDgaussEcr(fid, MED_TRIA6, refcoo1, USER_INTERLACE,
00173 ngauss1_1, gscoo1_1, wg1_1, gauss1_1) < 0) {
00174 MESSAGE("Erreur à la création du modèle n°1 : ");SSCRUTE(gauss1_1);
00175 ret = -1;
00176 };
00177
00178
00179 if (MEDgaussEcr(fid, MED_TRIA6, refcoo1, USER_INTERLACE,
00180 ngauss1_2, gscoo1_2, wg1_2, gauss1_2) < 0) {
00181 MESSAGE("Erreur à la création du modèle n°1 : ");SSCRUTE(gauss1_2);
00182 ret = -1;
00183 };
00184
00185
00186
00187 if ( MEDchampEcr(fid,maa1,nomcha1,(unsigned char*)valr1_1,USER_INTERLACE,nval1_1,gauss1_1,
00188 2,MED_NOPFL,MED_NO_PFLMOD,MED_MAILLE,MED_TRIA6,MED_NOPDT,"",0.0,MED_NONOR ) < 0) {
00189 MESSAGE("Erreur à l'écriture du champ : ");
00190 SSCRUTE(nomcha1);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00191 SSCRUTE(maa1);
00192 ret = -1;
00193 };
00194
00195
00196
00197 if ( MEDchampEcr(fid,maa1,nomcha1,(unsigned char*)valr1_1,USER_INTERLACE,nval1_1,gauss1_1,
00198 1,MED_NOPFL,MED_NO_PFLMOD,MED_MAILLE,MED_TRIA6,MED_NOPDT,"",0.0,MED_NONOR) < 0) {
00199 MESSAGE("Erreur à l'écriture du champ : ");
00200 SSCRUTE(nomcha1);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00201 SSCRUTE(maa1);
00202 ret = -1;
00203 };
00204
00205
00206
00207
00208 if ( MEDchampEcr(fid,maa2,nomcha1,(unsigned char*)valr1_2,USER_INTERLACE,nval1_2,gauss1_2,
00209 1,MED_NOPFL,MED_NO_PFLMOD,MED_MAILLE,MED_TRIA6,1,"ms",5.5,MED_NONOR) < 0) {
00210 MESSAGE("Erreur à l'écriture du champ : ");
00211 SSCRUTE(nomcha1);ISCRUTE_int(1);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00212 SSCRUTE(maa2);
00213 ret = -1;
00214 };
00215
00216
00217
00218 if ( MEDchampEcr(fid,maa1,nomcha1,(unsigned char*)valr1_1,USER_INTERLACE,nval1_1,gauss1_1,
00219 2,MED_NOPFL,MED_NO_PFLMOD,MED_MAILLE,MED_TRIA6,1,"ms",5.5,MED_NONOR) < 0) {
00220 MESSAGE("Erreur à l'écriture du champ : ");
00221 SSCRUTE(nomcha1);ISCRUTE_int(1);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00222 SSCRUTE(maa1);
00223 ret = -1;
00224 };
00225
00226
00227
00228 if ( MEDchampEcr(fid,maa3,nomcha1,(unsigned char*)valr1_2,USER_INTERLACE,nval1_2,gauss1_2,
00229 1,MED_NOPFL,MED_NO_PFLMOD,MED_MAILLE,MED_TRIA6,1,"ms",5.5,2) < 0) {
00230 MESSAGE("Erreur à l'écriture du champ : ");
00231 SSCRUTE(nomcha1);ISCRUTE_int(1);ISCRUTE_int(2);SSCRUTE(MED_NOPFL);
00232 SSCRUTE(maa3);
00233 ret = -1;
00234 };
00235
00236
00237
00238 if ( MEDprofilEcr(fid,profil1,1,nomprofil1) < 0) {
00239 MESSAGE("Erreur à l'écriture du profil : ");
00240 SSCRUTE(nomprofil1);
00241 ret = -1;
00242 };
00243
00244
00245
00246
00247 if ( MEDchampEcr(fid,maa1, nomcha1,(unsigned char*)valr1_3p,USER_INTERLACE,nval1_3,MED_NOGAUSS,
00248 MED_ALL,nomprofil1,USER_MODE,MED_MAILLE,MED_TRIA6,2,"ms",5.6,2) < 0) {
00249 MESSAGE("Erreur à l'écriture du champ : ");
00250 SSCRUTE(nomcha1);ISCRUTE_int(2);ISCRUTE_int(2);SSCRUTE(nomprofil1);
00251 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00252 ret = -1;
00253 };
00254
00255
00256
00257 if ( MEDchampEcr(fid,maa2, nomcha1,(unsigned char*)valr1_2p,USER_INTERLACE,nval1_2,gauss1_2,
00258 MED_ALL,nomprofil1,USER_MODE,MED_MAILLE,MED_TRIA6,2,"ms",5.6,2) < 0) {
00259 MESSAGE("Erreur à l'écriture du champ : ");
00260 SSCRUTE(nomcha1);ISCRUTE_int(2);ISCRUTE_int(2);SSCRUTE(nomprofil1);
00261 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00262 ret = -1;
00263 };
00264
00265
00266
00267 if ( MEDchampEcr(fid,maa1,nomcha1,(unsigned char*)valr1_3p,USER_INTERLACE,nval1_3,MED_NOGAUSS,
00268 2,nomprofil1,USER_MODE,MED_MAILLE,MED_TRIA6,3,"ms",5.7,2) < 0) {
00269 MESSAGE("Erreur à l'écriture du champ : ");
00270 SSCRUTE(nomcha1);ISCRUTE_int(2);ISCRUTE_int(2);SSCRUTE(nomprofil1);
00271 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00272 ret = -1;
00273 };
00274
00275
00276
00277
00278
00279
00280
00281 if (MEDchampEcr(fid,maa1,nomcha2,(unsigned char*)valr2,USER_INTERLACE,nval2,MED_NOGAUSS,
00282 1,MED_NOPFL,MED_NO_PFLMOD,MED_ARETE,MED_SEG2,MED_NOPDT,"",0.0,MED_NONOR) < 0) {
00283 MESSAGE("Erreur à l'écriture du champ : ");
00284 SSCRUTE(nomcha2);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00285 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00286 ret = -1;
00287 };
00288
00289
00290
00291
00292 if (MEDchampEcr(fid,maa1,nomcha2,(unsigned char*)valr2,USER_INTERLACE,nval2,MED_NOGAUSS,
00293 2,MED_NOPFL,MED_NO_PFLMOD,MED_NOEUD,0,MED_NOPDT,"",0.0,MED_NONOR) < 0) {
00294 MESSAGE("Erreur à l'écriture du champ : ");
00295 SSCRUTE(nomcha2);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00296 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00297 ret = -1;
00298 };
00299
00300
00301
00302 if ( MEDchampEcr(fid,maa1,nomcha2,(unsigned char*)valr2,USER_INTERLACE,nval2,MED_NOGAUSS,
00303 3,MED_NOPFL,MED_NO_PFLMOD,MED_FACE,MED_TRIA6,MED_NOPDT,"",0.0,MED_NONOR) < 0 ) {
00304 MESSAGE("Erreur à l'écriture du champ : ");
00305 SSCRUTE(nomcha2);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00306 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00307 ret = -1;
00308 };
00309
00310
00311
00312 if ( MEDprofilEcr(fid,profil2,3,nomprofil2) < 0) {
00313 MESSAGE("Erreur à l'écriture du profil : ");
00314 SSCRUTE(nomprofil2);
00315 ret = -1;
00316 };
00317
00318
00319 if ( MEDchampEcr(fid,maa1,nomcha2,(unsigned char*)valr2p,USER_INTERLACE,nval2,MED_NOGAUSS,
00320 3,nomprofil2,USER_MODE,MED_MAILLE,MED_TRIA6,MED_NOPDT,"",0.0,MED_NONOR) < 0 ) {
00321 MESSAGE("Erreur à l'écriture du champ : ");
00322 SSCRUTE(nomcha2);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00323 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00324 ret = -1;
00325 };
00326
00327
00328 if ( MEDchampCr(fid,nomcha3,MED_INT32,comp3,unit3,ncomp3) < 0) {
00329 MESSAGE("Erreur à la création du champ : ");SSCRUTE(nomcha3);
00330 ret = -1;
00331 };
00332
00333
00334
00335
00336 if (MEDchampEcr(fid,maa1,nomcha3,(unsigned char*)valr3,USER_INTERLACE,nval3,MED_NOGAUSS,
00337 1,MED_NOPFL,MED_NO_PFLMOD,MED_NOEUD_MAILLE,MED_QUAD4,MED_NOPDT,"",0.0,MED_NONOR) < 0) {
00338 MESSAGE("Erreur à l'écriture du champ : ");
00339 SSCRUTE(nomcha3);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00340 SSCRUTE(maa1);SSCRUTE(MED_NOLIEN);
00341 ret = -1;
00342 };
00343
00344
00345 if (MEDchampEcr(fid,maa2,nomcha3,(unsigned char*)valr3,USER_INTERLACE,nval3,MED_NOGAUSS,
00346 MED_ALL,MED_NOPFL,MED_NO_PFLMOD,MED_NOEUD_MAILLE,MED_QUAD4,MED_NOPDT,"",0.0,MED_NONOR) < 0) {
00347 MESSAGE("Erreur à l'écriture du champ : ");
00348 SSCRUTE(nomcha3);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(MED_NOPFL);
00349 SSCRUTE(maa2);SSCRUTE(MED_NOLIEN);
00350 ret = -1;
00351 };
00352
00353
00354 if (MEDchampEcr(fid,maa3,nomcha3,(unsigned char*)valr3p,USER_INTERLACE,nval3,MED_NOGAUSS,
00355 MED_ALL,nomprofil2,USER_MODE,MED_NOEUD_MAILLE,MED_QUAD4,MED_NOPDT,"",0.0,MED_NONOR) < 0) {
00356 MESSAGE("Erreur à l'écriture du champ : ");
00357 SSCRUTE(nomcha3);ISCRUTE_int(MED_NOPDT);ISCRUTE_int(MED_NONOR);SSCRUTE(nomprofil2);
00358 SSCRUTE(maa3);SSCRUTE(MED_NOLIEN);
00359 ret = -1;
00360 };
00361
00362
00363
00364 if ( MEDfermer(fid) < 0 ) ret=-1;
00365
00366 return ret;
00367 }
00368
00369
00370
00371