1 subroutine dehomo ( nomail,
2 > lgopti, taopti, lgopts, taopts,
4 > ulsort, langue, codret )
5 c ______________________________________________________________________
9 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
11 c Version originale enregistree le 18 juin 1996 sous le numero 96036
12 c aupres des huissiers de justice Simart et Lavoir a Clamart
13 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
14 c aupres des huissiers de justice
15 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
17 c HOMARD est une marque deposee d'Electricite de France
23 c ______________________________________________________________________
25 c traitement des DEcisions - HOMOlogues
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . nomail . e . ch8 . nom de l'objet contenant le maillage .
32 c . lgopti . e . 1 . longueur du tableau des options .
33 c . taopti . e . lgopti . tableau des options .
34 c . lgopts . e . 1 . longueur du tableau des options caracteres .
35 c . taopts . e . lgopts . tableau des options caracteres .
36 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
37 c . taetco . e . lgetco . tableau de l'etat courant .
38 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
39 c . langue . e . 1 . langue des messages .
40 c . . . . 1 : francais, 2 : anglais .
41 c . codret . es . 1 . code de retour des modules .
42 c . . . . 0 : pas de probleme .
43 c . . . . sinon : erreur .
44 c ______________________________________________________________________
47 c 0. declarations et dimensionnement
50 c 0.1. ==> generalites
56 parameter ( nompro = 'DEHOMO' )
75 integer taopti(lgopti)
78 character*8 taopts(lgopts)
81 integer taetco(lgetco)
83 integer ulsort, langue, codret
85 c 0.4. ==> variables locales
88 integer nretap, nrsset
92 integer phetar, psomar
93 integer phettr, paretr
94 integer phetqu, parequ
96 integer pdecar, pdecfa
97 integer adhoar, adhotr, adhoqu
100 integer codre1, codre2
103 character*8 ntrav1, ntrav2
105 character*8 nhnoeu, nhmapo, nharet, nhtria, nhquad
106 character*8 nhtetr, nhhexa, nhpyra, nhpent
108 character*8 nhvois, nhsupe, nhsups
111 parameter ( nbmess = 10 )
112 character*80 texte(nblang,nbmess)
114 c 0.5. ==> initialisations
115 c ______________________________________________________________________
123 #ifdef _DEBUG_HOMARD_
124 write (ulsort,texte(langue,1)) 'Entree', nompro
130 c=======================================================================
131 if ( codava.eq.0 ) then
132 c=======================================================================
134 c 1.0. ==> structure generale
136 if ( codret.eq.0 ) then
138 call utnomh ( nomail,
140 > degre, maconf, homolo, hierar,
141 > rafdef, nbmane, typcca, typsfr, maextr,
144 > nhnoeu, nhmapo, nharet,
146 > nhtetr, nhhexa, nhpyra, nhpent,
148 > nhvois, nhsupe, nhsups,
149 > ulsort, langue, codret)
153 c=======================================================================
154 if ( homolo.ge.2 ) then
155 c=======================================================================
157 c 1.3. ==> les messages
159 texte(1,4) = '(/,a6,'' PRISE EN COMPTE DES HOMOLOGUES'')'
160 texte(1,5) = '(37(''=''),/)'
162 texte(2,4) = '(/,a6,'' HOMOLOGOUS INFLUENCE'')'
163 texte(2,5) = '(28(''=''),/)'
165 c 1.4. ==> le numero de sous-etape
168 nrsset = taetco(2) + 1
171 call utcvne ( nretap, nrsset, saux, iaux, codret )
175 write (ulsort,texte(langue,4)) saux
176 write (ulsort,texte(langue,5))
178 #ifdef _DEBUG_HOMARD_
179 if ( codret.eq.0 ) then
181 write (ulsort,texte(langue,3)) 'DELIST en entree de ', nompro
183 call delist ( nomail, nompro, iaux,
185 > ulsort, langue, codret )
191 c 2. recuperation des pointeurs
194 if ( codret.eq.0 ) then
197 if ( homolo.ge.2 ) then
200 #ifdef _DEBUG_HOMARD_
201 write (ulsort,texte(langue,3)) 'UTAD02_ar', nompro
203 call utad02 ( iaux, nharet,
204 > phetar, psomar, jaux, jaux,
207 > jaux, adhoar, jaux,
208 > ulsort, langue, codret )
210 if ( nbtrto.ne.0 ) then
213 if ( homolo.ge.3 ) then
216 #ifdef _DEBUG_HOMARD_
217 write (ulsort,texte(langue,3)) 'UTAD02_tr', nompro
219 call utad02 ( iaux, nhtria,
220 > phettr, paretr, jaux, jaux,
223 > jaux, adhotr, jaux,
224 > ulsort, langue, codret )
228 if ( nbquto.ne.0 ) then
231 if ( homolo.ge.3 ) then
234 #ifdef _DEBUG_HOMARD_
235 write (ulsort,texte(langue,3)) 'UTAD02_qu', nompro
237 call utad02 ( iaux, nhquad,
238 > phetqu, parequ, jaux, jaux,
241 > jaux, adhoqu, jaux,
242 > ulsort, langue, codret )
247 call gmadoj ( ntrav1, pdecar, iaux, codre1 )
249 call gmadoj ( ntrav2, pdecfa, iaux, codre2 )
251 codre0 = min ( codre1, codre2 )
252 codret = max ( abs(codre0), codret,
258 c 3. influence des homologues
261 if ( codret.eq.0 ) then
263 #ifdef _DEBUG_HOMARD_
264 write (ulsort,texte(langue,3)) 'DEHOM1', nompro
266 call dehom1 ( taopti(31), taopti(32),
268 > imem(phettr), imem(paretr),
269 > imem(phetqu), imem(parequ),
270 > imem(adhoar), imem(adhotr), imem(adhoqu),
271 > imem(pdecar), imem(pdecfa),
272 > ulsort, langue, codret )
280 c 4.1. ==> sur les aretes
282 if ( homolo.ge.2 ) then
284 if ( codret.eq.0 ) then
286 #ifdef _DEBUG_HOMARD_
287 write (ulsort,texte(langue,3)) 'DEHOVA', nompro
289 call dehova ( imem(adhoar), imem(pdecar),
291 > ulsort, langue, codret )
297 c 4.2. ==> sur les triangles
299 if ( homolo.ge.3 .and. nbtrto.ne.0 ) then
301 if ( codret.eq.0 ) then
303 #ifdef _DEBUG_HOMARD_
304 write (ulsort,texte(langue,3)) 'DEHOVF', nompro
308 > nbtrto, imem(adhotr), imem(pdecfa),
310 > ulsort, langue, codret )
316 c 4.3. ==> sur les quadrangles
318 if ( homolo.ge.3 .and. nbquto.ne.0 ) then
320 if ( codret.eq.0 ) then
322 #ifdef _DEBUG_HOMARD_
323 write (ulsort,texte(langue,3)) 'DEHOVF', nompro
327 > nbquto, imem(adhoqu), imem(pdecfa),
329 > ulsort, langue, codret )
339 if ( codret.ne.0 ) then
343 write (ulsort,texte(langue,1)) 'Sortie', nompro
344 write (ulsort,texte(langue,2)) codret
348 #ifdef _DEBUG_HOMARD_
349 if ( codret.eq.0 ) then
351 write (ulsort,texte(langue,3)) 'DELIST', nompro
353 call delist ( nomail, nompro, iaux,
355 > ulsort, langue, codret )
360 #ifdef _DEBUG_HOMARD_
361 write (ulsort,texte(langue,1)) 'Sortie', nompro
365 c=======================================================================
367 c=======================================================================
369 c=======================================================================
371 c=======================================================================