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