MED fichier: f/2.3.6/test24.f

MED fichier

- Documentation MED
- Guides d'utilisation
- Guides de référence

f/2.3.6/test24.f
1 C* This file is part of MED.
2 C*
3 C* COPYRIGHT (C) 1999 - 2017 EDF R&D, CEA/DEN
4 C* MED is free software: you can redistribute it and/or modify
5 C* it under the terms of the GNU Lesser General Public License as published by
6 C* the Free Software Foundation, either version 3 of the License, or
7 C* (at your option) any later version.
8 C*
9 C* MED is distributed in the hope that it will be useful,
10 C* but WITHOUT ANY WARRANTY; without even the implied warranty of
11 C* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 C* GNU Lesser General Public License for more details.
13 C*
14 C* You should have received a copy of the GNU Lesser General Public License
15 C* along with MED. If not, see <http://www.gnu.org/licenses/>.
16 C*
17
18 C *******************************************************************************
19 C * - Nom du fichier : test24.f
20 C *
21 C * - Description : lecture de mailles MED_POLYGONE dans le maillage MED
22 C * du fichier test23.med
23 C *
24 C ******************************************************************************
25 program test23
26 C
27 implicit none
28 include 'med.hf'
29 C
30 integer cret, fid,mdim,nmaa,npoly,i,j,k,taille
31 character*32 maa
32 character*200 desc
33 integer ni, n
34 parameter(ni=4, n=3)
35 integer index(ni),ind1,ind2
36 character*16 nom(n)
37 integer num(n),fam(n)
38 integer con(16)
39 integer type
40 C
41 C Ouverture du fichier test23.med en lecture seule
42 call efouvr(fid,'test23.med',med_lecture, cret)
43 print *,cret
44 if (cret .ne. 0 ) then
45 print *,'Erreur ouverture du fichier'
46 call efexit(-1)
47 endif
48 print *,'Ouverture du fichier test23.med'
49 C
50 C Lecture du nombre de maillages
51 call efnmaa(fid,nmaa,cret)
52 print *,cret
53 if (cret .ne. 0 ) then
54 print *,'Erreur lecture nombre de maillage'
55 call efexit(-1)
56 endif
57 print *,'Nombre de maillages : ',nmaa
58 C
59 C Lecture de toutes les mailles MED_POLYGONE
60 C dans chaque maillage
61 do 10 i=1,nmaa
62 C
63 C Info sur chaque maillage
64 call efmaai(fid,i,maa,mdim,type,desc,cret)
65 if (cret .ne. 0 ) then
66 print *,'Erreur lecture infos maillage'
67 call efexit(-1)
68 endif
69 print *,cret
70 print *,'Maillage : ',maa
71 print *,'Dimension : ',mdim
72 C
73 C Combien de mailles polygones
74 call efnema(fid,maa,med_conn,med_maille,med_polygone,
75 & med_nod,npoly,cret)
76 print *,cret
77 if (cret .ne. 0 ) then
78 print *,'Erreur lecture du nombre de polygone'
79 call efexit(-1)
80 endif
81 print *,'Nombre de mailles MED_POLYGONE : ',npoly
82 C
83 C Taille des connectivites
84 call efpygi(fid,maa,med_maille,med_nod,taille,cret)
85 print *,cret
86 if (cret .ne. 0 ) then
87 print *,'Erreur lecture infos polygones'
88 call efexit(-1)
89 endif
90 print *,'Taille de la connectivite : ',taille
91 C
92 C Lecture de la connectivite
93 call efpgcl(fid,maa,index,npoly+1,con,med_maille,
94 & med_nod,cret)
95 print *,cret
96 if (cret .ne. 0 ) then
97 print *,'Erreur lecture des connectivites polygones'
98 call efexit(-1)
99 endif
100 print *,'Lecture de la connectivite des polygones'
101 C
102 C Lecture des noms
103 call efnoml(fid,maa,nom,npoly,med_maille,med_polygone,
104 & cret)
105 print *,cret
106 if (cret .ne. 0 ) then
107 print *,'Erreur lecture des noms des polygones'
108 call efexit(-1)
109 endif
110 print *,'Lecture des noms'
111 C
112 C Lecture des numeros
113 call efnuml(fid,maa,num,npoly,med_maille,med_polygone,
114 & cret)
115 print *,cret
116 if (cret .ne. 0 ) then
117 print *,'Erreur lecture des numeros des polygones'
118 call efexit(-1)
119 endif
120 print *,'Lecture des numeros'
121 C
122 C Lecture des numeros de familles
123 call effaml(fid,maa,fam,npoly,med_maille,med_polygone,
124 & cret)
125 print *,cret
126 if (cret .ne. 0 ) then
127 print *,'Erreur lecture des numeros de famille des
128 & polygones'
129 call efexit(-1)
130 endif
131 print *,'Lecture des numeros de famille'
132 C
133 C Affichage des resultats
134 print *,'Affichage des resultats'
135 do 20 j=1,npoly
136 C
137 print *,'>> Maille polygone ',j
138 print *,'---- Connectivite ---- : '
139 ind1 = index(j)
140 ind2 = index(j+1)
141 do 30 k=ind1,ind2-1
142 print *,con(k)
143 30 continue
144 print *,'---- Nom ---- : ',nom(j)
145 print *,'---- Numero ----: ',num(j)
146 print *,'---- Numero de famille ---- : ',fam(j)
147 C
148 20 continue
149 C
150 10 continue
151 C
152 C Fermeture du fichier
153 call efferm (fid,cret)
154 print *,cret
155 if (cret .ne. 0 ) then
156 print *,'Erreur fermeture du fichier'
157 call efexit(-1)
158 endif
159 print *,'Fermeture du fichier'
160 C
161 end