1 subroutine utre01 ( typenh, option,
2 > norenu, nbelem, nbento,
3 > adenho, adenca, adenic,
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 - REnumerotation - 01
27 c ______________________________________________________________________
28 c . nom . e/s . taille . description .
29 c .____________________________________________________________________.
30 c . typenh . e . 1 . code des entites au sens homard .
31 c . . . . -1 : noeuds .
32 c . . . . 0 : mailles-points .
33 c . . . . 1 : segments .
34 c . . . . 2 : triangles .
35 c . . . . 3 : tetraedres .
36 c . . . . 4 : quadrangles .
37 c . . . . 5 : pyramides .
38 c . . . . 6 : hexaedres .
39 c . . . . 7 : pentaedres .
40 c . option . e . 1 . option de pilotage .
41 c . . . . c'est un multiple des entiers suivants : .
42 c . . . . 2 : nombre d'entites actives .
43 c . . . . 3 : nombre d'entites .
44 c . . . . 5 : branche HOMARD .
45 c . . . . 7 : branche Calcul .
46 c . . . . 11 : branche InfoSupE associee .
47 c . norenu . e . char8 . nom de la branche Renum du maillage HOMARD .
48 c . nbelem . e . 1 . nbr d'elements utiles et contenant entites .
49 c . nbento . e . 1 . nombre d'entites .
50 c . adenho . s . 1 . adresse de la numerotation dans HOMARD .
51 c . adenca . s . 1 . adresse de la numerotation dans le calcul .
52 c . adenic . s . 1 . adresse de la numerotation dans le calcul .
53 c . . . . supplementaire (InfoSupE) .
54 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
55 c . langue . e . 1 . langue des messages .
56 c . . . . 1 : francais, 2 : anglais .
57 c . codret . es . 1 . code de retour des modules .
58 c . . . . 0 : pas de probleme .
59 c . . . . 6 : probleme d'ecriture .
60 c ______________________________________________________________________
63 c 0. declarations et dimensionnement
66 c 0.1. ==> generalites
72 parameter ( nompro = 'UTRE01' )
84 integer typenh, option
85 integer nbelem, nbento
86 integer adenho, adenca, adenic
90 integer ulsort, langue, codret
92 c 0.4. ==> variables locales
95 integer codre1, codre2, codre3, codre4
100 #ifdef _DEBUG_HOMARD_
105 parameter ( nbmess = 10 )
106 character*80 texte(nblang,nbmess)
108 c 0.5. ==> initialisations
109 c ______________________________________________________________________
115 c 1.1. ==> les messages
119 #ifdef _DEBUG_HOMARD_
120 write (ulsort,texte(langue,1)) 'Entree', nompro
125 > '(''Allocations des renumerotations relatives aux '',a)'
126 texte(1,5) = '(''Attributs impossibles a ecrire.'')'
127 texte(1,6) = '(''Allocations impossibles.'')'
129 texte(2,4) = '(''Allocations of renumbering for '',a)'
130 texte(2,5) = '(''Attributes cannot be written.'')'
131 texte(2,6) = '(''Allocations cannot be done.'')'
133 #ifdef _DEBUG_HOMARD_
134 if ( typenh.gt.0 ) then
136 write(ulsort,texte(langue,4)) mess14(langue,3,typenh)
137 write(ulsort,*) 'nbelem = ', nbelem
138 saux06 = 'nb'//suffix(2,typenh)(1:2)//'to'
139 write(ulsort,*) saux06, ' = ', nbento
144 c 1.2. ==> types d'entites
146 saux03 = '.'//suffix(3,typenh)(1:2)
147 cgn if (saux03(2:3).eq.'Ar' )then
148 cgn write(ulsort,*) 'glop'
157 if ( mod(option,2).eq.0 ) then
158 call gmecat ( norenu, iaux , nbelem, codre1 )
163 if ( mod(option,3).eq.0 ) then
164 call gmecat ( norenu, iaux+1, nbento, codre2 )
169 codre0 = min ( codre1, codre2 )
170 codret = max ( abs(codre0), codret,
172 if ( codret.ne.0 ) then
180 #ifdef _DEBUG_HOMARD_
181 write (ulsort,*) '3. Allocations ; codret = ', codret
184 if ( codret.eq.0 ) then
186 if ( mod(option,5).eq.0 .and. nbelem.ne.0 ) then
187 call gmaloj ( norenu//saux03//'HOMARD', ' ',
188 > nbelem, adenho, codre1 )
193 if ( mod(option,7).eq.0 .and. nbento.ne.0 ) then
194 call gmaloj ( norenu//saux03//'Calcul', ' ',
195 > nbento, adenca, codre2 )
200 if ( mod(option,11).eq.0 .and. nbento.ne.0 ) then
201 write(saux01,'(i1)') typenh+2
202 call gmaloj ( norenu//'.InfoSupE.Tab'//saux01, ' ',
203 > nbento, adenic, codre3 )
204 call gmecat ( norenu//'.InfoSupE', typenh+2, nbento, codre4 )
210 codre0 = min ( codre1, codre2, codre3, codre4 )
211 codret = max ( abs(codre0), codret,
212 > codre1, codre2, codre3, codre4 )
213 if ( codret.ne.0 ) then
223 if ( codret.ne.0 ) then
227 write (ulsort,texte(langue,1)) 'Sortie', nompro
228 write (ulsort,texte(langue,2)) codret
229 write(ulsort,texte(langue,4)) mess14(langue,3,typenh)
230 write(ulsort,texte(langue,4+codret))
231 call gmprsx (nompro,norenu)
235 #ifdef _DEBUG_HOMARD_
236 write (ulsort,texte(langue,1)) 'Sortie', nompro