MED fichier: f/test24.f

MED fichier

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

f/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 integer edim,nstep,stype,atype, chgt, tsf
32 character*64 maa
33 character*200 desc
34 integer ni, n, isize;
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 character*16 nomcoo(2)
42 character*16 unicoo(2)
43 character(16) :: dtunit
44 C
45 C Ouverture du fichier test23.med en lecture seule
46 call mfiope(fid,'test23.med',med_acc_rdonly, cret)
47 print *,cret
48 if (cret .ne. 0 ) then
49 print *,'Erreur ouverture du fichier'
50 call efexit(-1)
51 endif
52 print *,'Ouverture du fichier test23.med'
53 C
54 C Lecture du nombre de maillages
55 call mmhnmh(fid,nmaa,cret)
56 print *,cret
57 if (cret .ne. 0 ) then
58 print *,'Erreur lecture nombre de maillage'
59 call efexit(-1)
60 endif
61 print *,'Nombre de maillages : ',nmaa
62 C
63 C Lecture de toutes les mailles MED_POLYGONE
64 C dans chaque maillage
65 do 10 i=1,nmaa
66 C
67 C Info sur chaque maillage
68 call mmhmii(fid,i,maa,edim,mdim,type,desc,
69 & dtunit,stype,nstep,atype,
70 & nomcoo,unicoo,cret)
71 if (cret .ne. 0 ) then
72 print *,'Erreur lecture infos maillage'
73 call efexit(-1)
74 endif
75 print *,cret
76 print *,'Maillage : ',maa
77 print *,'Dimension : ',mdim
78 C
79 C Combien de mailles polygones
80 call mmhnme(fid,maa,med_no_dt,med_no_it,med_cell,med_polygon,
81 & med_index_node,med_nodal,chgt,tsf,isize,cret)
82 npoly = isize - 1;
83 print *,cret
84 if (cret .ne. 0 ) then
85 print *,'Erreur lecture du nombre de polygone'
86 call efexit(-1)
87 endif
88 print *,'Nombre de mailles MED_POLYGONE : ',npoly
89 C
90 C Taille des connectivites
91 call mmhnme(fid,maa,med_no_dt,med_no_it,med_cell,med_polygon,
92 & med_connectivity,med_nodal,chgt,tsf,taille,cret)
93 print *,cret
94 if (cret .ne. 0 ) then
95 print *,'Erreur lecture infos polygones'
96 call efexit(-1)
97 endif
98 print *,'Taille de la connectivite : ',taille
99 C
100 C Lecture de la connectivite
101 call mmhpgr(fid,maa,med_no_dt,med_no_it,med_cell,
102 & med_nodal,index,con,cret)
103 print *,cret
104 if (cret .ne. 0 ) then
105 print *,'Erreur lecture des connectivites polygones'
106 call efexit(-1)
107 endif
108 print *,'Lecture de la connectivite des polygones'
109 C
110 C Lecture des noms
111 call mmhear(fid,maa,med_no_dt,med_no_it,
112 & med_cell,med_polygon,nom,cret)
113 print *,cret
114 if (cret .ne. 0 ) then
115 print *,'Erreur lecture des noms des polygones'
116 call efexit(-1)
117 endif
118 print *,'Lecture des noms'
119 C
120 C Lecture des numeros
121 call mmhfnr(fid,maa,med_no_dt,med_no_it,med_cell,med_polygon,
122 & num,cret)
123 print *,cret
124 if (cret .ne. 0 ) then
125 print *,'Erreur lecture des numeros des polygones'
126 call efexit(-1)
127 endif
128 print *,'Lecture des numeros'
129 C
130 C Lecture des numeros de familles
131 call mmhfnr(fid,maa,med_no_dt,med_no_it,med_cell,med_polygon,
132 & fam,cret)
133 print *,cret
134 if (cret .ne. 0 ) then
135 print *,'Erreur lecture des numeros de famille des
136 & polygones'
137 call efexit(-1)
138 endif
139 print *,'Lecture des numeros de famille'
140 C
141 C Affichage des resultats
142 print *,'Affichage des resultats'
143 do 20 j=1,npoly
144 C
145 print *,'>> Maille polygone ',j
146 print *,'---- Connectivite ---- : '
147 ind1 = index(j)
148 ind2 = index(j+1)
149 do 30 k=ind1,ind2-1
150 print *,con(k)
151 30 continue
152 c print *,'---- Nom ---- : ',nom(j)
153 print *,'---- Numero ----: ',num(j)
154 print *,'---- Numero de famille ---- : ',fam(j)
155 C
156 20 continue
157 C
158 10 continue
159 C
160 C Fermeture du fichier
161 call mficlo(fid,cret)
162 print *,cret
163 if (cret .ne. 0 ) then
164 print *,'Erreur fermeture du fichier'
165 call efexit(-1)
166 endif
167 print *,'Fermeture du fichier'
168 C
169 end