1 subroutine sfnuli ( cfaare, numlig, option,
3 > ulsort, langue, codret)
4 c ______________________________________________________________________
8 c Outil de Maillage Adaptatif par Raffinement et Deraffinement d'EDF R&D
10 c Version originale enregistree le 18 juin 1996 sous le numero 96036
11 c aupres des huissiers de justice Simart et Lavoir a Clamart
12 c Version 11.2 enregistree le 13 fevrier 2015 sous le numero 2015/014
13 c aupres des huissiers de justice
14 c Lavoir, Silinski & Cherqui-Abrahmi a Clamart
16 c HOMARD est une marque deposee d'Electricite de France
22 c ______________________________________________________________________
24 c Suivi de Frontiere - NUmeros de LIgne
26 c ______________________________________________________________________
28 c but : compactage ou retablissement des numeros de ligne des familles
29 c ______________________________________________________________________
31 c . nom . e/s . taille . description .
32 c .____________________________________________________________________.
33 c . cfaare . e . nctfar*. codes des familles des aretes .
34 c . . . nbfare . 1 : famille MED .
35 c . . . . 2 : type de segment .
36 c . . . . 3 : orientation .
37 c . . . . 4 : famille d'orientation inverse .
38 c . . . . 5 : numero de ligne de frontiere .
39 c . . . . > 0 si concernee par le suivi de frontiere.
40 c . . . . <= 0 si non concernee .
41 c . . . . 6 : famille frontiere active/inactive .
42 c . . . . 7 : numero de surface de frontiere .
43 c . . . . + l : appartenance a l'equivalence l .
44 c . numlig . e . sfnbli . numero des lignes .
45 c . option . e . 1 . 0 pour compactage, sinon retablissement .
46 c . lgetco . e . 1 . longueur du tableau de l'etat courant .
47 c . taetco . e . lgetco . tableau de l'etat courant .
48 c . ulsort . e . 1 . numero d'unite logique de la liste standard.
49 c . langue . e . 1 . langue des messages .
50 c . . . . 1 : francais, 2 : anglais .
51 c . codret . es . 1 . code de retour des modules .
52 c . . . . 0 : pas de probleme .
53 c . . . . x : probleme .
54 c ______________________________________________________________________
57 c 0. declarations et dimensionnement
60 c 0.1. ==> generalites
66 parameter ( nompro = 'SFNULI' )
82 integer numlig(sfnbli)
83 integer cfaare(nctfar,nbfare)
86 integer taetco(lgetco)
88 integer ulsort, langue, codret
90 c 0.4. ==> variables locales
92 integer nretap, nrsset
100 parameter ( nbmess = 10 )
101 character*80 texte(nblang,nbmess)
103 c 0.5. ==> initialisations
104 c ______________________________________________________________________
110 c 1.1. ==> les messages
114 #ifdef _DEBUG_HOMARD_
115 write (ulsort,texte(langue,1)) 'Entree', nompro
119 texte(1,4) = '(/,a6,'' COMPACTAGE DES NUMEROS DE LIGNE'')'
120 texte(1,5) = '(38(''=''),/)'
121 texte(1,6) = '(/,a6,'' RESTITUTION DE NUMEROS DE LIGNE'')'
123 > '(5x,''La ligne'',i10,'' ne figure pas dans la liste :'')'
125 texte(2,4) = '(/,a6,'' LINE NUMBERS COMPACTING'')'
126 texte(2,5) = '(30(''=''),/)'
127 texte(2,6) = '(/,a6,'' LINE NUMBERS RETRIEVING'')'
129 > '(5x,''Line #'',i10,'' does not belong to list:'')'
133 c 1.2. ==> le numero de sous-etape
136 nrsset = taetco(2) + 1
139 call utcvne ( nretap, nrsset, saux, iaux, codret )
143 if ( option.eq.0 ) then
144 write (ulsort,texte(langue,4)) saux
146 write (ulsort,texte(langue,6)) saux
148 write (ulsort,texte(langue,5))
151 c 2. boucle sur les familles d'aretes : compacter les numeros
154 if ( option.eq.0 ) then
156 do 21 iaux = 1 , nbfare
158 if ( codret.eq.0 ) then
160 lig = cfaare(cosfli,iaux)
163 do 211 , ligv = 1 , sfnbli
164 if ( lig.eq.numlig(ligv) ) then
165 cfaare(cosfli,iaux) = ligv
166 cfaare(cosfli,cfaare(cosfin,iaux)) = -ligv
180 c 3. boucle sur les familles d'aretes : redonner les numeros d'origine
185 do 31 , iaux = 1, nbfare
187 lig = cfaare(cosfli,iaux)
189 cfaare(cosfli,iaux) = numlig( lig)
190 else if (lig.lt.0) then
191 cfaare(cosfli,iaux) = -numlig(-lig)
202 if ( codret.ne.0 ) then
206 write (ulsort,texte(langue,7)) lig
207 write (ulsort,91020) (numlig(ligv),ligv=1,sfnbli)
208 write (ulsort,texte(langue,1)) 'Sortie', nompro
209 write (ulsort,texte(langue,2)) codret
213 #ifdef _DEBUG_HOMARD_
214 write (ulsort,texte(langue,1)) 'Sortie', nompro