1 subroutine utinma ( option, saux,
3 > nbnoto, nbnop1, nbnop2, nbnoim,
6 > nbmapo, nbsegm, nbtria, nbquad,
7 > nbtetr, nbhexa, nbpyra, nbpent,
9 > nbmane, nbmaae, nbmafe,
10 > ulsort, langue, codret )
11 c ______________________________________________________________________
15 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
17 c Version originale enregistree le 18 juin 1996 sous le numero 96036
18 c aupres des huissiers de justice Simart et Lavoir a Clamart
19 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
20 c aupres des huissiers de justice
21 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
23 c HOMARD est une marque deposee d'Electricite de France
29 c ______________________________________________________________________
30 c UTilitaire - INformation sur le MAillage
32 c ______________________________________________________________________
34 c . nom . e/s . taille . description .
35 c .____________________________________________________________________.
36 c . option . e . 1 . option d'impressions .
38 c . . . . 1 : le minimum .
39 c . saux . e . * . texte complementaire .
40 c . sdim . e . 1 . dimension de l'espace .
41 c . mdim . e . 1 . dimension du maillage .
42 c . degre . e . 1 . degre du maillage .
43 c . nbnoto . e . 1 . nombre total de noeuds du maillage .
44 c . nbnop1 . e . 1 . nombre de sommets du maillage (noeuds p1) .
45 c . nbnop2 . e . 1 . nombre de noeuds milieux d'aretes du .
46 c . . . . maillage (noeuds p2) .
47 c . nbnoim . e . 1 . nombre de noeuds internes aux mailles .
48 c . nbnois . e . 1 . nombre de noeuds isoles .
49 c . nbnomp . e . 1 . nombre de noeuds support de maille-point .
50 c . . . . uniquement .
51 c . nbnoei . e . 1 . nombre de noeuds d'elements ignores .
52 c . nbmail . e . 1 . nombre de mailles dans le maillage .
53 c . nbmapo . e . 1 . nombre de mailles-points dans le maillage .
54 c . nbsegm . e . 1 . nombre de segments dans le maillage .
55 c . nbtria . e . 1 . nombre de triangles dans le maillage .
56 c . nbtetr . e . 1 . nombre de tetraedres dans le maillage .
57 c . nbquad . e . 1 . nombre de quadrangles dans le maillage .
58 c . nbhexa . e . 1 . nombre d'hexaedres dans le maillage .
59 c . nbpent . e . 1 . nombre de pentaedres dans le maillage .
60 c . nbpyra . e . 1 . nombre de pyramides dans le maillage .
61 c . nbelig . e . 1 . nombre de mailles ignorees .
62 c . nbmane . e . 1 . nombre maximum de noeuds par element .
63 c . nbmaae . e . 1 . nombre maximum d'aretes par element .
64 c . nbmafe . e . 1 . nombre maximum de faces par element .
65 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
66 c . langue . e . 1 . langue des messages .
67 c . . . . 1 : francais, 2 : anglais .
68 c . codret . es . 1 . code de retour des modules .
69 c . . . . 0 : pas de probleme .
70 c . . . . 1 : probleme .
71 c ______________________________________________________________________
74 c 0. declarations et dimensionnement
77 c 0.1. ==> generalites
83 parameter ( nompro = 'UTINMA' )
95 integer sdim, mdim, degre
96 integer nbnoto, nbnop1, nbnop2, nbnoim
97 integer nbnois, nbnomp
100 integer nbmapo, nbsegm, nbtria, nbquad
101 integer nbtetr, nbhexa, nbpyra, nbpent
103 integer nbmane, nbmaae, nbmafe
107 integer ulsort, langue, codret
109 c 0.4. ==> variables locales
114 parameter ( nbmess = 40 )
115 character*80 texte(nblang,nbmess)
117 c 0.5. ==> initialisations
118 c ______________________________________________________________________
126 #ifdef _DEBUG_HOMARD_
127 write (ulsort,texte(langue,1)) 'Entree', nompro
132 > '(5x,''Caracteristiques du maillage '',a,/)'
134 > '(8x,''Degre :'',i11)'
136 > '(8x,''Dimension de l''''espace :'',i11)'
138 > '(8x,''Dimension du maillage :'',i11)'
140 > '(8x,''Nombre de noeuds :'',i11)'
142 > '(8x,''. dont noeuds isoles :'',i11)'
144 > '(8x,''. dont noeuds maille-point uniquement :'',i11)'
146 > '(8x,''. dont noeuds sommets :'',i11)'
148 > '(8x,''. dont noeuds milieux :'',i11)'
150 > '(8x,''. dont noeuds internes aux mailles :'',i11)'
152 > '(8x,''Nombre de mailles :'',i11)'
154 > '(8x,''. Mailles'',i2,''D'',34x,'':'',i11)'
156 > '(8x,''. '',a14,30x,'':'',i11)'
158 > '(10x,''. '',a14,28x,'':'',i11)'
160 > '(8x,''Nombre maximum de faces par maille :'',i11)'
162 > '(8x,''Nombre maximum d''''aretes par maille :'',i11)'
164 > '(8x,''Nombre maximum de noeuds par maille :'',i11)'
166 > '(8x,''. dont noeuds de mailles ignorees uniquement :'',i11)'
168 > '(8x,''. Elimination de'',i11,1x,a14)'
171 > '(5x,''Characteristics of the mesh '',a,/)'
173 > '(8x,''Degree :'',i11)'
175 > '(8x,''Dimension of the space :'',i11)'
177 > '(8x,''Dimension of the mesh :'',i11)'
179 > '(8x,''Number of nodes :'',i11)'
181 > '(8x,''. included isolated nodes :'',i11)'
183 > '(8x,''. included only mesh-point nodes :'',i11)'
185 > '(8x,''. included nodes vertices :'',i11)'
187 > '(8x,''. included nodes center of edges :'',i11)'
189 > '(8x,''. included internal nodes :'',i11)'
191 > '(8x,''Number of meshes :'',i11)'
193 > '(8x,''.'',i2,''D meshes'',35x,'':'',i11)'
195 > '(8x,''. '',a14,30x,'':'',i11)'
197 > '(10x,''. '',a14,28x,'':'',i11)'
199 > '(8x,''Maximum number of faces per mesh :'',i11)'
201 > '(8x,''Maximum number of edges per mesh :'',i11)'
203 > '(8x,''Maximum number of nodes per mesh :'',i11)'
205 > '(8x,''. included only ignored meshes nodes :'',i11)'
207 > '(8x,''. Elimination of'',i11,1x,a14)'
217 #ifdef _DEBUG_HOMARD_
218 write (ulsort,90002) '2. impression ; codret', codret
222 if ( codret.eq.0 ) then
224 write(ulsort,texte(langue,4)) saux
225 write(ulsort,texte(langue,6)) sdim
226 write(ulsort,texte(langue,7)) mdim
227 write(ulsort,texte(langue,5)) degre
229 c 2.1. ==> Les noeuds
231 write(ulsort,texte(langue,11)) nbnoto
233 if ( option.eq.0 ) then
235 if ( nbnois.ne.0 ) then
236 write(ulsort,texte(langue,12)) nbnois
238 if ( nbnomp.ne.0 ) then
239 write(ulsort,texte(langue,13)) nbnomp
241 write(ulsort,texte(langue,14)) nbnop1
242 if ( nbnop2.ne.0 ) then
243 write(ulsort,texte(langue,15)) nbnop2
245 if ( nbnoim.ne.0 ) then
246 write(ulsort,texte(langue,16)) nbnoim
248 if ( nbnoei.ne.0 ) then
249 write(ulsort,texte(langue,39)) nbnoei
254 c 2.2. ==> Les mailles
256 write(ulsort,texte(langue,21)) nbmail
260 if ( nbmapo.ne.0 ) then
261 write(ulsort,texte(langue,23)) mess14(langue,4,0), nbmapo
266 if ( nbsegm.ne.0 ) then
267 write(ulsort,texte(langue,23)) mess14(langue,4,1), nbsegm
272 iaux = nbtria + nbquad
274 if ( iaux.eq.nbtria .or. iaux.eq.nbquad ) then
276 if ( nbtria.ne.0 ) then
277 write(ulsort,texte(langue,23)) mess14(langue,4,2), nbtria
279 if ( nbquad.ne.0 ) then
280 write(ulsort,texte(langue,23)) mess14(langue,4,4), nbquad
285 write(ulsort,texte(langue,22)) 2, iaux
286 write(ulsort,texte(langue,24)) mess14(langue,3,2), nbtria
287 write(ulsort,texte(langue,24)) mess14(langue,3,4), nbquad
293 iaux = nbtetr + nbhexa + nbpyra + nbpent
295 if ( iaux.eq.nbtetr .or. iaux.eq.nbhexa .or.
296 > iaux.eq.nbpyra .or. iaux.eq.nbpent ) then
298 if ( nbtetr.ne.0 ) then
299 write(ulsort,texte(langue,23)) mess14(langue,4,3), nbtetr
301 if ( nbhexa.ne.0 ) then
302 write(ulsort,texte(langue,23)) mess14(langue,4,6), nbhexa
304 if ( nbpyra.ne.0 ) then
305 write(ulsort,texte(langue,23)) mess14(langue,4,5), nbpyra
307 if ( nbpent.ne.0 ) then
308 write(ulsort,texte(langue,23)) mess14(langue,4,7), nbpent
313 write(ulsort,texte(langue,22)) 3, iaux
314 if ( nbtetr.ne.0 ) then
315 write(ulsort,texte(langue,24)) mess14(langue,3,3), nbtetr
317 if ( nbhexa.ne.0 ) then
318 write(ulsort,texte(langue,24)) mess14(langue,3,6), nbhexa
320 if ( nbpyra.ne.0 ) then
321 write(ulsort,texte(langue,24)) mess14(langue,3,5), nbpyra
323 if ( nbpent.ne.0 ) then
324 write(ulsort,texte(langue,24)) mess14(langue,3,7), nbpent
329 c 2.2.5. ==> Caracteristiques des mailles
331 if ( option.eq.0 ) then
333 #ifdef _DEBUG_HOMARD_
334 if ( nbmafe.ge.0 ) then
336 if ( nbmafe.gt.0 ) then
338 write(ulsort,texte(langue,31)) nbmafe
340 write(ulsort,texte(langue,32)) nbmaae
341 write(ulsort,texte(langue,33)) nbmane
345 c 2.2.6. ==> Mailles eliminees
347 if ( option.eq.0 ) then
349 #ifdef _DEBUG_HOMARD_
350 if ( nbelig.ne.0 ) then
351 write(ulsort,texte(langue,40)) nbelig, mess14(langue,3,5)
363 if ( codret.ne.0 ) then
367 write (ulsort,texte(langue,1)) 'Sortie', nompro
368 write (ulsort,texte(langue,2)) codret
372 #ifdef _DEBUG_HOMARD_
373 write (ulsort,texte(langue,1)) 'Sortie', nompro