1 subroutine utaurq ( modhom, eleinc,
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 UTilitaire - AUtorisation de Raffinement des Quadrangles
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . modhom . e . 1 . mode de fonctionnement de homard .
32 c . . . . -5 : executable du suivi de frontiere .
33 c . . . . -4 : exec. de l'interface apres adaptation .
34 c . . . . -3 : exec. de l'interface avant adaptation .
35 c . . . . -2 : executable de l'information .
36 c . . . . -1 : executable de l'adaptation .
37 c . . . . 0 : executable autre .
38 c . . . . 1 : homard pur .
39 c . . . . 2 : information .
40 c . . . . 3 : modification de maillage sans adaptati.
41 c . . . . 4 : interpolation de la solution .
42 c . eleinc . e . 1 . elements incompatibles .
43 c . . . . 0 : on bloque s'il y en a .
44 c . . . . 1 : on les ignore s'il y en a .
45 c . nocman . e . char*8 . nom de l'objet maillage calcul iteration n .
46 c . nbelig . s . 1 . nombre d'elements elimines .
47 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
48 c . langue . e . 1 . langue des messages .
49 c . . . . 1 : francais, 2 : anglais .
50 c . codret . es . 1 . code de retour des modules .
51 c . . . . 0 : pas de probleme .
52 c . . . . 2 : presence de quadrangles .
53 c ______________________________________________________________________
56 c 0. declarations et dimensionnement
59 c 0.1. ==> generalites
65 parameter ( nompro = 'UTAURQ' )
79 integer modhom, eleinc
84 integer ulsort, langue, codret
86 c 0.4. ==> variables locales
90 integer sdimca, mdimca
91 integer degre, mailet, maconf, homolo, hierar, nbnomb
95 character*8 ncinfo, ncnoeu, nccono, nccode
96 character*8 nccoex, ncfami
97 character*8 ncequi, ncfron, ncnomb
100 parameter ( nbmess = 10 )
101 character*80 texte(nblang,nbmess)
102 c ______________________________________________________________________
105 c 1. a priori, tout va bien
110 #ifdef _DEBUG_HOMARD_
111 write (ulsort,texte(langue,1)) 'Entree', nompro
117 texte(1,4) = '(/,''Maillage de calcul : '',a)'
118 texte(1,5) = '(''Mode HOMARD :'',i3)'
119 texte(1,6) = '(''Ce maillage comporte'',i8,1x,a)'
120 texte(1,7) = '(''Elimination de'',i8,1x,a)'
122 > '(5x,''Nombre de '',a,'' a '',a,'' :'',i8)'
124 > '(''Cela est incompatible avec ce raffinement.'',/)'
125 texte(1,10) ='(/,''On '',a,'' les mailles incompatibles.'')'
127 texte(2,4) = '(/,''Calculation mesh : '',a)'
128 texte(2,5) = '(''HOMARD mode :'',i3)'
129 texte(2,6) = '(''This mesh contains'',i8,1x,a)'
130 texte(2,7) = '(''Elimination of'',i8,1x,a)'
131 texte(2,8) = '(5x,''Number of '',a,'' '',a,'' :'',i8)'
132 texte(2,9) = '(''It is forbidden with this refinement.'')'
133 texte(2,10) ='(/,''Incompatible meshes are '',a)'
135 #ifdef _DEBUG_HOMARD_
136 write (ulsort,texte(langue,5)) modhom
137 if ( eleinc.eq.0 ) then
138 write (ulsort,texte(langue,10)) 'bloque'
140 write (ulsort,texte(langue,10)) 'ignore'
145 c 2. Recherche du nombre de pyramides
148 #ifdef _DEBUG_HOMARD_
149 write (ulsort,texte(langue,3)) 'UTNOMC', nompro
151 call utnomc ( nocman,
153 > degre, mailet, maconf, homolo, hierar,
155 > ncinfo, ncnoeu, nccono, nccode,
157 > ncequi, ncfron, ncnomb,
158 > ulsort, langue, codret)
160 if ( codret.eq.0 ) then
162 call gmadoj ( ncnomb, adnomb, iaux, codret )
166 if ( codret.eq.0 ) then
168 nbpyra = imem(adnomb+19)
173 c 3. determination du nombre de mailles a eliminer
176 #ifdef _DEBUG_HOMARD_
177 write (ulsort,*) '3. determination ; codret = ', codret
180 if ( codret.eq.0 ) then
182 #ifdef _DEBUG_HOMARD_
183 write (ulsort,texte(langue,6)) nbpyra, mess14(langue,3,5)
186 if ( modhom.eq.1 .or. modhom.eq.-1 ) then
198 #ifdef _DEBUG_HOMARD_
199 write (ulsort,*) '4. diagnostic ; codret = ', codret
202 if ( codret.eq.0 ) then
204 #ifdef _DEBUG_HOMARD_
205 write (ulsort,texte(langue,7)) nbelig, mess14(langue,3,5)
208 if ( nbelig.ne.0 ) then
212 if ( eleinc.eq.0 ) then
218 write (ulsort,texte(langue,8))mess14(langue,3,5),saux07,nbelig
221 c 4.2. ==> Si on bloque en presence de telles mailles
223 if ( eleinc.eq.0 ) then
225 #ifdef _DEBUG_HOMARD_
226 write (ulsort,texte(langue,4)) nocman
228 write (ulsort,texte(langue,9))
241 if ( codret.ne.0 ) then
245 write (ulsort,texte(langue,1)) 'Sortie', nompro
246 write (ulsort,texte(langue,2)) codret
250 #ifdef _DEBUG_HOMARD_
251 write (ulsort,texte(langue,1)) 'Sortie', nompro