MED fichier
test24.f
Aller à la documentation de ce fichier.
1 C* This file is part of MED.
2 C*
3 C* COPYRIGHT (C) 1999 - 2016 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
subroutine mficlo(fid, cret)
Fermeture d'un fichier MED.
Definition: medfile.f:80
subroutine mmhnmh(fid, n, cret)
Cette routine permet de lire le nombre de maillages dans un fichier.
Definition: medmesh.f:40
subroutine mmhmii(fid, it, name, sdim, mdim, mtype, desc, dtunit, stype, nstep, atype, aname, aunit, cret)
Cette routine permet de lire les informations relatives à un maillage dans un fichier.
Definition: medmesh.f:106
subroutine mmhfnr(fid, name, numdt, numit, entype, geotype, num, cret)
Cette routine permet la lecture des numéros de famille d'un type d'entité d'un maillage.
Definition: medmesh.f:464
subroutine mmhpgr(fid, name, numdt, numit, entype, cmode, index, con, cret)
Cette routine permet la lecture des connectivités de polygones.
Definition: medmesh.f:871
subroutine mfiope(fid, name, access, cret)
Ouverture d'un fichier MED.
Definition: medfile.f:41
program test23
Definition: test23.f:24
subroutine mmhnme(fid, name, numdt, numit, entype, geotype, datype, cmode, chgt, tsf, n, cret)
Cette routine permet de lire le nombre d'entités dans un maillage pour une séquence de calcul donnée...
Definition: medmesh.f:525
subroutine mmhear(fid, mname, numdt, numit, entype, geotype, ename, cret)
Cette routine permet de lire les noms d'un type d'entité d'un maillage.
Definition: medmesh.f:504