1 subroutine sfbatr ( lenoeu, larete, letria,
4 > hettri, aretri, filtri,
5 > ulsort, langue, codret )
6 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 Suivi de Frontiere - Bascule d'Arete pour un TRiangle
27 c ______________________________________________________________________
29 c . nom . e/s . taille . description .
30 c .____________________________________________________________________.
31 c . lenoeu . e . 1 . noeud en cours d'examen .
32 c . larete . e . 1 . arete en cours d'examen .
33 c . letria . e . 1 . triangle en cours d'examen .
34 c . somare . es .2*nbarto. numeros des extremites d'arete .
35 c . facare . e . nbfaar . liste des faces contenant une arete .
36 c . posifa . e . nbarto . pointeur sur tableau facare .
37 c . hettri . es . nbtrto . historique de l'etat des triangles .
38 c . aretri . es .nbtrto*3. numeros des 3 aretes des triangles .
39 c . filtri . e . nbtrto . premier fils des triangles .
40 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
41 c . langue . e . 1 . langue des messages .
42 c . . . . 1 : francais, 2 : anglais .
43 c . codret . es . 1 . code de retour des modules .
44 c . . . . 0 : pas de probleme .
45 c . . . . x : probleme .
46 c ______________________________________________________________________
49 c 0. declarations et dimensionnement
52 c 0.1. ==> generalites
58 parameter ( nompro = 'SFBATR' )
72 integer lenoeu, larete, letria
74 integer somare(2,nbarto)
75 integer posifa(0:nbarto), facare(nbfaar)
76 integer hettri(nbtrto), aretri(nbtrto,3), filtri(nbtrto)
78 integer ulsort, langue, codret
80 c 0.4. ==> variables locales
86 integer inloc, iploc, iqloc
89 parameter ( nbmess = 10 )
90 character*80 texte(nblang,nbmess)
92 c 0.5. ==> initialisations
93 c ______________________________________________________________________
101 #ifdef _DEBUG_HOMARD_
102 write (ulsort,texte(langue,1)) 'Entree', nompro
106 texte(1,4) = '(a,'':'',i10)'
107 texte(1,5) = '(a,'' du triangle'',i10'' :'',3i10)'
108 texte(1,7) = '(''Annulation du SF pour le noeud : '',i10)'
110 texte(2,4) = '(a,'' # :'',i10)'
111 texte(2,5) = '(a,'' of triangle #'',i10'' :'',3i10)'
112 texte(2,7) = '(''Cancellation of BF for node # : '',i10)'
114 #ifdef _DEBUG_HOMARD_
115 write (ulsort,texte(langue,4)) mess14(langue,2,-1), lenoeu
116 write (ulsort,texte(langue,4)) mess14(langue,2, 1), larete
117 write (ulsort,texte(langue,4)) mess14(langue,2, 2), letria
126 c 2.1. ==> reperage local des aretes
128 if ( larete.eq.aretri(letria,1) ) then
132 elseif ( larete.eq.aretri(letria,2) ) then
142 c 2.2. ==> reperage local des sommets
144 arep = aretri(letria,iploc)
146 if ( somare(1,larete).eq.somare(1,arep) ) then
148 elseif ( somare(1,larete).eq.somare(2,arep) ) then
150 elseif ( somare(2,larete).eq.somare(1,arep) ) then
156 c 2.3. ==> Programme specifique
158 #ifdef _DEBUG_HOMARD_
159 write (ulsort,texte(langue,3)) 'SFBATT', nompro
161 call sfbatt ( lenoeu, sn, letria,
162 > inloc, iploc, iqloc,
163 > somare, facare, posifa,
164 > filtri, aretri, hettri )
170 if ( codret.ne.0 ) then
174 write (ulsort,texte(langue,1)) 'Sortie', nompro
175 write (ulsort,texte(langue,2)) codret
179 #ifdef _DEBUG_HOMARD_
180 write (ulsort,texte(langue,1)) 'Sortie', nompro