1 subroutine uthonh ( noehom, arehom,
3 > ulsort, langue, codret )
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c UTilitaire - HOmologues - Nombres pour HOMARD
26 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . noehom . e . nbnoto . liste etendue des homologues par noeuds .
31 c . arehom . e . nbarto . liste etendue des homologues par aretes .
32 c . homtri . e . nbtrto . ensemble des triangles homologues .
33 c . quahom . e . nbquto . ensemble des quadrangles homologues .
34 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
35 c . langue . e . 1 . langue des messages .
36 c . . . . 1 : francais, 2 : anglais .
37 c . codret . es . 1 . code de retour des modules .
38 c . . . . 0 : pas de probleme .
39 c . . . . 1 : probleme .
40 c ______________________________________________________________________
43 c 0. declarations et dimensionnement
46 c 0.1. ==> generalites
52 parameter ( nompro = 'UTHONH' )
69 integer noehom(nbnoto), arehom(nbarto)
70 integer homtri(nbtrto), quahom(nbquto)
71 integer ulsort, langue, codret
73 c 0.4. ==> variables locales
78 parameter ( nbmess = 10 )
79 character*80 texte(nblang,nbmess)
81 c 0.5. ==> initialisations
82 c ______________________________________________________________________
93 write (ulsort,texte(langue,1)) 'Entree', nompro
97 texte(1,10) = '(/,''Decompte des equivalences sur les '',a)'
98 texte(1,4) = '(''--> Ce nombre doit etre pair !'')'
100 > '(8x,''. Nombre de paires :'',i10)'
102 texte(2,10) = '(/,''Description of equivalences over '',a)'
103 texte(2,4) = '(''--> This number should be even !'')'
105 > '(8x,''. Number of pairs :'',i10)'
110 c 2. decompte du nombre de paires de noeuds homologues
111 c il faut noter les cas ou un noeud est homologue de lui-meme
114 if ( codret.eq.0 ) then
116 #ifdef _DEBUG_HOMARD_
117 write (ulsort,texte(langue,10)) mess14(langue,3,-1)
122 do 21 , iaux = 1 , nbnoto
123 if ( noehom(iaux).eq.iaux ) then
125 elseif ( noehom(iaux).ne.0 ) then
130 if ( mod(nbpnho,2).eq.0 ) then
132 #ifdef _DEBUG_HOMARD_
133 write (ulsort,texte(langue,5)) nbpnho
136 write (ulsort,texte(langue,5)) nbpnho
137 write (ulsort,texte(langue,4))
144 c 3. decompte du nombre de paires de noeuds homologues
145 c il faut noter les cas ou une arete est homologue d'elle-meme
148 if ( codret.eq.0 ) then
152 if ( homolo.ge.2 ) then
154 #ifdef _DEBUG_HOMARD_
155 write (ulsort,texte(langue,10)) mess14(langue,3,1)
158 do 31 , iaux = 1 , nbarto
159 if ( abs(arehom(iaux)).eq.iaux ) then
161 elseif ( arehom(iaux).ne.0 ) then
166 if ( mod(nbpaho,2).eq.0 ) then
168 #ifdef _DEBUG_HOMARD_
169 write (ulsort,texte(langue,5)) nbpaho
172 write (ulsort,texte(langue,5)) nbpaho
173 write (ulsort,texte(langue,4))
182 c 4. decompte du nombre de paires de triangles homologues
185 if ( codret.eq.0 ) then
189 if ( homolo.ge.3 .and. nbtrto.ne.0 ) then
191 #ifdef _DEBUG_HOMARD_
192 write (ulsort,texte(langue,10)) mess14(langue,3,2)
195 do 41 , iaux = 1 , nbtrto
196 if ( homtri(iaux).ne.0 ) then
201 if ( mod(nbptho,2).eq.0 ) then
203 #ifdef _DEBUG_HOMARD_
204 write (ulsort,texte(langue,5)) nbptho
207 write (ulsort,texte(langue,5)) nbptho
208 write (ulsort,texte(langue,4))
217 c 5. decompte du nombre de paires de quadrangles homologues
220 if ( codret.eq.0 ) then
224 if ( homolo.ge.3 .and. nbquto.ne.0 ) then
226 #ifdef _DEBUG_HOMARD_
227 write (ulsort,texte(langue,10)) mess14(langue,3,4)
230 do 51 , iaux = 1 , nbquto
231 if ( quahom(iaux).ne.0 ) then
236 if ( mod(nbpqho,2).eq.0 ) then
238 #ifdef _DEBUG_HOMARD_
239 write (ulsort,texte(langue,5)) nbpqho
242 write (ulsort,texte(langue,5)) nbpqho
243 write (ulsort,texte(langue,4))
255 if ( codret.ne.0 ) then
259 write (ulsort,texte(langue,1)) 'Sortie', nompro
260 write (ulsort,texte(langue,2)) codret
264 #ifdef _DEBUG_HOMARD_
265 write (ulsort,texte(langue,1)) 'Sortie', nompro