1 C*************************************************************************
  2 C COPYRIGHT (C) 1999 - 2007  EDF R&D, CEA/DEN
  3 C THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
  4 C IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE
  5 C AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION;
  6 C EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
  7 C
  8 C THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
  9 C WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
 10 C MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
 11 C LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 12 C
 13 C YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
 14 C ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
 15 C INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
 16 C
 17 C**************************************************************************
 18 
 19 C       *******************************************************************************
 20 C       * - Nom du fichier : test24.f
 21 C       *
 22 C       * - Description : lecture de mailles MED_POLYGONE dans le maillage MED
 23 C       *                 du fichier test23.med
 24 C       *
 25 C       ******************************************************************************
 26         program test23
 27 C
 28         implicit none
 29         include 'med.hf'
 30 C       
 31         integer cret, fid,mdim,nmaa,npoly,i,j,k,taille
 32         character*32 maa
 33         character*200 desc
 34         integer ni, n
 35         parameter (ni=4, n=3)
 36         integer index(ni),ind1,ind2
 37         character*16 nom(n)
 38         integer num(n),fam(n)
 39         integer con(16)
 40         integer type
 41 C
 42 C       Ouverture du fichier test23.med en lecture seule
 43         call efouvr(fid,'test23.med',MED_LECTURE, cret)
 44         print *,cret
 45         if (cret .ne. 0 ) then
 46            print *,'Erreur ouverture du fichier'
 47            call efexit(-1)
 48         endif
 49         print *,'Ouverture du fichier test23.med'
 50 C
 51 C       Lecture du nombre de maillages
 52         call efnmaa(fid,nmaa,cret)
 53         print *,cret
 54         if (cret .ne. 0 ) then
 55            print *,'Erreur lecture nombre de maillage'
 56            call efexit(-1)
 57         endif
 58         print *,'Nombre de maillages : ',nmaa
 59 C
 60 C       Lecture de toutes les mailles MED_POLYGONE
 61 C       dans chaque maillage
 62         do 10 i=1,nmaa
 63 C
 64 C          Info sur chaque maillage
 65            call efmaai(fid,i,maa,mdim,type,desc,cret)
 66            if (cret .ne. 0 ) then
 67               print *,'Erreur lecture infos maillage'
 68               call efexit(-1)
 69            endif
 70            print *,cret
 71            print *,'Maillage : ',maa
 72            print *,'Dimension : ',mdim
 73 C
 74 C          Combien de mailles polygones
 75            call efnema(fid,maa,MED_CONN,MED_MAILLE,MED_POLYGONE,
 76      &                       MED_NOD,npoly,cret)
 77            print *,cret
 78            if (cret .ne. 0 ) then
 79               print *,'Erreur lecture du nombre de polygone'
 80               call efexit(-1)
 81            endif
 82            print *,'Nombre de mailles MED_POLYGONE : ',npoly
 83 C
 84 C          Taille des connectivites
 85            call efpygi(fid,maa,MED_MAILLE,MED_NOD,taille,cret)
 86            print *,cret
 87            if (cret .ne. 0 ) then
 88               print *,'Erreur lecture infos polygones'
 89               call efexit(-1)
 90            endif
 91            print *,'Taille de la connectivite : ',taille
 92 C
 93 C          Lecture de la connectivite
 94            call efpgcl(fid,maa,index,npoly+1,con,MED_MAILLE,
 95      &                       MED_NOD,cret)
 96            print *,cret
 97            if (cret .ne. 0 ) then
 98               print *,'Erreur lecture des connectivites polygones'
 99               call efexit(-1)
100            endif
101            print *,'Lecture de la connectivite des polygones'
102 C
103 C          Lecture des noms
104            call efnoml(fid,maa,nom,npoly,MED_MAILLE,MED_POLYGONE,
105      &                       cret)
106            print *,cret
107            if (cret .ne. 0 ) then
108               print *,'Erreur lecture des noms des polygones'
109               call efexit(-1)
110            endif
111            print *,'Lecture des noms'
112 C
113 C          Lecture des numeros
114            call efnuml(fid,maa,num,npoly,MED_MAILLE,MED_POLYGONE,
115      &                       cret)
116            print *,cret
117            if (cret .ne. 0 ) then
118               print *,'Erreur lecture des numeros des polygones'
119               call efexit(-1)
120            endif
121            print *,'Lecture des numeros'
122 C
123 C          Lecture des numeros de familles
124            call effaml(fid,maa,fam,npoly,MED_MAILLE,MED_POLYGONE,
125      &                       cret)
126            print *,cret
127            if (cret .ne. 0 ) then
128               print *,'Erreur lecture des numeros de famille des
129      & polygones'
130               call efexit(-1)
131            endif
132            print *,'Lecture des numeros de famille'
133 C
134 C          Affichage des resultats
135            print *,'Affichage des resultats'
136            do 20 j=1,npoly
137 C
138               print *,'>> Maille polygone ',j
139               print *,'---- Connectivite      ---- : '
140               ind1 = index(j)
141               ind2 = index(j+1)
142               do 30 k=ind1,ind2-1
143                  print *,con(k)
144  30           continue
145               print *,'---- Nom               ---- : ',nom(j)
146               print *,'---- Numero            ----:  ',num(j)
147               print *,'---- Numero de famille ---- : ',fam(j)
148 C
149  20        continue
150 C
151  10     continue
152 C
153 C       Fermeture du fichier
154         call efferm (fid,cret)
155         print *,cret
156         if (cret .ne. 0 ) then
157            print *,'Erreur fermeture du fichier'
158            call efexit(-1)
159         endif
160         print *,'Fermeture du fichier'
161 C
162         end