1 subroutine deinor ( nivmax,
4 > np2are, posifa, facare,
8 > ulsort, langue, codret)
9 c ______________________________________________________________________
13 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
15 c Version originale enregistree le 18 juin 1996 sous le numero 96036
16 c aupres des huissiers de justice Simart et Lavoir a Clamart
17 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
18 c aupres des huissiers de justice
19 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
21 c HOMARD est une marque deposee d'Electricite de France
27 c ______________________________________________________________________
29 c traitement des DEcisions - Initialisation de l'indicateur entier
31 c - cas des NOeuds - Raffinement
33 c ______________________________________________________________________
35 c . nom . e/s . taille . description .
36 c .____________________________________________________________________.
37 c . nivmax . e . 1 . niveau max a ne pas depasser en raffinement.
38 c . decare . s .0:nbarto. decisions des aretes .
39 c . somare . e .2*nbarto. numeros des extremites d'arete .
40 c . hetare . e . nbarto . historique de l'etat des aretes .
41 c . nivtri . e . nbtrto . niveau des triangles .
42 c . nivqua . e . nbquto . niveau des quadrangles .
43 c . nosupp . e . nbnoto . support pour les noeuds .
44 c . noindi . e . nbnoto . valeurs entieres pour les noeuds .
45 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
46 c . langue . e . 1 . langue des messages .
47 c . . . . 1 : francais, 2 : anglais .
48 c . codret . es . 1 . code de retour des modules .
49 c . . . . 0 : pas de probleme .
50 c . . . . 2 : probleme dans le traitement .
51 c ______________________________________________________________________
54 c 0. declarations et dimensionnement
57 c 0.1. ==> generalites
63 parameter ( nompro = 'DEINOR' )
80 integer decare(0:nbarto)
81 integer somare(2,nbarto), hetare(nbarto)
82 integer nivtri(nbtrto)
83 integer nivqua(nbquto)
84 integer np2are(nbarto), posifa(0:nbarto), facare(nbfaar)
85 integer nosupp(nbnoto), noindi(nbnoto)
87 integer ulsort, langue, codret
89 c 0.4. ==> variables locales
92 integer iaux, jaux, kaux, ideb, ifin
95 parameter (nbmess = 10 )
96 character*80 texte(nblang,nbmess)
97 c ______________________________________________________________________
105 #ifdef _DEBUG_HOMARD_
106 write (ulsort,texte(langue,1)) 'Entree', nompro
114 #ifdef _DEBUG_HOMARD_
115 write(ulsort,90002) 'degre', degre
119 cgn print *,'decare :'
120 cgn print 91011,decare
121 cgn do 1999 , iaux = 1, nbnoto
122 cgn if ( nosupp(iaux).ne.0 ) then
123 cgn write (ulsort,90112) 'noindi',iaux,noindi(iaux)
128 c 3. traitement des indicateurs portant sur les noeuds
131 #ifdef _DEBUG_HOMARD_
132 write(ulsort,texte(langue,4)) mess14(langue,3,-1)
135 #ifdef _DEBUG_HOMARD_
136 write(ulsort,texte(langue,5))
141 if ( degre.eq.1 ) then
143 do 321 , larete = 1, nbarto
144 if ( mod( hetare(larete) , 10 ).eq.0 ) then
145 if ( nosupp(somare(1,larete)).ne.0 .and.
146 > nosupp(somare(2,larete)).ne.0 ) then
147 if ( noindi(somare(1,larete)).eq.1 .and.
148 > noindi(somare(2,larete)).eq.1 ) then
149 ideb = posifa(larete-1)+1
150 ifin = posifa(larete)
152 if ( ifin.ge.ideb .and. nivmax.ge.0 ) then
153 if ( facare(ideb).gt.0 ) then
154 kaux = nivtri(facare(ideb))
156 kaux = nivqua(-facare(ideb))
158 if ( kaux.ge.nivmax ) then
162 if ( jaux.eq.0 ) then
163 cgn write(ulsort,90002) 'Raffinement de l''''arete', larete
175 do 322 , larete = 1, nbarto
176 if ( mod( hetare(larete) , 10 ).eq.0 ) then
177 if ( nosupp(somare(1,larete)).ne.0 .and.
178 > nosupp(somare(2,larete)).ne.0 .and.
179 > nosupp(np2are(larete)).ne.0 ) then
180 if ( noindi(somare(1,larete)).eq.1 .and.
181 > noindi(somare(2,larete)).eq.1 .and.
182 > noindi(np2are(larete)) .eq.1 ) then
183 ideb = posifa(larete-1)+1
184 ifin = posifa(larete)
186 if ( ifin.ge.ideb .and. nivmax.ge.0 ) then
187 if ( facare(ideb).gt.0 ) then
188 kaux = nivtri(facare(ideb))
190 kaux = nivqua(-facare(ideb))
192 if ( kaux.ge.nivmax ) then
196 if ( jaux.eq.0 ) then
197 cgn write(ulsort,90002) 'Raffinement de l''''arete', larete
207 if ( iaux.ne.0 ) then
208 write(ulsort,texte(langue,10))
209 write(ulsort,texte(langue,4)) mess14(langue,3,-1)
210 write(ulsort,texte(langue,7)) nivmax
211 write(ulsort,texte(langue,9)) iaux
220 if ( codret.ne.0 ) then
224 write (ulsort,texte(langue,1)) 'Sortie', nompro
225 write (ulsort,texte(langue,2)) codret
229 #ifdef _DEBUG_HOMARD_
230 write (ulsort,texte(langue,1)) 'Sortie', nompro