1 subroutine pcs3tr ( letria, prfcan,
2 > somare, hettri, aretri,
5 > afaire, typdec, etan, orient )
6 c ______________________________________________________________________
10 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
12 c Version originale enregistree le 18 juin 1996 sous le numero 96036
13 c aupres des huissiers de justice Simart et Lavoir a Clamart
14 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
15 c aupres des huissiers de justice
16 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
18 c HOMARD est une marque deposee d'Electricite de France
24 c ______________________________________________________________________
26 c aPres adaptation - Conversion de Solution -
28 c interpolation p0 sur les aretes - phase 3
30 c decoupage des TRiangles
32 c ______________________________________________________________________
33 c remarque : pcs0tr et pcs3tr sont des clones
34 c ______________________________________________________________________
36 c . nom . e/s . taille . description .
37 c .____________________________________________________________________.
38 c . letria . e . 1 . triangle a examiner .
39 c . prfcan . e . * . En numero du calcul a l'iteration n : .
40 c . . . . 0 : l'entite est absente du profil .
41 c . . . . i : l'entite est au rang i dans le profil .
42 c . somare . e .2*nbarto. numeros des extremites d'arete .
43 c . hettri . e . nbtrto . historique de l'etat des triangles .
44 c . aretri . e .nbtrto*3. numeros des 3 aretes des triangles .
45 c . nareca . e . * . nro des aretes dans le calcul en entree .
46 c . afaire . s . 1 . vrai si l'interpolation est a faire .
47 c . typdec . s . 1 . type de decoupage .
48 c . etan . s . 1 . ETAt du triangle a l'iteration N .
49 c . orient . s . 3 . orientation relative des aretes .
50 c ______________________________________________________________________
53 c 0. declarations et dimensionnement
56 c 0.1. ==> generalites
71 integer hettri(nbtrto), aretri(nbtrto,3)
73 integer nareca(rearto)
74 integer nbanar, anfiar(nbanar)
79 c 0.4. ==> variables locales
81 integer iaux, jaux, kaux
82 integer lafill, lapfil
83 integer listar(12), nbaret
85 c etanp1 = ETAt du triangle a l'iteration N+1
89 c 0.5. ==> initialisations
92 c ______________________________________________________________________
98 etanp1 = mod(hettri(letria),10)
99 etan = (hettri(letria)-etanp1) / 10
101 cgn write(1,90002) 'etan/etanp1', etan, etanp1
105 c 6, 7, 8 : en 4 avec basculement de l'arete typdec-5
106 c 1, 2, 3 : en 2 selon l'arete typdec
108 if ( ( etanp1.eq.4 ) .and.
109 > ( etan.eq.0 .or. etan.eq.1 .or.
110 > etan.eq.2 .or. etan.eq.3 ) ) then
114 > ( etanp1.eq.6 .or. etanp1.eq.7 .or. etanp1.eq.8 ) .and.
115 > ( etan.eq.0 .or. etan.eq.1 .or.
116 > etan.eq.2 .or. etan.eq.3 ) ) then
119 elseif ( etanp1.eq.1 .or. etanp1.eq.2 .or. etanp1.eq.3 ) then
126 cgn write(1,*) 'typdec',typdec
129 c 2. On verifie que le champ est present :
130 c . sur toutes les aretes du triangle, s'il etait actif
131 c . sur les aretes non coupee et sur les filles de l'arete coupee,
132 c s'il etait coupe en 2
135 if ( typdec.ne.0 ) then
138 cgn write(1,*) 'etan',etan
140 if ( etan.ne.5 ) then
143 do 311 , iaux = 1 , 3
145 cgn write(1,*) aretri(letria,iaux),nareca(aretri(letria,iaux))
146 if ( iaux.eq.etan .or. etan.eq.4 ) then
147 do 3111 , jaux = 0 , 1
148 lafill = anfiar(aretri(letria,iaux)) + jaux
149 cgn write(1,*) '. lafill', lafill
150 if ( anfiar(lafill).eq.0 ) then
152 listar(nbaret) = nareca(lafill)
154 do 31111 , kaux = 0 , 1
155 lapfil = anfiar(lafill) + kaux
156 cgn write(1,*) '.. lapfil', lapfil
158 listar(nbaret) = nareca(lapfil)
164 listar(nbaret) = nareca(aretri(letria,iaux))
169 cgn write(1,*) 'listar :',(listar(iaux) , iaux = 1 , nbaret)
170 do 312 , iaux = 1 , nbaret
172 if ( listar(iaux).eq.0 ) then
175 elseif ( prfcan(listar(iaux)).eq.0 ) then
191 cgn write(1,*) 'afaire',afaire
194 c 3. Si c'est a faire, on recupere l'orientation relative des aretes
200 call utorat ( somare,
201 > aretri(letria,1), aretri(letria,2), aretri(letria,3),
202 > orient(1), orient(2), orient(3) )