00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 program test10
00025
00026 implicit none
00027 include 'med.hf'
00028
00029 integer ret,fid,USER_INTERLACE,USER_MODE
00030 real*8 a,b,p1,p2,dt
00031
00032 character*32 maa1,maa2,maa3
00033 character*13 lien_maa2
00034
00035 character*32 nomcha1
00036 character*16 comp1(2), unit1(2)
00037 character*16 dtunit1, nounit
00038 integer ncomp1
00039
00040 integer ngauss1_1
00041 character*32 gauss1_1
00042 real*8 refcoo1(12), gscoo1_1(12), wg1_1(6)
00043 integer nval1_1
00044 real*8 valr1_1(1*6*2)
00045
00046 integer ngauss1_2
00047 character*32 gauss1_2
00048 real*8 gscoo1_2(6), wg1_2(3)
00049 integer nval1_2
00050 real*8 valr1_2(2*3*2)
00051 real*8 valr1_2p(2*3)
00052
00053 integer ngauss1_3,nval1_3
00054 real*8 valr1_3(2*3*2)
00055 real*8 valr1_3p(2*2)
00056
00057
00058 character*32 nomcha2
00059 character*16 comp2(3), unit2(3)
00060 integer ncomp2, nval2
00061 integer valr2(5*3), valr2p(3*3)
00062
00063
00064 character*32 nomcha3
00065 character*16 comp3(2), unit3(2)
00066 integer ncomp3, nval3
00067 integer valr3(5*4*2), valr3p(3*4*2)
00068
00069
00070 character*32 nomprofil1
00071 integer profil1(2) , profil2(3)
00072
00073 parameter (USER_INTERLACE = MED_FULL_INTERLACE)
00074 parameter (USER_MODE = MED_COMPACT )
00075 parameter ( a=0.446948490915965D0, b=0.091576213509771D0 )
00076 parameter ( p1=0.11169079483905D0, p2=0.0549758718227661D0 )
00077
00078 parameter ( maa1 = "maa1", maa2 = "maa2", maa3 = "maa3" )
00079 parameter ( lien_maa2= "./testfoo.med" )
00080
00081 parameter ( nomcha1 = "champ reel" )
00082 parameter ( ncomp1 = 2 )
00083 parameter ( dtunit1 = " ")
00084 parameter ( nounit = " ")
00085
00086 parameter ( gauss1_1 = "Model n1" )
00087 parameter ( ngauss1_1 = 6 )
00088
00089 parameter ( gauss1_2 = "Model n2" )
00090 parameter ( ngauss1_2 = 3 )
00091
00092 parameter ( ngauss1_3 = 6 )
00093 parameter ( nval1_3 = 6 )
00094
00095 parameter ( nomcha2="champ entier")
00096 parameter ( ncomp2 = 3, nval2= 5 )
00097
00098 parameter ( nomcha3="champ entier 3")
00099 parameter ( ncomp3 = 2, nval3= 5*4 )
00100
00101 parameter ( nomprofil1 = "PROFIL(champ(1))" )
00102
00103
00104
00105 data comp1 /"comp1", "comp2"/
00106 data unit1 /"unit1","unit2"/
00107
00108 data nval1_1 / 1*6 /
00109 data refcoo1 / -1.0,1.0, -1.0,-1.0, 1.0,-1.0, -1.0,0.0,
00110 1 0.0,-1.0, 0.0,0.0 /
00111 data valr1_1 / 0.0,1.0, 2.0,3.0, 10.0,11.0, 12.0,13.0,
00112 1 20.0,21.0, 22.0,23.0/
00113
00114 data valr1_2 / 0.0,1.0, 2.0,3.0, 10.0,11.0,
00115 1 12.0,13.0, 20.0,21.0, 22.0,23.0 /
00116 data valr1_2p / 12.0,13.0, 20.0,21.0, 22.0,23.0 /
00117
00118 data valr1_3 / 0.0,1.0, 2.0,3.0, 10.0,11.0, 12.0,13.0,
00119 1 20.0,21.0, 22.0,23.0 /
00120 data valr1_3p / 2.0,3.0, 10.0,11.0 /
00121
00122 data comp2 /"comp1", "comp2", "comp3"/
00123 data unit2 /"unit1","unit2", "unit3"/
00124 data valr2 / 0,1,2, 10,11,12, 20,21,22, 30,31,32, 40,41,42 /
00125 data valr2p / 0,1,2, 20,21,22, 40,41,42 /
00126
00127 data comp3 /"comp1", "comp2"/
00128 data unit3 /"unit1","unit2"/
00129 data valr3 / 0,1, 10,11, 20,21, 30,31,
00130 1 40,41, 50,51, 60,61, 70,71,
00131 1 80,81, 90,91, 100,101, 110,111,
00132 1 120,121, 130,131, 140,141, 150,151,
00133 1 160,161, 170,171, 180,181, 190,191 /
00134 data valr3p / 0,1, 10,11, 20,21, 30,31,
00135 1 80,81, 90,91, 100,101, 110,111,
00136 1 160,161, 170,171, 180,181, 190,191 /
00137
00138
00139
00140 data profil1 /2,3/
00141 data profil2 /1,3,5/
00142
00143 ret = 0
00144
00145 gscoo1_1(1) = 2*b-1
00146 gscoo1_1(2) = 1-4*b
00147 gscoo1_1(3) = 2*b-1
00148 gscoo1_1(4) = 2*b-1
00149 gscoo1_1(5) = 1-4*b
00150 gscoo1_1(6) = 2*b-1
00151 gscoo1_1(7) = 1-4*a
00152 gscoo1_1(8) = 2*a-1
00153 gscoo1_1(9) = 2*a-1
00154 gscoo1_1(10) = 1-4*a
00155 gscoo1_1(11) = 2*a-1
00156 gscoo1_1(12) = 2*a-1
00157
00158 wg1_1(1) = 4*p2
00159 wg1_1(2) = 4*p2
00160 wg1_1(3) = 4*p2
00161 wg1_1(4) = 4*p1
00162 wg1_1(5) = 4*p1
00163 wg1_1(6) = 4*p1
00164
00165 nval1_2 = 2*3
00166 gscoo1_2(1) = -2.0D0/3
00167 gscoo1_2(2) = 1.0D0/3
00168 gscoo1_2(3) = -2.0D0/3
00169 gscoo1_2(4) = -2.0D0/3
00170 gscoo1_2(5) = 1.0D0/3
00171 gscoo1_2(6) = -2.0D0/3
00172
00173 wg1_2(1) = 2.0D0/3
00174 wg1_2(2) = 2.0D0/3
00175 wg1_2(3) = 2.0D0/3
00176
00177
00178 call efouvr(fid,'test10.med',MED_LECTURE_ECRITURE, ret)
00179 if (ret .ne. 0 ) then
00180 print *,'Erreur à l''ouverture du fichier : ','test10.med'
00181 call efexit(-1)
00182 endif
00183
00184
00185 call efmaac(fid,maa1,3,MED_NON_STRUCTURE,
00186 1 "Maillage vide",ret)
00187 if (ret .ne. 0 ) then
00188 print *,'Erreur à la création du maillage : ', maa1
00189 call efexit(-1)
00190 endif
00191
00192
00193 call efmaac(fid,maa3,3,MED_NON_STRUCTURE,
00194 1 "Maillage vide",ret)
00195 if (ret .ne. 0 ) then
00196 print *,'Erreur à la création du maillage : ', maa3
00197 call efexit(-1)
00198 endif
00199
00200
00201
00202 call efchac(fid,nomcha1,MED_FLOAT64,comp1,unit1,ncomp1,ret)
00203 if (ret .ne. 0 ) then
00204 print *,'Erreur à la création du champ : ', nomcha1
00205 call efexit(-1)
00206 endif
00207
00208
00209 call efchac(fid,nomcha2,MED_INT32,comp2,unit2,ncomp2,ret)
00210 if (ret .ne. 0 ) then
00211 print *,'Erreur à la création du champ : ', nomcha2
00212 call efexit(-1)
00213 endif
00214
00215
00216 call efliee(fid,lien_maa2,maa2,ret)
00217 if (ret .ne. 0 ) then
00218 print *,'Erreur à la création du lien : ', lien_maa2
00219 call efexit(-1)
00220 endif
00221
00222
00223 call efgaue(fid, MED_TRIA6, refcoo1, USER_INTERLACE,
00224 1 ngauss1_1, gscoo1_1, wg1_1, gauss1_1, ret)
00225 if (ret .ne. 0 ) then
00226 print *,'Erreur à la création du modèle n°1 : ', gauss1_1
00227 call efexit(-1)
00228 endif
00229
00230
00231 call efgaue(fid, MED_TRIA6, refcoo1, USER_INTERLACE,
00232 1 ngauss1_2, gscoo1_2, wg1_2, gauss1_2, ret)
00233 if (ret .ne. 0 ) then
00234 print *,'Erreur à la création du modèle n°2 : ', gauss1_2
00235 call efexit(-1)
00236 endif
00237
00238
00239
00240
00241
00242 dt = 0.0D0
00243 call efchae(fid,maa1,nomcha1,valr1_1,USER_INTERLACE,nval1_1,
00244 1 gauss1_1,2,MED_NOPFL,MED_NO_PFLMOD,
00245 2 MED_MAILLE,MED_TRIA6,
00246 3 MED_NOPDT,dtunit1,dt,MED_NONOR,ret)
00247 if (ret .ne. 0 ) then
00248 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.1'
00249 call efexit(-1)
00250 endif
00251
00252
00253
00254
00255 call efchae(fid,maa1,nomcha1,valr1_1,USER_INTERLACE,nval1_1,
00256 1 gauss1_1,1,MED_NOPFL,MED_NO_PFLMOD,
00257 2 MED_MAILLE,MED_TRIA6,
00258 3 MED_NOPDT,dtunit1,dt,MED_NONOR,ret)
00259 if (ret .ne. 0 ) then
00260 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.2'
00261 call efexit(-1)
00262 endif
00263
00264
00265
00266
00267
00268
00269 dt = 5.5D0
00270 call efchae(fid,maa2,nomcha1,valr1_2,USER_INTERLACE,nval1_2,
00271 1 gauss1_2,1,MED_NOPFL,MED_NO_PFLMOD,
00272 2 MED_MAILLE,MED_TRIA6,
00273 3 1,"ms",dt,MED_NONOR,ret)
00274 if (ret .ne. 0 ) then
00275 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.3'
00276 call efexit(-1)
00277 endif
00278
00279
00280
00281
00282
00283
00284 dt = 5.5D0
00285 call efchae(fid,maa1,nomcha1,valr1_1,USER_INTERLACE,nval1_1,
00286 1 gauss1_1,2,MED_NOPFL,MED_NO_PFLMOD,
00287 2 MED_MAILLE,MED_TRIA6,
00288 3 1,"ms",dt,MED_NONOR,ret)
00289 if (ret .ne. 0 ) then
00290 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.4'
00291 call efexit(-1)
00292 endif
00293
00294
00295
00296
00297
00298
00299
00300 dt = 5.5D0
00301 call efchae(fid,maa3,nomcha1,valr1_2,USER_INTERLACE,nval1_2,
00302 1 gauss1_2,1,MED_NOPFL,MED_NO_PFLMOD,
00303 2 MED_MAILLE,MED_TRIA6,
00304 3 1,"ms",dt,2,ret)
00305 if (ret .ne. 0 ) then
00306 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.5'
00307 call efexit(-1)
00308 endif
00309
00310
00311
00312 call efpfle(fid,profil1,1,nomprofil1,ret)
00313 if (ret .ne. 0 ) then
00314 print *,'Erreur à la création du profil : ', nomprofil1
00315 call efexit(-1)
00316 endif
00317
00318
00319
00320
00321
00322
00323
00324 dt = 5.6D0
00325 call efchae(fid,maa1,nomcha1,valr1_3p,USER_INTERLACE,nval1_3,
00326 1 MED_NOGAUSS,MED_ALL,nomprofil1,USER_MODE,
00327 2 MED_MAILLE,MED_TRIA6,
00328 3 2,"ms",dt,2,ret)
00329 if (ret .ne. 0 ) then
00330 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.6'
00331 call efexit(-1)
00332 endif
00333
00334
00335
00336
00337
00338
00339 dt = 5.6D0
00340 call efchae(fid,maa2,nomcha1,valr1_2p,USER_INTERLACE,nval1_2,
00341 1 gauss1_2,MED_ALL,nomprofil1,USER_MODE,
00342 2 MED_MAILLE,MED_TRIA6,
00343 3 2,"ms",dt,2,ret)
00344 if (ret .ne. 0 ) then
00345 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.7'
00346 call efexit(-1)
00347 endif
00348
00349
00350
00351
00352
00353
00354
00355 dt = 5.7D0
00356 call efchae(fid,maa1,nomcha1,valr1_3p,USER_INTERLACE,nval1_3,
00357 1 MED_NOGAUSS,2,nomprofil1,USER_MODE,
00358 2 MED_MAILLE,MED_TRIA6,
00359 3 3,"ms",dt,2,ret)
00360 if (ret .ne. 0 ) then
00361 print *,'Erreur à l''écriture du champ : ', nomcha1,'et.8'
00362 call efexit(-1)
00363 endif
00364
00365
00366
00367
00368
00369 dt = 0.0D0
00370 call efchae(fid,maa1,nomcha2,valr2,USER_INTERLACE,nval2,
00371 1 MED_NOGAUSS,1,MED_NOPFL,MED_NO_PFLMOD,MED_ARETE,
00372 1 MED_SEG2,MED_NOPDT,nounit,dt,MED_NONOR,ret)
00373 if (ret .ne. 0 ) then
00374 print *,'Erreur à l''écriture du champ : ', nomcha2,'et.1'
00375 call efexit(-1)
00376 endif
00377
00378
00379
00380
00381
00382
00383 call efchae(fid,maa1,nomcha2,valr2,USER_INTERLACE,nval2,
00384 1 MED_NOGAUSS,2,MED_NOPFL,MED_NO_PFLMOD,MED_NOEUD,
00385 1 0,MED_NOPDT,nounit,dt,MED_NONOR,ret)
00386 if (ret .ne. 0 ) then
00387 print *,'Erreur à l''écriture du champ : ', nomcha2,'et.2'
00388 call efexit(-1)
00389 endif
00390
00391
00392
00393
00394
00395
00396
00397 call efchae(fid,maa1,nomcha2,valr2,USER_INTERLACE,nval2,
00398 1 MED_NOGAUSS,3,MED_NOPFL,MED_NO_PFLMOD,MED_FACE,
00399 1 MED_TRIA6,MED_NOPDT,nounit,dt,MED_NONOR,ret)
00400 if (ret .ne. 0 ) then
00401 print *,'Erreur à l''écriture du champ : ', nomcha2,'et.3'
00402 call efexit(-1)
00403 endif
00404
00405
00406
00407 call efpfle(fid,profil2,3,"PROFIL(champ2)",ret)
00408 if (ret .ne. 0 ) then
00409 print *,'Erreur à l''écriture du profil : ',
00410 1 'profil2(champ2)'
00411 call efexit(-1)
00412 endif
00413
00414
00415
00416
00417
00418
00419
00420
00421 call efchae(fid,maa1,nomcha2,valr2p,USER_INTERLACE,nval2,
00422 1 MED_NOGAUSS,3,"PROFIL(champ2)",USER_MODE,MED_MAILLE,
00423 1 MED_TRIA6,MED_NOPDT,nounit,dt,MED_NONOR,ret)
00424 if (ret .ne. 0 ) then
00425 print *,'Erreur à l''écriture du profil : ',
00426 1 'profil2(champ2)'
00427 call efexit(-1)
00428 endif
00429
00430
00431 call efchac(fid,nomcha3,MED_INT32,comp3,unit3,ncomp3,ret)
00432 if (ret .ne. 0 ) then
00433 print *,'Erreur à la création du champ : ', nomcha3
00434 call efexit(-1)
00435 endif
00436
00437
00438
00439
00440
00441
00442 call efchae(fid,maa1,nomcha3,valr3,USER_INTERLACE,nval3,
00443 1 MED_NOGAUSS,1,MED_NOPFL,MED_NO_PFLMOD,MED_NOEUD_MAILLE,
00444 1 MED_QUAD4,MED_NOPDT,nounit,dt,MED_NONOR,ret)
00445 if (ret .ne. 0 ) then
00446 print *,'Erreur à l''écriture du champ : ', nomcha3,'et.1'
00447 call efexit(-1)
00448 endif
00449
00450
00451
00452
00453
00454
00455 call efchae(fid,maa2,nomcha3,valr3,USER_INTERLACE,nval3,
00456 1 MED_NOGAUSS,MED_ALL,MED_NOPFL,MED_NO_PFLMOD,
00457 1 MED_NOEUD_MAILLE,
00458 1 MED_QUAD4,MED_NOPDT,nounit,dt,MED_NONOR,ret)
00459 if (ret .ne. 0 ) then
00460 print *,'Erreur à l''écriture du champ : ', nomcha3,'et.2'
00461 call efexit(-1)
00462 endif
00463
00464
00465
00466
00467
00468
00469
00470 call efchae(fid,maa3,nomcha3,valr3p,USER_INTERLACE,nval3,
00471 1 MED_NOGAUSS,MED_ALL,"PROFIL(champ2)",USER_MODE,
00472 1 MED_NOEUD_MAILLE,
00473 1 MED_QUAD4,MED_NOPDT,nounit,dt,MED_NONOR,ret)
00474 if (ret .ne. 0 ) then
00475 print *,'Erreur à l''écriture du profil : ',
00476 1 'profil2(champ2)'
00477 call efexit(-1)
00478 endif
00479
00480
00481 call efferm (fid,ret)
00482 if (ret .ne. 0 ) then
00483 print *,'Erreur à la fermeture du fichier : '
00484 ret = -1
00485 endif
00486
00487 print *,"Le code retour : ",ret
00488 call efexit(ret)
00489
00490 end
00491
00492
00493