1 subroutine sffaf2 ( nbfrgr, nbfran,
3 > cacfpo, cacfta, cacfnm,
4 > calfpo, calfta, calfnm,
5 > calgpo, calgta, calgnm,
6 > ulsort, langue, codret)
7 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 Suivi de Frontiere - Frontieres AFfichage - 2
28 c remarque : sffaf1, sffaf2 et sffaf3 sont des clones
29 c ______________________________________________________________________
31 c . nom . e/s . taille . description .
32 c .____________________________________________________________________.
33 c . nbfrgr . e . 1 . nombre de liens frontiere/groupe .
34 c . nbfran . e . 1 . nombre de frontieres analytiques .
35 c . casfre . e .13nbfran. caracteristiques des frontieres analytiques.
36 c . . . . 1 : 1., si cylindre .
37 c . . . . 2., si sphere .
38 c . . . . 3., si cone par origine, axe et angle .
39 c . . . . 4., si cone par 2 centres et 2 rayons .
40 c . . . . 5., si tore .
41 c . . . . de 2 a 13 : .
42 c . . . . . cylindre : 2,3,4 : xcentr, ycentr, zcentr.
43 c . . . . 5,6,7 : xaxe, yaxe, zaxe .
45 c . . . . . sphere : 2,3,4 : xcentr, ycentr, zcentr.
47 c . . . . . cone : 2,3,4 : xcentr, ycentr, zcentr.
48 c . . . . 5,6,7 : xaxe, yaxe, zaxe .
49 c . . . . 13 : angle en degre .
50 c . . . . . cone 2 : 2,3,4 : xcentr, ycentr, zcentr.
52 c . . . . 9,10,11:xcent2, ycent2, zcent2.
53 c . . . . 12 : rayon2 .
54 c . . . . . tore : 2,3,4 : xcentr, ycentr, zcentr.
55 c . . . . 5,6,7 : xaxe, yaxe, zaxe .
56 c . . . . 8 : rayon de revolution .
57 c . . . . 12 : rayon primaire .
58 c . cacfpo . e .0:nbfran. pointeurs sur le tableau du nom frontieres .
59 c . cacfta . e .10nbfran. taille du nom des frontieres .
60 c . cacfnm . e .10nbfran. nom des frontieres .
61 c . calfpo . e .0:nbfrgr. pointeurs sur le tableau du nom frontieres .
62 c . calfta . e .10nbfrgr. taille du nom des frontieres .
63 c . calfnm . e .10nbfrgr. nom des frontieres .
64 c . calgpo . e .0:nbfrgr. pointeurs sur le tableau du nom groupes .
65 c . calgta . e .10nbfrgr. taille du nom des groupes .
66 c . calgnm . e .10nbfrgr. nom des groupes .
67 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
68 c . langue . e . 1 . langue des messages .
69 c . . . . 1 : francais, 2 : anglais .
70 c . codret . es . 1 . code de retour des modules .
71 c . . . . 0 : pas de probleme .
72 c . . . . x : probleme .
73 c ______________________________________________________________________
76 c 0. declarations et dimensionnement
79 c 0.1. ==> generalites
85 parameter ( nompro = 'SFFAF2' )
95 integer nbfrgr, nbfran
96 integer cacfpo(0:nbfran), cacfta(10*nbfran)
97 integer calfpo(0:nbfrgr), calfta(10*nbfrgr)
98 integer calgpo(0:nbfrgr), calgta(10*nbfrgr)
100 double precision casfre(13,nbfran)
102 character*8 cacfnm(10*nbfran)
103 character*8 calfnm(10*nbfrgr)
104 character*8 calgnm(10*nbfrgr)
106 integer ulsort, langue, codret
108 c 0.4. ==> variables locales
112 integer nufrgr, nufran, tyfran
113 integer lgnom, lgnomf
115 character*8 nomsur(0:5)
116 character*80 nom, nomf
119 parameter ( nbmess = 12 )
120 character*80 texte(nblang,nbmess)
122 c 0.5. ==> initialisations
123 c ______________________________________________________________________
133 #ifdef _DEBUG_HOMARD_
134 write (ulsort,texte(langue,1)) 'Entree', nompro
139 >'(''*'',30x,''Liens groupe/frontiere'',30x,''*'')'
141 >'(''*'',30x,''Frontieres analytiques'',30x,''*'')'
142 texte(1,6) = '(''* Rayon : '',g14.7,58x,''*'')'
143 texte(1,7) = '(''* Angle : '',g14.7,58x,''*'')'
146 >'(''*'',31x,''Links boundary/group'',31x,''*'')'
148 >'(''*'',31x,''Analytical boundaries'',30x,''*'')'
149 texte(2,6) = '(''* Radius: '',g14.7,58x,''*'')'
150 texte(2,7) = '(''* Angle: '',g14.7,58x,''*'')'
154 1000 format('* ',a80,' *')
156 1101 format(//,84('*'))
157 1201 format('* Type : ',a8,66x,'*')
158 1202 format('* ',a6,' : X =',g14.7,' Y =',g14.7,' Z =',g14.7,18x,'*')
161 c 2. Descriptions des frontieres
164 #ifdef _DEBUG_HOMARD_
165 write (ulsort,90002) '2. Descriptions frontieres ; codret', codret
168 if ( langue.eq.1 ) then
169 nomsur(0) = 'Inconnu '
170 nomsur(1) = 'Cylindre'
171 nomsur(2) = 'Sphere '
176 nomsur(0) = 'Unknwown'
177 nomsur(1) = 'Cylinder'
178 nomsur(2) = 'Sphere '
185 write (ulsort,texte(langue,5))
188 do 21 , nufran = 1 , nbfran
190 c 2.1. ==> Nom de la frontiere
192 if ( codret.eq.0 ) then
194 jaux = cacfpo(nufran-1) + 1
197 do 211 , iaux = jaux , cacfpo(nufran)
198 lgnom = lgnom + cacfta(iaux)
203 if ( codret.eq.0 ) then
205 call uts8ch ( cacfnm(jaux), lgnom, nom,
206 > ulsort, langue, codret )
210 if ( codret.eq.0 ) then
211 write (ulsort,1000) nom
214 c 2.2. ==> Type de la frontiere
216 tyfran = nint(casfre(1,nufran))
217 if ( tyfran.le.-1 .or. tyfran.ge.6 ) then
220 write (ulsort,1201) nomsur(tyfran)
222 if ( tyfran.gt.0 ) then
223 write (ulsort,1202) 'Centre',
224 > (casfre(iaux,nufran), iaux = 2 , 4 )
225 if ( tyfran.eq.1 .or. tyfran.eq.3 .or. tyfran.eq.5 ) then
226 write (ulsort,1202) 'Axe ',
227 > (casfre(iaux,nufran), iaux = 5 , 7 )
229 if ( tyfran.le.2 ) then
230 write (ulsort,texte(langue,6)) casfre(8,nufran)
231 elseif ( tyfran.eq.3 ) then
232 write (ulsort,texte(langue,7)) casfre(13,nufran)
233 elseif ( tyfran.eq.5 ) then
234 write (ulsort,texte(langue,6)) casfre(8,nufran)
235 write (ulsort,texte(langue,6)) casfre(12,nufran)
237 write (ulsort,texte(langue,6)) casfre(8,nufran)
238 write (ulsort,1202) 'Centre',
239 > (casfre(iaux,nufran), iaux = 9 , 11 )
240 write (ulsort,texte(langue,6)) casfre(12,nufran)
249 c 3. affichage des liens frontieres/groupe
252 #ifdef _DEBUG_HOMARD_
253 write (ulsort,90002) '3. affichage liens ; codret', codret
257 write (ulsort,texte(langue,4))
260 do 31 , nufrgr = 1 , nbfrgr
262 c 3.1. ==> Nom du groupe
264 if ( codret.eq.0 ) then
266 jaux = calgpo(nufrgr-1) + 1
269 do 311 , iaux = jaux , calgpo(nufrgr)
270 lgnom = lgnom + calgta(iaux)
273 call uts8ch ( calgnm(jaux), lgnom, nom,
274 > ulsort, langue, codret )
278 if ( codret.eq.0 ) then
279 write (ulsort,1000) nom
282 c 3.2. ==> Nom de la frontiere
284 if ( codret.eq.0 ) then
286 jaux = calfpo(nufrgr-1) + 1
289 do 321 , iaux = jaux , calfpo(nufrgr)
290 lgnomf = lgnomf + calfta(iaux)
293 call uts8ch ( calfnm(jaux), lgnomf, nomf,
294 > ulsort, langue, codret )
298 if ( codret.eq.0 ) then
299 write (ulsort,1000) nomf
310 if ( codret.ne.0 ) then
314 write (ulsort,texte(langue,1)) 'Sortie', nompro
315 write (ulsort,texte(langue,2)) codret
319 #ifdef _DEBUG_HOMARD_
320 write (ulsort,texte(langue,1)) 'Sortie', nompro